aboutsummaryrefslogtreecommitdiff
path: root/contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3d12.h
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-12-02 16:39:36 -0800
committer3gg <3gg@shellblade.net>2025-12-02 16:39:36 -0800
commit6c8ae19be66cee247980a48e736a4e05d14de179 (patch)
treed860767907bf0cbe17ec66422e11bea700cf56d9 /contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3d12.h
parent8f594c8ebd11f0e5f8a0c6369c3fe7383d250cbe (diff)
Immediate-mode renderer, triangle demo, shader compilation in cmake, Agility SDKHEADmain
Diffstat (limited to 'contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3d12.h')
-rw-r--r--contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3d12.h36890
1 files changed, 36890 insertions, 0 deletions
diff --git a/contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3d12.h b/contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3d12.h
new file mode 100644
index 0000000..b942825
--- /dev/null
+++ b/contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3d12.h
@@ -0,0 +1,36890 @@
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_MS_DISPATCH_MAX_THREAD_GROUPS_PER_GRID ( 4194303 )
1172
1173#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )
1174#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 )
1175
1176#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
1177
1178#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 )
1179
1180#define D3D12_PACKED_TILE ( 0xffffffff )
1181
1182#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 )
1183
1184#define D3D12_PREVIEW_SDK_VERSION ( 717 )
1185
1186#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
1187
1188#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 )
1189
1190#define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 )
1191
1192#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 )
1193
1194#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 )
1195
1196#define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff )
1197
1198#define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 )
1199
1200#define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff )
1201
1202#define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 )
1203
1204#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1205
1206#define D3D12_PS_INPUT_REGISTER_COUNT ( 32 )
1207
1208#define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 )
1209
1210#define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 )
1211
1212#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )
1213#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 )
1214
1215#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1216
1217#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 )
1218
1219#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 )
1220
1221#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1222
1223#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 )
1224
1225#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1226
1227#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1228
1229#define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 )
1230
1231#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )
1232#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 )
1233
1234#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 )
1235
1236#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 )
1237
1238#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 )
1239
1240#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 )
1241
1242#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 )
1243
1244#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
1245
1246#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
1247
1248#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 )
1249
1250#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 )
1251
1252#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 )
1253
1254#define D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT ( 128 )
1255
1256#define D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL ( 12 )
1257
1258#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 )
1259
1260#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 )
1261
1262#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 )
1263
1264#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 )
1265
1266#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 )
1267
1268#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
1269
1270#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 )
1271
1272#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 )
1273
1274#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 )
1275
1276#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 )
1277
1278#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 )
1279
1280#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
1281
1282#define D3D12_REQ_MAXANISOTROPY ( 16 )
1283
1284#define D3D12_REQ_MIP_LEVELS ( 15 )
1285
1286#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 )
1287
1288#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 )
1289
1290#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 )
1291
1292#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 )
1293
1294#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )
1295#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 )
1296
1297#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 )
1298
1299#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 )
1300
1301#define D3D12_REQ_SUBRESOURCES ( 30720 )
1302
1303#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 )
1304
1305#define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 )
1306
1307#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 )
1308
1309#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 )
1310
1311#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 )
1312
1313#define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 )
1314
1315#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 )
1316
1317#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff )
1318
1319#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 )
1320
1321#define D3D12_SDK_VERSION ( 618 )
1322
1323#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 )
1324
1325#define D3D12_SHADER_MAJOR_VERSION ( 5 )
1326
1327#define D3D12_SHADER_MAX_INSTANCES ( 65535 )
1328
1329#define D3D12_SHADER_MAX_INTERFACES ( 253 )
1330
1331#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 )
1332
1333#define D3D12_SHADER_MAX_TYPES ( 65535 )
1334
1335#define D3D12_SHADER_MINOR_VERSION ( 1 )
1336
1337#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 )
1338
1339#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 )
1340
1341#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 )
1342
1343#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
1344
1345#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 )
1346
1347#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 )
1348
1349#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 )
1350
1351#define D3D12_SO_BUFFER_SLOT_COUNT ( 4 )
1352
1353#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff )
1354
1355#define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff )
1356
1357#define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 )
1358
1359#define D3D12_SO_STREAM_COUNT ( 4 )
1360
1361#define D3D12_SPEC_DATE_DAY ( 14 )
1362
1363#define D3D12_SPEC_DATE_MONTH ( 11 )
1364
1365#define D3D12_SPEC_DATE_YEAR ( 2014 )
1366
1367#define D3D12_SPEC_VERSION ( 1.16 )
1368#define D3D12_SRGB_GAMMA ( 2.2f )
1369#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )
1370#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )
1371#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )
1372#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )
1373#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )
1374#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )
1375#define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 )
1376
1377#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 )
1378
1379#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 )
1380
1381#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 )
1382
1383#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 )
1384
1385#define D3D12_STANDARD_VECTOR_SIZE ( 4 )
1386
1387#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 )
1388
1389#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 )
1390
1391#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 )
1392
1393#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 )
1394
1395#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
1396
1397#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
1398
1399#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 )
1400
1401#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 )
1402
1403#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 )
1404
1405#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 )
1406
1407#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 )
1408
1409#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 )
1410
1411#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 )
1412
1413#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
1414
1415#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 )
1416
1417#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 )
1418
1419#define D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNMENT ( 4096 )
1420
1421#define D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNMENT ( 8 )
1422
1423#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )
1424
1425#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 )
1426
1427#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 )
1428
1429#define D3D12_UAV_SLOT_COUNT ( 64 )
1430
1431#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 )
1432
1433#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 )
1434
1435#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 )
1436
1437#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 )
1438
1439#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 )
1440
1441#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff )
1442
1443#define D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX ( 0xff )
1444
1445#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS ( 64 )
1446
1447#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS ( 64 )
1448
1449#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN ( 9 )
1450
1451#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM ( 8 )
1452
1453#define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 )
1454
1455#define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 )
1456
1457#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 )
1458
1459#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 )
1460
1461#define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 )
1462
1463#define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 )
1464
1465#define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 )
1466
1467#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1468
1469#define D3D12_VS_INPUT_REGISTER_COUNT ( 32 )
1470
1471#define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 )
1472
1473#define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 )
1474
1475#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1476
1477#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1478
1479#define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 )
1480
1481#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 )
1482
1483#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 )
1484
1485#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 )
1486
1487#define D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES ( 8 )
1488
1489#define D3D12_WORK_GRAPHS_DISPATCH_MAX_THREAD_GROUPS_PER_GRID ( 16777215 )
1490
1491#define D3D12_WORK_GRAPHS_MAX_NODE_DEPTH ( 32 )
1492
1493#endif
1494
1495typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
1496
1497typedef
1498enum D3D12_COMMAND_LIST_TYPE
1499 {
1500 D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
1501 D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
1502 D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
1503 D3D12_COMMAND_LIST_TYPE_COPY = 3,
1504 D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
1505 D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
1506 D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6,
1507 D3D12_COMMAND_LIST_TYPE_NONE = -1
1508 } D3D12_COMMAND_LIST_TYPE;
1509
1510typedef
1511enum D3D12_COMMAND_QUEUE_FLAGS
1512 {
1513 D3D12_COMMAND_QUEUE_FLAG_NONE = 0,
1514 D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1,
1515 D3D12_COMMAND_QUEUE_FLAG_ALLOW_DYNAMIC_PRIORITY = 0x2
1516 } D3D12_COMMAND_QUEUE_FLAGS;
1517
1518DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS )
1519typedef
1520enum D3D12_COMMAND_QUEUE_PRIORITY
1521 {
1522 D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
1523 D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
1524 D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
1525 } D3D12_COMMAND_QUEUE_PRIORITY;
1526
1527typedef struct D3D12_COMMAND_QUEUE_DESC
1528 {
1529 D3D12_COMMAND_LIST_TYPE Type;
1530 INT Priority;
1531 D3D12_COMMAND_QUEUE_FLAGS Flags;
1532 UINT NodeMask;
1533 } D3D12_COMMAND_QUEUE_DESC;
1534
1535typedef
1536enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
1537 {
1538 D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
1539 D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
1540 D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
1541 D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
1542 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
1543 } D3D12_PRIMITIVE_TOPOLOGY_TYPE;
1544
1545typedef
1546enum D3D12_INPUT_CLASSIFICATION
1547 {
1548 D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
1549 D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
1550 } D3D12_INPUT_CLASSIFICATION;
1551
1552typedef struct D3D12_INPUT_ELEMENT_DESC
1553 {
1554 LPCSTR SemanticName;
1555 UINT SemanticIndex;
1556 DXGI_FORMAT Format;
1557 UINT InputSlot;
1558 UINT AlignedByteOffset;
1559 D3D12_INPUT_CLASSIFICATION InputSlotClass;
1560 UINT InstanceDataStepRate;
1561 } D3D12_INPUT_ELEMENT_DESC;
1562
1563typedef
1564enum D3D12_FILL_MODE
1565 {
1566 D3D12_FILL_MODE_WIREFRAME = 2,
1567 D3D12_FILL_MODE_SOLID = 3
1568 } D3D12_FILL_MODE;
1569
1570typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
1571
1572typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
1573
1574typedef
1575enum D3D12_CULL_MODE
1576 {
1577 D3D12_CULL_MODE_NONE = 1,
1578 D3D12_CULL_MODE_FRONT = 2,
1579 D3D12_CULL_MODE_BACK = 3
1580 } D3D12_CULL_MODE;
1581
1582typedef struct D3D12_SO_DECLARATION_ENTRY
1583 {
1584 UINT Stream;
1585 LPCSTR SemanticName;
1586 UINT SemanticIndex;
1587 BYTE StartComponent;
1588 BYTE ComponentCount;
1589 BYTE OutputSlot;
1590 } D3D12_SO_DECLARATION_ENTRY;
1591
1592typedef struct D3D12_VIEWPORT
1593 {
1594 FLOAT TopLeftX;
1595 FLOAT TopLeftY;
1596 FLOAT Width;
1597 FLOAT Height;
1598 FLOAT MinDepth;
1599 FLOAT MaxDepth;
1600 } D3D12_VIEWPORT;
1601
1602typedef RECT D3D12_RECT;
1603
1604typedef struct D3D12_BOX
1605 {
1606 UINT left;
1607 UINT top;
1608 UINT front;
1609 UINT right;
1610 UINT bottom;
1611 UINT back;
1612 } D3D12_BOX;
1613
1614#ifdef __midl
1615#ifndef LUID_DEFINED
1616#define LUID_DEFINED 1
1617typedef struct __LUID
1618 {
1619 DWORD LowPart;
1620 LONG HighPart;
1621 } LUID;
1622
1623typedef struct __LUID *PLUID;
1624
1625#endif
1626#endif
1627typedef
1628enum D3D12_COMPARISON_FUNC
1629 {
1630 D3D12_COMPARISON_FUNC_NONE = 0,
1631 D3D12_COMPARISON_FUNC_NEVER = 1,
1632 D3D12_COMPARISON_FUNC_LESS = 2,
1633 D3D12_COMPARISON_FUNC_EQUAL = 3,
1634 D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
1635 D3D12_COMPARISON_FUNC_GREATER = 5,
1636 D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
1637 D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
1638 D3D12_COMPARISON_FUNC_ALWAYS = 8
1639 } D3D12_COMPARISON_FUNC;
1640
1641typedef
1642enum D3D12_DEPTH_WRITE_MASK
1643 {
1644 D3D12_DEPTH_WRITE_MASK_ZERO = 0,
1645 D3D12_DEPTH_WRITE_MASK_ALL = 1
1646 } D3D12_DEPTH_WRITE_MASK;
1647
1648typedef
1649enum D3D12_STENCIL_OP
1650 {
1651 D3D12_STENCIL_OP_KEEP = 1,
1652 D3D12_STENCIL_OP_ZERO = 2,
1653 D3D12_STENCIL_OP_REPLACE = 3,
1654 D3D12_STENCIL_OP_INCR_SAT = 4,
1655 D3D12_STENCIL_OP_DECR_SAT = 5,
1656 D3D12_STENCIL_OP_INVERT = 6,
1657 D3D12_STENCIL_OP_INCR = 7,
1658 D3D12_STENCIL_OP_DECR = 8
1659 } D3D12_STENCIL_OP;
1660
1661typedef struct D3D12_DEPTH_STENCILOP_DESC
1662 {
1663 D3D12_STENCIL_OP StencilFailOp;
1664 D3D12_STENCIL_OP StencilDepthFailOp;
1665 D3D12_STENCIL_OP StencilPassOp;
1666 D3D12_COMPARISON_FUNC StencilFunc;
1667 } D3D12_DEPTH_STENCILOP_DESC;
1668
1669typedef struct D3D12_DEPTH_STENCIL_DESC
1670 {
1671 BOOL DepthEnable;
1672 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1673 D3D12_COMPARISON_FUNC DepthFunc;
1674 BOOL StencilEnable;
1675 UINT8 StencilReadMask;
1676 UINT8 StencilWriteMask;
1677 D3D12_DEPTH_STENCILOP_DESC FrontFace;
1678 D3D12_DEPTH_STENCILOP_DESC BackFace;
1679 } D3D12_DEPTH_STENCIL_DESC;
1680
1681typedef struct D3D12_DEPTH_STENCIL_DESC1
1682 {
1683 BOOL DepthEnable;
1684 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1685 D3D12_COMPARISON_FUNC DepthFunc;
1686 BOOL StencilEnable;
1687 UINT8 StencilReadMask;
1688 UINT8 StencilWriteMask;
1689 D3D12_DEPTH_STENCILOP_DESC FrontFace;
1690 D3D12_DEPTH_STENCILOP_DESC BackFace;
1691 BOOL DepthBoundsTestEnable;
1692 } D3D12_DEPTH_STENCIL_DESC1;
1693
1694typedef struct D3D12_DEPTH_STENCILOP_DESC1
1695 {
1696 D3D12_STENCIL_OP StencilFailOp;
1697 D3D12_STENCIL_OP StencilDepthFailOp;
1698 D3D12_STENCIL_OP StencilPassOp;
1699 D3D12_COMPARISON_FUNC StencilFunc;
1700 UINT8 StencilReadMask;
1701 UINT8 StencilWriteMask;
1702 } D3D12_DEPTH_STENCILOP_DESC1;
1703
1704typedef struct D3D12_DEPTH_STENCIL_DESC2
1705 {
1706 BOOL DepthEnable;
1707 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1708 D3D12_COMPARISON_FUNC DepthFunc;
1709 BOOL StencilEnable;
1710 D3D12_DEPTH_STENCILOP_DESC1 FrontFace;
1711 D3D12_DEPTH_STENCILOP_DESC1 BackFace;
1712 BOOL DepthBoundsTestEnable;
1713 } D3D12_DEPTH_STENCIL_DESC2;
1714
1715typedef
1716enum D3D12_BLEND
1717 {
1718 D3D12_BLEND_ZERO = 1,
1719 D3D12_BLEND_ONE = 2,
1720 D3D12_BLEND_SRC_COLOR = 3,
1721 D3D12_BLEND_INV_SRC_COLOR = 4,
1722 D3D12_BLEND_SRC_ALPHA = 5,
1723 D3D12_BLEND_INV_SRC_ALPHA = 6,
1724 D3D12_BLEND_DEST_ALPHA = 7,
1725 D3D12_BLEND_INV_DEST_ALPHA = 8,
1726 D3D12_BLEND_DEST_COLOR = 9,
1727 D3D12_BLEND_INV_DEST_COLOR = 10,
1728 D3D12_BLEND_SRC_ALPHA_SAT = 11,
1729 D3D12_BLEND_BLEND_FACTOR = 14,
1730 D3D12_BLEND_INV_BLEND_FACTOR = 15,
1731 D3D12_BLEND_SRC1_COLOR = 16,
1732 D3D12_BLEND_INV_SRC1_COLOR = 17,
1733 D3D12_BLEND_SRC1_ALPHA = 18,
1734 D3D12_BLEND_INV_SRC1_ALPHA = 19,
1735 D3D12_BLEND_ALPHA_FACTOR = 20,
1736 D3D12_BLEND_INV_ALPHA_FACTOR = 21
1737 } D3D12_BLEND;
1738
1739typedef
1740enum D3D12_BLEND_OP
1741 {
1742 D3D12_BLEND_OP_ADD = 1,
1743 D3D12_BLEND_OP_SUBTRACT = 2,
1744 D3D12_BLEND_OP_REV_SUBTRACT = 3,
1745 D3D12_BLEND_OP_MIN = 4,
1746 D3D12_BLEND_OP_MAX = 5
1747 } D3D12_BLEND_OP;
1748
1749typedef
1750enum D3D12_COLOR_WRITE_ENABLE
1751 {
1752 D3D12_COLOR_WRITE_ENABLE_RED = 1,
1753 D3D12_COLOR_WRITE_ENABLE_GREEN = 2,
1754 D3D12_COLOR_WRITE_ENABLE_BLUE = 4,
1755 D3D12_COLOR_WRITE_ENABLE_ALPHA = 8,
1756 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 )
1757 } D3D12_COLOR_WRITE_ENABLE;
1758
1759typedef
1760enum D3D12_LOGIC_OP
1761 {
1762 D3D12_LOGIC_OP_CLEAR = 0,
1763 D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) ,
1764 D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) ,
1765 D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) ,
1766 D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) ,
1767 D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) ,
1768 D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) ,
1769 D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) ,
1770 D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) ,
1771 D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) ,
1772 D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) ,
1773 D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) ,
1774 D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) ,
1775 D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) ,
1776 D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) ,
1777 D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 )
1778 } D3D12_LOGIC_OP;
1779
1780typedef struct D3D12_RENDER_TARGET_BLEND_DESC
1781 {
1782 BOOL BlendEnable;
1783 BOOL LogicOpEnable;
1784 D3D12_BLEND SrcBlend;
1785 D3D12_BLEND DestBlend;
1786 D3D12_BLEND_OP BlendOp;
1787 D3D12_BLEND SrcBlendAlpha;
1788 D3D12_BLEND DestBlendAlpha;
1789 D3D12_BLEND_OP BlendOpAlpha;
1790 D3D12_LOGIC_OP LogicOp;
1791 UINT8 RenderTargetWriteMask;
1792 } D3D12_RENDER_TARGET_BLEND_DESC;
1793
1794typedef struct D3D12_BLEND_DESC
1795 {
1796 BOOL AlphaToCoverageEnable;
1797 BOOL IndependentBlendEnable;
1798 D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ];
1799 } D3D12_BLEND_DESC;
1800
1801/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT.
1802 IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */
1803typedef
1804enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
1805 {
1806 D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
1807 D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
1808 } D3D12_CONSERVATIVE_RASTERIZATION_MODE;
1809
1810typedef struct D3D12_RASTERIZER_DESC
1811 {
1812 D3D12_FILL_MODE FillMode;
1813 D3D12_CULL_MODE CullMode;
1814 BOOL FrontCounterClockwise;
1815 INT DepthBias;
1816 FLOAT DepthBiasClamp;
1817 FLOAT SlopeScaledDepthBias;
1818 BOOL DepthClipEnable;
1819 BOOL MultisampleEnable;
1820 BOOL AntialiasedLineEnable;
1821 UINT ForcedSampleCount;
1822 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1823 } D3D12_RASTERIZER_DESC;
1824
1825typedef struct D3D12_RASTERIZER_DESC1
1826 {
1827 D3D12_FILL_MODE FillMode;
1828 D3D12_CULL_MODE CullMode;
1829 BOOL FrontCounterClockwise;
1830 FLOAT DepthBias;
1831 FLOAT DepthBiasClamp;
1832 FLOAT SlopeScaledDepthBias;
1833 BOOL DepthClipEnable;
1834 BOOL MultisampleEnable;
1835 BOOL AntialiasedLineEnable;
1836 UINT ForcedSampleCount;
1837 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1838 } D3D12_RASTERIZER_DESC1;
1839
1840typedef
1841enum D3D12_LINE_RASTERIZATION_MODE
1842 {
1843 D3D12_LINE_RASTERIZATION_MODE_ALIASED = 0,
1844 D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED = ( D3D12_LINE_RASTERIZATION_MODE_ALIASED + 1 ) ,
1845 D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE = ( D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED + 1 ) ,
1846 D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW = ( D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE + 1 )
1847 } D3D12_LINE_RASTERIZATION_MODE;
1848
1849typedef struct D3D12_RASTERIZER_DESC2
1850 {
1851 D3D12_FILL_MODE FillMode;
1852 D3D12_CULL_MODE CullMode;
1853 BOOL FrontCounterClockwise;
1854 FLOAT DepthBias;
1855 FLOAT DepthBiasClamp;
1856 FLOAT SlopeScaledDepthBias;
1857 BOOL DepthClipEnable;
1858 D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode;
1859 UINT ForcedSampleCount;
1860 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1861 } D3D12_RASTERIZER_DESC2;
1862
1863
1864
1865extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec;
1866extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec;
1867
1868#ifndef __ID3D12Object_INTERFACE_DEFINED__
1869#define __ID3D12Object_INTERFACE_DEFINED__
1870
1871/* interface ID3D12Object */
1872/* [unique][local][object][uuid] */
1873
1874
1875EXTERN_C const IID IID_ID3D12Object;
1876
1877#if defined(__cplusplus) && !defined(CINTERFACE)
1878
1879 MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
1880 ID3D12Object : public IUnknown
1881 {
1882 public:
1883 virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
1884 _In_ REFGUID guid,
1885 _Inout_ UINT *pDataSize,
1886 _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0;
1887
1888 virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
1889 _In_ REFGUID guid,
1890 _In_ UINT DataSize,
1891 _In_reads_bytes_opt_( DataSize ) const void *pData) = 0;
1892
1893 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
1894 _In_ REFGUID guid,
1895 _In_opt_ const IUnknown *pData) = 0;
1896
1897 virtual HRESULT STDMETHODCALLTYPE SetName(
1898 _In_z_ LPCWSTR Name) = 0;
1899
1900 };
1901
1902
1903#else /* C style interface */
1904
1905 typedef struct ID3D12ObjectVtbl
1906 {
1907 BEGIN_INTERFACE
1908
1909 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1910 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1911 ID3D12Object * This,
1912 REFIID riid,
1913 _COM_Outptr_ void **ppvObject);
1914
1915 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1916 ULONG ( STDMETHODCALLTYPE *AddRef )(
1917 ID3D12Object * This);
1918
1919 DECLSPEC_XFGVIRT(IUnknown, Release)
1920 ULONG ( STDMETHODCALLTYPE *Release )(
1921 ID3D12Object * This);
1922
1923 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1924 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1925 ID3D12Object * This,
1926 _In_ REFGUID guid,
1927 _Inout_ UINT *pDataSize,
1928 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1929
1930 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1931 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1932 ID3D12Object * This,
1933 _In_ REFGUID guid,
1934 _In_ UINT DataSize,
1935 _In_reads_bytes_opt_( DataSize ) const void *pData);
1936
1937 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1938 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1939 ID3D12Object * This,
1940 _In_ REFGUID guid,
1941 _In_opt_ const IUnknown *pData);
1942
1943 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1944 HRESULT ( STDMETHODCALLTYPE *SetName )(
1945 ID3D12Object * This,
1946 _In_z_ LPCWSTR Name);
1947
1948 END_INTERFACE
1949 } ID3D12ObjectVtbl;
1950
1951 interface ID3D12Object
1952 {
1953 CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl;
1954 };
1955
1956
1957
1958#ifdef COBJMACROS
1959
1960
1961#define ID3D12Object_QueryInterface(This,riid,ppvObject) \
1962 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1963
1964#define ID3D12Object_AddRef(This) \
1965 ( (This)->lpVtbl -> AddRef(This) )
1966
1967#define ID3D12Object_Release(This) \
1968 ( (This)->lpVtbl -> Release(This) )
1969
1970
1971#define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \
1972 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1973
1974#define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \
1975 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1976
1977#define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \
1978 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1979
1980#define ID3D12Object_SetName(This,Name) \
1981 ( (This)->lpVtbl -> SetName(This,Name) )
1982
1983#endif /* COBJMACROS */
1984
1985
1986#endif /* C style interface */
1987
1988
1989
1990
1991#endif /* __ID3D12Object_INTERFACE_DEFINED__ */
1992
1993
1994#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
1995#define __ID3D12DeviceChild_INTERFACE_DEFINED__
1996
1997/* interface ID3D12DeviceChild */
1998/* [unique][local][object][uuid] */
1999
2000
2001EXTERN_C const IID IID_ID3D12DeviceChild;
2002
2003#if defined(__cplusplus) && !defined(CINTERFACE)
2004
2005 MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
2006 ID3D12DeviceChild : public ID3D12Object
2007 {
2008 public:
2009 virtual HRESULT STDMETHODCALLTYPE GetDevice(
2010 REFIID riid,
2011 _COM_Outptr_opt_ void **ppvDevice) = 0;
2012
2013 };
2014
2015
2016#else /* C style interface */
2017
2018 typedef struct ID3D12DeviceChildVtbl
2019 {
2020 BEGIN_INTERFACE
2021
2022 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2023 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2024 ID3D12DeviceChild * This,
2025 REFIID riid,
2026 _COM_Outptr_ void **ppvObject);
2027
2028 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2029 ULONG ( STDMETHODCALLTYPE *AddRef )(
2030 ID3D12DeviceChild * This);
2031
2032 DECLSPEC_XFGVIRT(IUnknown, Release)
2033 ULONG ( STDMETHODCALLTYPE *Release )(
2034 ID3D12DeviceChild * This);
2035
2036 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2037 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2038 ID3D12DeviceChild * This,
2039 _In_ REFGUID guid,
2040 _Inout_ UINT *pDataSize,
2041 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2042
2043 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2044 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2045 ID3D12DeviceChild * This,
2046 _In_ REFGUID guid,
2047 _In_ UINT DataSize,
2048 _In_reads_bytes_opt_( DataSize ) const void *pData);
2049
2050 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2051 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2052 ID3D12DeviceChild * This,
2053 _In_ REFGUID guid,
2054 _In_opt_ const IUnknown *pData);
2055
2056 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2057 HRESULT ( STDMETHODCALLTYPE *SetName )(
2058 ID3D12DeviceChild * This,
2059 _In_z_ LPCWSTR Name);
2060
2061 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2062 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2063 ID3D12DeviceChild * This,
2064 REFIID riid,
2065 _COM_Outptr_opt_ void **ppvDevice);
2066
2067 END_INTERFACE
2068 } ID3D12DeviceChildVtbl;
2069
2070 interface ID3D12DeviceChild
2071 {
2072 CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl;
2073 };
2074
2075
2076
2077#ifdef COBJMACROS
2078
2079
2080#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \
2081 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2082
2083#define ID3D12DeviceChild_AddRef(This) \
2084 ( (This)->lpVtbl -> AddRef(This) )
2085
2086#define ID3D12DeviceChild_Release(This) \
2087 ( (This)->lpVtbl -> Release(This) )
2088
2089
2090#define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \
2091 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2092
2093#define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \
2094 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2095
2096#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \
2097 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2098
2099#define ID3D12DeviceChild_SetName(This,Name) \
2100 ( (This)->lpVtbl -> SetName(This,Name) )
2101
2102
2103#define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \
2104 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2105
2106#endif /* COBJMACROS */
2107
2108
2109#endif /* C style interface */
2110
2111
2112
2113
2114#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
2115
2116
2117#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
2118#define __ID3D12RootSignature_INTERFACE_DEFINED__
2119
2120/* interface ID3D12RootSignature */
2121/* [unique][local][object][uuid] */
2122
2123
2124EXTERN_C const IID IID_ID3D12RootSignature;
2125
2126#if defined(__cplusplus) && !defined(CINTERFACE)
2127
2128 MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
2129 ID3D12RootSignature : public ID3D12DeviceChild
2130 {
2131 public:
2132 };
2133
2134
2135#else /* C style interface */
2136
2137 typedef struct ID3D12RootSignatureVtbl
2138 {
2139 BEGIN_INTERFACE
2140
2141 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2142 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2143 ID3D12RootSignature * This,
2144 REFIID riid,
2145 _COM_Outptr_ void **ppvObject);
2146
2147 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2148 ULONG ( STDMETHODCALLTYPE *AddRef )(
2149 ID3D12RootSignature * This);
2150
2151 DECLSPEC_XFGVIRT(IUnknown, Release)
2152 ULONG ( STDMETHODCALLTYPE *Release )(
2153 ID3D12RootSignature * This);
2154
2155 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2156 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2157 ID3D12RootSignature * This,
2158 _In_ REFGUID guid,
2159 _Inout_ UINT *pDataSize,
2160 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2161
2162 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2163 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2164 ID3D12RootSignature * This,
2165 _In_ REFGUID guid,
2166 _In_ UINT DataSize,
2167 _In_reads_bytes_opt_( DataSize ) const void *pData);
2168
2169 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2170 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2171 ID3D12RootSignature * This,
2172 _In_ REFGUID guid,
2173 _In_opt_ const IUnknown *pData);
2174
2175 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2176 HRESULT ( STDMETHODCALLTYPE *SetName )(
2177 ID3D12RootSignature * This,
2178 _In_z_ LPCWSTR Name);
2179
2180 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2181 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2182 ID3D12RootSignature * This,
2183 REFIID riid,
2184 _COM_Outptr_opt_ void **ppvDevice);
2185
2186 END_INTERFACE
2187 } ID3D12RootSignatureVtbl;
2188
2189 interface ID3D12RootSignature
2190 {
2191 CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl;
2192 };
2193
2194
2195
2196#ifdef COBJMACROS
2197
2198
2199#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \
2200 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2201
2202#define ID3D12RootSignature_AddRef(This) \
2203 ( (This)->lpVtbl -> AddRef(This) )
2204
2205#define ID3D12RootSignature_Release(This) \
2206 ( (This)->lpVtbl -> Release(This) )
2207
2208
2209#define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \
2210 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2211
2212#define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \
2213 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2214
2215#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \
2216 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2217
2218#define ID3D12RootSignature_SetName(This,Name) \
2219 ( (This)->lpVtbl -> SetName(This,Name) )
2220
2221
2222#define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \
2223 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2224
2225
2226#endif /* COBJMACROS */
2227
2228
2229#endif /* C style interface */
2230
2231
2232
2233
2234#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
2235
2236
2237/* interface __MIDL_itf_d3d12_0000_0001 */
2238/* [local] */
2239
2240typedef struct D3D12_SHADER_BYTECODE
2241 {
2242 _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode;
2243 SIZE_T BytecodeLength;
2244 } D3D12_SHADER_BYTECODE;
2245
2246typedef struct D3D12_STREAM_OUTPUT_DESC
2247 {
2248 _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
2249 UINT NumEntries;
2250 _Field_size_full_(NumStrides) const UINT *pBufferStrides;
2251 UINT NumStrides;
2252 UINT RasterizedStream;
2253 } D3D12_STREAM_OUTPUT_DESC;
2254
2255typedef struct D3D12_INPUT_LAYOUT_DESC
2256 {
2257 _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
2258 UINT NumElements;
2259 } D3D12_INPUT_LAYOUT_DESC;
2260
2261typedef
2262enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
2263 {
2264 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
2265 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
2266 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
2267 } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
2268
2269typedef
2270enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS
2271 {
2272 D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
2273 D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
2274 } D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
2275
2276typedef struct D3D12_CACHED_PIPELINE_STATE
2277 {
2278 _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob;
2279 SIZE_T CachedBlobSizeInBytes;
2280 } D3D12_CACHED_PIPELINE_STATE;
2281
2282typedef
2283enum D3D12_PIPELINE_STATE_FLAGS
2284 {
2285 D3D12_PIPELINE_STATE_FLAG_NONE = 0,
2286 D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1,
2287 D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4,
2288 D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8
2289 } D3D12_PIPELINE_STATE_FLAGS;
2290
2291DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS )
2292typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
2293 {
2294 ID3D12RootSignature *pRootSignature;
2295 D3D12_SHADER_BYTECODE VS;
2296 D3D12_SHADER_BYTECODE PS;
2297 D3D12_SHADER_BYTECODE DS;
2298 D3D12_SHADER_BYTECODE HS;
2299 D3D12_SHADER_BYTECODE GS;
2300 D3D12_STREAM_OUTPUT_DESC StreamOutput;
2301 D3D12_BLEND_DESC BlendState;
2302 UINT SampleMask;
2303 D3D12_RASTERIZER_DESC RasterizerState;
2304 D3D12_DEPTH_STENCIL_DESC DepthStencilState;
2305 D3D12_INPUT_LAYOUT_DESC InputLayout;
2306 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
2307 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
2308 UINT NumRenderTargets;
2309 DXGI_FORMAT RTVFormats[ 8 ];
2310 DXGI_FORMAT DSVFormat;
2311 DXGI_SAMPLE_DESC SampleDesc;
2312 UINT NodeMask;
2313 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2314 D3D12_PIPELINE_STATE_FLAGS Flags;
2315 } D3D12_GRAPHICS_PIPELINE_STATE_DESC;
2316
2317typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
2318 {
2319 ID3D12RootSignature *pRootSignature;
2320 D3D12_SHADER_BYTECODE CS;
2321 UINT NodeMask;
2322 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2323 D3D12_PIPELINE_STATE_FLAGS Flags;
2324 } D3D12_COMPUTE_PIPELINE_STATE_DESC;
2325
2326typedef
2327enum D3D_ROOT_SIGNATURE_VERSION
2328 {
2329 D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
2330 D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
2331 D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2,
2332 D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3
2333 } D3D_ROOT_SIGNATURE_VERSION;
2334
2335typedef struct D3D12_SERIALIZED_ROOT_SIGNATURE_DESC
2336 {
2337 _Field_size_bytes_full_(SerializedBlobSizeInBytes) const void *pSerializedBlob;
2338 SIZE_T SerializedBlobSizeInBytes;
2339 } D3D12_SERIALIZED_ROOT_SIGNATURE_DESC;
2340
2341typedef struct D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE
2342 {
2343 D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc;
2344 } D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE;
2345
2346typedef struct D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE
2347 {
2348 D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc;
2349 } D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE;
2350
2351struct D3D12_RT_FORMAT_ARRAY
2352 {
2353 DXGI_FORMAT RTFormats[ 8 ];
2354 UINT NumRenderTargets;
2355 } ;
2356typedef struct D3D12_PIPELINE_STATE_STREAM_DESC
2357 {
2358 _In_ SIZE_T SizeInBytes;
2359 _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream;
2360 } D3D12_PIPELINE_STATE_STREAM_DESC;
2361
2362typedef
2363enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE
2364 {
2365 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0,
2366 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) ,
2367 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) ,
2368 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) ,
2369 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) ,
2370 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) ,
2371 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) ,
2372 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) ,
2373 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) ,
2374 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) ,
2375 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) ,
2376 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) ,
2377 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) ,
2378 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) ,
2379 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) ,
2380 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) ,
2381 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) ,
2382 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) ,
2383 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) ,
2384 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) ,
2385 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) ,
2386 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) ,
2387 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) ,
2388 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24,
2389 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25,
2390 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26,
2391 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27,
2392 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28,
2393 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE = 29,
2394 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE + 1 )
2395 } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
2396
2397typedef
2398enum D3D12_FEATURE
2399 {
2400 D3D12_FEATURE_D3D12_OPTIONS = 0,
2401 D3D12_FEATURE_ARCHITECTURE = 1,
2402 D3D12_FEATURE_FEATURE_LEVELS = 2,
2403 D3D12_FEATURE_FORMAT_SUPPORT = 3,
2404 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
2405 D3D12_FEATURE_FORMAT_INFO = 5,
2406 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
2407 D3D12_FEATURE_SHADER_MODEL = 7,
2408 D3D12_FEATURE_D3D12_OPTIONS1 = 8,
2409 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
2410 D3D12_FEATURE_ROOT_SIGNATURE = 12,
2411 D3D12_FEATURE_ARCHITECTURE1 = 16,
2412 D3D12_FEATURE_D3D12_OPTIONS2 = 18,
2413 D3D12_FEATURE_SHADER_CACHE = 19,
2414 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
2415 D3D12_FEATURE_D3D12_OPTIONS3 = 21,
2416 D3D12_FEATURE_EXISTING_HEAPS = 22,
2417 D3D12_FEATURE_D3D12_OPTIONS4 = 23,
2418 D3D12_FEATURE_SERIALIZATION = 24,
2419 D3D12_FEATURE_CROSS_NODE = 25,
2420 D3D12_FEATURE_D3D12_OPTIONS5 = 27,
2421 D3D12_FEATURE_DISPLAYABLE = 28,
2422 D3D12_FEATURE_D3D12_OPTIONS6 = 30,
2423 D3D12_FEATURE_QUERY_META_COMMAND = 31,
2424 D3D12_FEATURE_D3D12_OPTIONS7 = 32,
2425 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
2426 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
2427 D3D12_FEATURE_D3D12_OPTIONS8 = 36,
2428 D3D12_FEATURE_D3D12_OPTIONS9 = 37,
2429 D3D12_FEATURE_D3D12_OPTIONS10 = 39,
2430 D3D12_FEATURE_D3D12_OPTIONS11 = 40,
2431 D3D12_FEATURE_D3D12_OPTIONS12 = 41,
2432 D3D12_FEATURE_D3D12_OPTIONS13 = 42,
2433 D3D12_FEATURE_D3D12_OPTIONS14 = 43,
2434 D3D12_FEATURE_D3D12_OPTIONS15 = 44,
2435 D3D12_FEATURE_D3D12_OPTIONS16 = 45,
2436 D3D12_FEATURE_D3D12_OPTIONS17 = 46,
2437 D3D12_FEATURE_D3D12_OPTIONS18 = 47,
2438 D3D12_FEATURE_D3D12_OPTIONS19 = 48,
2439 D3D12_FEATURE_D3D12_OPTIONS20 = 49,
2440 D3D12_FEATURE_PREDICATION = 50,
2441 D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51,
2442 D3D12_FEATURE_HARDWARE_COPY = 52,
2443 D3D12_FEATURE_D3D12_OPTIONS21 = 53,
2444 D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54,
2445 D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56,
2446 D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57,
2447 D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT = 61
2448 } D3D12_FEATURE;
2449
2450typedef
2451enum D3D12_SHADER_MIN_PRECISION_SUPPORT
2452 {
2453 D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0,
2454 D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
2455 D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
2456 } D3D12_SHADER_MIN_PRECISION_SUPPORT;
2457
2458DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT )
2459typedef
2460enum D3D12_TILED_RESOURCES_TIER
2461 {
2462 D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
2463 D3D12_TILED_RESOURCES_TIER_1 = 1,
2464 D3D12_TILED_RESOURCES_TIER_2 = 2,
2465 D3D12_TILED_RESOURCES_TIER_3 = 3,
2466 D3D12_TILED_RESOURCES_TIER_4 = 4
2467 } D3D12_TILED_RESOURCES_TIER;
2468
2469typedef
2470enum D3D12_RESOURCE_BINDING_TIER
2471 {
2472 D3D12_RESOURCE_BINDING_TIER_1 = 1,
2473 D3D12_RESOURCE_BINDING_TIER_2 = 2,
2474 D3D12_RESOURCE_BINDING_TIER_3 = 3
2475 } D3D12_RESOURCE_BINDING_TIER;
2476
2477typedef
2478enum D3D12_CONSERVATIVE_RASTERIZATION_TIER
2479 {
2480 D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
2481 D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
2482 D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
2483 D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
2484 } D3D12_CONSERVATIVE_RASTERIZATION_TIER;
2485
2486typedef
2487enum D3D12_FORMAT_SUPPORT1
2488 {
2489 D3D12_FORMAT_SUPPORT1_NONE = 0,
2490 D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
2491 D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
2492 D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
2493 D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
2494 D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
2495 D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
2496 D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
2497 D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
2498 D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
2499 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
2500 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
2501 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
2502 D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
2503 D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
2504 D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
2505 D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
2506 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
2507 D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
2508 D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
2509 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
2510 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
2511 D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
2512 D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
2513 D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
2514 D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
2515 D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
2516 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
2517 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
2518 D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
2519 } D3D12_FORMAT_SUPPORT1;
2520
2521DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 )
2522typedef
2523enum D3D12_FORMAT_SUPPORT2
2524 {
2525 D3D12_FORMAT_SUPPORT2_NONE = 0,
2526 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
2527 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
2528 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
2529 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
2530 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
2531 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
2532 D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
2533 D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
2534 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
2535 D3D12_FORMAT_SUPPORT2_TILED = 0x200,
2536 D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
2537 D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000,
2538 D3D12_FORMAT_SUPPORT2_DISPLAYABLE = 0x10000
2539 } D3D12_FORMAT_SUPPORT2;
2540
2541DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 )
2542typedef
2543enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
2544 {
2545 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0,
2546 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
2547 } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
2548
2549DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS )
2550typedef
2551enum D3D12_CROSS_NODE_SHARING_TIER
2552 {
2553 D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
2554 D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
2555 D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
2556 D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
2557 D3D12_CROSS_NODE_SHARING_TIER_3 = 4
2558 } D3D12_CROSS_NODE_SHARING_TIER;
2559
2560typedef
2561enum D3D12_RESOURCE_HEAP_TIER
2562 {
2563 D3D12_RESOURCE_HEAP_TIER_1 = 1,
2564 D3D12_RESOURCE_HEAP_TIER_2 = 2
2565 } D3D12_RESOURCE_HEAP_TIER;
2566
2567typedef
2568enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
2569 {
2570 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0,
2571 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1,
2572 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2
2573 } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
2574
2575typedef
2576enum D3D12_VIEW_INSTANCING_TIER
2577 {
2578 D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
2579 D3D12_VIEW_INSTANCING_TIER_1 = 1,
2580 D3D12_VIEW_INSTANCING_TIER_2 = 2,
2581 D3D12_VIEW_INSTANCING_TIER_3 = 3
2582 } D3D12_VIEW_INSTANCING_TIER;
2583
2584typedef
2585enum D3D12_WORK_GRAPHS_TIER
2586 {
2587 D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0,
2588 D3D12_WORK_GRAPHS_TIER_1_0 = 10
2589 } D3D12_WORK_GRAPHS_TIER;
2590
2591typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
2592 {
2593 _Out_ BOOL DoublePrecisionFloatShaderOps;
2594 _Out_ BOOL OutputMergerLogicOp;
2595 _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
2596 _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
2597 _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
2598 _Out_ BOOL PSSpecifiedStencilRefSupported;
2599 _Out_ BOOL TypedUAVLoadAdditionalFormats;
2600 _Out_ BOOL ROVsSupported;
2601 _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
2602 _Out_ UINT MaxGPUVirtualAddressBitsPerResource;
2603 _Out_ BOOL StandardSwizzle64KBSupported;
2604 _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
2605 _Out_ BOOL CrossAdapterRowMajorTextureSupported;
2606 _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
2607 _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
2608 } D3D12_FEATURE_DATA_D3D12_OPTIONS;
2609
2610typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
2611 {
2612 _Out_ BOOL WaveOps;
2613 _Out_ UINT WaveLaneCountMin;
2614 _Out_ UINT WaveLaneCountMax;
2615 _Out_ UINT TotalLaneCount;
2616 _Out_ BOOL ExpandedComputeResourceStates;
2617 _Out_ BOOL Int64ShaderOps;
2618 } D3D12_FEATURE_DATA_D3D12_OPTIONS1;
2619
2620typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
2621 {
2622 _Out_ BOOL DepthBoundsTestSupported;
2623 _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
2624 } D3D12_FEATURE_DATA_D3D12_OPTIONS2;
2625
2626typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
2627 {
2628 _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion;
2629 } D3D12_FEATURE_DATA_ROOT_SIGNATURE;
2630
2631typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
2632 {
2633 _In_ UINT NodeIndex;
2634 _Out_ BOOL TileBasedRenderer;
2635 _Out_ BOOL UMA;
2636 _Out_ BOOL CacheCoherentUMA;
2637 } D3D12_FEATURE_DATA_ARCHITECTURE;
2638
2639typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
2640 {
2641 _In_ UINT NodeIndex;
2642 _Out_ BOOL TileBasedRenderer;
2643 _Out_ BOOL UMA;
2644 _Out_ BOOL CacheCoherentUMA;
2645 _Out_ BOOL IsolatedMMU;
2646 } D3D12_FEATURE_DATA_ARCHITECTURE1;
2647
2648typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
2649 {
2650 _In_ UINT NumFeatureLevels;
2651 _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
2652 _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
2653 } D3D12_FEATURE_DATA_FEATURE_LEVELS;
2654
2655typedef
2656enum D3D_SHADER_MODEL
2657 {
2658 D3D_SHADER_MODEL_NONE = 0,
2659 D3D_SHADER_MODEL_5_1 = 0x51,
2660 D3D_SHADER_MODEL_6_0 = 0x60,
2661 D3D_SHADER_MODEL_6_1 = 0x61,
2662 D3D_SHADER_MODEL_6_2 = 0x62,
2663 D3D_SHADER_MODEL_6_3 = 0x63,
2664 D3D_SHADER_MODEL_6_4 = 0x64,
2665 D3D_SHADER_MODEL_6_5 = 0x65,
2666 D3D_SHADER_MODEL_6_6 = 0x66,
2667 D3D_SHADER_MODEL_6_7 = 0x67,
2668 D3D_SHADER_MODEL_6_8 = 0x68,
2669 D3D_SHADER_MODEL_6_9 = 0x69,
2670 D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9
2671 } D3D_SHADER_MODEL;
2672
2673typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
2674 {
2675 _Inout_ D3D_SHADER_MODEL HighestShaderModel;
2676 } D3D12_FEATURE_DATA_SHADER_MODEL;
2677
2678typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
2679 {
2680 _In_ DXGI_FORMAT Format;
2681 _Out_ D3D12_FORMAT_SUPPORT1 Support1;
2682 _Out_ D3D12_FORMAT_SUPPORT2 Support2;
2683 } D3D12_FEATURE_DATA_FORMAT_SUPPORT;
2684
2685typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
2686 {
2687 _In_ DXGI_FORMAT Format;
2688 _In_ UINT SampleCount;
2689 _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
2690 _Out_ UINT NumQualityLevels;
2691 } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
2692
2693typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
2694 {
2695 DXGI_FORMAT Format;
2696 UINT8 PlaneCount;
2697 } D3D12_FEATURE_DATA_FORMAT_INFO;
2698
2699typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
2700 {
2701 UINT MaxGPUVirtualAddressBitsPerResource;
2702 UINT MaxGPUVirtualAddressBitsPerProcess;
2703 } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
2704
2705typedef
2706enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
2707 {
2708 D3D12_SHADER_CACHE_SUPPORT_NONE = 0,
2709 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
2710 D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
2711 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
2712 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
2713 D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
2714 D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20,
2715 D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40
2716 } D3D12_SHADER_CACHE_SUPPORT_FLAGS;
2717
2718DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS )
2719typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
2720 {
2721 _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
2722 } D3D12_FEATURE_DATA_SHADER_CACHE;
2723
2724typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
2725 {
2726 _In_ D3D12_COMMAND_LIST_TYPE CommandListType;
2727 _In_ UINT Priority;
2728 _Out_ BOOL PriorityForTypeIsSupported;
2729 } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
2730
2731typedef
2732enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
2733 {
2734 D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0,
2735 D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) ,
2736 D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) ,
2737 D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) ,
2738 D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) ,
2739 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) ,
2740 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) ,
2741 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE )
2742 } D3D12_COMMAND_LIST_SUPPORT_FLAGS;
2743
2744DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS )
2745typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
2746 {
2747 _Out_ BOOL CopyQueueTimestampQueriesSupported;
2748 _Out_ BOOL CastingFullyTypedFormatSupported;
2749 _Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
2750 _Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
2751 _Out_ BOOL BarycentricsSupported;
2752 } D3D12_FEATURE_DATA_D3D12_OPTIONS3;
2753
2754typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
2755 {
2756 _Out_ BOOL Supported;
2757 } D3D12_FEATURE_DATA_EXISTING_HEAPS;
2758
2759typedef
2760enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER
2761 {
2762 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0,
2763 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 ) ,
2764 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 + 1 )
2765 } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
2766
2767typedef struct D3D12_FEATURE_DATA_DISPLAYABLE
2768 {
2769 _Out_ BOOL DisplayableTexture;
2770 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2771 } D3D12_FEATURE_DATA_DISPLAYABLE;
2772
2773typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
2774 {
2775 _Out_ BOOL MSAA64KBAlignedTextureSupported;
2776 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2777 _Out_ BOOL Native16BitShaderOpsSupported;
2778 } D3D12_FEATURE_DATA_D3D12_OPTIONS4;
2779
2780typedef
2781enum D3D12_HEAP_SERIALIZATION_TIER
2782 {
2783 D3D12_HEAP_SERIALIZATION_TIER_0 = 0,
2784 D3D12_HEAP_SERIALIZATION_TIER_10 = 10
2785 } D3D12_HEAP_SERIALIZATION_TIER;
2786
2787typedef struct D3D12_FEATURE_DATA_SERIALIZATION
2788 {
2789 _In_ UINT NodeIndex;
2790 _Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
2791 } D3D12_FEATURE_DATA_SERIALIZATION;
2792
2793typedef struct D3D12_FEATURE_DATA_CROSS_NODE
2794 {
2795 D3D12_CROSS_NODE_SHARING_TIER SharingTier;
2796 BOOL AtomicShaderInstructions;
2797 } D3D12_FEATURE_DATA_CROSS_NODE;
2798
2799typedef
2800enum D3D12_RENDER_PASS_TIER
2801 {
2802 D3D12_RENDER_PASS_TIER_0 = 0,
2803 D3D12_RENDER_PASS_TIER_1 = 1,
2804 D3D12_RENDER_PASS_TIER_2 = 2
2805 } D3D12_RENDER_PASS_TIER;
2806
2807typedef
2808enum D3D12_RAYTRACING_TIER
2809 {
2810 D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0,
2811 D3D12_RAYTRACING_TIER_1_0 = 10,
2812 D3D12_RAYTRACING_TIER_1_1 = 11,
2813 D3D12_RAYTRACING_TIER_1_2 = 12
2814 } D3D12_RAYTRACING_TIER;
2815
2816typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
2817 {
2818 _Out_ BOOL SRVOnlyTiledResourceTier3;
2819 _Out_ D3D12_RENDER_PASS_TIER RenderPassesTier;
2820 _Out_ D3D12_RAYTRACING_TIER RaytracingTier;
2821 } D3D12_FEATURE_DATA_D3D12_OPTIONS5;
2822
2823typedef
2824enum D3D12_VARIABLE_SHADING_RATE_TIER
2825 {
2826 D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0,
2827 D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1,
2828 D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2
2829 } D3D12_VARIABLE_SHADING_RATE_TIER;
2830
2831typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
2832 {
2833 _Out_ BOOL AdditionalShadingRatesSupported;
2834 _Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
2835 _Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
2836 _Out_ UINT ShadingRateImageTileSize;
2837 _Out_ BOOL BackgroundProcessingSupported;
2838 } D3D12_FEATURE_DATA_D3D12_OPTIONS6;
2839
2840typedef
2841enum D3D12_MESH_SHADER_TIER
2842 {
2843 D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0,
2844 D3D12_MESH_SHADER_TIER_1 = 10
2845 } D3D12_MESH_SHADER_TIER;
2846
2847typedef
2848enum D3D12_SAMPLER_FEEDBACK_TIER
2849 {
2850 D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0,
2851 D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90,
2852 D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100
2853 } D3D12_SAMPLER_FEEDBACK_TIER;
2854
2855typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7
2856 {
2857 _Out_ D3D12_MESH_SHADER_TIER MeshShaderTier;
2858 _Out_ D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
2859 } D3D12_FEATURE_DATA_D3D12_OPTIONS7;
2860
2861typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
2862 {
2863 _In_ GUID CommandId;
2864 _In_ UINT NodeMask;
2865 _Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData;
2866 _In_ SIZE_T QueryInputDataSizeInBytes;
2867 _Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData;
2868 _In_ SIZE_T QueryOutputDataSizeInBytes;
2869 } D3D12_FEATURE_DATA_QUERY_META_COMMAND;
2870
2871typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8
2872 {
2873 _Out_ BOOL UnalignedBlockTexturesSupported;
2874 } D3D12_FEATURE_DATA_D3D12_OPTIONS8;
2875
2876typedef
2877enum D3D12_WAVE_MMA_TIER
2878 {
2879 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0,
2880 D3D12_WAVE_MMA_TIER_1_0 = 10
2881 } D3D12_WAVE_MMA_TIER;
2882
2883typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9
2884 {
2885 _Out_ BOOL MeshShaderPipelineStatsSupported;
2886 _Out_ BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
2887 _Out_ BOOL AtomicInt64OnTypedResourceSupported;
2888 _Out_ BOOL AtomicInt64OnGroupSharedSupported;
2889 _Out_ BOOL DerivativesInMeshAndAmplificationShadersSupported;
2890 _Out_ D3D12_WAVE_MMA_TIER WaveMMATier;
2891 } D3D12_FEATURE_DATA_D3D12_OPTIONS9;
2892
2893typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10
2894 {
2895 _Out_ BOOL VariableRateShadingSumCombinerSupported;
2896 _Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported;
2897 } D3D12_FEATURE_DATA_D3D12_OPTIONS10;
2898
2899typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11
2900 {
2901 _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported;
2902 } D3D12_FEATURE_DATA_D3D12_OPTIONS11;
2903
2904typedef
2905enum D3D12_TRI_STATE
2906 {
2907 D3D12_TRI_STATE_UNKNOWN = -1,
2908 D3D12_TRI_STATE_FALSE = 0,
2909 D3D12_TRI_STATE_TRUE = 1
2910 } D3D12_TRI_STATE;
2911
2912typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12
2913 {
2914 _Out_ D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives;
2915 _Out_ BOOL EnhancedBarriersSupported;
2916 _Out_ BOOL RelaxedFormatCastingSupported;
2917 } D3D12_FEATURE_DATA_D3D12_OPTIONS12;
2918
2919typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13
2920 {
2921 _Out_ BOOL UnrestrictedBufferTextureCopyPitchSupported;
2922 _Out_ BOOL UnrestrictedVertexElementAlignmentSupported;
2923 _Out_ BOOL InvertedViewportHeightFlipsYSupported;
2924 _Out_ BOOL InvertedViewportDepthFlipsZSupported;
2925 _Out_ BOOL TextureCopyBetweenDimensionsSupported;
2926 _Out_ BOOL AlphaBlendFactorSupported;
2927 } D3D12_FEATURE_DATA_D3D12_OPTIONS13;
2928
2929typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14
2930 {
2931 _Out_ BOOL AdvancedTextureOpsSupported;
2932 _Out_ BOOL WriteableMSAATexturesSupported;
2933 _Out_ BOOL IndependentFrontAndBackStencilRefMaskSupported;
2934 } D3D12_FEATURE_DATA_D3D12_OPTIONS14;
2935
2936typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15
2937 {
2938 _Out_ BOOL TriangleFanSupported;
2939 _Out_ BOOL DynamicIndexBufferStripCutSupported;
2940 } D3D12_FEATURE_DATA_D3D12_OPTIONS15;
2941
2942typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16
2943 {
2944 _Out_ BOOL DynamicDepthBiasSupported;
2945 _Out_ BOOL GPUUploadHeapSupported;
2946 } D3D12_FEATURE_DATA_D3D12_OPTIONS16;
2947
2948typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17
2949 {
2950 _Out_ BOOL NonNormalizedCoordinateSamplersSupported;
2951 _Out_ BOOL ManualWriteTrackingResourceSupported;
2952 } D3D12_FEATURE_DATA_D3D12_OPTIONS17;
2953
2954typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18
2955 {
2956 _Out_ BOOL RenderPassesValid;
2957 } D3D12_FEATURE_DATA_D3D12_OPTIONS18;
2958
2959typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19
2960 {
2961 BOOL MismatchingOutputDimensionsSupported;
2962 UINT SupportedSampleCountsWithNoOutputs;
2963 BOOL PointSamplingAddressesNeverRoundUp;
2964 BOOL RasterizerDesc2Supported;
2965 BOOL NarrowQuadrilateralLinesSupported;
2966 BOOL AnisoFilterWithPointMipSupported;
2967 UINT MaxSamplerDescriptorHeapSize;
2968 UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers;
2969 UINT MaxViewDescriptorHeapSize;
2970 _Out_ BOOL ComputeOnlyCustomHeapSupported;
2971 } D3D12_FEATURE_DATA_D3D12_OPTIONS19;
2972
2973typedef
2974enum D3D12_RECREATE_AT_TIER
2975 {
2976 D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0,
2977 D3D12_RECREATE_AT_TIER_1 = 1
2978 } D3D12_RECREATE_AT_TIER;
2979
2980typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20
2981 {
2982 _Out_ BOOL ComputeOnlyWriteWatchSupported;
2983 D3D12_RECREATE_AT_TIER RecreateAtTier;
2984 } D3D12_FEATURE_DATA_D3D12_OPTIONS20;
2985
2986typedef
2987enum D3D12_EXECUTE_INDIRECT_TIER
2988 {
2989 D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10,
2990 D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11
2991 } D3D12_EXECUTE_INDIRECT_TIER;
2992
2993typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21
2994 {
2995 _Out_ D3D12_WORK_GRAPHS_TIER WorkGraphsTier;
2996 _Out_ D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier;
2997 _Out_ BOOL SampleCmpGradientAndBiasSupported;
2998 _Out_ BOOL ExtendedCommandInfoSupported;
2999 } D3D12_FEATURE_DATA_D3D12_OPTIONS21;
3000
3001typedef
3002enum D3D12_TIGHT_ALIGNMENT_TIER
3003 {
3004 D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED = 0,
3005 D3D12_TIGHT_ALIGNMENT_TIER_1 = ( D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED + 1 )
3006 } D3D12_TIGHT_ALIGNMENT_TIER;
3007
3008typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT
3009 {
3010 _Out_ D3D12_TIGHT_ALIGNMENT_TIER SupportTier;
3011 } D3D12_FEATURE_DATA_TIGHT_ALIGNMENT;
3012
3013typedef struct D3D12_FEATURE_DATA_PREDICATION
3014 {
3015 _Out_ BOOL Supported;
3016 } D3D12_FEATURE_DATA_PREDICATION;
3017
3018typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY
3019 {
3020 _Out_ BOOL Supported;
3021 } D3D12_FEATURE_DATA_HARDWARE_COPY;
3022
3023typedef struct D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE
3024 {
3025 _Out_ BOOL Supported;
3026 } D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE;
3027
3028typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED
3029 {
3030 _Out_ BOOL Supported;
3031 } D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED;
3032
3033typedef struct D3D12_RESOURCE_ALLOCATION_INFO
3034 {
3035 UINT64 SizeInBytes;
3036 UINT64 Alignment;
3037 } D3D12_RESOURCE_ALLOCATION_INFO;
3038
3039typedef struct D3D12_RESOURCE_ALLOCATION_INFO1
3040 {
3041 UINT64 Offset;
3042 UINT64 Alignment;
3043 UINT64 SizeInBytes;
3044 } D3D12_RESOURCE_ALLOCATION_INFO1;
3045
3046typedef
3047enum D3D12_HEAP_TYPE
3048 {
3049 D3D12_HEAP_TYPE_DEFAULT = 1,
3050 D3D12_HEAP_TYPE_UPLOAD = 2,
3051 D3D12_HEAP_TYPE_READBACK = 3,
3052 D3D12_HEAP_TYPE_CUSTOM = 4,
3053 D3D12_HEAP_TYPE_GPU_UPLOAD = 5
3054 } D3D12_HEAP_TYPE;
3055
3056typedef
3057enum D3D12_CPU_PAGE_PROPERTY
3058 {
3059 D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
3060 D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
3061 D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
3062 D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
3063 } D3D12_CPU_PAGE_PROPERTY;
3064
3065typedef
3066enum D3D12_MEMORY_POOL
3067 {
3068 D3D12_MEMORY_POOL_UNKNOWN = 0,
3069 D3D12_MEMORY_POOL_L0 = 1,
3070 D3D12_MEMORY_POOL_L1 = 2
3071 } D3D12_MEMORY_POOL;
3072
3073typedef struct D3D12_HEAP_PROPERTIES
3074 {
3075 D3D12_HEAP_TYPE Type;
3076 D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
3077 D3D12_MEMORY_POOL MemoryPoolPreference;
3078 UINT CreationNodeMask;
3079 UINT VisibleNodeMask;
3080 } D3D12_HEAP_PROPERTIES;
3081
3082typedef
3083enum D3D12_HEAP_FLAGS
3084 {
3085 D3D12_HEAP_FLAG_NONE = 0,
3086 D3D12_HEAP_FLAG_SHARED = 0x1,
3087 D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
3088 D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
3089 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
3090 D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
3091 D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
3092 D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
3093 D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
3094 D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
3095 D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
3096 D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
3097 D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000,
3098 D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
3099 D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
3100 D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
3101 D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
3102 } D3D12_HEAP_FLAGS;
3103
3104DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS )
3105typedef struct D3D12_HEAP_DESC
3106 {
3107 UINT64 SizeInBytes;
3108 D3D12_HEAP_PROPERTIES Properties;
3109 UINT64 Alignment;
3110 D3D12_HEAP_FLAGS Flags;
3111 } D3D12_HEAP_DESC;
3112
3113typedef
3114enum D3D12_RESOURCE_DIMENSION
3115 {
3116 D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
3117 D3D12_RESOURCE_DIMENSION_BUFFER = 1,
3118 D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
3119 D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
3120 D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
3121 } D3D12_RESOURCE_DIMENSION;
3122
3123typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO
3124 {
3125 _In_ DXGI_FORMAT Format;
3126 _In_ D3D12_RESOURCE_DIMENSION Dimension;
3127 _In_ D3D12_HEAP_PROPERTIES DestHeapProperties;
3128 _Out_ BOOL Supported;
3129 } D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO;
3130
3131typedef
3132enum D3D12_TEXTURE_LAYOUT
3133 {
3134 D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
3135 D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
3136 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
3137 D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
3138 } D3D12_TEXTURE_LAYOUT;
3139
3140typedef
3141enum D3D12_RESOURCE_FLAGS
3142 {
3143 D3D12_RESOURCE_FLAG_NONE = 0,
3144 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
3145 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
3146 D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
3147 D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
3148 D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
3149 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
3150 D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
3151 D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
3152 D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100,
3153 D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400
3154 } D3D12_RESOURCE_FLAGS;
3155
3156DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS )
3157typedef struct D3D12_MIP_REGION
3158 {
3159 UINT Width;
3160 UINT Height;
3161 UINT Depth;
3162 } D3D12_MIP_REGION;
3163
3164typedef struct D3D12_RESOURCE_DESC
3165 {
3166 D3D12_RESOURCE_DIMENSION Dimension;
3167 UINT64 Alignment;
3168 UINT64 Width;
3169 UINT Height;
3170 UINT16 DepthOrArraySize;
3171 UINT16 MipLevels;
3172 DXGI_FORMAT Format;
3173 DXGI_SAMPLE_DESC SampleDesc;
3174 D3D12_TEXTURE_LAYOUT Layout;
3175 D3D12_RESOURCE_FLAGS Flags;
3176 } D3D12_RESOURCE_DESC;
3177
3178typedef struct D3D12_RESOURCE_DESC1
3179 {
3180 D3D12_RESOURCE_DIMENSION Dimension;
3181 UINT64 Alignment;
3182 UINT64 Width;
3183 UINT Height;
3184 UINT16 DepthOrArraySize;
3185 UINT16 MipLevels;
3186 DXGI_FORMAT Format;
3187 DXGI_SAMPLE_DESC SampleDesc;
3188 D3D12_TEXTURE_LAYOUT Layout;
3189 D3D12_RESOURCE_FLAGS Flags;
3190 D3D12_MIP_REGION SamplerFeedbackMipRegion;
3191 } D3D12_RESOURCE_DESC1;
3192
3193typedef struct D3D12_DEPTH_STENCIL_VALUE
3194 {
3195 FLOAT Depth;
3196 UINT8 Stencil;
3197 } D3D12_DEPTH_STENCIL_VALUE;
3198
3199typedef struct D3D12_CLEAR_VALUE
3200 {
3201 DXGI_FORMAT Format;
3202 union
3203 {
3204 FLOAT Color[ 4 ];
3205 D3D12_DEPTH_STENCIL_VALUE DepthStencil;
3206 } ;
3207 } D3D12_CLEAR_VALUE;
3208
3209typedef struct D3D12_RANGE
3210 {
3211 SIZE_T Begin;
3212 SIZE_T End;
3213 } D3D12_RANGE;
3214
3215typedef struct D3D12_RANGE_UINT64
3216 {
3217 UINT64 Begin;
3218 UINT64 End;
3219 } D3D12_RANGE_UINT64;
3220
3221typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
3222 {
3223 UINT Subresource;
3224 D3D12_RANGE_UINT64 Range;
3225 } D3D12_SUBRESOURCE_RANGE_UINT64;
3226
3227typedef struct D3D12_SUBRESOURCE_INFO
3228 {
3229 UINT64 Offset;
3230 UINT RowPitch;
3231 UINT DepthPitch;
3232 } D3D12_SUBRESOURCE_INFO;
3233
3234typedef struct D3D12_TILED_RESOURCE_COORDINATE
3235 {
3236 UINT X;
3237 UINT Y;
3238 UINT Z;
3239 UINT Subresource;
3240 } D3D12_TILED_RESOURCE_COORDINATE;
3241
3242typedef struct D3D12_TILE_REGION_SIZE
3243 {
3244 UINT NumTiles;
3245 BOOL UseBox;
3246 UINT Width;
3247 UINT16 Height;
3248 UINT16 Depth;
3249 } D3D12_TILE_REGION_SIZE;
3250
3251typedef
3252enum D3D12_TILE_RANGE_FLAGS
3253 {
3254 D3D12_TILE_RANGE_FLAG_NONE = 0,
3255 D3D12_TILE_RANGE_FLAG_NULL = 1,
3256 D3D12_TILE_RANGE_FLAG_SKIP = 2,
3257 D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4
3258 } D3D12_TILE_RANGE_FLAGS;
3259
3260typedef struct D3D12_SUBRESOURCE_TILING
3261 {
3262 UINT WidthInTiles;
3263 UINT16 HeightInTiles;
3264 UINT16 DepthInTiles;
3265 UINT StartTileIndexInOverallResource;
3266 } D3D12_SUBRESOURCE_TILING;
3267
3268typedef struct D3D12_TILE_SHAPE
3269 {
3270 UINT WidthInTexels;
3271 UINT HeightInTexels;
3272 UINT DepthInTexels;
3273 } D3D12_TILE_SHAPE;
3274
3275typedef struct D3D12_PACKED_MIP_INFO
3276 {
3277 UINT8 NumStandardMips;
3278 UINT8 NumPackedMips;
3279 UINT NumTilesForPackedMips;
3280 UINT StartTileIndexInOverallResource;
3281 } D3D12_PACKED_MIP_INFO;
3282
3283typedef
3284enum D3D12_TILE_MAPPING_FLAGS
3285 {
3286 D3D12_TILE_MAPPING_FLAG_NONE = 0,
3287 D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
3288 } D3D12_TILE_MAPPING_FLAGS;
3289
3290DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS )
3291typedef
3292enum D3D12_TILE_COPY_FLAGS
3293 {
3294 D3D12_TILE_COPY_FLAG_NONE = 0,
3295 D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
3296 D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
3297 D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
3298 } D3D12_TILE_COPY_FLAGS;
3299
3300DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS )
3301typedef
3302enum D3D12_RESOURCE_STATES
3303 {
3304 D3D12_RESOURCE_STATE_COMMON = 0,
3305 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
3306 D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
3307 D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
3308 D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
3309 D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
3310 D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
3311 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
3312 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
3313 D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
3314 D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
3315 D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
3316 D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
3317 D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
3318 D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
3319 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
3320 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
3321 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000,
3322 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000,
3323 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000,
3324 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000,
3325 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000,
3326 D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) ,
3327 D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = ( 0x40 | 0x80 ) ,
3328 D3D12_RESOURCE_STATE_PRESENT = 0,
3329 D3D12_RESOURCE_STATE_PREDICATION = 0x200,
3330 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
3331 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
3332 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
3333 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
3334 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
3335 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
3336 } D3D12_RESOURCE_STATES;
3337
3338DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES )
3339typedef
3340enum D3D12_RESOURCE_BARRIER_TYPE
3341 {
3342 D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
3343 D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) ,
3344 D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 )
3345 } D3D12_RESOURCE_BARRIER_TYPE;
3346
3347
3348typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
3349 {
3350 ID3D12Resource *pResource;
3351 UINT Subresource;
3352 D3D12_RESOURCE_STATES StateBefore;
3353 D3D12_RESOURCE_STATES StateAfter;
3354 } D3D12_RESOURCE_TRANSITION_BARRIER;
3355
3356typedef struct D3D12_RESOURCE_ALIASING_BARRIER
3357 {
3358 ID3D12Resource *pResourceBefore;
3359 ID3D12Resource *pResourceAfter;
3360 } D3D12_RESOURCE_ALIASING_BARRIER;
3361
3362typedef struct D3D12_RESOURCE_UAV_BARRIER
3363 {
3364 ID3D12Resource *pResource;
3365 } D3D12_RESOURCE_UAV_BARRIER;
3366
3367typedef
3368enum D3D12_RESOURCE_BARRIER_FLAGS
3369 {
3370 D3D12_RESOURCE_BARRIER_FLAG_NONE = 0,
3371 D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
3372 D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
3373 } D3D12_RESOURCE_BARRIER_FLAGS;
3374
3375DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS )
3376typedef struct D3D12_RESOURCE_BARRIER
3377 {
3378 D3D12_RESOURCE_BARRIER_TYPE Type;
3379 D3D12_RESOURCE_BARRIER_FLAGS Flags;
3380 union
3381 {
3382 D3D12_RESOURCE_TRANSITION_BARRIER Transition;
3383 D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
3384 D3D12_RESOURCE_UAV_BARRIER UAV;
3385 } ;
3386 } D3D12_RESOURCE_BARRIER;
3387
3388typedef struct D3D12_SUBRESOURCE_FOOTPRINT
3389 {
3390 DXGI_FORMAT Format;
3391 UINT Width;
3392 UINT Height;
3393 UINT Depth;
3394 UINT RowPitch;
3395 } D3D12_SUBRESOURCE_FOOTPRINT;
3396
3397typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
3398 {
3399 UINT64 Offset;
3400 D3D12_SUBRESOURCE_FOOTPRINT Footprint;
3401 } D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
3402
3403typedef
3404enum D3D12_TEXTURE_COPY_TYPE
3405 {
3406 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
3407 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
3408 } D3D12_TEXTURE_COPY_TYPE;
3409
3410typedef struct D3D12_TEXTURE_COPY_LOCATION
3411 {
3412 ID3D12Resource *pResource;
3413 D3D12_TEXTURE_COPY_TYPE Type;
3414 union
3415 {
3416 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
3417 UINT SubresourceIndex;
3418 } ;
3419 } D3D12_TEXTURE_COPY_LOCATION;
3420
3421typedef
3422enum D3D12_RESOLVE_MODE
3423 {
3424 D3D12_RESOLVE_MODE_DECOMPRESS = 0,
3425 D3D12_RESOLVE_MODE_MIN = 1,
3426 D3D12_RESOLVE_MODE_MAX = 2,
3427 D3D12_RESOLVE_MODE_AVERAGE = 3,
3428 D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4,
3429 D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5
3430 } D3D12_RESOLVE_MODE;
3431
3432typedef struct D3D12_SAMPLE_POSITION
3433 {
3434 INT8 X;
3435 INT8 Y;
3436 } D3D12_SAMPLE_POSITION;
3437
3438typedef struct D3D12_VIEW_INSTANCE_LOCATION
3439 {
3440 UINT ViewportArrayIndex;
3441 UINT RenderTargetArrayIndex;
3442 } D3D12_VIEW_INSTANCE_LOCATION;
3443
3444typedef
3445enum D3D12_VIEW_INSTANCING_FLAGS
3446 {
3447 D3D12_VIEW_INSTANCING_FLAG_NONE = 0,
3448 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1
3449 } D3D12_VIEW_INSTANCING_FLAGS;
3450
3451DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS )
3452typedef struct D3D12_VIEW_INSTANCING_DESC
3453 {
3454 UINT ViewInstanceCount;
3455 _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
3456 D3D12_VIEW_INSTANCING_FLAGS Flags;
3457 } D3D12_VIEW_INSTANCING_DESC;
3458
3459typedef
3460enum D3D12_SHADER_COMPONENT_MAPPING
3461 {
3462 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
3463 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
3464 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
3465 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
3466 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
3467 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
3468 } D3D12_SHADER_COMPONENT_MAPPING;
3469
3470#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
3471#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
3472#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
3473#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
3474 (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
3475 (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
3476 (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
3477 D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
3478#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))
3479#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)
3480typedef
3481enum D3D12_BUFFER_SRV_FLAGS
3482 {
3483 D3D12_BUFFER_SRV_FLAG_NONE = 0,
3484 D3D12_BUFFER_SRV_FLAG_RAW = 0x1
3485 } D3D12_BUFFER_SRV_FLAGS;
3486
3487DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS )
3488typedef struct D3D12_BUFFER_SRV
3489 {
3490 UINT64 FirstElement;
3491 UINT NumElements;
3492 UINT StructureByteStride;
3493 D3D12_BUFFER_SRV_FLAGS Flags;
3494 } D3D12_BUFFER_SRV;
3495
3496typedef struct D3D12_TEX1D_SRV
3497 {
3498 UINT MostDetailedMip;
3499 UINT MipLevels;
3500 FLOAT ResourceMinLODClamp;
3501 } D3D12_TEX1D_SRV;
3502
3503typedef struct D3D12_TEX1D_ARRAY_SRV
3504 {
3505 UINT MostDetailedMip;
3506 UINT MipLevels;
3507 UINT FirstArraySlice;
3508 UINT ArraySize;
3509 FLOAT ResourceMinLODClamp;
3510 } D3D12_TEX1D_ARRAY_SRV;
3511
3512typedef struct D3D12_TEX2D_SRV
3513 {
3514 UINT MostDetailedMip;
3515 UINT MipLevels;
3516 UINT PlaneSlice;
3517 FLOAT ResourceMinLODClamp;
3518 } D3D12_TEX2D_SRV;
3519
3520typedef struct D3D12_TEX2D_ARRAY_SRV
3521 {
3522 UINT MostDetailedMip;
3523 UINT MipLevels;
3524 UINT FirstArraySlice;
3525 UINT ArraySize;
3526 UINT PlaneSlice;
3527 FLOAT ResourceMinLODClamp;
3528 } D3D12_TEX2D_ARRAY_SRV;
3529
3530typedef struct D3D12_TEX3D_SRV
3531 {
3532 UINT MostDetailedMip;
3533 UINT MipLevels;
3534 FLOAT ResourceMinLODClamp;
3535 } D3D12_TEX3D_SRV;
3536
3537typedef struct D3D12_TEXCUBE_SRV
3538 {
3539 UINT MostDetailedMip;
3540 UINT MipLevels;
3541 FLOAT ResourceMinLODClamp;
3542 } D3D12_TEXCUBE_SRV;
3543
3544typedef struct D3D12_TEXCUBE_ARRAY_SRV
3545 {
3546 UINT MostDetailedMip;
3547 UINT MipLevels;
3548 UINT First2DArrayFace;
3549 UINT NumCubes;
3550 FLOAT ResourceMinLODClamp;
3551 } D3D12_TEXCUBE_ARRAY_SRV;
3552
3553typedef struct D3D12_TEX2DMS_SRV
3554 {
3555 UINT UnusedField_NothingToDefine;
3556 } D3D12_TEX2DMS_SRV;
3557
3558typedef struct D3D12_TEX2DMS_ARRAY_SRV
3559 {
3560 UINT FirstArraySlice;
3561 UINT ArraySize;
3562 } D3D12_TEX2DMS_ARRAY_SRV;
3563
3564typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV
3565 {
3566 D3D12_GPU_VIRTUAL_ADDRESS Location;
3567 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
3568
3569typedef
3570enum D3D12_SRV_DIMENSION
3571 {
3572 D3D12_SRV_DIMENSION_UNKNOWN = 0,
3573 D3D12_SRV_DIMENSION_BUFFER = 1,
3574 D3D12_SRV_DIMENSION_TEXTURE1D = 2,
3575 D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
3576 D3D12_SRV_DIMENSION_TEXTURE2D = 4,
3577 D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
3578 D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
3579 D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
3580 D3D12_SRV_DIMENSION_TEXTURE3D = 8,
3581 D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
3582 D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
3583 D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
3584 } D3D12_SRV_DIMENSION;
3585
3586typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
3587 {
3588 DXGI_FORMAT Format;
3589 D3D12_SRV_DIMENSION ViewDimension;
3590 UINT Shader4ComponentMapping;
3591 union
3592 {
3593 D3D12_BUFFER_SRV Buffer;
3594 D3D12_TEX1D_SRV Texture1D;
3595 D3D12_TEX1D_ARRAY_SRV Texture1DArray;
3596 D3D12_TEX2D_SRV Texture2D;
3597 D3D12_TEX2D_ARRAY_SRV Texture2DArray;
3598 D3D12_TEX2DMS_SRV Texture2DMS;
3599 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
3600 D3D12_TEX3D_SRV Texture3D;
3601 D3D12_TEXCUBE_SRV TextureCube;
3602 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
3603 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
3604 } ;
3605 } D3D12_SHADER_RESOURCE_VIEW_DESC;
3606
3607typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
3608 {
3609 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3610 UINT SizeInBytes;
3611 } D3D12_CONSTANT_BUFFER_VIEW_DESC;
3612
3613typedef
3614enum D3D12_FILTER
3615 {
3616 D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
3617 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
3618 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
3619 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
3620 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
3621 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
3622 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
3623 D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
3624 D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x54,
3625 D3D12_FILTER_ANISOTROPIC = 0x55,
3626 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
3627 D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
3628 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
3629 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
3630 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
3631 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
3632 D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
3633 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
3634 D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0xd4,
3635 D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
3636 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
3637 D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
3638 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
3639 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
3640 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
3641 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
3642 D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
3643 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
3644 D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x154,
3645 D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
3646 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
3647 D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
3648 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
3649 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
3650 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
3651 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
3652 D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
3653 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
3654 D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x1d4,
3655 D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
3656 } D3D12_FILTER;
3657
3658typedef
3659enum D3D12_FILTER_TYPE
3660 {
3661 D3D12_FILTER_TYPE_POINT = 0,
3662 D3D12_FILTER_TYPE_LINEAR = 1
3663 } D3D12_FILTER_TYPE;
3664
3665typedef
3666enum D3D12_FILTER_REDUCTION_TYPE
3667 {
3668 D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
3669 D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
3670 D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
3671 D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
3672 } D3D12_FILTER_REDUCTION_TYPE;
3673
3674#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 )
3675
3676#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 )
3677
3678#define D3D12_FILTER_TYPE_MASK ( 0x3 )
3679
3680#define D3D12_MIN_FILTER_SHIFT ( 4 )
3681
3682#define D3D12_MAG_FILTER_SHIFT ( 2 )
3683
3684#define D3D12_MIP_FILTER_SHIFT ( 0 )
3685
3686#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 )
3687
3688#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \
3689 ( ( D3D12_FILTER ) ( \
3690 ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \
3691 ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \
3692 ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \
3693 ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) )
3694#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \
3695 ( ( D3D12_FILTER ) ( \
3696 D3D12_ANISOTROPIC_FILTERING_BIT | \
3697 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
3698 D3D12_FILTER_TYPE_LINEAR, \
3699 D3D12_FILTER_TYPE_LINEAR, \
3700 reduction ) ) )
3701#define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \
3702 ( ( D3D12_FILTER ) ( \
3703 D3D12_ANISOTROPIC_FILTERING_BIT | \
3704 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
3705 D3D12_FILTER_TYPE_LINEAR, \
3706 D3D12_FILTER_TYPE_POINT, \
3707 reduction ) ) )
3708#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \
3709 ( ( D3D12_FILTER_TYPE ) \
3710 ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3711#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \
3712 ( ( D3D12_FILTER_TYPE ) \
3713 ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3714#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \
3715 ( ( D3D12_FILTER_TYPE ) \
3716 ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3717#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \
3718 ( ( D3D12_FILTER_REDUCTION_TYPE ) \
3719 ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) )
3720#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \
3721 ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON )
3722#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \
3723 ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \
3724 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \
3725 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) )
3726typedef
3727enum D3D12_TEXTURE_ADDRESS_MODE
3728 {
3729 D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
3730 D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
3731 D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
3732 D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
3733 D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
3734 } D3D12_TEXTURE_ADDRESS_MODE;
3735
3736typedef struct D3D12_SAMPLER_DESC
3737 {
3738 D3D12_FILTER Filter;
3739 D3D12_TEXTURE_ADDRESS_MODE AddressU;
3740 D3D12_TEXTURE_ADDRESS_MODE AddressV;
3741 D3D12_TEXTURE_ADDRESS_MODE AddressW;
3742 FLOAT MipLODBias;
3743 UINT MaxAnisotropy;
3744 D3D12_COMPARISON_FUNC ComparisonFunc;
3745 FLOAT BorderColor[ 4 ];
3746 FLOAT MinLOD;
3747 FLOAT MaxLOD;
3748 } D3D12_SAMPLER_DESC;
3749
3750typedef
3751enum D3D12_SAMPLER_FLAGS
3752 {
3753 D3D12_SAMPLER_FLAG_NONE = 0,
3754 D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x1,
3755 D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x2
3756 } D3D12_SAMPLER_FLAGS;
3757
3758DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS )
3759typedef struct D3D12_SAMPLER_DESC2
3760 {
3761 D3D12_FILTER Filter;
3762 D3D12_TEXTURE_ADDRESS_MODE AddressU;
3763 D3D12_TEXTURE_ADDRESS_MODE AddressV;
3764 D3D12_TEXTURE_ADDRESS_MODE AddressW;
3765 FLOAT MipLODBias;
3766 UINT MaxAnisotropy;
3767 D3D12_COMPARISON_FUNC ComparisonFunc;
3768 union
3769 {
3770 FLOAT FloatBorderColor[ 4 ];
3771 UINT UintBorderColor[ 4 ];
3772 } ;
3773 FLOAT MinLOD;
3774 FLOAT MaxLOD;
3775 D3D12_SAMPLER_FLAGS Flags;
3776 } D3D12_SAMPLER_DESC2;
3777
3778typedef
3779enum D3D12_BUFFER_UAV_FLAGS
3780 {
3781 D3D12_BUFFER_UAV_FLAG_NONE = 0,
3782 D3D12_BUFFER_UAV_FLAG_RAW = 0x1
3783 } D3D12_BUFFER_UAV_FLAGS;
3784
3785DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS )
3786typedef struct D3D12_BUFFER_UAV
3787 {
3788 UINT64 FirstElement;
3789 UINT NumElements;
3790 UINT StructureByteStride;
3791 UINT64 CounterOffsetInBytes;
3792 D3D12_BUFFER_UAV_FLAGS Flags;
3793 } D3D12_BUFFER_UAV;
3794
3795typedef struct D3D12_TEX1D_UAV
3796 {
3797 UINT MipSlice;
3798 } D3D12_TEX1D_UAV;
3799
3800typedef struct D3D12_TEX1D_ARRAY_UAV
3801 {
3802 UINT MipSlice;
3803 UINT FirstArraySlice;
3804 UINT ArraySize;
3805 } D3D12_TEX1D_ARRAY_UAV;
3806
3807typedef struct D3D12_TEX2D_UAV
3808 {
3809 UINT MipSlice;
3810 UINT PlaneSlice;
3811 } D3D12_TEX2D_UAV;
3812
3813typedef struct D3D12_TEX2D_ARRAY_UAV
3814 {
3815 UINT MipSlice;
3816 UINT FirstArraySlice;
3817 UINT ArraySize;
3818 UINT PlaneSlice;
3819 } D3D12_TEX2D_ARRAY_UAV;
3820
3821typedef struct D3D12_TEX2DMS_UAV
3822 {
3823 UINT UnusedField_NothingToDefine;
3824 } D3D12_TEX2DMS_UAV;
3825
3826typedef struct D3D12_TEX2DMS_ARRAY_UAV
3827 {
3828 UINT FirstArraySlice;
3829 UINT ArraySize;
3830 } D3D12_TEX2DMS_ARRAY_UAV;
3831
3832typedef struct D3D12_TEX3D_UAV
3833 {
3834 UINT MipSlice;
3835 UINT FirstWSlice;
3836 UINT WSize;
3837 } D3D12_TEX3D_UAV;
3838
3839typedef
3840enum D3D12_UAV_DIMENSION
3841 {
3842 D3D12_UAV_DIMENSION_UNKNOWN = 0,
3843 D3D12_UAV_DIMENSION_BUFFER = 1,
3844 D3D12_UAV_DIMENSION_TEXTURE1D = 2,
3845 D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
3846 D3D12_UAV_DIMENSION_TEXTURE2D = 4,
3847 D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
3848 D3D12_UAV_DIMENSION_TEXTURE2DMS = 6,
3849 D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7,
3850 D3D12_UAV_DIMENSION_TEXTURE3D = 8
3851 } D3D12_UAV_DIMENSION;
3852
3853typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
3854 {
3855 DXGI_FORMAT Format;
3856 D3D12_UAV_DIMENSION ViewDimension;
3857 union
3858 {
3859 D3D12_BUFFER_UAV Buffer;
3860 D3D12_TEX1D_UAV Texture1D;
3861 D3D12_TEX1D_ARRAY_UAV Texture1DArray;
3862 D3D12_TEX2D_UAV Texture2D;
3863 D3D12_TEX2D_ARRAY_UAV Texture2DArray;
3864 D3D12_TEX2DMS_UAV Texture2DMS;
3865 D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray;
3866 D3D12_TEX3D_UAV Texture3D;
3867 } ;
3868 } D3D12_UNORDERED_ACCESS_VIEW_DESC;
3869
3870typedef struct D3D12_BUFFER_RTV
3871 {
3872 UINT64 FirstElement;
3873 UINT NumElements;
3874 } D3D12_BUFFER_RTV;
3875
3876typedef struct D3D12_TEX1D_RTV
3877 {
3878 UINT MipSlice;
3879 } D3D12_TEX1D_RTV;
3880
3881typedef struct D3D12_TEX1D_ARRAY_RTV
3882 {
3883 UINT MipSlice;
3884 UINT FirstArraySlice;
3885 UINT ArraySize;
3886 } D3D12_TEX1D_ARRAY_RTV;
3887
3888typedef struct D3D12_TEX2D_RTV
3889 {
3890 UINT MipSlice;
3891 UINT PlaneSlice;
3892 } D3D12_TEX2D_RTV;
3893
3894typedef struct D3D12_TEX2DMS_RTV
3895 {
3896 UINT UnusedField_NothingToDefine;
3897 } D3D12_TEX2DMS_RTV;
3898
3899typedef struct D3D12_TEX2D_ARRAY_RTV
3900 {
3901 UINT MipSlice;
3902 UINT FirstArraySlice;
3903 UINT ArraySize;
3904 UINT PlaneSlice;
3905 } D3D12_TEX2D_ARRAY_RTV;
3906
3907typedef struct D3D12_TEX2DMS_ARRAY_RTV
3908 {
3909 UINT FirstArraySlice;
3910 UINT ArraySize;
3911 } D3D12_TEX2DMS_ARRAY_RTV;
3912
3913typedef struct D3D12_TEX3D_RTV
3914 {
3915 UINT MipSlice;
3916 UINT FirstWSlice;
3917 UINT WSize;
3918 } D3D12_TEX3D_RTV;
3919
3920typedef
3921enum D3D12_RTV_DIMENSION
3922 {
3923 D3D12_RTV_DIMENSION_UNKNOWN = 0,
3924 D3D12_RTV_DIMENSION_BUFFER = 1,
3925 D3D12_RTV_DIMENSION_TEXTURE1D = 2,
3926 D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
3927 D3D12_RTV_DIMENSION_TEXTURE2D = 4,
3928 D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
3929 D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
3930 D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
3931 D3D12_RTV_DIMENSION_TEXTURE3D = 8
3932 } D3D12_RTV_DIMENSION;
3933
3934typedef struct D3D12_RENDER_TARGET_VIEW_DESC
3935 {
3936 DXGI_FORMAT Format;
3937 D3D12_RTV_DIMENSION ViewDimension;
3938 union
3939 {
3940 D3D12_BUFFER_RTV Buffer;
3941 D3D12_TEX1D_RTV Texture1D;
3942 D3D12_TEX1D_ARRAY_RTV Texture1DArray;
3943 D3D12_TEX2D_RTV Texture2D;
3944 D3D12_TEX2D_ARRAY_RTV Texture2DArray;
3945 D3D12_TEX2DMS_RTV Texture2DMS;
3946 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
3947 D3D12_TEX3D_RTV Texture3D;
3948 } ;
3949 } D3D12_RENDER_TARGET_VIEW_DESC;
3950
3951typedef struct D3D12_TEX1D_DSV
3952 {
3953 UINT MipSlice;
3954 } D3D12_TEX1D_DSV;
3955
3956typedef struct D3D12_TEX1D_ARRAY_DSV
3957 {
3958 UINT MipSlice;
3959 UINT FirstArraySlice;
3960 UINT ArraySize;
3961 } D3D12_TEX1D_ARRAY_DSV;
3962
3963typedef struct D3D12_TEX2D_DSV
3964 {
3965 UINT MipSlice;
3966 } D3D12_TEX2D_DSV;
3967
3968typedef struct D3D12_TEX2D_ARRAY_DSV
3969 {
3970 UINT MipSlice;
3971 UINT FirstArraySlice;
3972 UINT ArraySize;
3973 } D3D12_TEX2D_ARRAY_DSV;
3974
3975typedef struct D3D12_TEX2DMS_DSV
3976 {
3977 UINT UnusedField_NothingToDefine;
3978 } D3D12_TEX2DMS_DSV;
3979
3980typedef struct D3D12_TEX2DMS_ARRAY_DSV
3981 {
3982 UINT FirstArraySlice;
3983 UINT ArraySize;
3984 } D3D12_TEX2DMS_ARRAY_DSV;
3985
3986typedef
3987enum D3D12_DSV_FLAGS
3988 {
3989 D3D12_DSV_FLAG_NONE = 0,
3990 D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
3991 D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
3992 } D3D12_DSV_FLAGS;
3993
3994DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS )
3995typedef
3996enum D3D12_DSV_DIMENSION
3997 {
3998 D3D12_DSV_DIMENSION_UNKNOWN = 0,
3999 D3D12_DSV_DIMENSION_TEXTURE1D = 1,
4000 D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
4001 D3D12_DSV_DIMENSION_TEXTURE2D = 3,
4002 D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
4003 D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
4004 D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
4005 } D3D12_DSV_DIMENSION;
4006
4007typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
4008 {
4009 DXGI_FORMAT Format;
4010 D3D12_DSV_DIMENSION ViewDimension;
4011 D3D12_DSV_FLAGS Flags;
4012 union
4013 {
4014 D3D12_TEX1D_DSV Texture1D;
4015 D3D12_TEX1D_ARRAY_DSV Texture1DArray;
4016 D3D12_TEX2D_DSV Texture2D;
4017 D3D12_TEX2D_ARRAY_DSV Texture2DArray;
4018 D3D12_TEX2DMS_DSV Texture2DMS;
4019 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
4020 } ;
4021 } D3D12_DEPTH_STENCIL_VIEW_DESC;
4022
4023typedef
4024enum D3D12_CLEAR_FLAGS
4025 {
4026 D3D12_CLEAR_FLAG_DEPTH = 0x1,
4027 D3D12_CLEAR_FLAG_STENCIL = 0x2
4028 } D3D12_CLEAR_FLAGS;
4029
4030DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS )
4031typedef
4032enum D3D12_FENCE_FLAGS
4033 {
4034 D3D12_FENCE_FLAG_NONE = 0,
4035 D3D12_FENCE_FLAG_SHARED = 0x1,
4036 D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
4037 D3D12_FENCE_FLAG_NON_MONITORED = 0x4
4038 } D3D12_FENCE_FLAGS;
4039
4040DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS )
4041typedef
4042enum D3D12_DESCRIPTOR_HEAP_TYPE
4043 {
4044 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
4045 D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) ,
4046 D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) ,
4047 D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) ,
4048 D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 )
4049 } D3D12_DESCRIPTOR_HEAP_TYPE;
4050
4051typedef
4052enum D3D12_DESCRIPTOR_HEAP_FLAGS
4053 {
4054 D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
4055 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
4056 } D3D12_DESCRIPTOR_HEAP_FLAGS;
4057
4058DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS )
4059typedef struct D3D12_DESCRIPTOR_HEAP_DESC
4060 {
4061 D3D12_DESCRIPTOR_HEAP_TYPE Type;
4062 UINT NumDescriptors;
4063 D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
4064 UINT NodeMask;
4065 } D3D12_DESCRIPTOR_HEAP_DESC;
4066
4067typedef
4068enum D3D12_DESCRIPTOR_RANGE_TYPE
4069 {
4070 D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
4071 D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) ,
4072 D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) ,
4073 D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 )
4074 } D3D12_DESCRIPTOR_RANGE_TYPE;
4075
4076typedef struct D3D12_DESCRIPTOR_RANGE
4077 {
4078 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
4079 UINT NumDescriptors;
4080 UINT BaseShaderRegister;
4081 UINT RegisterSpace;
4082 UINT OffsetInDescriptorsFromTableStart;
4083 } D3D12_DESCRIPTOR_RANGE;
4084
4085typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
4086 {
4087 UINT NumDescriptorRanges;
4088 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
4089 } D3D12_ROOT_DESCRIPTOR_TABLE;
4090
4091typedef struct D3D12_ROOT_CONSTANTS
4092 {
4093 UINT ShaderRegister;
4094 UINT RegisterSpace;
4095 UINT Num32BitValues;
4096 } D3D12_ROOT_CONSTANTS;
4097
4098typedef struct D3D12_ROOT_DESCRIPTOR
4099 {
4100 UINT ShaderRegister;
4101 UINT RegisterSpace;
4102 } D3D12_ROOT_DESCRIPTOR;
4103
4104typedef
4105enum D3D12_SHADER_VISIBILITY
4106 {
4107 D3D12_SHADER_VISIBILITY_ALL = 0,
4108 D3D12_SHADER_VISIBILITY_VERTEX = 1,
4109 D3D12_SHADER_VISIBILITY_HULL = 2,
4110 D3D12_SHADER_VISIBILITY_DOMAIN = 3,
4111 D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
4112 D3D12_SHADER_VISIBILITY_PIXEL = 5,
4113 D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
4114 D3D12_SHADER_VISIBILITY_MESH = 7
4115 } D3D12_SHADER_VISIBILITY;
4116
4117typedef
4118enum D3D12_ROOT_PARAMETER_TYPE
4119 {
4120 D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
4121 D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) ,
4122 D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) ,
4123 D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) ,
4124 D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 )
4125 } D3D12_ROOT_PARAMETER_TYPE;
4126
4127typedef struct D3D12_ROOT_PARAMETER
4128 {
4129 D3D12_ROOT_PARAMETER_TYPE ParameterType;
4130 union
4131 {
4132 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
4133 D3D12_ROOT_CONSTANTS Constants;
4134 D3D12_ROOT_DESCRIPTOR Descriptor;
4135 } ;
4136 D3D12_SHADER_VISIBILITY ShaderVisibility;
4137 } D3D12_ROOT_PARAMETER;
4138
4139typedef
4140enum D3D12_ROOT_SIGNATURE_FLAGS
4141 {
4142 D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
4143 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
4144 D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
4145 D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
4146 D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
4147 D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
4148 D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
4149 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
4150 D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
4151 D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
4152 D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
4153 D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
4154 D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
4155 } D3D12_ROOT_SIGNATURE_FLAGS;
4156
4157DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS )
4158typedef
4159enum D3D12_STATIC_BORDER_COLOR
4160 {
4161 D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
4162 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) ,
4163 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) ,
4164 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE + 1 ) ,
4165 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT + 1 )
4166 } D3D12_STATIC_BORDER_COLOR;
4167
4168typedef struct D3D12_STATIC_SAMPLER_DESC
4169 {
4170 D3D12_FILTER Filter;
4171 D3D12_TEXTURE_ADDRESS_MODE AddressU;
4172 D3D12_TEXTURE_ADDRESS_MODE AddressV;
4173 D3D12_TEXTURE_ADDRESS_MODE AddressW;
4174 FLOAT MipLODBias;
4175 UINT MaxAnisotropy;
4176 D3D12_COMPARISON_FUNC ComparisonFunc;
4177 D3D12_STATIC_BORDER_COLOR BorderColor;
4178 FLOAT MinLOD;
4179 FLOAT MaxLOD;
4180 UINT ShaderRegister;
4181 UINT RegisterSpace;
4182 D3D12_SHADER_VISIBILITY ShaderVisibility;
4183 } D3D12_STATIC_SAMPLER_DESC;
4184
4185typedef struct D3D12_STATIC_SAMPLER_DESC1
4186 {
4187 D3D12_FILTER Filter;
4188 D3D12_TEXTURE_ADDRESS_MODE AddressU;
4189 D3D12_TEXTURE_ADDRESS_MODE AddressV;
4190 D3D12_TEXTURE_ADDRESS_MODE AddressW;
4191 FLOAT MipLODBias;
4192 UINT MaxAnisotropy;
4193 D3D12_COMPARISON_FUNC ComparisonFunc;
4194 D3D12_STATIC_BORDER_COLOR BorderColor;
4195 FLOAT MinLOD;
4196 FLOAT MaxLOD;
4197 UINT ShaderRegister;
4198 UINT RegisterSpace;
4199 D3D12_SHADER_VISIBILITY ShaderVisibility;
4200 D3D12_SAMPLER_FLAGS Flags;
4201 } D3D12_STATIC_SAMPLER_DESC1;
4202
4203typedef struct D3D12_ROOT_SIGNATURE_DESC
4204 {
4205 UINT NumParameters;
4206 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters;
4207 UINT NumStaticSamplers;
4208 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
4209 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4210 } D3D12_ROOT_SIGNATURE_DESC;
4211
4212typedef
4213enum D3D12_DESCRIPTOR_RANGE_FLAGS
4214 {
4215 D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
4216 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
4217 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
4218 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
4219 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
4220 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
4221 } D3D12_DESCRIPTOR_RANGE_FLAGS;
4222
4223DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS )
4224typedef struct D3D12_DESCRIPTOR_RANGE1
4225 {
4226 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
4227 UINT NumDescriptors;
4228 UINT BaseShaderRegister;
4229 UINT RegisterSpace;
4230 D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
4231 UINT OffsetInDescriptorsFromTableStart;
4232 } D3D12_DESCRIPTOR_RANGE1;
4233
4234typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
4235 {
4236 UINT NumDescriptorRanges;
4237 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
4238 } D3D12_ROOT_DESCRIPTOR_TABLE1;
4239
4240typedef
4241enum D3D12_ROOT_DESCRIPTOR_FLAGS
4242 {
4243 D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0,
4244 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
4245 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
4246 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
4247 } D3D12_ROOT_DESCRIPTOR_FLAGS;
4248
4249DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS )
4250typedef struct D3D12_ROOT_DESCRIPTOR1
4251 {
4252 UINT ShaderRegister;
4253 UINT RegisterSpace;
4254 D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
4255 } D3D12_ROOT_DESCRIPTOR1;
4256
4257typedef struct D3D12_ROOT_PARAMETER1
4258 {
4259 D3D12_ROOT_PARAMETER_TYPE ParameterType;
4260 union
4261 {
4262 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
4263 D3D12_ROOT_CONSTANTS Constants;
4264 D3D12_ROOT_DESCRIPTOR1 Descriptor;
4265 } ;
4266 D3D12_SHADER_VISIBILITY ShaderVisibility;
4267 } D3D12_ROOT_PARAMETER1;
4268
4269typedef struct D3D12_ROOT_SIGNATURE_DESC1
4270 {
4271 UINT NumParameters;
4272 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
4273 UINT NumStaticSamplers;
4274 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
4275 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4276 } D3D12_ROOT_SIGNATURE_DESC1;
4277
4278typedef struct D3D12_ROOT_SIGNATURE_DESC2
4279 {
4280 UINT NumParameters;
4281 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
4282 UINT NumStaticSamplers;
4283 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1 *pStaticSamplers;
4284 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4285 } D3D12_ROOT_SIGNATURE_DESC2;
4286
4287typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
4288 {
4289 D3D_ROOT_SIGNATURE_VERSION Version;
4290 union
4291 {
4292 D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
4293 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
4294 D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2;
4295 } ;
4296 } D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
4297
4298
4299
4300extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec;
4301extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec;
4302
4303#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
4304#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
4305
4306/* interface ID3D12RootSignatureDeserializer */
4307/* [unique][local][object][uuid] */
4308
4309
4310EXTERN_C const IID IID_ID3D12RootSignatureDeserializer;
4311
4312#if defined(__cplusplus) && !defined(CINTERFACE)
4313
4314 MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046")
4315 ID3D12RootSignatureDeserializer : public IUnknown
4316 {
4317 public:
4318 virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0;
4319
4320 };
4321
4322
4323#else /* C style interface */
4324
4325 typedef struct ID3D12RootSignatureDeserializerVtbl
4326 {
4327 BEGIN_INTERFACE
4328
4329 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4330 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4331 ID3D12RootSignatureDeserializer * This,
4332 REFIID riid,
4333 _COM_Outptr_ void **ppvObject);
4334
4335 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4336 ULONG ( STDMETHODCALLTYPE *AddRef )(
4337 ID3D12RootSignatureDeserializer * This);
4338
4339 DECLSPEC_XFGVIRT(IUnknown, Release)
4340 ULONG ( STDMETHODCALLTYPE *Release )(
4341 ID3D12RootSignatureDeserializer * This);
4342
4343 DECLSPEC_XFGVIRT(ID3D12RootSignatureDeserializer, GetRootSignatureDesc)
4344 const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )(
4345 ID3D12RootSignatureDeserializer * This);
4346
4347 END_INTERFACE
4348 } ID3D12RootSignatureDeserializerVtbl;
4349
4350 interface ID3D12RootSignatureDeserializer
4351 {
4352 CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl;
4353 };
4354
4355
4356
4357#ifdef COBJMACROS
4358
4359
4360#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
4361 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4362
4363#define ID3D12RootSignatureDeserializer_AddRef(This) \
4364 ( (This)->lpVtbl -> AddRef(This) )
4365
4366#define ID3D12RootSignatureDeserializer_Release(This) \
4367 ( (This)->lpVtbl -> Release(This) )
4368
4369
4370#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \
4371 ( (This)->lpVtbl -> GetRootSignatureDesc(This) )
4372
4373#endif /* COBJMACROS */
4374
4375
4376#endif /* C style interface */
4377
4378
4379
4380
4381#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
4382
4383
4384#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
4385#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
4386
4387/* interface ID3D12VersionedRootSignatureDeserializer */
4388/* [unique][local][object][uuid] */
4389
4390
4391EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer;
4392
4393#if defined(__cplusplus) && !defined(CINTERFACE)
4394
4395 MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0")
4396 ID3D12VersionedRootSignatureDeserializer : public IUnknown
4397 {
4398 public:
4399 virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
4400 D3D_ROOT_SIGNATURE_VERSION convertToVersion,
4401 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0;
4402
4403 virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0;
4404
4405 };
4406
4407
4408#else /* C style interface */
4409
4410 typedef struct ID3D12VersionedRootSignatureDeserializerVtbl
4411 {
4412 BEGIN_INTERFACE
4413
4414 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4415 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4416 ID3D12VersionedRootSignatureDeserializer * This,
4417 REFIID riid,
4418 _COM_Outptr_ void **ppvObject);
4419
4420 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4421 ULONG ( STDMETHODCALLTYPE *AddRef )(
4422 ID3D12VersionedRootSignatureDeserializer * This);
4423
4424 DECLSPEC_XFGVIRT(IUnknown, Release)
4425 ULONG ( STDMETHODCALLTYPE *Release )(
4426 ID3D12VersionedRootSignatureDeserializer * This);
4427
4428 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetRootSignatureDescAtVersion)
4429 HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )(
4430 ID3D12VersionedRootSignatureDeserializer * This,
4431 D3D_ROOT_SIGNATURE_VERSION convertToVersion,
4432 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc);
4433
4434 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetUnconvertedRootSignatureDesc)
4435 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )(
4436 ID3D12VersionedRootSignatureDeserializer * This);
4437
4438 END_INTERFACE
4439 } ID3D12VersionedRootSignatureDeserializerVtbl;
4440
4441 interface ID3D12VersionedRootSignatureDeserializer
4442 {
4443 CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl;
4444 };
4445
4446
4447
4448#ifdef COBJMACROS
4449
4450
4451#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
4452 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4453
4454#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \
4455 ( (This)->lpVtbl -> AddRef(This) )
4456
4457#define ID3D12VersionedRootSignatureDeserializer_Release(This) \
4458 ( (This)->lpVtbl -> Release(This) )
4459
4460
4461#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \
4462 ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) )
4463
4464#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \
4465 ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) )
4466
4467#endif /* COBJMACROS */
4468
4469
4470#endif /* C style interface */
4471
4472
4473
4474
4475#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
4476
4477
4478/* interface __MIDL_itf_d3d12_0000_0003 */
4479/* [local] */
4480
4481typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(
4482 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
4483 _In_ D3D_ROOT_SIGNATURE_VERSION Version,
4484 _Out_ ID3DBlob** ppBlob,
4485 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4486
4487HRESULT WINAPI D3D12SerializeRootSignature(
4488 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
4489 _In_ D3D_ROOT_SIGNATURE_VERSION Version,
4490 _Out_ ID3DBlob** ppBlob,
4491 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4492
4493typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(
4494 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4495 _In_ SIZE_T SrcDataSizeInBytes,
4496 _In_ REFIID pRootSignatureDeserializerInterface,
4497 _Out_ void** ppRootSignatureDeserializer);
4498
4499HRESULT WINAPI D3D12CreateRootSignatureDeserializer(
4500 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4501 _In_ SIZE_T SrcDataSizeInBytes,
4502 _In_ REFIID pRootSignatureDeserializerInterface,
4503 _Out_ void** ppRootSignatureDeserializer);
4504
4505typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(
4506 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
4507 _Out_ ID3DBlob** ppBlob,
4508 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4509
4510HRESULT WINAPI D3D12SerializeVersionedRootSignature(
4511 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
4512 _Out_ ID3DBlob** ppBlob,
4513 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4514
4515typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(
4516 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4517 _In_ SIZE_T SrcDataSizeInBytes,
4518 _In_ REFIID pRootSignatureDeserializerInterface,
4519 _Out_ void** ppRootSignatureDeserializer);
4520
4521HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(
4522 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4523 _In_ SIZE_T SrcDataSizeInBytes,
4524 _In_ REFIID pRootSignatureDeserializerInterface,
4525 _Out_ void** ppRootSignatureDeserializer);
4526
4527typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)(
4528 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4529 _In_ SIZE_T SrcDataSizeInBytes,
4530 _In_ LPCWSTR RootSignatureSubobjectName,
4531 _In_ REFIID pRootSignatureDeserializerInterface,
4532 _Out_ void** ppRootSignatureDeserializer);
4533
4534HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(
4535 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4536 _In_ SIZE_T SrcDataSizeInBytes,
4537 _In_opt_ LPCWSTR RootSignatureSubobjectName,
4538 _In_ REFIID pRootSignatureDeserializerInterface,
4539 _Out_ void** ppRootSignatureDeserializer);
4540
4541typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
4542 {
4543 SIZE_T ptr;
4544 } D3D12_CPU_DESCRIPTOR_HANDLE;
4545
4546typedef struct D3D12_GPU_DESCRIPTOR_HANDLE
4547 {
4548 UINT64 ptr;
4549 } D3D12_GPU_DESCRIPTOR_HANDLE;
4550
4551// If rects are supplied in D3D12_DISCARD_REGION, below, the resource
4552// must have 2D subresources with all specified subresources the same dimension.
4553typedef struct D3D12_DISCARD_REGION
4554 {
4555 UINT NumRects;
4556 _In_reads_(NumRects) const D3D12_RECT *pRects;
4557 UINT FirstSubresource;
4558 UINT NumSubresources;
4559 } D3D12_DISCARD_REGION;
4560
4561typedef
4562enum D3D12_QUERY_HEAP_TYPE
4563 {
4564 D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
4565 D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
4566 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
4567 D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
4568 D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4,
4569 D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5,
4570 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7
4571 } D3D12_QUERY_HEAP_TYPE;
4572
4573typedef struct D3D12_QUERY_HEAP_DESC
4574 {
4575 D3D12_QUERY_HEAP_TYPE Type;
4576 UINT Count;
4577 UINT NodeMask;
4578 } D3D12_QUERY_HEAP_DESC;
4579
4580typedef
4581enum D3D12_QUERY_TYPE
4582 {
4583 D3D12_QUERY_TYPE_OCCLUSION = 0,
4584 D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
4585 D3D12_QUERY_TYPE_TIMESTAMP = 2,
4586 D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
4587 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
4588 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
4589 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
4590 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
4591 D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8,
4592 D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10
4593 } D3D12_QUERY_TYPE;
4594
4595typedef
4596enum D3D12_PREDICATION_OP
4597 {
4598 D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
4599 D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
4600 } D3D12_PREDICATION_OP;
4601
4602typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
4603 {
4604 UINT64 IAVertices;
4605 UINT64 IAPrimitives;
4606 UINT64 VSInvocations;
4607 UINT64 GSInvocations;
4608 UINT64 GSPrimitives;
4609 UINT64 CInvocations;
4610 UINT64 CPrimitives;
4611 UINT64 PSInvocations;
4612 UINT64 HSInvocations;
4613 UINT64 DSInvocations;
4614 UINT64 CSInvocations;
4615 } D3D12_QUERY_DATA_PIPELINE_STATISTICS;
4616
4617typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1
4618 {
4619 UINT64 IAVertices;
4620 UINT64 IAPrimitives;
4621 UINT64 VSInvocations;
4622 UINT64 GSInvocations;
4623 UINT64 GSPrimitives;
4624 UINT64 CInvocations;
4625 UINT64 CPrimitives;
4626 UINT64 PSInvocations;
4627 UINT64 HSInvocations;
4628 UINT64 DSInvocations;
4629 UINT64 CSInvocations;
4630 UINT64 ASInvocations;
4631 UINT64 MSInvocations;
4632 UINT64 MSPrimitives;
4633 } D3D12_QUERY_DATA_PIPELINE_STATISTICS1;
4634
4635typedef struct D3D12_QUERY_DATA_SO_STATISTICS
4636 {
4637 UINT64 NumPrimitivesWritten;
4638 UINT64 PrimitivesStorageNeeded;
4639 } D3D12_QUERY_DATA_SO_STATISTICS;
4640
4641typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
4642 {
4643 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4644 UINT64 SizeInBytes;
4645 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
4646 } D3D12_STREAM_OUTPUT_BUFFER_VIEW;
4647
4648typedef struct D3D12_DRAW_ARGUMENTS
4649 {
4650 UINT VertexCountPerInstance;
4651 UINT InstanceCount;
4652 UINT StartVertexLocation;
4653 UINT StartInstanceLocation;
4654 } D3D12_DRAW_ARGUMENTS;
4655
4656typedef struct D3D12_DRAW_INDEXED_ARGUMENTS
4657 {
4658 UINT IndexCountPerInstance;
4659 UINT InstanceCount;
4660 UINT StartIndexLocation;
4661 INT BaseVertexLocation;
4662 UINT StartInstanceLocation;
4663 } D3D12_DRAW_INDEXED_ARGUMENTS;
4664
4665typedef struct D3D12_DISPATCH_ARGUMENTS
4666 {
4667 UINT ThreadGroupCountX;
4668 UINT ThreadGroupCountY;
4669 UINT ThreadGroupCountZ;
4670 } D3D12_DISPATCH_ARGUMENTS;
4671
4672typedef struct D3D12_VERTEX_BUFFER_VIEW
4673 {
4674 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4675 UINT SizeInBytes;
4676 UINT StrideInBytes;
4677 } D3D12_VERTEX_BUFFER_VIEW;
4678
4679typedef struct D3D12_INDEX_BUFFER_VIEW
4680 {
4681 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4682 UINT SizeInBytes;
4683 DXGI_FORMAT Format;
4684 } D3D12_INDEX_BUFFER_VIEW;
4685
4686typedef
4687enum D3D12_INDIRECT_ARGUMENT_TYPE
4688 {
4689 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
4690 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) ,
4691 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) ,
4692 D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) ,
4693 D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) ,
4694 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) ,
4695 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) ,
4696 D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) ,
4697 D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) ,
4698 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = ( D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW + 1 ) ,
4699 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS + 1 ) ,
4700 D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH + 1 )
4701 } D3D12_INDIRECT_ARGUMENT_TYPE;
4702
4703typedef struct D3D12_INDIRECT_ARGUMENT_DESC
4704 {
4705 D3D12_INDIRECT_ARGUMENT_TYPE Type;
4706 union
4707 {
4708 struct
4709 {
4710 UINT Slot;
4711 } VertexBuffer;
4712 struct
4713 {
4714 UINT RootParameterIndex;
4715 UINT DestOffsetIn32BitValues;
4716 UINT Num32BitValuesToSet;
4717 } Constant;
4718 struct
4719 {
4720 UINT RootParameterIndex;
4721 } ConstantBufferView;
4722 struct
4723 {
4724 UINT RootParameterIndex;
4725 } ShaderResourceView;
4726 struct
4727 {
4728 UINT RootParameterIndex;
4729 } UnorderedAccessView;
4730 struct
4731 {
4732 UINT RootParameterIndex;
4733 UINT DestOffsetIn32BitValues;
4734 } IncrementingConstant;
4735 } ;
4736 } D3D12_INDIRECT_ARGUMENT_DESC;
4737
4738typedef struct D3D12_COMMAND_SIGNATURE_DESC
4739 {
4740 UINT ByteStride;
4741 UINT NumArgumentDescs;
4742 _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
4743 UINT NodeMask;
4744 } D3D12_COMMAND_SIGNATURE_DESC;
4745
4746
4747
4748
4749extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec;
4750extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec;
4751
4752#ifndef __ID3D12Pageable_INTERFACE_DEFINED__
4753#define __ID3D12Pageable_INTERFACE_DEFINED__
4754
4755/* interface ID3D12Pageable */
4756/* [unique][local][object][uuid] */
4757
4758
4759EXTERN_C const IID IID_ID3D12Pageable;
4760
4761#if defined(__cplusplus) && !defined(CINTERFACE)
4762
4763 MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
4764 ID3D12Pageable : public ID3D12DeviceChild
4765 {
4766 public:
4767 };
4768
4769
4770#else /* C style interface */
4771
4772 typedef struct ID3D12PageableVtbl
4773 {
4774 BEGIN_INTERFACE
4775
4776 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4777 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4778 ID3D12Pageable * This,
4779 REFIID riid,
4780 _COM_Outptr_ void **ppvObject);
4781
4782 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4783 ULONG ( STDMETHODCALLTYPE *AddRef )(
4784 ID3D12Pageable * This);
4785
4786 DECLSPEC_XFGVIRT(IUnknown, Release)
4787 ULONG ( STDMETHODCALLTYPE *Release )(
4788 ID3D12Pageable * This);
4789
4790 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4791 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4792 ID3D12Pageable * This,
4793 _In_ REFGUID guid,
4794 _Inout_ UINT *pDataSize,
4795 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4796
4797 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4798 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4799 ID3D12Pageable * This,
4800 _In_ REFGUID guid,
4801 _In_ UINT DataSize,
4802 _In_reads_bytes_opt_( DataSize ) const void *pData);
4803
4804 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4805 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4806 ID3D12Pageable * This,
4807 _In_ REFGUID guid,
4808 _In_opt_ const IUnknown *pData);
4809
4810 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4811 HRESULT ( STDMETHODCALLTYPE *SetName )(
4812 ID3D12Pageable * This,
4813 _In_z_ LPCWSTR Name);
4814
4815 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4816 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4817 ID3D12Pageable * This,
4818 REFIID riid,
4819 _COM_Outptr_opt_ void **ppvDevice);
4820
4821 END_INTERFACE
4822 } ID3D12PageableVtbl;
4823
4824 interface ID3D12Pageable
4825 {
4826 CONST_VTBL struct ID3D12PageableVtbl *lpVtbl;
4827 };
4828
4829
4830
4831#ifdef COBJMACROS
4832
4833
4834#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \
4835 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4836
4837#define ID3D12Pageable_AddRef(This) \
4838 ( (This)->lpVtbl -> AddRef(This) )
4839
4840#define ID3D12Pageable_Release(This) \
4841 ( (This)->lpVtbl -> Release(This) )
4842
4843
4844#define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \
4845 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4846
4847#define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \
4848 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4849
4850#define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \
4851 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4852
4853#define ID3D12Pageable_SetName(This,Name) \
4854 ( (This)->lpVtbl -> SetName(This,Name) )
4855
4856
4857#define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \
4858 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4859
4860
4861#endif /* COBJMACROS */
4862
4863
4864#endif /* C style interface */
4865
4866
4867
4868
4869#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */
4870
4871
4872#ifndef __ID3D12Heap_INTERFACE_DEFINED__
4873#define __ID3D12Heap_INTERFACE_DEFINED__
4874
4875/* interface ID3D12Heap */
4876/* [unique][local][object][uuid] */
4877
4878
4879EXTERN_C const IID IID_ID3D12Heap;
4880
4881#if defined(__cplusplus) && !defined(CINTERFACE)
4882
4883 MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
4884 ID3D12Heap : public ID3D12Pageable
4885 {
4886 public:
4887#if defined(_MSC_VER) || !defined(_WIN32)
4888 virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
4889#else
4890 virtual D3D12_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
4891 D3D12_HEAP_DESC * RetVal) = 0;
4892#endif
4893
4894 };
4895
4896
4897#else /* C style interface */
4898
4899 typedef struct ID3D12HeapVtbl
4900 {
4901 BEGIN_INTERFACE
4902
4903 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4904 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4905 ID3D12Heap * This,
4906 REFIID riid,
4907 _COM_Outptr_ void **ppvObject);
4908
4909 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4910 ULONG ( STDMETHODCALLTYPE *AddRef )(
4911 ID3D12Heap * This);
4912
4913 DECLSPEC_XFGVIRT(IUnknown, Release)
4914 ULONG ( STDMETHODCALLTYPE *Release )(
4915 ID3D12Heap * This);
4916
4917 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4918 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4919 ID3D12Heap * This,
4920 _In_ REFGUID guid,
4921 _Inout_ UINT *pDataSize,
4922 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4923
4924 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4925 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4926 ID3D12Heap * This,
4927 _In_ REFGUID guid,
4928 _In_ UINT DataSize,
4929 _In_reads_bytes_opt_( DataSize ) const void *pData);
4930
4931 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4932 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4933 ID3D12Heap * This,
4934 _In_ REFGUID guid,
4935 _In_opt_ const IUnknown *pData);
4936
4937 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4938 HRESULT ( STDMETHODCALLTYPE *SetName )(
4939 ID3D12Heap * This,
4940 _In_z_ LPCWSTR Name);
4941
4942 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4943 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4944 ID3D12Heap * This,
4945 REFIID riid,
4946 _COM_Outptr_opt_ void **ppvDevice);
4947
4948 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
4949#if !defined(_WIN32)
4950 D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
4951 ID3D12Heap * This);
4952
4953#else
4954 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
4955 ID3D12Heap * This,
4956 D3D12_HEAP_DESC * RetVal);
4957
4958#endif
4959
4960 END_INTERFACE
4961 } ID3D12HeapVtbl;
4962
4963 interface ID3D12Heap
4964 {
4965 CONST_VTBL struct ID3D12HeapVtbl *lpVtbl;
4966 };
4967
4968
4969
4970#ifdef COBJMACROS
4971
4972
4973#define ID3D12Heap_QueryInterface(This,riid,ppvObject) \
4974 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4975
4976#define ID3D12Heap_AddRef(This) \
4977 ( (This)->lpVtbl -> AddRef(This) )
4978
4979#define ID3D12Heap_Release(This) \
4980 ( (This)->lpVtbl -> Release(This) )
4981
4982
4983#define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \
4984 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4985
4986#define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \
4987 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4988
4989#define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \
4990 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4991
4992#define ID3D12Heap_SetName(This,Name) \
4993 ( (This)->lpVtbl -> SetName(This,Name) )
4994
4995
4996#define ID3D12Heap_GetDevice(This,riid,ppvDevice) \
4997 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4998
4999
5000#if !defined(_WIN32)
5001
5002#define ID3D12Heap_GetDesc(This) \
5003 ( (This)->lpVtbl -> GetDesc(This) )
5004#else
5005#define ID3D12Heap_GetDesc(This,RetVal) \
5006 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
5007#endif
5008
5009#endif /* COBJMACROS */
5010
5011
5012#endif /* C style interface */
5013
5014
5015
5016
5017#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
5018
5019
5020#ifndef __ID3D12Resource_INTERFACE_DEFINED__
5021#define __ID3D12Resource_INTERFACE_DEFINED__
5022
5023/* interface ID3D12Resource */
5024/* [unique][local][object][uuid] */
5025
5026
5027EXTERN_C const IID IID_ID3D12Resource;
5028
5029#if defined(__cplusplus) && !defined(CINTERFACE)
5030
5031 MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
5032 ID3D12Resource : public ID3D12Pageable
5033 {
5034 public:
5035 virtual HRESULT STDMETHODCALLTYPE Map(
5036 UINT Subresource,
5037 _In_opt_ const D3D12_RANGE *pReadRange,
5038 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0;
5039
5040 virtual void STDMETHODCALLTYPE Unmap(
5041 UINT Subresource,
5042 _In_opt_ const D3D12_RANGE *pWrittenRange) = 0;
5043
5044#if defined(_MSC_VER) || !defined(_WIN32)
5045 virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
5046#else
5047 virtual D3D12_RESOURCE_DESC *STDMETHODCALLTYPE GetDesc(
5048 D3D12_RESOURCE_DESC * RetVal) = 0;
5049#endif
5050
5051 virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0;
5052
5053 virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
5054 UINT DstSubresource,
5055 _In_opt_ const D3D12_BOX *pDstBox,
5056 _In_ const void *pSrcData,
5057 UINT SrcRowPitch,
5058 UINT SrcDepthPitch) = 0;
5059
5060 virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
5061 _Out_ void *pDstData,
5062 UINT DstRowPitch,
5063 UINT DstDepthPitch,
5064 UINT SrcSubresource,
5065 _In_opt_ const D3D12_BOX *pSrcBox) = 0;
5066
5067 virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
5068 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
5069 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0;
5070
5071 };
5072
5073
5074#else /* C style interface */
5075
5076 typedef struct ID3D12ResourceVtbl
5077 {
5078 BEGIN_INTERFACE
5079
5080 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5081 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5082 ID3D12Resource * This,
5083 REFIID riid,
5084 _COM_Outptr_ void **ppvObject);
5085
5086 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5087 ULONG ( STDMETHODCALLTYPE *AddRef )(
5088 ID3D12Resource * This);
5089
5090 DECLSPEC_XFGVIRT(IUnknown, Release)
5091 ULONG ( STDMETHODCALLTYPE *Release )(
5092 ID3D12Resource * This);
5093
5094 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5095 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5096 ID3D12Resource * This,
5097 _In_ REFGUID guid,
5098 _Inout_ UINT *pDataSize,
5099 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5100
5101 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5102 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5103 ID3D12Resource * This,
5104 _In_ REFGUID guid,
5105 _In_ UINT DataSize,
5106 _In_reads_bytes_opt_( DataSize ) const void *pData);
5107
5108 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5109 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5110 ID3D12Resource * This,
5111 _In_ REFGUID guid,
5112 _In_opt_ const IUnknown *pData);
5113
5114 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5115 HRESULT ( STDMETHODCALLTYPE *SetName )(
5116 ID3D12Resource * This,
5117 _In_z_ LPCWSTR Name);
5118
5119 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5120 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5121 ID3D12Resource * This,
5122 REFIID riid,
5123 _COM_Outptr_opt_ void **ppvDevice);
5124
5125 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
5126 HRESULT ( STDMETHODCALLTYPE *Map )(
5127 ID3D12Resource * This,
5128 UINT Subresource,
5129 _In_opt_ const D3D12_RANGE *pReadRange,
5130 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
5131
5132 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
5133 void ( STDMETHODCALLTYPE *Unmap )(
5134 ID3D12Resource * This,
5135 UINT Subresource,
5136 _In_opt_ const D3D12_RANGE *pWrittenRange);
5137
5138 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
5139#if !defined(_WIN32)
5140 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
5141 ID3D12Resource * This);
5142
5143#else
5144 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
5145 ID3D12Resource * This,
5146 D3D12_RESOURCE_DESC * RetVal);
5147
5148#endif
5149
5150 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
5151 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
5152 ID3D12Resource * This);
5153
5154 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
5155 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
5156 ID3D12Resource * This,
5157 UINT DstSubresource,
5158 _In_opt_ const D3D12_BOX *pDstBox,
5159 _In_ const void *pSrcData,
5160 UINT SrcRowPitch,
5161 UINT SrcDepthPitch);
5162
5163 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
5164 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
5165 ID3D12Resource * This,
5166 _Out_ void *pDstData,
5167 UINT DstRowPitch,
5168 UINT DstDepthPitch,
5169 UINT SrcSubresource,
5170 _In_opt_ const D3D12_BOX *pSrcBox);
5171
5172 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
5173 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
5174 ID3D12Resource * This,
5175 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
5176 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
5177
5178 END_INTERFACE
5179 } ID3D12ResourceVtbl;
5180
5181 interface ID3D12Resource
5182 {
5183 CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl;
5184 };
5185
5186
5187
5188#ifdef COBJMACROS
5189
5190
5191#define ID3D12Resource_QueryInterface(This,riid,ppvObject) \
5192 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5193
5194#define ID3D12Resource_AddRef(This) \
5195 ( (This)->lpVtbl -> AddRef(This) )
5196
5197#define ID3D12Resource_Release(This) \
5198 ( (This)->lpVtbl -> Release(This) )
5199
5200
5201#define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \
5202 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5203
5204#define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \
5205 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5206
5207#define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \
5208 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5209
5210#define ID3D12Resource_SetName(This,Name) \
5211 ( (This)->lpVtbl -> SetName(This,Name) )
5212
5213
5214#define ID3D12Resource_GetDevice(This,riid,ppvDevice) \
5215 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5216
5217
5218
5219#define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \
5220 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
5221
5222#define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \
5223 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
5224#if !defined(_WIN32)
5225
5226#define ID3D12Resource_GetDesc(This) \
5227 ( (This)->lpVtbl -> GetDesc(This) )
5228#else
5229#define ID3D12Resource_GetDesc(This,RetVal) \
5230 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
5231#endif
5232
5233#define ID3D12Resource_GetGPUVirtualAddress(This) \
5234 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
5235
5236#define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
5237 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
5238
5239#define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
5240 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
5241
5242#define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
5243 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
5244
5245#endif /* COBJMACROS */
5246
5247
5248#endif /* C style interface */
5249
5250
5251
5252
5253#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
5254
5255
5256#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
5257#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
5258
5259/* interface ID3D12CommandAllocator */
5260/* [unique][local][object][uuid] */
5261
5262
5263EXTERN_C const IID IID_ID3D12CommandAllocator;
5264
5265#if defined(__cplusplus) && !defined(CINTERFACE)
5266
5267 MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
5268 ID3D12CommandAllocator : public ID3D12Pageable
5269 {
5270 public:
5271 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
5272
5273 };
5274
5275
5276#else /* C style interface */
5277
5278 typedef struct ID3D12CommandAllocatorVtbl
5279 {
5280 BEGIN_INTERFACE
5281
5282 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5283 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5284 ID3D12CommandAllocator * This,
5285 REFIID riid,
5286 _COM_Outptr_ void **ppvObject);
5287
5288 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5289 ULONG ( STDMETHODCALLTYPE *AddRef )(
5290 ID3D12CommandAllocator * This);
5291
5292 DECLSPEC_XFGVIRT(IUnknown, Release)
5293 ULONG ( STDMETHODCALLTYPE *Release )(
5294 ID3D12CommandAllocator * This);
5295
5296 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5297 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5298 ID3D12CommandAllocator * This,
5299 _In_ REFGUID guid,
5300 _Inout_ UINT *pDataSize,
5301 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5302
5303 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5304 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5305 ID3D12CommandAllocator * This,
5306 _In_ REFGUID guid,
5307 _In_ UINT DataSize,
5308 _In_reads_bytes_opt_( DataSize ) const void *pData);
5309
5310 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5311 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5312 ID3D12CommandAllocator * This,
5313 _In_ REFGUID guid,
5314 _In_opt_ const IUnknown *pData);
5315
5316 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5317 HRESULT ( STDMETHODCALLTYPE *SetName )(
5318 ID3D12CommandAllocator * This,
5319 _In_z_ LPCWSTR Name);
5320
5321 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5322 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5323 ID3D12CommandAllocator * This,
5324 REFIID riid,
5325 _COM_Outptr_opt_ void **ppvDevice);
5326
5327 DECLSPEC_XFGVIRT(ID3D12CommandAllocator, Reset)
5328 HRESULT ( STDMETHODCALLTYPE *Reset )(
5329 ID3D12CommandAllocator * This);
5330
5331 END_INTERFACE
5332 } ID3D12CommandAllocatorVtbl;
5333
5334 interface ID3D12CommandAllocator
5335 {
5336 CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl;
5337 };
5338
5339
5340
5341#ifdef COBJMACROS
5342
5343
5344#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \
5345 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5346
5347#define ID3D12CommandAllocator_AddRef(This) \
5348 ( (This)->lpVtbl -> AddRef(This) )
5349
5350#define ID3D12CommandAllocator_Release(This) \
5351 ( (This)->lpVtbl -> Release(This) )
5352
5353
5354#define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \
5355 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5356
5357#define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \
5358 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5359
5360#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \
5361 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5362
5363#define ID3D12CommandAllocator_SetName(This,Name) \
5364 ( (This)->lpVtbl -> SetName(This,Name) )
5365
5366
5367#define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \
5368 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5369
5370
5371
5372#define ID3D12CommandAllocator_Reset(This) \
5373 ( (This)->lpVtbl -> Reset(This) )
5374
5375#endif /* COBJMACROS */
5376
5377
5378#endif /* C style interface */
5379
5380
5381
5382
5383#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
5384
5385
5386#ifndef __ID3D12Fence_INTERFACE_DEFINED__
5387#define __ID3D12Fence_INTERFACE_DEFINED__
5388
5389/* interface ID3D12Fence */
5390/* [unique][local][object][uuid] */
5391
5392
5393EXTERN_C const IID IID_ID3D12Fence;
5394
5395#if defined(__cplusplus) && !defined(CINTERFACE)
5396
5397 MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
5398 ID3D12Fence : public ID3D12Pageable
5399 {
5400 public:
5401 virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0;
5402
5403 virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
5404 UINT64 Value,
5405 HANDLE hEvent) = 0;
5406
5407 virtual HRESULT STDMETHODCALLTYPE Signal(
5408 UINT64 Value) = 0;
5409
5410 };
5411
5412
5413#else /* C style interface */
5414
5415 typedef struct ID3D12FenceVtbl
5416 {
5417 BEGIN_INTERFACE
5418
5419 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5420 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5421 ID3D12Fence * This,
5422 REFIID riid,
5423 _COM_Outptr_ void **ppvObject);
5424
5425 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5426 ULONG ( STDMETHODCALLTYPE *AddRef )(
5427 ID3D12Fence * This);
5428
5429 DECLSPEC_XFGVIRT(IUnknown, Release)
5430 ULONG ( STDMETHODCALLTYPE *Release )(
5431 ID3D12Fence * This);
5432
5433 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5434 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5435 ID3D12Fence * This,
5436 _In_ REFGUID guid,
5437 _Inout_ UINT *pDataSize,
5438 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5439
5440 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5441 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5442 ID3D12Fence * This,
5443 _In_ REFGUID guid,
5444 _In_ UINT DataSize,
5445 _In_reads_bytes_opt_( DataSize ) const void *pData);
5446
5447 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5448 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5449 ID3D12Fence * This,
5450 _In_ REFGUID guid,
5451 _In_opt_ const IUnknown *pData);
5452
5453 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5454 HRESULT ( STDMETHODCALLTYPE *SetName )(
5455 ID3D12Fence * This,
5456 _In_z_ LPCWSTR Name);
5457
5458 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5459 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5460 ID3D12Fence * This,
5461 REFIID riid,
5462 _COM_Outptr_opt_ void **ppvDevice);
5463
5464 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
5465 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
5466 ID3D12Fence * This);
5467
5468 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
5469 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
5470 ID3D12Fence * This,
5471 UINT64 Value,
5472 HANDLE hEvent);
5473
5474 DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
5475 HRESULT ( STDMETHODCALLTYPE *Signal )(
5476 ID3D12Fence * This,
5477 UINT64 Value);
5478
5479 END_INTERFACE
5480 } ID3D12FenceVtbl;
5481
5482 interface ID3D12Fence
5483 {
5484 CONST_VTBL struct ID3D12FenceVtbl *lpVtbl;
5485 };
5486
5487
5488
5489#ifdef COBJMACROS
5490
5491
5492#define ID3D12Fence_QueryInterface(This,riid,ppvObject) \
5493 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5494
5495#define ID3D12Fence_AddRef(This) \
5496 ( (This)->lpVtbl -> AddRef(This) )
5497
5498#define ID3D12Fence_Release(This) \
5499 ( (This)->lpVtbl -> Release(This) )
5500
5501
5502#define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \
5503 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5504
5505#define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \
5506 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5507
5508#define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \
5509 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5510
5511#define ID3D12Fence_SetName(This,Name) \
5512 ( (This)->lpVtbl -> SetName(This,Name) )
5513
5514
5515#define ID3D12Fence_GetDevice(This,riid,ppvDevice) \
5516 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5517
5518
5519
5520#define ID3D12Fence_GetCompletedValue(This) \
5521 ( (This)->lpVtbl -> GetCompletedValue(This) )
5522
5523#define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \
5524 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
5525
5526#define ID3D12Fence_Signal(This,Value) \
5527 ( (This)->lpVtbl -> Signal(This,Value) )
5528
5529#endif /* COBJMACROS */
5530
5531
5532#endif /* C style interface */
5533
5534
5535
5536
5537#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
5538
5539
5540#ifndef __ID3D12Fence1_INTERFACE_DEFINED__
5541#define __ID3D12Fence1_INTERFACE_DEFINED__
5542
5543/* interface ID3D12Fence1 */
5544/* [unique][local][object][uuid] */
5545
5546
5547EXTERN_C const IID IID_ID3D12Fence1;
5548
5549#if defined(__cplusplus) && !defined(CINTERFACE)
5550
5551 MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a")
5552 ID3D12Fence1 : public ID3D12Fence
5553 {
5554 public:
5555 virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( void) = 0;
5556
5557 };
5558
5559
5560#else /* C style interface */
5561
5562 typedef struct ID3D12Fence1Vtbl
5563 {
5564 BEGIN_INTERFACE
5565
5566 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5567 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5568 ID3D12Fence1 * This,
5569 REFIID riid,
5570 _COM_Outptr_ void **ppvObject);
5571
5572 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5573 ULONG ( STDMETHODCALLTYPE *AddRef )(
5574 ID3D12Fence1 * This);
5575
5576 DECLSPEC_XFGVIRT(IUnknown, Release)
5577 ULONG ( STDMETHODCALLTYPE *Release )(
5578 ID3D12Fence1 * This);
5579
5580 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5581 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5582 ID3D12Fence1 * This,
5583 _In_ REFGUID guid,
5584 _Inout_ UINT *pDataSize,
5585 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5586
5587 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5588 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5589 ID3D12Fence1 * This,
5590 _In_ REFGUID guid,
5591 _In_ UINT DataSize,
5592 _In_reads_bytes_opt_( DataSize ) const void *pData);
5593
5594 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5595 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5596 ID3D12Fence1 * This,
5597 _In_ REFGUID guid,
5598 _In_opt_ const IUnknown *pData);
5599
5600 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5601 HRESULT ( STDMETHODCALLTYPE *SetName )(
5602 ID3D12Fence1 * This,
5603 _In_z_ LPCWSTR Name);
5604
5605 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5606 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5607 ID3D12Fence1 * This,
5608 REFIID riid,
5609 _COM_Outptr_opt_ void **ppvDevice);
5610
5611 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
5612 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
5613 ID3D12Fence1 * This);
5614
5615 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
5616 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
5617 ID3D12Fence1 * This,
5618 UINT64 Value,
5619 HANDLE hEvent);
5620
5621 DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
5622 HRESULT ( STDMETHODCALLTYPE *Signal )(
5623 ID3D12Fence1 * This,
5624 UINT64 Value);
5625
5626 DECLSPEC_XFGVIRT(ID3D12Fence1, GetCreationFlags)
5627 D3D12_FENCE_FLAGS ( STDMETHODCALLTYPE *GetCreationFlags )(
5628 ID3D12Fence1 * This);
5629
5630 END_INTERFACE
5631 } ID3D12Fence1Vtbl;
5632
5633 interface ID3D12Fence1
5634 {
5635 CONST_VTBL struct ID3D12Fence1Vtbl *lpVtbl;
5636 };
5637
5638
5639
5640#ifdef COBJMACROS
5641
5642
5643#define ID3D12Fence1_QueryInterface(This,riid,ppvObject) \
5644 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5645
5646#define ID3D12Fence1_AddRef(This) \
5647 ( (This)->lpVtbl -> AddRef(This) )
5648
5649#define ID3D12Fence1_Release(This) \
5650 ( (This)->lpVtbl -> Release(This) )
5651
5652
5653#define ID3D12Fence1_GetPrivateData(This,guid,pDataSize,pData) \
5654 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5655
5656#define ID3D12Fence1_SetPrivateData(This,guid,DataSize,pData) \
5657 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5658
5659#define ID3D12Fence1_SetPrivateDataInterface(This,guid,pData) \
5660 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5661
5662#define ID3D12Fence1_SetName(This,Name) \
5663 ( (This)->lpVtbl -> SetName(This,Name) )
5664
5665
5666#define ID3D12Fence1_GetDevice(This,riid,ppvDevice) \
5667 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5668
5669
5670
5671#define ID3D12Fence1_GetCompletedValue(This) \
5672 ( (This)->lpVtbl -> GetCompletedValue(This) )
5673
5674#define ID3D12Fence1_SetEventOnCompletion(This,Value,hEvent) \
5675 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
5676
5677#define ID3D12Fence1_Signal(This,Value) \
5678 ( (This)->lpVtbl -> Signal(This,Value) )
5679
5680
5681#define ID3D12Fence1_GetCreationFlags(This) \
5682 ( (This)->lpVtbl -> GetCreationFlags(This) )
5683
5684#endif /* COBJMACROS */
5685
5686
5687#endif /* C style interface */
5688
5689
5690
5691
5692#endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */
5693
5694
5695#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
5696#define __ID3D12PipelineState_INTERFACE_DEFINED__
5697
5698/* interface ID3D12PipelineState */
5699/* [unique][local][object][uuid] */
5700
5701
5702EXTERN_C const IID IID_ID3D12PipelineState;
5703
5704#if defined(__cplusplus) && !defined(CINTERFACE)
5705
5706 MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
5707 ID3D12PipelineState : public ID3D12Pageable
5708 {
5709 public:
5710 virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
5711 _COM_Outptr_ ID3DBlob **ppBlob) = 0;
5712
5713 };
5714
5715
5716#else /* C style interface */
5717
5718 typedef struct ID3D12PipelineStateVtbl
5719 {
5720 BEGIN_INTERFACE
5721
5722 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5723 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5724 ID3D12PipelineState * This,
5725 REFIID riid,
5726 _COM_Outptr_ void **ppvObject);
5727
5728 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5729 ULONG ( STDMETHODCALLTYPE *AddRef )(
5730 ID3D12PipelineState * This);
5731
5732 DECLSPEC_XFGVIRT(IUnknown, Release)
5733 ULONG ( STDMETHODCALLTYPE *Release )(
5734 ID3D12PipelineState * This);
5735
5736 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5737 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5738 ID3D12PipelineState * This,
5739 _In_ REFGUID guid,
5740 _Inout_ UINT *pDataSize,
5741 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5742
5743 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5744 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5745 ID3D12PipelineState * This,
5746 _In_ REFGUID guid,
5747 _In_ UINT DataSize,
5748 _In_reads_bytes_opt_( DataSize ) const void *pData);
5749
5750 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5751 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5752 ID3D12PipelineState * This,
5753 _In_ REFGUID guid,
5754 _In_opt_ const IUnknown *pData);
5755
5756 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5757 HRESULT ( STDMETHODCALLTYPE *SetName )(
5758 ID3D12PipelineState * This,
5759 _In_z_ LPCWSTR Name);
5760
5761 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5762 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5763 ID3D12PipelineState * This,
5764 REFIID riid,
5765 _COM_Outptr_opt_ void **ppvDevice);
5766
5767 DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob)
5768 HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )(
5769 ID3D12PipelineState * This,
5770 _COM_Outptr_ ID3DBlob **ppBlob);
5771
5772 END_INTERFACE
5773 } ID3D12PipelineStateVtbl;
5774
5775 interface ID3D12PipelineState
5776 {
5777 CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl;
5778 };
5779
5780
5781
5782#ifdef COBJMACROS
5783
5784
5785#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \
5786 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5787
5788#define ID3D12PipelineState_AddRef(This) \
5789 ( (This)->lpVtbl -> AddRef(This) )
5790
5791#define ID3D12PipelineState_Release(This) \
5792 ( (This)->lpVtbl -> Release(This) )
5793
5794
5795#define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \
5796 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5797
5798#define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \
5799 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5800
5801#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \
5802 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5803
5804#define ID3D12PipelineState_SetName(This,Name) \
5805 ( (This)->lpVtbl -> SetName(This,Name) )
5806
5807
5808#define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \
5809 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5810
5811
5812
5813#define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \
5814 ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) )
5815
5816#endif /* COBJMACROS */
5817
5818
5819#endif /* C style interface */
5820
5821
5822
5823
5824#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
5825
5826
5827#ifndef __ID3D12PipelineState1_INTERFACE_DEFINED__
5828#define __ID3D12PipelineState1_INTERFACE_DEFINED__
5829
5830/* interface ID3D12PipelineState1 */
5831/* [unique][local][object][uuid] */
5832
5833
5834EXTERN_C const IID IID_ID3D12PipelineState1;
5835
5836#if defined(__cplusplus) && !defined(CINTERFACE)
5837
5838 MIDL_INTERFACE("5646804c-9638-48f7-9182-b3ee5a6b60fb")
5839 ID3D12PipelineState1 : public ID3D12PipelineState
5840 {
5841 public:
5842 virtual HRESULT STDMETHODCALLTYPE GetRootSignature(
5843 REFIID riid,
5844 _COM_Outptr_ void **ppvRootSignature) = 0;
5845
5846 };
5847
5848
5849#else /* C style interface */
5850
5851 typedef struct ID3D12PipelineState1Vtbl
5852 {
5853 BEGIN_INTERFACE
5854
5855 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5856 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5857 ID3D12PipelineState1 * This,
5858 REFIID riid,
5859 _COM_Outptr_ void **ppvObject);
5860
5861 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5862 ULONG ( STDMETHODCALLTYPE *AddRef )(
5863 ID3D12PipelineState1 * This);
5864
5865 DECLSPEC_XFGVIRT(IUnknown, Release)
5866 ULONG ( STDMETHODCALLTYPE *Release )(
5867 ID3D12PipelineState1 * This);
5868
5869 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5870 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5871 ID3D12PipelineState1 * This,
5872 _In_ REFGUID guid,
5873 _Inout_ UINT *pDataSize,
5874 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5875
5876 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5877 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5878 ID3D12PipelineState1 * This,
5879 _In_ REFGUID guid,
5880 _In_ UINT DataSize,
5881 _In_reads_bytes_opt_( DataSize ) const void *pData);
5882
5883 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5884 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5885 ID3D12PipelineState1 * This,
5886 _In_ REFGUID guid,
5887 _In_opt_ const IUnknown *pData);
5888
5889 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5890 HRESULT ( STDMETHODCALLTYPE *SetName )(
5891 ID3D12PipelineState1 * This,
5892 _In_z_ LPCWSTR Name);
5893
5894 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5895 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5896 ID3D12PipelineState1 * This,
5897 REFIID riid,
5898 _COM_Outptr_opt_ void **ppvDevice);
5899
5900 DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob)
5901 HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )(
5902 ID3D12PipelineState1 * This,
5903 _COM_Outptr_ ID3DBlob **ppBlob);
5904
5905 DECLSPEC_XFGVIRT(ID3D12PipelineState1, GetRootSignature)
5906 HRESULT ( STDMETHODCALLTYPE *GetRootSignature )(
5907 ID3D12PipelineState1 * This,
5908 REFIID riid,
5909 _COM_Outptr_ void **ppvRootSignature);
5910
5911 END_INTERFACE
5912 } ID3D12PipelineState1Vtbl;
5913
5914 interface ID3D12PipelineState1
5915 {
5916 CONST_VTBL struct ID3D12PipelineState1Vtbl *lpVtbl;
5917 };
5918
5919
5920
5921#ifdef COBJMACROS
5922
5923
5924#define ID3D12PipelineState1_QueryInterface(This,riid,ppvObject) \
5925 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5926
5927#define ID3D12PipelineState1_AddRef(This) \
5928 ( (This)->lpVtbl -> AddRef(This) )
5929
5930#define ID3D12PipelineState1_Release(This) \
5931 ( (This)->lpVtbl -> Release(This) )
5932
5933
5934#define ID3D12PipelineState1_GetPrivateData(This,guid,pDataSize,pData) \
5935 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5936
5937#define ID3D12PipelineState1_SetPrivateData(This,guid,DataSize,pData) \
5938 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5939
5940#define ID3D12PipelineState1_SetPrivateDataInterface(This,guid,pData) \
5941 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5942
5943#define ID3D12PipelineState1_SetName(This,Name) \
5944 ( (This)->lpVtbl -> SetName(This,Name) )
5945
5946
5947#define ID3D12PipelineState1_GetDevice(This,riid,ppvDevice) \
5948 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5949
5950
5951
5952#define ID3D12PipelineState1_GetCachedBlob(This,ppBlob) \
5953 ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) )
5954
5955
5956#define ID3D12PipelineState1_GetRootSignature(This,riid,ppvRootSignature) \
5957 ( (This)->lpVtbl -> GetRootSignature(This,riid,ppvRootSignature) )
5958
5959#endif /* COBJMACROS */
5960
5961
5962#endif /* C style interface */
5963
5964
5965
5966
5967#endif /* __ID3D12PipelineState1_INTERFACE_DEFINED__ */
5968
5969
5970#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5971#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5972
5973/* interface ID3D12DescriptorHeap */
5974/* [unique][local][object][uuid] */
5975
5976
5977EXTERN_C const IID IID_ID3D12DescriptorHeap;
5978
5979#if defined(__cplusplus) && !defined(CINTERFACE)
5980
5981 MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
5982 ID3D12DescriptorHeap : public ID3D12Pageable
5983 {
5984 public:
5985#if defined(_MSC_VER) || !defined(_WIN32)
5986 virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
5987#else
5988 virtual D3D12_DESCRIPTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
5989 D3D12_DESCRIPTOR_HEAP_DESC * RetVal) = 0;
5990#endif
5991
5992#if defined(_MSC_VER) || !defined(_WIN32)
5993 virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0;
5994#else
5995 virtual D3D12_CPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
5996 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal) = 0;
5997#endif
5998
5999#if defined(_MSC_VER) || !defined(_WIN32)
6000 virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0;
6001#else
6002 virtual D3D12_GPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
6003 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal) = 0;
6004#endif
6005
6006 };
6007
6008
6009#else /* C style interface */
6010
6011 typedef struct ID3D12DescriptorHeapVtbl
6012 {
6013 BEGIN_INTERFACE
6014
6015 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6016 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6017 ID3D12DescriptorHeap * This,
6018 REFIID riid,
6019 _COM_Outptr_ void **ppvObject);
6020
6021 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6022 ULONG ( STDMETHODCALLTYPE *AddRef )(
6023 ID3D12DescriptorHeap * This);
6024
6025 DECLSPEC_XFGVIRT(IUnknown, Release)
6026 ULONG ( STDMETHODCALLTYPE *Release )(
6027 ID3D12DescriptorHeap * This);
6028
6029 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6030 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6031 ID3D12DescriptorHeap * This,
6032 _In_ REFGUID guid,
6033 _Inout_ UINT *pDataSize,
6034 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6035
6036 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6037 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6038 ID3D12DescriptorHeap * This,
6039 _In_ REFGUID guid,
6040 _In_ UINT DataSize,
6041 _In_reads_bytes_opt_( DataSize ) const void *pData);
6042
6043 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6044 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6045 ID3D12DescriptorHeap * This,
6046 _In_ REFGUID guid,
6047 _In_opt_ const IUnknown *pData);
6048
6049 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6050 HRESULT ( STDMETHODCALLTYPE *SetName )(
6051 ID3D12DescriptorHeap * This,
6052 _In_z_ LPCWSTR Name);
6053
6054 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6055 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6056 ID3D12DescriptorHeap * This,
6057 REFIID riid,
6058 _COM_Outptr_opt_ void **ppvDevice);
6059
6060 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetDesc)
6061#if !defined(_WIN32)
6062 D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
6063 ID3D12DescriptorHeap * This);
6064
6065#else
6066 D3D12_DESCRIPTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
6067 ID3D12DescriptorHeap * This,
6068 D3D12_DESCRIPTOR_HEAP_DESC * RetVal);
6069
6070#endif
6071
6072 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetCPUDescriptorHandleForHeapStart)
6073#if !defined(_WIN32)
6074 D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
6075 ID3D12DescriptorHeap * This);
6076
6077#else
6078 D3D12_CPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
6079 ID3D12DescriptorHeap * This,
6080 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal);
6081
6082#endif
6083
6084 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetGPUDescriptorHandleForHeapStart)
6085#if !defined(_WIN32)
6086 D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
6087 ID3D12DescriptorHeap * This);
6088
6089#else
6090 D3D12_GPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
6091 ID3D12DescriptorHeap * This,
6092 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal);
6093
6094#endif
6095
6096 END_INTERFACE
6097 } ID3D12DescriptorHeapVtbl;
6098
6099 interface ID3D12DescriptorHeap
6100 {
6101 CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl;
6102 };
6103
6104
6105
6106#ifdef COBJMACROS
6107
6108
6109#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \
6110 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6111
6112#define ID3D12DescriptorHeap_AddRef(This) \
6113 ( (This)->lpVtbl -> AddRef(This) )
6114
6115#define ID3D12DescriptorHeap_Release(This) \
6116 ( (This)->lpVtbl -> Release(This) )
6117
6118
6119#define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \
6120 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6121
6122#define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \
6123 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6124
6125#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \
6126 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6127
6128#define ID3D12DescriptorHeap_SetName(This,Name) \
6129 ( (This)->lpVtbl -> SetName(This,Name) )
6130
6131
6132#define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \
6133 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6134
6135
6136#if !defined(_WIN32)
6137
6138#define ID3D12DescriptorHeap_GetDesc(This) \
6139 ( (This)->lpVtbl -> GetDesc(This) )
6140#else
6141#define ID3D12DescriptorHeap_GetDesc(This,RetVal) \
6142 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
6143#endif
6144#if !defined(_WIN32)
6145
6146#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \
6147 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) )
6148#else
6149#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This,RetVal) \
6150 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This,RetVal) )
6151#endif
6152#if !defined(_WIN32)
6153
6154#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \
6155 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) )
6156#else
6157#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This,RetVal) \
6158 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This,RetVal) )
6159#endif
6160
6161#endif /* COBJMACROS */
6162
6163
6164#endif /* C style interface */
6165
6166
6167
6168
6169#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
6170
6171
6172#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
6173#define __ID3D12QueryHeap_INTERFACE_DEFINED__
6174
6175/* interface ID3D12QueryHeap */
6176/* [unique][local][object][uuid] */
6177
6178
6179EXTERN_C const IID IID_ID3D12QueryHeap;
6180
6181#if defined(__cplusplus) && !defined(CINTERFACE)
6182
6183 MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
6184 ID3D12QueryHeap : public ID3D12Pageable
6185 {
6186 public:
6187 };
6188
6189
6190#else /* C style interface */
6191
6192 typedef struct ID3D12QueryHeapVtbl
6193 {
6194 BEGIN_INTERFACE
6195
6196 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6197 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6198 ID3D12QueryHeap * This,
6199 REFIID riid,
6200 _COM_Outptr_ void **ppvObject);
6201
6202 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6203 ULONG ( STDMETHODCALLTYPE *AddRef )(
6204 ID3D12QueryHeap * This);
6205
6206 DECLSPEC_XFGVIRT(IUnknown, Release)
6207 ULONG ( STDMETHODCALLTYPE *Release )(
6208 ID3D12QueryHeap * This);
6209
6210 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6211 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6212 ID3D12QueryHeap * This,
6213 _In_ REFGUID guid,
6214 _Inout_ UINT *pDataSize,
6215 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6216
6217 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6218 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6219 ID3D12QueryHeap * This,
6220 _In_ REFGUID guid,
6221 _In_ UINT DataSize,
6222 _In_reads_bytes_opt_( DataSize ) const void *pData);
6223
6224 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6225 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6226 ID3D12QueryHeap * This,
6227 _In_ REFGUID guid,
6228 _In_opt_ const IUnknown *pData);
6229
6230 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6231 HRESULT ( STDMETHODCALLTYPE *SetName )(
6232 ID3D12QueryHeap * This,
6233 _In_z_ LPCWSTR Name);
6234
6235 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6236 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6237 ID3D12QueryHeap * This,
6238 REFIID riid,
6239 _COM_Outptr_opt_ void **ppvDevice);
6240
6241 END_INTERFACE
6242 } ID3D12QueryHeapVtbl;
6243
6244 interface ID3D12QueryHeap
6245 {
6246 CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl;
6247 };
6248
6249
6250
6251#ifdef COBJMACROS
6252
6253
6254#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \
6255 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6256
6257#define ID3D12QueryHeap_AddRef(This) \
6258 ( (This)->lpVtbl -> AddRef(This) )
6259
6260#define ID3D12QueryHeap_Release(This) \
6261 ( (This)->lpVtbl -> Release(This) )
6262
6263
6264#define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \
6265 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6266
6267#define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \
6268 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6269
6270#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \
6271 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6272
6273#define ID3D12QueryHeap_SetName(This,Name) \
6274 ( (This)->lpVtbl -> SetName(This,Name) )
6275
6276
6277#define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \
6278 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6279
6280
6281
6282#endif /* COBJMACROS */
6283
6284
6285#endif /* C style interface */
6286
6287
6288
6289
6290#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
6291
6292
6293#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__
6294#define __ID3D12CommandSignature_INTERFACE_DEFINED__
6295
6296/* interface ID3D12CommandSignature */
6297/* [unique][local][object][uuid] */
6298
6299
6300EXTERN_C const IID IID_ID3D12CommandSignature;
6301
6302#if defined(__cplusplus) && !defined(CINTERFACE)
6303
6304 MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1")
6305 ID3D12CommandSignature : public ID3D12Pageable
6306 {
6307 public:
6308 };
6309
6310
6311#else /* C style interface */
6312
6313 typedef struct ID3D12CommandSignatureVtbl
6314 {
6315 BEGIN_INTERFACE
6316
6317 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6318 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6319 ID3D12CommandSignature * This,
6320 REFIID riid,
6321 _COM_Outptr_ void **ppvObject);
6322
6323 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6324 ULONG ( STDMETHODCALLTYPE *AddRef )(
6325 ID3D12CommandSignature * This);
6326
6327 DECLSPEC_XFGVIRT(IUnknown, Release)
6328 ULONG ( STDMETHODCALLTYPE *Release )(
6329 ID3D12CommandSignature * This);
6330
6331 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6332 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6333 ID3D12CommandSignature * This,
6334 _In_ REFGUID guid,
6335 _Inout_ UINT *pDataSize,
6336 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6337
6338 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6339 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6340 ID3D12CommandSignature * This,
6341 _In_ REFGUID guid,
6342 _In_ UINT DataSize,
6343 _In_reads_bytes_opt_( DataSize ) const void *pData);
6344
6345 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6346 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6347 ID3D12CommandSignature * This,
6348 _In_ REFGUID guid,
6349 _In_opt_ const IUnknown *pData);
6350
6351 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6352 HRESULT ( STDMETHODCALLTYPE *SetName )(
6353 ID3D12CommandSignature * This,
6354 _In_z_ LPCWSTR Name);
6355
6356 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6357 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6358 ID3D12CommandSignature * This,
6359 REFIID riid,
6360 _COM_Outptr_opt_ void **ppvDevice);
6361
6362 END_INTERFACE
6363 } ID3D12CommandSignatureVtbl;
6364
6365 interface ID3D12CommandSignature
6366 {
6367 CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl;
6368 };
6369
6370
6371
6372#ifdef COBJMACROS
6373
6374
6375#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \
6376 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6377
6378#define ID3D12CommandSignature_AddRef(This) \
6379 ( (This)->lpVtbl -> AddRef(This) )
6380
6381#define ID3D12CommandSignature_Release(This) \
6382 ( (This)->lpVtbl -> Release(This) )
6383
6384
6385#define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \
6386 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6387
6388#define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \
6389 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6390
6391#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \
6392 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6393
6394#define ID3D12CommandSignature_SetName(This,Name) \
6395 ( (This)->lpVtbl -> SetName(This,Name) )
6396
6397
6398#define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \
6399 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6400
6401
6402
6403#endif /* COBJMACROS */
6404
6405
6406#endif /* C style interface */
6407
6408
6409
6410
6411#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */
6412
6413
6414#ifndef __ID3D12CommandList_INTERFACE_DEFINED__
6415#define __ID3D12CommandList_INTERFACE_DEFINED__
6416
6417/* interface ID3D12CommandList */
6418/* [unique][local][object][uuid] */
6419
6420
6421EXTERN_C const IID IID_ID3D12CommandList;
6422
6423#if defined(__cplusplus) && !defined(CINTERFACE)
6424
6425 MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
6426 ID3D12CommandList : public ID3D12DeviceChild
6427 {
6428 public:
6429 virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0;
6430
6431 };
6432
6433
6434#else /* C style interface */
6435
6436 typedef struct ID3D12CommandListVtbl
6437 {
6438 BEGIN_INTERFACE
6439
6440 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6441 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6442 ID3D12CommandList * This,
6443 REFIID riid,
6444 _COM_Outptr_ void **ppvObject);
6445
6446 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6447 ULONG ( STDMETHODCALLTYPE *AddRef )(
6448 ID3D12CommandList * This);
6449
6450 DECLSPEC_XFGVIRT(IUnknown, Release)
6451 ULONG ( STDMETHODCALLTYPE *Release )(
6452 ID3D12CommandList * This);
6453
6454 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6455 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6456 ID3D12CommandList * This,
6457 _In_ REFGUID guid,
6458 _Inout_ UINT *pDataSize,
6459 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6460
6461 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6462 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6463 ID3D12CommandList * This,
6464 _In_ REFGUID guid,
6465 _In_ UINT DataSize,
6466 _In_reads_bytes_opt_( DataSize ) const void *pData);
6467
6468 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6469 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6470 ID3D12CommandList * This,
6471 _In_ REFGUID guid,
6472 _In_opt_ const IUnknown *pData);
6473
6474 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6475 HRESULT ( STDMETHODCALLTYPE *SetName )(
6476 ID3D12CommandList * This,
6477 _In_z_ LPCWSTR Name);
6478
6479 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6480 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6481 ID3D12CommandList * This,
6482 REFIID riid,
6483 _COM_Outptr_opt_ void **ppvDevice);
6484
6485 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6486 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6487 ID3D12CommandList * This);
6488
6489 END_INTERFACE
6490 } ID3D12CommandListVtbl;
6491
6492 interface ID3D12CommandList
6493 {
6494 CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl;
6495 };
6496
6497
6498
6499#ifdef COBJMACROS
6500
6501
6502#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \
6503 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6504
6505#define ID3D12CommandList_AddRef(This) \
6506 ( (This)->lpVtbl -> AddRef(This) )
6507
6508#define ID3D12CommandList_Release(This) \
6509 ( (This)->lpVtbl -> Release(This) )
6510
6511
6512#define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \
6513 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6514
6515#define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \
6516 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6517
6518#define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \
6519 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6520
6521#define ID3D12CommandList_SetName(This,Name) \
6522 ( (This)->lpVtbl -> SetName(This,Name) )
6523
6524
6525#define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \
6526 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6527
6528
6529#define ID3D12CommandList_GetType(This) \
6530 ( (This)->lpVtbl -> GetType(This) )
6531
6532#endif /* COBJMACROS */
6533
6534
6535#endif /* C style interface */
6536
6537
6538
6539
6540#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
6541
6542
6543#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
6544#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
6545
6546/* interface ID3D12GraphicsCommandList */
6547/* [unique][local][object][uuid] */
6548
6549
6550EXTERN_C const IID IID_ID3D12GraphicsCommandList;
6551
6552#if defined(__cplusplus) && !defined(CINTERFACE)
6553
6554 MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
6555 ID3D12GraphicsCommandList : public ID3D12CommandList
6556 {
6557 public:
6558 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
6559
6560 virtual HRESULT STDMETHODCALLTYPE Reset(
6561 _In_ ID3D12CommandAllocator *pAllocator,
6562 _In_opt_ ID3D12PipelineState *pInitialState) = 0;
6563
6564 virtual void STDMETHODCALLTYPE ClearState(
6565 _In_opt_ ID3D12PipelineState *pPipelineState) = 0;
6566
6567 virtual void STDMETHODCALLTYPE DrawInstanced(
6568 _In_ UINT VertexCountPerInstance,
6569 _In_ UINT InstanceCount,
6570 _In_ UINT StartVertexLocation,
6571 _In_ UINT StartInstanceLocation) = 0;
6572
6573 virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
6574 _In_ UINT IndexCountPerInstance,
6575 _In_ UINT InstanceCount,
6576 _In_ UINT StartIndexLocation,
6577 _In_ INT BaseVertexLocation,
6578 _In_ UINT StartInstanceLocation) = 0;
6579
6580 virtual void STDMETHODCALLTYPE Dispatch(
6581 _In_ UINT ThreadGroupCountX,
6582 _In_ UINT ThreadGroupCountY,
6583 _In_ UINT ThreadGroupCountZ) = 0;
6584
6585 virtual void STDMETHODCALLTYPE CopyBufferRegion(
6586 _In_ ID3D12Resource *pDstBuffer,
6587 UINT64 DstOffset,
6588 _In_ ID3D12Resource *pSrcBuffer,
6589 UINT64 SrcOffset,
6590 UINT64 NumBytes) = 0;
6591
6592 virtual void STDMETHODCALLTYPE CopyTextureRegion(
6593 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
6594 UINT DstX,
6595 UINT DstY,
6596 UINT DstZ,
6597 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
6598 _In_opt_ const D3D12_BOX *pSrcBox) = 0;
6599
6600 virtual void STDMETHODCALLTYPE CopyResource(
6601 _In_ ID3D12Resource *pDstResource,
6602 _In_ ID3D12Resource *pSrcResource) = 0;
6603
6604 virtual void STDMETHODCALLTYPE CopyTiles(
6605 _In_ ID3D12Resource *pTiledResource,
6606 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
6607 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
6608 _In_ ID3D12Resource *pBuffer,
6609 UINT64 BufferStartOffsetInBytes,
6610 D3D12_TILE_COPY_FLAGS Flags) = 0;
6611
6612 virtual void STDMETHODCALLTYPE ResolveSubresource(
6613 _In_ ID3D12Resource *pDstResource,
6614 _In_ UINT DstSubresource,
6615 _In_ ID3D12Resource *pSrcResource,
6616 _In_ UINT SrcSubresource,
6617 _In_ DXGI_FORMAT Format) = 0;
6618
6619 virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
6620 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0;
6621
6622 virtual void STDMETHODCALLTYPE RSSetViewports(
6623 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
6624 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0;
6625
6626 virtual void STDMETHODCALLTYPE RSSetScissorRects(
6627 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
6628 _In_reads_( NumRects) const D3D12_RECT *pRects) = 0;
6629
6630 virtual void STDMETHODCALLTYPE OMSetBlendFactor(
6631 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]) = 0;
6632
6633 virtual void STDMETHODCALLTYPE OMSetStencilRef(
6634 _In_ UINT StencilRef) = 0;
6635
6636 virtual void STDMETHODCALLTYPE SetPipelineState(
6637 _In_ ID3D12PipelineState *pPipelineState) = 0;
6638
6639 virtual void STDMETHODCALLTYPE ResourceBarrier(
6640 _In_ UINT NumBarriers,
6641 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
6642
6643 virtual void STDMETHODCALLTYPE ExecuteBundle(
6644 _In_ ID3D12GraphicsCommandList *pCommandList) = 0;
6645
6646 virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
6647 _In_ UINT NumDescriptorHeaps,
6648 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0;
6649
6650 virtual void STDMETHODCALLTYPE SetComputeRootSignature(
6651 _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
6652
6653 virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
6654 _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
6655
6656 virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
6657 _In_ UINT RootParameterIndex,
6658 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
6659
6660 virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
6661 _In_ UINT RootParameterIndex,
6662 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
6663
6664 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
6665 _In_ UINT RootParameterIndex,
6666 _In_ UINT SrcData,
6667 _In_ UINT DestOffsetIn32BitValues) = 0;
6668
6669 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
6670 _In_ UINT RootParameterIndex,
6671 _In_ UINT SrcData,
6672 _In_ UINT DestOffsetIn32BitValues) = 0;
6673
6674 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
6675 _In_ UINT RootParameterIndex,
6676 _In_ UINT Num32BitValuesToSet,
6677 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6678 _In_ UINT DestOffsetIn32BitValues) = 0;
6679
6680 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
6681 _In_ UINT RootParameterIndex,
6682 _In_ UINT Num32BitValuesToSet,
6683 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6684 _In_ UINT DestOffsetIn32BitValues) = 0;
6685
6686 virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
6687 _In_ UINT RootParameterIndex,
6688 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6689
6690 virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
6691 _In_ UINT RootParameterIndex,
6692 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6693
6694 virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
6695 _In_ UINT RootParameterIndex,
6696 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6697
6698 virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
6699 _In_ UINT RootParameterIndex,
6700 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6701
6702 virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
6703 _In_ UINT RootParameterIndex,
6704 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6705
6706 virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
6707 _In_ UINT RootParameterIndex,
6708 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6709
6710 virtual void STDMETHODCALLTYPE IASetIndexBuffer(
6711 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0;
6712
6713 virtual void STDMETHODCALLTYPE IASetVertexBuffers(
6714 _In_ UINT StartSlot,
6715 _In_ UINT NumViews,
6716 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0;
6717
6718 virtual void STDMETHODCALLTYPE SOSetTargets(
6719 _In_ UINT StartSlot,
6720 _In_ UINT NumViews,
6721 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0;
6722
6723 virtual void STDMETHODCALLTYPE OMSetRenderTargets(
6724 _In_ UINT NumRenderTargetDescriptors,
6725 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
6726 _In_ BOOL RTsSingleHandleToDescriptorRange,
6727 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0;
6728
6729 virtual void STDMETHODCALLTYPE ClearDepthStencilView(
6730 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
6731 _In_ D3D12_CLEAR_FLAGS ClearFlags,
6732 _In_ FLOAT Depth,
6733 _In_ UINT8 Stencil,
6734 _In_ UINT NumRects,
6735 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6736
6737 virtual void STDMETHODCALLTYPE ClearRenderTargetView(
6738 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
6739 _In_ const FLOAT ColorRGBA[ 4 ],
6740 _In_ UINT NumRects,
6741 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6742
6743 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
6744 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6745 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6746 _In_ ID3D12Resource *pResource,
6747 _In_ const UINT Values[ 4 ],
6748 _In_ UINT NumRects,
6749 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6750
6751 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
6752 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6753 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6754 _In_ ID3D12Resource *pResource,
6755 _In_ const FLOAT Values[ 4 ],
6756 _In_ UINT NumRects,
6757 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6758
6759 virtual void STDMETHODCALLTYPE DiscardResource(
6760 _In_ ID3D12Resource *pResource,
6761 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
6762
6763 virtual void STDMETHODCALLTYPE BeginQuery(
6764 _In_ ID3D12QueryHeap *pQueryHeap,
6765 _In_ D3D12_QUERY_TYPE Type,
6766 _In_ UINT Index) = 0;
6767
6768 virtual void STDMETHODCALLTYPE EndQuery(
6769 _In_ ID3D12QueryHeap *pQueryHeap,
6770 _In_ D3D12_QUERY_TYPE Type,
6771 _In_ UINT Index) = 0;
6772
6773 virtual void STDMETHODCALLTYPE ResolveQueryData(
6774 _In_ ID3D12QueryHeap *pQueryHeap,
6775 _In_ D3D12_QUERY_TYPE Type,
6776 _In_ UINT StartIndex,
6777 _In_ UINT NumQueries,
6778 _In_ ID3D12Resource *pDestinationBuffer,
6779 _In_ UINT64 AlignedDestinationBufferOffset) = 0;
6780
6781 virtual void STDMETHODCALLTYPE SetPredication(
6782 _In_opt_ ID3D12Resource *pBuffer,
6783 _In_ UINT64 AlignedBufferOffset,
6784 _In_ D3D12_PREDICATION_OP Operation) = 0;
6785
6786 virtual void STDMETHODCALLTYPE SetMarker(
6787 UINT Metadata,
6788 _In_reads_bytes_opt_(Size) const void *pData,
6789 UINT Size) = 0;
6790
6791 virtual void STDMETHODCALLTYPE BeginEvent(
6792 UINT Metadata,
6793 _In_reads_bytes_opt_(Size) const void *pData,
6794 UINT Size) = 0;
6795
6796 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
6797
6798 virtual void STDMETHODCALLTYPE ExecuteIndirect(
6799 _In_ ID3D12CommandSignature *pCommandSignature,
6800 _In_ UINT MaxCommandCount,
6801 _In_ ID3D12Resource *pArgumentBuffer,
6802 _In_ UINT64 ArgumentBufferOffset,
6803 _In_opt_ ID3D12Resource *pCountBuffer,
6804 _In_ UINT64 CountBufferOffset) = 0;
6805
6806 };
6807
6808
6809#else /* C style interface */
6810
6811 typedef struct ID3D12GraphicsCommandListVtbl
6812 {
6813 BEGIN_INTERFACE
6814
6815 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6816 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6817 ID3D12GraphicsCommandList * This,
6818 REFIID riid,
6819 _COM_Outptr_ void **ppvObject);
6820
6821 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6822 ULONG ( STDMETHODCALLTYPE *AddRef )(
6823 ID3D12GraphicsCommandList * This);
6824
6825 DECLSPEC_XFGVIRT(IUnknown, Release)
6826 ULONG ( STDMETHODCALLTYPE *Release )(
6827 ID3D12GraphicsCommandList * This);
6828
6829 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6830 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6831 ID3D12GraphicsCommandList * This,
6832 _In_ REFGUID guid,
6833 _Inout_ UINT *pDataSize,
6834 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6835
6836 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6837 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6838 ID3D12GraphicsCommandList * This,
6839 _In_ REFGUID guid,
6840 _In_ UINT DataSize,
6841 _In_reads_bytes_opt_( DataSize ) const void *pData);
6842
6843 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6844 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6845 ID3D12GraphicsCommandList * This,
6846 _In_ REFGUID guid,
6847 _In_opt_ const IUnknown *pData);
6848
6849 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6850 HRESULT ( STDMETHODCALLTYPE *SetName )(
6851 ID3D12GraphicsCommandList * This,
6852 _In_z_ LPCWSTR Name);
6853
6854 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6855 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6856 ID3D12GraphicsCommandList * This,
6857 REFIID riid,
6858 _COM_Outptr_opt_ void **ppvDevice);
6859
6860 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6861 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6862 ID3D12GraphicsCommandList * This);
6863
6864 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
6865 HRESULT ( STDMETHODCALLTYPE *Close )(
6866 ID3D12GraphicsCommandList * This);
6867
6868 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
6869 HRESULT ( STDMETHODCALLTYPE *Reset )(
6870 ID3D12GraphicsCommandList * This,
6871 _In_ ID3D12CommandAllocator *pAllocator,
6872 _In_opt_ ID3D12PipelineState *pInitialState);
6873
6874 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
6875 void ( STDMETHODCALLTYPE *ClearState )(
6876 ID3D12GraphicsCommandList * This,
6877 _In_opt_ ID3D12PipelineState *pPipelineState);
6878
6879 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
6880 void ( STDMETHODCALLTYPE *DrawInstanced )(
6881 ID3D12GraphicsCommandList * This,
6882 _In_ UINT VertexCountPerInstance,
6883 _In_ UINT InstanceCount,
6884 _In_ UINT StartVertexLocation,
6885 _In_ UINT StartInstanceLocation);
6886
6887 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
6888 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
6889 ID3D12GraphicsCommandList * This,
6890 _In_ UINT IndexCountPerInstance,
6891 _In_ UINT InstanceCount,
6892 _In_ UINT StartIndexLocation,
6893 _In_ INT BaseVertexLocation,
6894 _In_ UINT StartInstanceLocation);
6895
6896 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
6897 void ( STDMETHODCALLTYPE *Dispatch )(
6898 ID3D12GraphicsCommandList * This,
6899 _In_ UINT ThreadGroupCountX,
6900 _In_ UINT ThreadGroupCountY,
6901 _In_ UINT ThreadGroupCountZ);
6902
6903 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
6904 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
6905 ID3D12GraphicsCommandList * This,
6906 _In_ ID3D12Resource *pDstBuffer,
6907 UINT64 DstOffset,
6908 _In_ ID3D12Resource *pSrcBuffer,
6909 UINT64 SrcOffset,
6910 UINT64 NumBytes);
6911
6912 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
6913 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
6914 ID3D12GraphicsCommandList * This,
6915 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
6916 UINT DstX,
6917 UINT DstY,
6918 UINT DstZ,
6919 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
6920 _In_opt_ const D3D12_BOX *pSrcBox);
6921
6922 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
6923 void ( STDMETHODCALLTYPE *CopyResource )(
6924 ID3D12GraphicsCommandList * This,
6925 _In_ ID3D12Resource *pDstResource,
6926 _In_ ID3D12Resource *pSrcResource);
6927
6928 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
6929 void ( STDMETHODCALLTYPE *CopyTiles )(
6930 ID3D12GraphicsCommandList * This,
6931 _In_ ID3D12Resource *pTiledResource,
6932 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
6933 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
6934 _In_ ID3D12Resource *pBuffer,
6935 UINT64 BufferStartOffsetInBytes,
6936 D3D12_TILE_COPY_FLAGS Flags);
6937
6938 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
6939 void ( STDMETHODCALLTYPE *ResolveSubresource )(
6940 ID3D12GraphicsCommandList * This,
6941 _In_ ID3D12Resource *pDstResource,
6942 _In_ UINT DstSubresource,
6943 _In_ ID3D12Resource *pSrcResource,
6944 _In_ UINT SrcSubresource,
6945 _In_ DXGI_FORMAT Format);
6946
6947 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
6948 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
6949 ID3D12GraphicsCommandList * This,
6950 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
6951
6952 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
6953 void ( STDMETHODCALLTYPE *RSSetViewports )(
6954 ID3D12GraphicsCommandList * This,
6955 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
6956 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
6957
6958 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
6959 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
6960 ID3D12GraphicsCommandList * This,
6961 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
6962 _In_reads_( NumRects) const D3D12_RECT *pRects);
6963
6964 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
6965 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
6966 ID3D12GraphicsCommandList * This,
6967 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
6968
6969 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
6970 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
6971 ID3D12GraphicsCommandList * This,
6972 _In_ UINT StencilRef);
6973
6974 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
6975 void ( STDMETHODCALLTYPE *SetPipelineState )(
6976 ID3D12GraphicsCommandList * This,
6977 _In_ ID3D12PipelineState *pPipelineState);
6978
6979 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
6980 void ( STDMETHODCALLTYPE *ResourceBarrier )(
6981 ID3D12GraphicsCommandList * This,
6982 _In_ UINT NumBarriers,
6983 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
6984
6985 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
6986 void ( STDMETHODCALLTYPE *ExecuteBundle )(
6987 ID3D12GraphicsCommandList * This,
6988 _In_ ID3D12GraphicsCommandList *pCommandList);
6989
6990 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
6991 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
6992 ID3D12GraphicsCommandList * This,
6993 _In_ UINT NumDescriptorHeaps,
6994 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
6995
6996 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
6997 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
6998 ID3D12GraphicsCommandList * This,
6999 _In_opt_ ID3D12RootSignature *pRootSignature);
7000
7001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
7002 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
7003 ID3D12GraphicsCommandList * This,
7004 _In_opt_ ID3D12RootSignature *pRootSignature);
7005
7006 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
7007 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
7008 ID3D12GraphicsCommandList * This,
7009 _In_ UINT RootParameterIndex,
7010 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7011
7012 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
7013 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
7014 ID3D12GraphicsCommandList * This,
7015 _In_ UINT RootParameterIndex,
7016 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7017
7018 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
7019 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
7020 ID3D12GraphicsCommandList * This,
7021 _In_ UINT RootParameterIndex,
7022 _In_ UINT SrcData,
7023 _In_ UINT DestOffsetIn32BitValues);
7024
7025 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
7026 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
7027 ID3D12GraphicsCommandList * This,
7028 _In_ UINT RootParameterIndex,
7029 _In_ UINT SrcData,
7030 _In_ UINT DestOffsetIn32BitValues);
7031
7032 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
7033 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
7034 ID3D12GraphicsCommandList * This,
7035 _In_ UINT RootParameterIndex,
7036 _In_ UINT Num32BitValuesToSet,
7037 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7038 _In_ UINT DestOffsetIn32BitValues);
7039
7040 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
7041 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
7042 ID3D12GraphicsCommandList * This,
7043 _In_ UINT RootParameterIndex,
7044 _In_ UINT Num32BitValuesToSet,
7045 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7046 _In_ UINT DestOffsetIn32BitValues);
7047
7048 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
7049 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
7050 ID3D12GraphicsCommandList * This,
7051 _In_ UINT RootParameterIndex,
7052 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7053
7054 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
7055 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
7056 ID3D12GraphicsCommandList * This,
7057 _In_ UINT RootParameterIndex,
7058 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7059
7060 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
7061 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
7062 ID3D12GraphicsCommandList * This,
7063 _In_ UINT RootParameterIndex,
7064 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7065
7066 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
7067 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
7068 ID3D12GraphicsCommandList * This,
7069 _In_ UINT RootParameterIndex,
7070 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7071
7072 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
7073 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
7074 ID3D12GraphicsCommandList * This,
7075 _In_ UINT RootParameterIndex,
7076 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7077
7078 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
7079 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
7080 ID3D12GraphicsCommandList * This,
7081 _In_ UINT RootParameterIndex,
7082 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7083
7084 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
7085 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
7086 ID3D12GraphicsCommandList * This,
7087 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
7088
7089 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
7090 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
7091 ID3D12GraphicsCommandList * This,
7092 _In_ UINT StartSlot,
7093 _In_ UINT NumViews,
7094 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
7095
7096 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
7097 void ( STDMETHODCALLTYPE *SOSetTargets )(
7098 ID3D12GraphicsCommandList * This,
7099 _In_ UINT StartSlot,
7100 _In_ UINT NumViews,
7101 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
7102
7103 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
7104 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
7105 ID3D12GraphicsCommandList * This,
7106 _In_ UINT NumRenderTargetDescriptors,
7107 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
7108 _In_ BOOL RTsSingleHandleToDescriptorRange,
7109 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
7110
7111 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
7112 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
7113 ID3D12GraphicsCommandList * This,
7114 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
7115 _In_ D3D12_CLEAR_FLAGS ClearFlags,
7116 _In_ FLOAT Depth,
7117 _In_ UINT8 Stencil,
7118 _In_ UINT NumRects,
7119 _In_reads_(NumRects) const D3D12_RECT *pRects);
7120
7121 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
7122 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
7123 ID3D12GraphicsCommandList * This,
7124 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
7125 _In_ const FLOAT ColorRGBA[ 4 ],
7126 _In_ UINT NumRects,
7127 _In_reads_(NumRects) const D3D12_RECT *pRects);
7128
7129 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
7130 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
7131 ID3D12GraphicsCommandList * This,
7132 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7133 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7134 _In_ ID3D12Resource *pResource,
7135 _In_ const UINT Values[ 4 ],
7136 _In_ UINT NumRects,
7137 _In_reads_(NumRects) const D3D12_RECT *pRects);
7138
7139 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
7140 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
7141 ID3D12GraphicsCommandList * This,
7142 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7143 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7144 _In_ ID3D12Resource *pResource,
7145 _In_ const FLOAT Values[ 4 ],
7146 _In_ UINT NumRects,
7147 _In_reads_(NumRects) const D3D12_RECT *pRects);
7148
7149 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
7150 void ( STDMETHODCALLTYPE *DiscardResource )(
7151 ID3D12GraphicsCommandList * This,
7152 _In_ ID3D12Resource *pResource,
7153 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
7154
7155 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
7156 void ( STDMETHODCALLTYPE *BeginQuery )(
7157 ID3D12GraphicsCommandList * This,
7158 _In_ ID3D12QueryHeap *pQueryHeap,
7159 _In_ D3D12_QUERY_TYPE Type,
7160 _In_ UINT Index);
7161
7162 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
7163 void ( STDMETHODCALLTYPE *EndQuery )(
7164 ID3D12GraphicsCommandList * This,
7165 _In_ ID3D12QueryHeap *pQueryHeap,
7166 _In_ D3D12_QUERY_TYPE Type,
7167 _In_ UINT Index);
7168
7169 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
7170 void ( STDMETHODCALLTYPE *ResolveQueryData )(
7171 ID3D12GraphicsCommandList * This,
7172 _In_ ID3D12QueryHeap *pQueryHeap,
7173 _In_ D3D12_QUERY_TYPE Type,
7174 _In_ UINT StartIndex,
7175 _In_ UINT NumQueries,
7176 _In_ ID3D12Resource *pDestinationBuffer,
7177 _In_ UINT64 AlignedDestinationBufferOffset);
7178
7179 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
7180 void ( STDMETHODCALLTYPE *SetPredication )(
7181 ID3D12GraphicsCommandList * This,
7182 _In_opt_ ID3D12Resource *pBuffer,
7183 _In_ UINT64 AlignedBufferOffset,
7184 _In_ D3D12_PREDICATION_OP Operation);
7185
7186 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
7187 void ( STDMETHODCALLTYPE *SetMarker )(
7188 ID3D12GraphicsCommandList * This,
7189 UINT Metadata,
7190 _In_reads_bytes_opt_(Size) const void *pData,
7191 UINT Size);
7192
7193 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
7194 void ( STDMETHODCALLTYPE *BeginEvent )(
7195 ID3D12GraphicsCommandList * This,
7196 UINT Metadata,
7197 _In_reads_bytes_opt_(Size) const void *pData,
7198 UINT Size);
7199
7200 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
7201 void ( STDMETHODCALLTYPE *EndEvent )(
7202 ID3D12GraphicsCommandList * This);
7203
7204 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
7205 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
7206 ID3D12GraphicsCommandList * This,
7207 _In_ ID3D12CommandSignature *pCommandSignature,
7208 _In_ UINT MaxCommandCount,
7209 _In_ ID3D12Resource *pArgumentBuffer,
7210 _In_ UINT64 ArgumentBufferOffset,
7211 _In_opt_ ID3D12Resource *pCountBuffer,
7212 _In_ UINT64 CountBufferOffset);
7213
7214 END_INTERFACE
7215 } ID3D12GraphicsCommandListVtbl;
7216
7217 interface ID3D12GraphicsCommandList
7218 {
7219 CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl;
7220 };
7221
7222
7223
7224#ifdef COBJMACROS
7225
7226
7227#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \
7228 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7229
7230#define ID3D12GraphicsCommandList_AddRef(This) \
7231 ( (This)->lpVtbl -> AddRef(This) )
7232
7233#define ID3D12GraphicsCommandList_Release(This) \
7234 ( (This)->lpVtbl -> Release(This) )
7235
7236
7237#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \
7238 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7239
7240#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \
7241 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7242
7243#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \
7244 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7245
7246#define ID3D12GraphicsCommandList_SetName(This,Name) \
7247 ( (This)->lpVtbl -> SetName(This,Name) )
7248
7249
7250#define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \
7251 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7252
7253
7254#define ID3D12GraphicsCommandList_GetType(This) \
7255 ( (This)->lpVtbl -> GetType(This) )
7256
7257
7258#define ID3D12GraphicsCommandList_Close(This) \
7259 ( (This)->lpVtbl -> Close(This) )
7260
7261#define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \
7262 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
7263
7264#define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \
7265 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
7266
7267#define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
7268 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
7269
7270#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
7271 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
7272
7273#define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
7274 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
7275
7276#define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
7277 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
7278
7279#define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
7280 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
7281
7282#define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \
7283 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
7284
7285#define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
7286 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
7287
7288#define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
7289 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
7290
7291#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \
7292 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
7293
7294#define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \
7295 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
7296
7297#define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \
7298 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
7299
7300#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \
7301 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
7302
7303#define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \
7304 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
7305
7306#define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \
7307 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
7308
7309#define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
7310 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
7311
7312#define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \
7313 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
7314
7315#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
7316 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
7317
7318#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \
7319 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
7320
7321#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \
7322 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
7323
7324#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7325 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7326
7327#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7328 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7329
7330#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7331 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7332
7333#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7334 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7335
7336#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7337 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7338
7339#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7340 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7341
7342#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7343 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7344
7345#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7346 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7347
7348#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7349 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7350
7351#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7352 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7353
7354#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7355 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7356
7357#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7358 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7359
7360#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \
7361 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
7362
7363#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
7364 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
7365
7366#define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \
7367 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
7368
7369#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
7370 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
7371
7372#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
7373 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
7374
7375#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
7376 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
7377
7378#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7379 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7380
7381#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7382 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7383
7384#define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \
7385 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
7386
7387#define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
7388 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
7389
7390#define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \
7391 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
7392
7393#define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
7394 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
7395
7396#define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
7397 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
7398
7399#define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \
7400 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
7401
7402#define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \
7403 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
7404
7405#define ID3D12GraphicsCommandList_EndEvent(This) \
7406 ( (This)->lpVtbl -> EndEvent(This) )
7407
7408#define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
7409 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
7410
7411#endif /* COBJMACROS */
7412
7413
7414#endif /* C style interface */
7415
7416
7417
7418
7419#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
7420
7421
7422#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
7423#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
7424
7425/* interface ID3D12GraphicsCommandList1 */
7426/* [unique][local][object][uuid] */
7427
7428
7429EXTERN_C const IID IID_ID3D12GraphicsCommandList1;
7430
7431#if defined(__cplusplus) && !defined(CINTERFACE)
7432
7433 MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
7434 ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
7435 {
7436 public:
7437 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
7438 _In_ ID3D12Resource *pDstBuffer,
7439 UINT64 DstOffset,
7440 _In_ ID3D12Resource *pSrcBuffer,
7441 UINT64 SrcOffset,
7442 UINT Dependencies,
7443 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7444 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
7445
7446 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
7447 _In_ ID3D12Resource *pDstBuffer,
7448 UINT64 DstOffset,
7449 _In_ ID3D12Resource *pSrcBuffer,
7450 UINT64 SrcOffset,
7451 UINT Dependencies,
7452 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7453 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
7454
7455 virtual void STDMETHODCALLTYPE OMSetDepthBounds(
7456 _In_ FLOAT Min,
7457 _In_ FLOAT Max) = 0;
7458
7459 virtual void STDMETHODCALLTYPE SetSamplePositions(
7460 _In_ UINT NumSamplesPerPixel,
7461 _In_ UINT NumPixels,
7462 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0;
7463
7464 virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
7465 _In_ ID3D12Resource *pDstResource,
7466 _In_ UINT DstSubresource,
7467 _In_ UINT DstX,
7468 _In_ UINT DstY,
7469 _In_ ID3D12Resource *pSrcResource,
7470 _In_ UINT SrcSubresource,
7471 _In_opt_ D3D12_RECT *pSrcRect,
7472 _In_ DXGI_FORMAT Format,
7473 _In_ D3D12_RESOLVE_MODE ResolveMode) = 0;
7474
7475 virtual void STDMETHODCALLTYPE SetViewInstanceMask(
7476 _In_ UINT Mask) = 0;
7477
7478 };
7479
7480
7481#else /* C style interface */
7482
7483 typedef struct ID3D12GraphicsCommandList1Vtbl
7484 {
7485 BEGIN_INTERFACE
7486
7487 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
7488 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7489 ID3D12GraphicsCommandList1 * This,
7490 REFIID riid,
7491 _COM_Outptr_ void **ppvObject);
7492
7493 DECLSPEC_XFGVIRT(IUnknown, AddRef)
7494 ULONG ( STDMETHODCALLTYPE *AddRef )(
7495 ID3D12GraphicsCommandList1 * This);
7496
7497 DECLSPEC_XFGVIRT(IUnknown, Release)
7498 ULONG ( STDMETHODCALLTYPE *Release )(
7499 ID3D12GraphicsCommandList1 * This);
7500
7501 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
7502 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7503 ID3D12GraphicsCommandList1 * This,
7504 _In_ REFGUID guid,
7505 _Inout_ UINT *pDataSize,
7506 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
7507
7508 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
7509 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7510 ID3D12GraphicsCommandList1 * This,
7511 _In_ REFGUID guid,
7512 _In_ UINT DataSize,
7513 _In_reads_bytes_opt_( DataSize ) const void *pData);
7514
7515 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
7516 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7517 ID3D12GraphicsCommandList1 * This,
7518 _In_ REFGUID guid,
7519 _In_opt_ const IUnknown *pData);
7520
7521 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
7522 HRESULT ( STDMETHODCALLTYPE *SetName )(
7523 ID3D12GraphicsCommandList1 * This,
7524 _In_z_ LPCWSTR Name);
7525
7526 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
7527 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
7528 ID3D12GraphicsCommandList1 * This,
7529 REFIID riid,
7530 _COM_Outptr_opt_ void **ppvDevice);
7531
7532 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
7533 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
7534 ID3D12GraphicsCommandList1 * This);
7535
7536 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
7537 HRESULT ( STDMETHODCALLTYPE *Close )(
7538 ID3D12GraphicsCommandList1 * This);
7539
7540 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
7541 HRESULT ( STDMETHODCALLTYPE *Reset )(
7542 ID3D12GraphicsCommandList1 * This,
7543 _In_ ID3D12CommandAllocator *pAllocator,
7544 _In_opt_ ID3D12PipelineState *pInitialState);
7545
7546 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
7547 void ( STDMETHODCALLTYPE *ClearState )(
7548 ID3D12GraphicsCommandList1 * This,
7549 _In_opt_ ID3D12PipelineState *pPipelineState);
7550
7551 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
7552 void ( STDMETHODCALLTYPE *DrawInstanced )(
7553 ID3D12GraphicsCommandList1 * This,
7554 _In_ UINT VertexCountPerInstance,
7555 _In_ UINT InstanceCount,
7556 _In_ UINT StartVertexLocation,
7557 _In_ UINT StartInstanceLocation);
7558
7559 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
7560 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
7561 ID3D12GraphicsCommandList1 * This,
7562 _In_ UINT IndexCountPerInstance,
7563 _In_ UINT InstanceCount,
7564 _In_ UINT StartIndexLocation,
7565 _In_ INT BaseVertexLocation,
7566 _In_ UINT StartInstanceLocation);
7567
7568 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
7569 void ( STDMETHODCALLTYPE *Dispatch )(
7570 ID3D12GraphicsCommandList1 * This,
7571 _In_ UINT ThreadGroupCountX,
7572 _In_ UINT ThreadGroupCountY,
7573 _In_ UINT ThreadGroupCountZ);
7574
7575 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
7576 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
7577 ID3D12GraphicsCommandList1 * This,
7578 _In_ ID3D12Resource *pDstBuffer,
7579 UINT64 DstOffset,
7580 _In_ ID3D12Resource *pSrcBuffer,
7581 UINT64 SrcOffset,
7582 UINT64 NumBytes);
7583
7584 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
7585 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
7586 ID3D12GraphicsCommandList1 * This,
7587 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
7588 UINT DstX,
7589 UINT DstY,
7590 UINT DstZ,
7591 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
7592 _In_opt_ const D3D12_BOX *pSrcBox);
7593
7594 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
7595 void ( STDMETHODCALLTYPE *CopyResource )(
7596 ID3D12GraphicsCommandList1 * This,
7597 _In_ ID3D12Resource *pDstResource,
7598 _In_ ID3D12Resource *pSrcResource);
7599
7600 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
7601 void ( STDMETHODCALLTYPE *CopyTiles )(
7602 ID3D12GraphicsCommandList1 * This,
7603 _In_ ID3D12Resource *pTiledResource,
7604 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
7605 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
7606 _In_ ID3D12Resource *pBuffer,
7607 UINT64 BufferStartOffsetInBytes,
7608 D3D12_TILE_COPY_FLAGS Flags);
7609
7610 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
7611 void ( STDMETHODCALLTYPE *ResolveSubresource )(
7612 ID3D12GraphicsCommandList1 * This,
7613 _In_ ID3D12Resource *pDstResource,
7614 _In_ UINT DstSubresource,
7615 _In_ ID3D12Resource *pSrcResource,
7616 _In_ UINT SrcSubresource,
7617 _In_ DXGI_FORMAT Format);
7618
7619 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
7620 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
7621 ID3D12GraphicsCommandList1 * This,
7622 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
7623
7624 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
7625 void ( STDMETHODCALLTYPE *RSSetViewports )(
7626 ID3D12GraphicsCommandList1 * This,
7627 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
7628 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
7629
7630 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
7631 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
7632 ID3D12GraphicsCommandList1 * This,
7633 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
7634 _In_reads_( NumRects) const D3D12_RECT *pRects);
7635
7636 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
7637 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
7638 ID3D12GraphicsCommandList1 * This,
7639 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
7640
7641 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
7642 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
7643 ID3D12GraphicsCommandList1 * This,
7644 _In_ UINT StencilRef);
7645
7646 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
7647 void ( STDMETHODCALLTYPE *SetPipelineState )(
7648 ID3D12GraphicsCommandList1 * This,
7649 _In_ ID3D12PipelineState *pPipelineState);
7650
7651 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
7652 void ( STDMETHODCALLTYPE *ResourceBarrier )(
7653 ID3D12GraphicsCommandList1 * This,
7654 _In_ UINT NumBarriers,
7655 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
7656
7657 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
7658 void ( STDMETHODCALLTYPE *ExecuteBundle )(
7659 ID3D12GraphicsCommandList1 * This,
7660 _In_ ID3D12GraphicsCommandList *pCommandList);
7661
7662 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
7663 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
7664 ID3D12GraphicsCommandList1 * This,
7665 _In_ UINT NumDescriptorHeaps,
7666 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
7667
7668 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
7669 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
7670 ID3D12GraphicsCommandList1 * This,
7671 _In_opt_ ID3D12RootSignature *pRootSignature);
7672
7673 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
7674 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
7675 ID3D12GraphicsCommandList1 * This,
7676 _In_opt_ ID3D12RootSignature *pRootSignature);
7677
7678 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
7679 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
7680 ID3D12GraphicsCommandList1 * This,
7681 _In_ UINT RootParameterIndex,
7682 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7683
7684 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
7685 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
7686 ID3D12GraphicsCommandList1 * This,
7687 _In_ UINT RootParameterIndex,
7688 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7689
7690 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
7691 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
7692 ID3D12GraphicsCommandList1 * This,
7693 _In_ UINT RootParameterIndex,
7694 _In_ UINT SrcData,
7695 _In_ UINT DestOffsetIn32BitValues);
7696
7697 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
7698 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
7699 ID3D12GraphicsCommandList1 * This,
7700 _In_ UINT RootParameterIndex,
7701 _In_ UINT SrcData,
7702 _In_ UINT DestOffsetIn32BitValues);
7703
7704 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
7705 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
7706 ID3D12GraphicsCommandList1 * This,
7707 _In_ UINT RootParameterIndex,
7708 _In_ UINT Num32BitValuesToSet,
7709 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7710 _In_ UINT DestOffsetIn32BitValues);
7711
7712 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
7713 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
7714 ID3D12GraphicsCommandList1 * This,
7715 _In_ UINT RootParameterIndex,
7716 _In_ UINT Num32BitValuesToSet,
7717 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7718 _In_ UINT DestOffsetIn32BitValues);
7719
7720 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
7721 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
7722 ID3D12GraphicsCommandList1 * This,
7723 _In_ UINT RootParameterIndex,
7724 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7725
7726 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
7727 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
7728 ID3D12GraphicsCommandList1 * This,
7729 _In_ UINT RootParameterIndex,
7730 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7731
7732 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
7733 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
7734 ID3D12GraphicsCommandList1 * This,
7735 _In_ UINT RootParameterIndex,
7736 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7737
7738 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
7739 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
7740 ID3D12GraphicsCommandList1 * This,
7741 _In_ UINT RootParameterIndex,
7742 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7743
7744 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
7745 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
7746 ID3D12GraphicsCommandList1 * This,
7747 _In_ UINT RootParameterIndex,
7748 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7749
7750 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
7751 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
7752 ID3D12GraphicsCommandList1 * This,
7753 _In_ UINT RootParameterIndex,
7754 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7755
7756 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
7757 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
7758 ID3D12GraphicsCommandList1 * This,
7759 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
7760
7761 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
7762 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
7763 ID3D12GraphicsCommandList1 * This,
7764 _In_ UINT StartSlot,
7765 _In_ UINT NumViews,
7766 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
7767
7768 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
7769 void ( STDMETHODCALLTYPE *SOSetTargets )(
7770 ID3D12GraphicsCommandList1 * This,
7771 _In_ UINT StartSlot,
7772 _In_ UINT NumViews,
7773 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
7774
7775 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
7776 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
7777 ID3D12GraphicsCommandList1 * This,
7778 _In_ UINT NumRenderTargetDescriptors,
7779 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
7780 _In_ BOOL RTsSingleHandleToDescriptorRange,
7781 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
7782
7783 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
7784 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
7785 ID3D12GraphicsCommandList1 * This,
7786 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
7787 _In_ D3D12_CLEAR_FLAGS ClearFlags,
7788 _In_ FLOAT Depth,
7789 _In_ UINT8 Stencil,
7790 _In_ UINT NumRects,
7791 _In_reads_(NumRects) const D3D12_RECT *pRects);
7792
7793 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
7794 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
7795 ID3D12GraphicsCommandList1 * This,
7796 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
7797 _In_ const FLOAT ColorRGBA[ 4 ],
7798 _In_ UINT NumRects,
7799 _In_reads_(NumRects) const D3D12_RECT *pRects);
7800
7801 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
7802 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
7803 ID3D12GraphicsCommandList1 * This,
7804 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7805 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7806 _In_ ID3D12Resource *pResource,
7807 _In_ const UINT Values[ 4 ],
7808 _In_ UINT NumRects,
7809 _In_reads_(NumRects) const D3D12_RECT *pRects);
7810
7811 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
7812 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
7813 ID3D12GraphicsCommandList1 * This,
7814 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7815 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7816 _In_ ID3D12Resource *pResource,
7817 _In_ const FLOAT Values[ 4 ],
7818 _In_ UINT NumRects,
7819 _In_reads_(NumRects) const D3D12_RECT *pRects);
7820
7821 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
7822 void ( STDMETHODCALLTYPE *DiscardResource )(
7823 ID3D12GraphicsCommandList1 * This,
7824 _In_ ID3D12Resource *pResource,
7825 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
7826
7827 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
7828 void ( STDMETHODCALLTYPE *BeginQuery )(
7829 ID3D12GraphicsCommandList1 * This,
7830 _In_ ID3D12QueryHeap *pQueryHeap,
7831 _In_ D3D12_QUERY_TYPE Type,
7832 _In_ UINT Index);
7833
7834 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
7835 void ( STDMETHODCALLTYPE *EndQuery )(
7836 ID3D12GraphicsCommandList1 * This,
7837 _In_ ID3D12QueryHeap *pQueryHeap,
7838 _In_ D3D12_QUERY_TYPE Type,
7839 _In_ UINT Index);
7840
7841 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
7842 void ( STDMETHODCALLTYPE *ResolveQueryData )(
7843 ID3D12GraphicsCommandList1 * This,
7844 _In_ ID3D12QueryHeap *pQueryHeap,
7845 _In_ D3D12_QUERY_TYPE Type,
7846 _In_ UINT StartIndex,
7847 _In_ UINT NumQueries,
7848 _In_ ID3D12Resource *pDestinationBuffer,
7849 _In_ UINT64 AlignedDestinationBufferOffset);
7850
7851 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
7852 void ( STDMETHODCALLTYPE *SetPredication )(
7853 ID3D12GraphicsCommandList1 * This,
7854 _In_opt_ ID3D12Resource *pBuffer,
7855 _In_ UINT64 AlignedBufferOffset,
7856 _In_ D3D12_PREDICATION_OP Operation);
7857
7858 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
7859 void ( STDMETHODCALLTYPE *SetMarker )(
7860 ID3D12GraphicsCommandList1 * This,
7861 UINT Metadata,
7862 _In_reads_bytes_opt_(Size) const void *pData,
7863 UINT Size);
7864
7865 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
7866 void ( STDMETHODCALLTYPE *BeginEvent )(
7867 ID3D12GraphicsCommandList1 * This,
7868 UINT Metadata,
7869 _In_reads_bytes_opt_(Size) const void *pData,
7870 UINT Size);
7871
7872 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
7873 void ( STDMETHODCALLTYPE *EndEvent )(
7874 ID3D12GraphicsCommandList1 * This);
7875
7876 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
7877 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
7878 ID3D12GraphicsCommandList1 * This,
7879 _In_ ID3D12CommandSignature *pCommandSignature,
7880 _In_ UINT MaxCommandCount,
7881 _In_ ID3D12Resource *pArgumentBuffer,
7882 _In_ UINT64 ArgumentBufferOffset,
7883 _In_opt_ ID3D12Resource *pCountBuffer,
7884 _In_ UINT64 CountBufferOffset);
7885
7886 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
7887 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
7888 ID3D12GraphicsCommandList1 * This,
7889 _In_ ID3D12Resource *pDstBuffer,
7890 UINT64 DstOffset,
7891 _In_ ID3D12Resource *pSrcBuffer,
7892 UINT64 SrcOffset,
7893 UINT Dependencies,
7894 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7895 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7896
7897 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
7898 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
7899 ID3D12GraphicsCommandList1 * This,
7900 _In_ ID3D12Resource *pDstBuffer,
7901 UINT64 DstOffset,
7902 _In_ ID3D12Resource *pSrcBuffer,
7903 UINT64 SrcOffset,
7904 UINT Dependencies,
7905 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7906 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7907
7908 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
7909 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
7910 ID3D12GraphicsCommandList1 * This,
7911 _In_ FLOAT Min,
7912 _In_ FLOAT Max);
7913
7914 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
7915 void ( STDMETHODCALLTYPE *SetSamplePositions )(
7916 ID3D12GraphicsCommandList1 * This,
7917 _In_ UINT NumSamplesPerPixel,
7918 _In_ UINT NumPixels,
7919 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
7920
7921 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
7922 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
7923 ID3D12GraphicsCommandList1 * This,
7924 _In_ ID3D12Resource *pDstResource,
7925 _In_ UINT DstSubresource,
7926 _In_ UINT DstX,
7927 _In_ UINT DstY,
7928 _In_ ID3D12Resource *pSrcResource,
7929 _In_ UINT SrcSubresource,
7930 _In_opt_ D3D12_RECT *pSrcRect,
7931 _In_ DXGI_FORMAT Format,
7932 _In_ D3D12_RESOLVE_MODE ResolveMode);
7933
7934 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
7935 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
7936 ID3D12GraphicsCommandList1 * This,
7937 _In_ UINT Mask);
7938
7939 END_INTERFACE
7940 } ID3D12GraphicsCommandList1Vtbl;
7941
7942 interface ID3D12GraphicsCommandList1
7943 {
7944 CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl;
7945 };
7946
7947
7948
7949#ifdef COBJMACROS
7950
7951
7952#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \
7953 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7954
7955#define ID3D12GraphicsCommandList1_AddRef(This) \
7956 ( (This)->lpVtbl -> AddRef(This) )
7957
7958#define ID3D12GraphicsCommandList1_Release(This) \
7959 ( (This)->lpVtbl -> Release(This) )
7960
7961
7962#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
7963 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7964
7965#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \
7966 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7967
7968#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \
7969 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7970
7971#define ID3D12GraphicsCommandList1_SetName(This,Name) \
7972 ( (This)->lpVtbl -> SetName(This,Name) )
7973
7974
7975#define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \
7976 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7977
7978
7979#define ID3D12GraphicsCommandList1_GetType(This) \
7980 ( (This)->lpVtbl -> GetType(This) )
7981
7982
7983#define ID3D12GraphicsCommandList1_Close(This) \
7984 ( (This)->lpVtbl -> Close(This) )
7985
7986#define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \
7987 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
7988
7989#define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \
7990 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
7991
7992#define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
7993 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
7994
7995#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
7996 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
7997
7998#define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
7999 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
8000
8001#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
8002 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
8003
8004#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
8005 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
8006
8007#define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \
8008 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
8009
8010#define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
8011 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
8012
8013#define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
8014 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
8015
8016#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \
8017 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
8018
8019#define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \
8020 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
8021
8022#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \
8023 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
8024
8025#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \
8026 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
8027
8028#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \
8029 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
8030
8031#define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \
8032 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
8033
8034#define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
8035 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
8036
8037#define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \
8038 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
8039
8040#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
8041 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
8042
8043#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \
8044 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
8045
8046#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \
8047 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
8048
8049#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8050 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8051
8052#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8053 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8054
8055#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8056 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8057
8058#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8059 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8060
8061#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8062 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8063
8064#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8065 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8066
8067#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8068 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8069
8070#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8071 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8072
8073#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8074 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8075
8076#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8077 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8078
8079#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8080 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8081
8082#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8083 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8084
8085#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \
8086 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
8087
8088#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
8089 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
8090
8091#define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \
8092 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
8093
8094#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
8095 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
8096
8097#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
8098 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
8099
8100#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
8101 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
8102
8103#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8104 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8105
8106#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8107 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8108
8109#define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \
8110 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
8111
8112#define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
8113 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
8114
8115#define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
8116 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
8117
8118#define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
8119 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
8120
8121#define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
8122 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
8123
8124#define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \
8125 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8126
8127#define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \
8128 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8129
8130#define ID3D12GraphicsCommandList1_EndEvent(This) \
8131 ( (This)->lpVtbl -> EndEvent(This) )
8132
8133#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
8134 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
8135
8136
8137#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8138 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8139
8140#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8141 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8142
8143#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \
8144 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
8145
8146#define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
8147 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
8148
8149#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
8150 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
8151
8152#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,Mask) \
8153 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
8154
8155#endif /* COBJMACROS */
8156
8157
8158#endif /* C style interface */
8159
8160
8161
8162
8163#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
8164
8165
8166/* interface __MIDL_itf_d3d12_0000_0019 */
8167/* [local] */
8168
8169typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
8170 {
8171 D3D12_GPU_VIRTUAL_ADDRESS Dest;
8172 UINT32 Value;
8173 } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
8174
8175typedef
8176enum D3D12_WRITEBUFFERIMMEDIATE_MODE
8177 {
8178 D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0,
8179 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
8180 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
8181 } D3D12_WRITEBUFFERIMMEDIATE_MODE;
8182
8183
8184
8185extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_c_ifspec;
8186extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_s_ifspec;
8187
8188#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
8189#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
8190
8191/* interface ID3D12GraphicsCommandList2 */
8192/* [unique][local][object][uuid] */
8193
8194
8195EXTERN_C const IID IID_ID3D12GraphicsCommandList2;
8196
8197#if defined(__cplusplus) && !defined(CINTERFACE)
8198
8199 MIDL_INTERFACE("38C3E585-FF17-412C-9150-4FC6F9D72A28")
8200 ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
8201 {
8202 public:
8203 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
8204 UINT Count,
8205 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
8206 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
8207
8208 };
8209
8210
8211#else /* C style interface */
8212
8213 typedef struct ID3D12GraphicsCommandList2Vtbl
8214 {
8215 BEGIN_INTERFACE
8216
8217 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8218 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8219 ID3D12GraphicsCommandList2 * This,
8220 REFIID riid,
8221 _COM_Outptr_ void **ppvObject);
8222
8223 DECLSPEC_XFGVIRT(IUnknown, AddRef)
8224 ULONG ( STDMETHODCALLTYPE *AddRef )(
8225 ID3D12GraphicsCommandList2 * This);
8226
8227 DECLSPEC_XFGVIRT(IUnknown, Release)
8228 ULONG ( STDMETHODCALLTYPE *Release )(
8229 ID3D12GraphicsCommandList2 * This);
8230
8231 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
8232 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
8233 ID3D12GraphicsCommandList2 * This,
8234 _In_ REFGUID guid,
8235 _Inout_ UINT *pDataSize,
8236 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
8237
8238 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
8239 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
8240 ID3D12GraphicsCommandList2 * This,
8241 _In_ REFGUID guid,
8242 _In_ UINT DataSize,
8243 _In_reads_bytes_opt_( DataSize ) const void *pData);
8244
8245 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
8246 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
8247 ID3D12GraphicsCommandList2 * This,
8248 _In_ REFGUID guid,
8249 _In_opt_ const IUnknown *pData);
8250
8251 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
8252 HRESULT ( STDMETHODCALLTYPE *SetName )(
8253 ID3D12GraphicsCommandList2 * This,
8254 _In_z_ LPCWSTR Name);
8255
8256 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
8257 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
8258 ID3D12GraphicsCommandList2 * This,
8259 REFIID riid,
8260 _COM_Outptr_opt_ void **ppvDevice);
8261
8262 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
8263 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
8264 ID3D12GraphicsCommandList2 * This);
8265
8266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
8267 HRESULT ( STDMETHODCALLTYPE *Close )(
8268 ID3D12GraphicsCommandList2 * This);
8269
8270 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
8271 HRESULT ( STDMETHODCALLTYPE *Reset )(
8272 ID3D12GraphicsCommandList2 * This,
8273 _In_ ID3D12CommandAllocator *pAllocator,
8274 _In_opt_ ID3D12PipelineState *pInitialState);
8275
8276 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
8277 void ( STDMETHODCALLTYPE *ClearState )(
8278 ID3D12GraphicsCommandList2 * This,
8279 _In_opt_ ID3D12PipelineState *pPipelineState);
8280
8281 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
8282 void ( STDMETHODCALLTYPE *DrawInstanced )(
8283 ID3D12GraphicsCommandList2 * This,
8284 _In_ UINT VertexCountPerInstance,
8285 _In_ UINT InstanceCount,
8286 _In_ UINT StartVertexLocation,
8287 _In_ UINT StartInstanceLocation);
8288
8289 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
8290 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
8291 ID3D12GraphicsCommandList2 * This,
8292 _In_ UINT IndexCountPerInstance,
8293 _In_ UINT InstanceCount,
8294 _In_ UINT StartIndexLocation,
8295 _In_ INT BaseVertexLocation,
8296 _In_ UINT StartInstanceLocation);
8297
8298 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
8299 void ( STDMETHODCALLTYPE *Dispatch )(
8300 ID3D12GraphicsCommandList2 * This,
8301 _In_ UINT ThreadGroupCountX,
8302 _In_ UINT ThreadGroupCountY,
8303 _In_ UINT ThreadGroupCountZ);
8304
8305 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
8306 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
8307 ID3D12GraphicsCommandList2 * This,
8308 _In_ ID3D12Resource *pDstBuffer,
8309 UINT64 DstOffset,
8310 _In_ ID3D12Resource *pSrcBuffer,
8311 UINT64 SrcOffset,
8312 UINT64 NumBytes);
8313
8314 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
8315 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
8316 ID3D12GraphicsCommandList2 * This,
8317 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
8318 UINT DstX,
8319 UINT DstY,
8320 UINT DstZ,
8321 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
8322 _In_opt_ const D3D12_BOX *pSrcBox);
8323
8324 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
8325 void ( STDMETHODCALLTYPE *CopyResource )(
8326 ID3D12GraphicsCommandList2 * This,
8327 _In_ ID3D12Resource *pDstResource,
8328 _In_ ID3D12Resource *pSrcResource);
8329
8330 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
8331 void ( STDMETHODCALLTYPE *CopyTiles )(
8332 ID3D12GraphicsCommandList2 * This,
8333 _In_ ID3D12Resource *pTiledResource,
8334 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
8335 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
8336 _In_ ID3D12Resource *pBuffer,
8337 UINT64 BufferStartOffsetInBytes,
8338 D3D12_TILE_COPY_FLAGS Flags);
8339
8340 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
8341 void ( STDMETHODCALLTYPE *ResolveSubresource )(
8342 ID3D12GraphicsCommandList2 * This,
8343 _In_ ID3D12Resource *pDstResource,
8344 _In_ UINT DstSubresource,
8345 _In_ ID3D12Resource *pSrcResource,
8346 _In_ UINT SrcSubresource,
8347 _In_ DXGI_FORMAT Format);
8348
8349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
8350 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
8351 ID3D12GraphicsCommandList2 * This,
8352 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
8353
8354 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
8355 void ( STDMETHODCALLTYPE *RSSetViewports )(
8356 ID3D12GraphicsCommandList2 * This,
8357 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
8358 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
8359
8360 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
8361 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
8362 ID3D12GraphicsCommandList2 * This,
8363 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
8364 _In_reads_( NumRects) const D3D12_RECT *pRects);
8365
8366 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
8367 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
8368 ID3D12GraphicsCommandList2 * This,
8369 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
8370
8371 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
8372 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
8373 ID3D12GraphicsCommandList2 * This,
8374 _In_ UINT StencilRef);
8375
8376 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
8377 void ( STDMETHODCALLTYPE *SetPipelineState )(
8378 ID3D12GraphicsCommandList2 * This,
8379 _In_ ID3D12PipelineState *pPipelineState);
8380
8381 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
8382 void ( STDMETHODCALLTYPE *ResourceBarrier )(
8383 ID3D12GraphicsCommandList2 * This,
8384 _In_ UINT NumBarriers,
8385 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
8386
8387 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
8388 void ( STDMETHODCALLTYPE *ExecuteBundle )(
8389 ID3D12GraphicsCommandList2 * This,
8390 _In_ ID3D12GraphicsCommandList *pCommandList);
8391
8392 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
8393 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
8394 ID3D12GraphicsCommandList2 * This,
8395 _In_ UINT NumDescriptorHeaps,
8396 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
8397
8398 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
8399 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
8400 ID3D12GraphicsCommandList2 * This,
8401 _In_opt_ ID3D12RootSignature *pRootSignature);
8402
8403 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
8404 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
8405 ID3D12GraphicsCommandList2 * This,
8406 _In_opt_ ID3D12RootSignature *pRootSignature);
8407
8408 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
8409 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
8410 ID3D12GraphicsCommandList2 * This,
8411 _In_ UINT RootParameterIndex,
8412 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
8413
8414 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
8415 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
8416 ID3D12GraphicsCommandList2 * This,
8417 _In_ UINT RootParameterIndex,
8418 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
8419
8420 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
8421 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
8422 ID3D12GraphicsCommandList2 * This,
8423 _In_ UINT RootParameterIndex,
8424 _In_ UINT SrcData,
8425 _In_ UINT DestOffsetIn32BitValues);
8426
8427 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
8428 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
8429 ID3D12GraphicsCommandList2 * This,
8430 _In_ UINT RootParameterIndex,
8431 _In_ UINT SrcData,
8432 _In_ UINT DestOffsetIn32BitValues);
8433
8434 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
8435 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
8436 ID3D12GraphicsCommandList2 * This,
8437 _In_ UINT RootParameterIndex,
8438 _In_ UINT Num32BitValuesToSet,
8439 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
8440 _In_ UINT DestOffsetIn32BitValues);
8441
8442 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
8443 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
8444 ID3D12GraphicsCommandList2 * This,
8445 _In_ UINT RootParameterIndex,
8446 _In_ UINT Num32BitValuesToSet,
8447 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
8448 _In_ UINT DestOffsetIn32BitValues);
8449
8450 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
8451 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
8452 ID3D12GraphicsCommandList2 * This,
8453 _In_ UINT RootParameterIndex,
8454 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8455
8456 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
8457 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
8458 ID3D12GraphicsCommandList2 * This,
8459 _In_ UINT RootParameterIndex,
8460 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8461
8462 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
8463 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
8464 ID3D12GraphicsCommandList2 * This,
8465 _In_ UINT RootParameterIndex,
8466 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8467
8468 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
8469 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
8470 ID3D12GraphicsCommandList2 * This,
8471 _In_ UINT RootParameterIndex,
8472 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8473
8474 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
8475 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
8476 ID3D12GraphicsCommandList2 * This,
8477 _In_ UINT RootParameterIndex,
8478 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8479
8480 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
8481 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
8482 ID3D12GraphicsCommandList2 * This,
8483 _In_ UINT RootParameterIndex,
8484 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8485
8486 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
8487 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
8488 ID3D12GraphicsCommandList2 * This,
8489 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
8490
8491 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
8492 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
8493 ID3D12GraphicsCommandList2 * This,
8494 _In_ UINT StartSlot,
8495 _In_ UINT NumViews,
8496 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
8497
8498 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
8499 void ( STDMETHODCALLTYPE *SOSetTargets )(
8500 ID3D12GraphicsCommandList2 * This,
8501 _In_ UINT StartSlot,
8502 _In_ UINT NumViews,
8503 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
8504
8505 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
8506 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
8507 ID3D12GraphicsCommandList2 * This,
8508 _In_ UINT NumRenderTargetDescriptors,
8509 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
8510 _In_ BOOL RTsSingleHandleToDescriptorRange,
8511 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
8512
8513 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
8514 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
8515 ID3D12GraphicsCommandList2 * This,
8516 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
8517 _In_ D3D12_CLEAR_FLAGS ClearFlags,
8518 _In_ FLOAT Depth,
8519 _In_ UINT8 Stencil,
8520 _In_ UINT NumRects,
8521 _In_reads_(NumRects) const D3D12_RECT *pRects);
8522
8523 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
8524 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
8525 ID3D12GraphicsCommandList2 * This,
8526 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
8527 _In_ const FLOAT ColorRGBA[ 4 ],
8528 _In_ UINT NumRects,
8529 _In_reads_(NumRects) const D3D12_RECT *pRects);
8530
8531 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
8532 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
8533 ID3D12GraphicsCommandList2 * This,
8534 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
8535 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
8536 _In_ ID3D12Resource *pResource,
8537 _In_ const UINT Values[ 4 ],
8538 _In_ UINT NumRects,
8539 _In_reads_(NumRects) const D3D12_RECT *pRects);
8540
8541 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
8542 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
8543 ID3D12GraphicsCommandList2 * This,
8544 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
8545 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
8546 _In_ ID3D12Resource *pResource,
8547 _In_ const FLOAT Values[ 4 ],
8548 _In_ UINT NumRects,
8549 _In_reads_(NumRects) const D3D12_RECT *pRects);
8550
8551 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
8552 void ( STDMETHODCALLTYPE *DiscardResource )(
8553 ID3D12GraphicsCommandList2 * This,
8554 _In_ ID3D12Resource *pResource,
8555 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
8556
8557 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
8558 void ( STDMETHODCALLTYPE *BeginQuery )(
8559 ID3D12GraphicsCommandList2 * This,
8560 _In_ ID3D12QueryHeap *pQueryHeap,
8561 _In_ D3D12_QUERY_TYPE Type,
8562 _In_ UINT Index);
8563
8564 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
8565 void ( STDMETHODCALLTYPE *EndQuery )(
8566 ID3D12GraphicsCommandList2 * This,
8567 _In_ ID3D12QueryHeap *pQueryHeap,
8568 _In_ D3D12_QUERY_TYPE Type,
8569 _In_ UINT Index);
8570
8571 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
8572 void ( STDMETHODCALLTYPE *ResolveQueryData )(
8573 ID3D12GraphicsCommandList2 * This,
8574 _In_ ID3D12QueryHeap *pQueryHeap,
8575 _In_ D3D12_QUERY_TYPE Type,
8576 _In_ UINT StartIndex,
8577 _In_ UINT NumQueries,
8578 _In_ ID3D12Resource *pDestinationBuffer,
8579 _In_ UINT64 AlignedDestinationBufferOffset);
8580
8581 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
8582 void ( STDMETHODCALLTYPE *SetPredication )(
8583 ID3D12GraphicsCommandList2 * This,
8584 _In_opt_ ID3D12Resource *pBuffer,
8585 _In_ UINT64 AlignedBufferOffset,
8586 _In_ D3D12_PREDICATION_OP Operation);
8587
8588 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
8589 void ( STDMETHODCALLTYPE *SetMarker )(
8590 ID3D12GraphicsCommandList2 * This,
8591 UINT Metadata,
8592 _In_reads_bytes_opt_(Size) const void *pData,
8593 UINT Size);
8594
8595 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
8596 void ( STDMETHODCALLTYPE *BeginEvent )(
8597 ID3D12GraphicsCommandList2 * This,
8598 UINT Metadata,
8599 _In_reads_bytes_opt_(Size) const void *pData,
8600 UINT Size);
8601
8602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
8603 void ( STDMETHODCALLTYPE *EndEvent )(
8604 ID3D12GraphicsCommandList2 * This);
8605
8606 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
8607 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
8608 ID3D12GraphicsCommandList2 * This,
8609 _In_ ID3D12CommandSignature *pCommandSignature,
8610 _In_ UINT MaxCommandCount,
8611 _In_ ID3D12Resource *pArgumentBuffer,
8612 _In_ UINT64 ArgumentBufferOffset,
8613 _In_opt_ ID3D12Resource *pCountBuffer,
8614 _In_ UINT64 CountBufferOffset);
8615
8616 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
8617 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
8618 ID3D12GraphicsCommandList2 * This,
8619 _In_ ID3D12Resource *pDstBuffer,
8620 UINT64 DstOffset,
8621 _In_ ID3D12Resource *pSrcBuffer,
8622 UINT64 SrcOffset,
8623 UINT Dependencies,
8624 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
8625 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
8626
8627 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
8628 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
8629 ID3D12GraphicsCommandList2 * This,
8630 _In_ ID3D12Resource *pDstBuffer,
8631 UINT64 DstOffset,
8632 _In_ ID3D12Resource *pSrcBuffer,
8633 UINT64 SrcOffset,
8634 UINT Dependencies,
8635 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
8636 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
8637
8638 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
8639 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
8640 ID3D12GraphicsCommandList2 * This,
8641 _In_ FLOAT Min,
8642 _In_ FLOAT Max);
8643
8644 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
8645 void ( STDMETHODCALLTYPE *SetSamplePositions )(
8646 ID3D12GraphicsCommandList2 * This,
8647 _In_ UINT NumSamplesPerPixel,
8648 _In_ UINT NumPixels,
8649 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
8650
8651 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
8652 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
8653 ID3D12GraphicsCommandList2 * This,
8654 _In_ ID3D12Resource *pDstResource,
8655 _In_ UINT DstSubresource,
8656 _In_ UINT DstX,
8657 _In_ UINT DstY,
8658 _In_ ID3D12Resource *pSrcResource,
8659 _In_ UINT SrcSubresource,
8660 _In_opt_ D3D12_RECT *pSrcRect,
8661 _In_ DXGI_FORMAT Format,
8662 _In_ D3D12_RESOLVE_MODE ResolveMode);
8663
8664 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
8665 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
8666 ID3D12GraphicsCommandList2 * This,
8667 _In_ UINT Mask);
8668
8669 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
8670 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
8671 ID3D12GraphicsCommandList2 * This,
8672 UINT Count,
8673 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
8674 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
8675
8676 END_INTERFACE
8677 } ID3D12GraphicsCommandList2Vtbl;
8678
8679 interface ID3D12GraphicsCommandList2
8680 {
8681 CONST_VTBL struct ID3D12GraphicsCommandList2Vtbl *lpVtbl;
8682 };
8683
8684
8685
8686#ifdef COBJMACROS
8687
8688
8689#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) \
8690 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8691
8692#define ID3D12GraphicsCommandList2_AddRef(This) \
8693 ( (This)->lpVtbl -> AddRef(This) )
8694
8695#define ID3D12GraphicsCommandList2_Release(This) \
8696 ( (This)->lpVtbl -> Release(This) )
8697
8698
8699#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
8700 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8701
8702#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,DataSize,pData) \
8703 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8704
8705#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,pData) \
8706 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8707
8708#define ID3D12GraphicsCommandList2_SetName(This,Name) \
8709 ( (This)->lpVtbl -> SetName(This,Name) )
8710
8711
8712#define ID3D12GraphicsCommandList2_GetDevice(This,riid,ppvDevice) \
8713 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
8714
8715
8716#define ID3D12GraphicsCommandList2_GetType(This) \
8717 ( (This)->lpVtbl -> GetType(This) )
8718
8719
8720#define ID3D12GraphicsCommandList2_Close(This) \
8721 ( (This)->lpVtbl -> Close(This) )
8722
8723#define ID3D12GraphicsCommandList2_Reset(This,pAllocator,pInitialState) \
8724 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
8725
8726#define ID3D12GraphicsCommandList2_ClearState(This,pPipelineState) \
8727 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
8728
8729#define ID3D12GraphicsCommandList2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
8730 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
8731
8732#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
8733 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
8734
8735#define ID3D12GraphicsCommandList2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
8736 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
8737
8738#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
8739 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
8740
8741#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
8742 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
8743
8744#define ID3D12GraphicsCommandList2_CopyResource(This,pDstResource,pSrcResource) \
8745 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
8746
8747#define ID3D12GraphicsCommandList2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
8748 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
8749
8750#define ID3D12GraphicsCommandList2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
8751 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
8752
8753#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,PrimitiveTopology) \
8754 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
8755
8756#define ID3D12GraphicsCommandList2_RSSetViewports(This,NumViewports,pViewports) \
8757 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
8758
8759#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,NumRects,pRects) \
8760 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
8761
8762#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,BlendFactor) \
8763 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
8764
8765#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,StencilRef) \
8766 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
8767
8768#define ID3D12GraphicsCommandList2_SetPipelineState(This,pPipelineState) \
8769 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
8770
8771#define ID3D12GraphicsCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
8772 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
8773
8774#define ID3D12GraphicsCommandList2_ExecuteBundle(This,pCommandList) \
8775 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
8776
8777#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
8778 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
8779
8780#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,pRootSignature) \
8781 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
8782
8783#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,pRootSignature) \
8784 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
8785
8786#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8787 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8788
8789#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8790 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8791
8792#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8793 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8794
8795#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8796 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8797
8798#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8799 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8800
8801#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8802 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8803
8804#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8805 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8806
8807#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8808 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8809
8810#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8811 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8812
8813#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8814 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8815
8816#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8817 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8818
8819#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8820 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8821
8822#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,pView) \
8823 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
8824
8825#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
8826 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
8827
8828#define ID3D12GraphicsCommandList2_SOSetTargets(This,StartSlot,NumViews,pViews) \
8829 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
8830
8831#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
8832 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
8833
8834#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
8835 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
8836
8837#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
8838 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
8839
8840#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8841 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8842
8843#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8844 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8845
8846#define ID3D12GraphicsCommandList2_DiscardResource(This,pResource,pRegion) \
8847 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
8848
8849#define ID3D12GraphicsCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
8850 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
8851
8852#define ID3D12GraphicsCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
8853 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
8854
8855#define ID3D12GraphicsCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
8856 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
8857
8858#define ID3D12GraphicsCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
8859 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
8860
8861#define ID3D12GraphicsCommandList2_SetMarker(This,Metadata,pData,Size) \
8862 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8863
8864#define ID3D12GraphicsCommandList2_BeginEvent(This,Metadata,pData,Size) \
8865 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8866
8867#define ID3D12GraphicsCommandList2_EndEvent(This) \
8868 ( (This)->lpVtbl -> EndEvent(This) )
8869
8870#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
8871 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
8872
8873
8874#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8875 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8876
8877#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8878 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8879
8880#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,Min,Max) \
8881 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
8882
8883#define ID3D12GraphicsCommandList2_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
8884 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
8885
8886#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
8887 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
8888
8889#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,Mask) \
8890 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
8891
8892
8893#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
8894 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
8895
8896#endif /* COBJMACROS */
8897
8898
8899#endif /* C style interface */
8900
8901
8902
8903
8904#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
8905
8906
8907#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
8908#define __ID3D12CommandQueue_INTERFACE_DEFINED__
8909
8910/* interface ID3D12CommandQueue */
8911/* [unique][local][object][uuid] */
8912
8913
8914EXTERN_C const IID IID_ID3D12CommandQueue;
8915
8916#if defined(__cplusplus) && !defined(CINTERFACE)
8917
8918 MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
8919 ID3D12CommandQueue : public ID3D12Pageable
8920 {
8921 public:
8922 virtual void STDMETHODCALLTYPE UpdateTileMappings(
8923 _In_ ID3D12Resource *pResource,
8924 UINT NumResourceRegions,
8925 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
8926 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
8927 _In_opt_ ID3D12Heap *pHeap,
8928 UINT NumRanges,
8929 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
8930 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
8931 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
8932 D3D12_TILE_MAPPING_FLAGS Flags) = 0;
8933
8934 virtual void STDMETHODCALLTYPE CopyTileMappings(
8935 _In_ ID3D12Resource *pDstResource,
8936 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
8937 _In_ ID3D12Resource *pSrcResource,
8938 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
8939 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
8940 D3D12_TILE_MAPPING_FLAGS Flags) = 0;
8941
8942 virtual void STDMETHODCALLTYPE ExecuteCommandLists(
8943 _In_ UINT NumCommandLists,
8944 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0;
8945
8946 virtual void STDMETHODCALLTYPE SetMarker(
8947 UINT Metadata,
8948 _In_reads_bytes_opt_(Size) const void *pData,
8949 UINT Size) = 0;
8950
8951 virtual void STDMETHODCALLTYPE BeginEvent(
8952 UINT Metadata,
8953 _In_reads_bytes_opt_(Size) const void *pData,
8954 UINT Size) = 0;
8955
8956 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
8957
8958 virtual HRESULT STDMETHODCALLTYPE Signal(
8959 ID3D12Fence *pFence,
8960 UINT64 Value) = 0;
8961
8962 virtual HRESULT STDMETHODCALLTYPE Wait(
8963 ID3D12Fence *pFence,
8964 UINT64 Value) = 0;
8965
8966 virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
8967 _Out_ UINT64 *pFrequency) = 0;
8968
8969 virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
8970 _Out_ UINT64 *pGpuTimestamp,
8971 _Out_ UINT64 *pCpuTimestamp) = 0;
8972
8973#if defined(_MSC_VER) || !defined(_WIN32)
8974 virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
8975#else
8976 virtual D3D12_COMMAND_QUEUE_DESC *STDMETHODCALLTYPE GetDesc(
8977 D3D12_COMMAND_QUEUE_DESC * RetVal) = 0;
8978#endif
8979
8980 };
8981
8982
8983#else /* C style interface */
8984
8985 typedef struct ID3D12CommandQueueVtbl
8986 {
8987 BEGIN_INTERFACE
8988
8989 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8990 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8991 ID3D12CommandQueue * This,
8992 REFIID riid,
8993 _COM_Outptr_ void **ppvObject);
8994
8995 DECLSPEC_XFGVIRT(IUnknown, AddRef)
8996 ULONG ( STDMETHODCALLTYPE *AddRef )(
8997 ID3D12CommandQueue * This);
8998
8999 DECLSPEC_XFGVIRT(IUnknown, Release)
9000 ULONG ( STDMETHODCALLTYPE *Release )(
9001 ID3D12CommandQueue * This);
9002
9003 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9004 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9005 ID3D12CommandQueue * This,
9006 _In_ REFGUID guid,
9007 _Inout_ UINT *pDataSize,
9008 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9009
9010 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9011 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9012 ID3D12CommandQueue * This,
9013 _In_ REFGUID guid,
9014 _In_ UINT DataSize,
9015 _In_reads_bytes_opt_( DataSize ) const void *pData);
9016
9017 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9018 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9019 ID3D12CommandQueue * This,
9020 _In_ REFGUID guid,
9021 _In_opt_ const IUnknown *pData);
9022
9023 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9024 HRESULT ( STDMETHODCALLTYPE *SetName )(
9025 ID3D12CommandQueue * This,
9026 _In_z_ LPCWSTR Name);
9027
9028 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
9029 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9030 ID3D12CommandQueue * This,
9031 REFIID riid,
9032 _COM_Outptr_opt_ void **ppvDevice);
9033
9034 DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings)
9035 void ( STDMETHODCALLTYPE *UpdateTileMappings )(
9036 ID3D12CommandQueue * This,
9037 _In_ ID3D12Resource *pResource,
9038 UINT NumResourceRegions,
9039 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
9040 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
9041 _In_opt_ ID3D12Heap *pHeap,
9042 UINT NumRanges,
9043 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
9044 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
9045 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
9046 D3D12_TILE_MAPPING_FLAGS Flags);
9047
9048 DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings)
9049 void ( STDMETHODCALLTYPE *CopyTileMappings )(
9050 ID3D12CommandQueue * This,
9051 _In_ ID3D12Resource *pDstResource,
9052 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
9053 _In_ ID3D12Resource *pSrcResource,
9054 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
9055 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
9056 D3D12_TILE_MAPPING_FLAGS Flags);
9057
9058 DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists)
9059 void ( STDMETHODCALLTYPE *ExecuteCommandLists )(
9060 ID3D12CommandQueue * This,
9061 _In_ UINT NumCommandLists,
9062 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
9063
9064 DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker)
9065 void ( STDMETHODCALLTYPE *SetMarker )(
9066 ID3D12CommandQueue * This,
9067 UINT Metadata,
9068 _In_reads_bytes_opt_(Size) const void *pData,
9069 UINT Size);
9070
9071 DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent)
9072 void ( STDMETHODCALLTYPE *BeginEvent )(
9073 ID3D12CommandQueue * This,
9074 UINT Metadata,
9075 _In_reads_bytes_opt_(Size) const void *pData,
9076 UINT Size);
9077
9078 DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent)
9079 void ( STDMETHODCALLTYPE *EndEvent )(
9080 ID3D12CommandQueue * This);
9081
9082 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal)
9083 HRESULT ( STDMETHODCALLTYPE *Signal )(
9084 ID3D12CommandQueue * This,
9085 ID3D12Fence *pFence,
9086 UINT64 Value);
9087
9088 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait)
9089 HRESULT ( STDMETHODCALLTYPE *Wait )(
9090 ID3D12CommandQueue * This,
9091 ID3D12Fence *pFence,
9092 UINT64 Value);
9093
9094 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency)
9095 HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )(
9096 ID3D12CommandQueue * This,
9097 _Out_ UINT64 *pFrequency);
9098
9099 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration)
9100 HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )(
9101 ID3D12CommandQueue * This,
9102 _Out_ UINT64 *pGpuTimestamp,
9103 _Out_ UINT64 *pCpuTimestamp);
9104
9105 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc)
9106#if !defined(_WIN32)
9107 D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )(
9108 ID3D12CommandQueue * This);
9109
9110#else
9111 D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )(
9112 ID3D12CommandQueue * This,
9113 D3D12_COMMAND_QUEUE_DESC * RetVal);
9114
9115#endif
9116
9117 END_INTERFACE
9118 } ID3D12CommandQueueVtbl;
9119
9120 interface ID3D12CommandQueue
9121 {
9122 CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl;
9123 };
9124
9125
9126
9127#ifdef COBJMACROS
9128
9129
9130#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \
9131 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9132
9133#define ID3D12CommandQueue_AddRef(This) \
9134 ( (This)->lpVtbl -> AddRef(This) )
9135
9136#define ID3D12CommandQueue_Release(This) \
9137 ( (This)->lpVtbl -> Release(This) )
9138
9139
9140#define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \
9141 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9142
9143#define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \
9144 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9145
9146#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \
9147 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9148
9149#define ID3D12CommandQueue_SetName(This,Name) \
9150 ( (This)->lpVtbl -> SetName(This,Name) )
9151
9152
9153#define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \
9154 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
9155
9156
9157
9158#define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \
9159 ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) )
9160
9161#define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \
9162 ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) )
9163
9164#define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \
9165 ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) )
9166
9167#define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \
9168 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
9169
9170#define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \
9171 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
9172
9173#define ID3D12CommandQueue_EndEvent(This) \
9174 ( (This)->lpVtbl -> EndEvent(This) )
9175
9176#define ID3D12CommandQueue_Signal(This,pFence,Value) \
9177 ( (This)->lpVtbl -> Signal(This,pFence,Value) )
9178
9179#define ID3D12CommandQueue_Wait(This,pFence,Value) \
9180 ( (This)->lpVtbl -> Wait(This,pFence,Value) )
9181
9182#define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \
9183 ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) )
9184
9185#define ID3D12CommandQueue_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \
9186 ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) )
9187#if !defined(_WIN32)
9188
9189#define ID3D12CommandQueue_GetDesc(This) \
9190 ( (This)->lpVtbl -> GetDesc(This) )
9191#else
9192#define ID3D12CommandQueue_GetDesc(This,RetVal) \
9193 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
9194#endif
9195
9196#endif /* COBJMACROS */
9197
9198
9199#endif /* C style interface */
9200
9201
9202
9203
9204#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
9205
9206
9207/* interface __MIDL_itf_d3d12_0000_0021 */
9208/* [local] */
9209
9210typedef struct D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS
9211 {
9212 _Out_ UINT ComputeQueuesPer3DQueue;
9213 } D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS;
9214
9215typedef
9216enum D3D12_COMMAND_QUEUE_PROCESS_PRIORITY
9217 {
9218 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_NORMAL = 0,
9219 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_HIGH = 1
9220 } D3D12_COMMAND_QUEUE_PROCESS_PRIORITY;
9221
9222typedef
9223enum D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY
9224 {
9225 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_IDLE = 0,
9226 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_DEFAULT = 1,
9227 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_NORMAL_0 = 2,
9228 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_0 = 18,
9229 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_1 = 19,
9230 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_2 = 20,
9231 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_3 = 21,
9232 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_4 = 22,
9233 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_5 = 23,
9234 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_6 = 24,
9235 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_7 = 25,
9236 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_8 = 26,
9237 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_9 = 27,
9238 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_10 = 28,
9239 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_11 = 29,
9240 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_12 = 30,
9241 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_13 = 31,
9242 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_HARD_REALTIME = 32
9243 } D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY;
9244
9245
9246
9247extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_c_ifspec;
9248extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_s_ifspec;
9249
9250#ifndef __ID3D12CommandQueue1_INTERFACE_DEFINED__
9251#define __ID3D12CommandQueue1_INTERFACE_DEFINED__
9252
9253/* interface ID3D12CommandQueue1 */
9254/* [unique][local][object][uuid] */
9255
9256
9257EXTERN_C const IID IID_ID3D12CommandQueue1;
9258
9259#if defined(__cplusplus) && !defined(CINTERFACE)
9260
9261 MIDL_INTERFACE("3a3c3165-0ee7-4b8e-a0af-6356b4c3bbb9")
9262 ID3D12CommandQueue1 : public ID3D12CommandQueue
9263 {
9264 public:
9265 virtual HRESULT STDMETHODCALLTYPE SetProcessPriority(
9266 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority) = 0;
9267
9268 virtual HRESULT STDMETHODCALLTYPE GetProcessPriority(
9269 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue) = 0;
9270
9271 virtual HRESULT STDMETHODCALLTYPE SetGlobalPriority(
9272 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority) = 0;
9273
9274 virtual HRESULT STDMETHODCALLTYPE GetGlobalPriority(
9275 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue) = 0;
9276
9277 };
9278
9279
9280#else /* C style interface */
9281
9282 typedef struct ID3D12CommandQueue1Vtbl
9283 {
9284 BEGIN_INTERFACE
9285
9286 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9287 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9288 ID3D12CommandQueue1 * This,
9289 REFIID riid,
9290 _COM_Outptr_ void **ppvObject);
9291
9292 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9293 ULONG ( STDMETHODCALLTYPE *AddRef )(
9294 ID3D12CommandQueue1 * This);
9295
9296 DECLSPEC_XFGVIRT(IUnknown, Release)
9297 ULONG ( STDMETHODCALLTYPE *Release )(
9298 ID3D12CommandQueue1 * This);
9299
9300 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9301 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9302 ID3D12CommandQueue1 * This,
9303 _In_ REFGUID guid,
9304 _Inout_ UINT *pDataSize,
9305 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9306
9307 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9308 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9309 ID3D12CommandQueue1 * This,
9310 _In_ REFGUID guid,
9311 _In_ UINT DataSize,
9312 _In_reads_bytes_opt_( DataSize ) const void *pData);
9313
9314 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9315 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9316 ID3D12CommandQueue1 * This,
9317 _In_ REFGUID guid,
9318 _In_opt_ const IUnknown *pData);
9319
9320 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9321 HRESULT ( STDMETHODCALLTYPE *SetName )(
9322 ID3D12CommandQueue1 * This,
9323 _In_z_ LPCWSTR Name);
9324
9325 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
9326 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9327 ID3D12CommandQueue1 * This,
9328 REFIID riid,
9329 _COM_Outptr_opt_ void **ppvDevice);
9330
9331 DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings)
9332 void ( STDMETHODCALLTYPE *UpdateTileMappings )(
9333 ID3D12CommandQueue1 * This,
9334 _In_ ID3D12Resource *pResource,
9335 UINT NumResourceRegions,
9336 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
9337 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
9338 _In_opt_ ID3D12Heap *pHeap,
9339 UINT NumRanges,
9340 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
9341 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
9342 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
9343 D3D12_TILE_MAPPING_FLAGS Flags);
9344
9345 DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings)
9346 void ( STDMETHODCALLTYPE *CopyTileMappings )(
9347 ID3D12CommandQueue1 * This,
9348 _In_ ID3D12Resource *pDstResource,
9349 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
9350 _In_ ID3D12Resource *pSrcResource,
9351 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
9352 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
9353 D3D12_TILE_MAPPING_FLAGS Flags);
9354
9355 DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists)
9356 void ( STDMETHODCALLTYPE *ExecuteCommandLists )(
9357 ID3D12CommandQueue1 * This,
9358 _In_ UINT NumCommandLists,
9359 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
9360
9361 DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker)
9362 void ( STDMETHODCALLTYPE *SetMarker )(
9363 ID3D12CommandQueue1 * This,
9364 UINT Metadata,
9365 _In_reads_bytes_opt_(Size) const void *pData,
9366 UINT Size);
9367
9368 DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent)
9369 void ( STDMETHODCALLTYPE *BeginEvent )(
9370 ID3D12CommandQueue1 * This,
9371 UINT Metadata,
9372 _In_reads_bytes_opt_(Size) const void *pData,
9373 UINT Size);
9374
9375 DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent)
9376 void ( STDMETHODCALLTYPE *EndEvent )(
9377 ID3D12CommandQueue1 * This);
9378
9379 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal)
9380 HRESULT ( STDMETHODCALLTYPE *Signal )(
9381 ID3D12CommandQueue1 * This,
9382 ID3D12Fence *pFence,
9383 UINT64 Value);
9384
9385 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait)
9386 HRESULT ( STDMETHODCALLTYPE *Wait )(
9387 ID3D12CommandQueue1 * This,
9388 ID3D12Fence *pFence,
9389 UINT64 Value);
9390
9391 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency)
9392 HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )(
9393 ID3D12CommandQueue1 * This,
9394 _Out_ UINT64 *pFrequency);
9395
9396 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration)
9397 HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )(
9398 ID3D12CommandQueue1 * This,
9399 _Out_ UINT64 *pGpuTimestamp,
9400 _Out_ UINT64 *pCpuTimestamp);
9401
9402 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc)
9403#if !defined(_WIN32)
9404 D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )(
9405 ID3D12CommandQueue1 * This);
9406
9407#else
9408 D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )(
9409 ID3D12CommandQueue1 * This,
9410 D3D12_COMMAND_QUEUE_DESC * RetVal);
9411
9412#endif
9413
9414 DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetProcessPriority)
9415 HRESULT ( STDMETHODCALLTYPE *SetProcessPriority )(
9416 ID3D12CommandQueue1 * This,
9417 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority);
9418
9419 DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetProcessPriority)
9420 HRESULT ( STDMETHODCALLTYPE *GetProcessPriority )(
9421 ID3D12CommandQueue1 * This,
9422 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue);
9423
9424 DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetGlobalPriority)
9425 HRESULT ( STDMETHODCALLTYPE *SetGlobalPriority )(
9426 ID3D12CommandQueue1 * This,
9427 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority);
9428
9429 DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetGlobalPriority)
9430 HRESULT ( STDMETHODCALLTYPE *GetGlobalPriority )(
9431 ID3D12CommandQueue1 * This,
9432 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue);
9433
9434 END_INTERFACE
9435 } ID3D12CommandQueue1Vtbl;
9436
9437 interface ID3D12CommandQueue1
9438 {
9439 CONST_VTBL struct ID3D12CommandQueue1Vtbl *lpVtbl;
9440 };
9441
9442
9443
9444#ifdef COBJMACROS
9445
9446
9447#define ID3D12CommandQueue1_QueryInterface(This,riid,ppvObject) \
9448 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9449
9450#define ID3D12CommandQueue1_AddRef(This) \
9451 ( (This)->lpVtbl -> AddRef(This) )
9452
9453#define ID3D12CommandQueue1_Release(This) \
9454 ( (This)->lpVtbl -> Release(This) )
9455
9456
9457#define ID3D12CommandQueue1_GetPrivateData(This,guid,pDataSize,pData) \
9458 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9459
9460#define ID3D12CommandQueue1_SetPrivateData(This,guid,DataSize,pData) \
9461 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9462
9463#define ID3D12CommandQueue1_SetPrivateDataInterface(This,guid,pData) \
9464 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9465
9466#define ID3D12CommandQueue1_SetName(This,Name) \
9467 ( (This)->lpVtbl -> SetName(This,Name) )
9468
9469
9470#define ID3D12CommandQueue1_GetDevice(This,riid,ppvDevice) \
9471 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
9472
9473
9474
9475#define ID3D12CommandQueue1_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \
9476 ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) )
9477
9478#define ID3D12CommandQueue1_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \
9479 ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) )
9480
9481#define ID3D12CommandQueue1_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \
9482 ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) )
9483
9484#define ID3D12CommandQueue1_SetMarker(This,Metadata,pData,Size) \
9485 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
9486
9487#define ID3D12CommandQueue1_BeginEvent(This,Metadata,pData,Size) \
9488 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
9489
9490#define ID3D12CommandQueue1_EndEvent(This) \
9491 ( (This)->lpVtbl -> EndEvent(This) )
9492
9493#define ID3D12CommandQueue1_Signal(This,pFence,Value) \
9494 ( (This)->lpVtbl -> Signal(This,pFence,Value) )
9495
9496#define ID3D12CommandQueue1_Wait(This,pFence,Value) \
9497 ( (This)->lpVtbl -> Wait(This,pFence,Value) )
9498
9499#define ID3D12CommandQueue1_GetTimestampFrequency(This,pFrequency) \
9500 ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) )
9501
9502#define ID3D12CommandQueue1_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \
9503 ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) )
9504#if !defined(_WIN32)
9505
9506#define ID3D12CommandQueue1_GetDesc(This) \
9507 ( (This)->lpVtbl -> GetDesc(This) )
9508#else
9509#define ID3D12CommandQueue1_GetDesc(This,RetVal) \
9510 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
9511#endif
9512
9513
9514#define ID3D12CommandQueue1_SetProcessPriority(This,Priority) \
9515 ( (This)->lpVtbl -> SetProcessPriority(This,Priority) )
9516
9517#define ID3D12CommandQueue1_GetProcessPriority(This,pOutValue) \
9518 ( (This)->lpVtbl -> GetProcessPriority(This,pOutValue) )
9519
9520#define ID3D12CommandQueue1_SetGlobalPriority(This,Priority) \
9521 ( (This)->lpVtbl -> SetGlobalPriority(This,Priority) )
9522
9523#define ID3D12CommandQueue1_GetGlobalPriority(This,pOutValue) \
9524 ( (This)->lpVtbl -> GetGlobalPriority(This,pOutValue) )
9525
9526#endif /* COBJMACROS */
9527
9528
9529#endif /* C style interface */
9530
9531
9532
9533
9534#endif /* __ID3D12CommandQueue1_INTERFACE_DEFINED__ */
9535
9536
9537#ifndef __ID3D12Device_INTERFACE_DEFINED__
9538#define __ID3D12Device_INTERFACE_DEFINED__
9539
9540/* interface ID3D12Device */
9541/* [unique][local][object][uuid] */
9542
9543
9544EXTERN_C const IID IID_ID3D12Device;
9545
9546#if defined(__cplusplus) && !defined(CINTERFACE)
9547
9548 MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
9549 ID3D12Device : public ID3D12Object
9550 {
9551 public:
9552 virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0;
9553
9554 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
9555 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
9556 REFIID riid,
9557 _COM_Outptr_ void **ppCommandQueue) = 0;
9558
9559 virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
9560 _In_ D3D12_COMMAND_LIST_TYPE type,
9561 REFIID riid,
9562 _COM_Outptr_ void **ppCommandAllocator) = 0;
9563
9564 virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
9565 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9566 REFIID riid,
9567 _COM_Outptr_ void **ppPipelineState) = 0;
9568
9569 virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
9570 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9571 REFIID riid,
9572 _COM_Outptr_ void **ppPipelineState) = 0;
9573
9574 virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
9575 _In_ UINT nodeMask,
9576 _In_ D3D12_COMMAND_LIST_TYPE type,
9577 _In_ ID3D12CommandAllocator *pCommandAllocator,
9578 _In_opt_ ID3D12PipelineState *pInitialState,
9579 REFIID riid,
9580 _COM_Outptr_ void **ppCommandList) = 0;
9581
9582 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
9583 D3D12_FEATURE Feature,
9584 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
9585 UINT FeatureSupportDataSize) = 0;
9586
9587 virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
9588 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
9589 REFIID riid,
9590 _COM_Outptr_ void **ppvHeap) = 0;
9591
9592 virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
9593 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0;
9594
9595 virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
9596 _In_ UINT nodeMask,
9597 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
9598 _In_ SIZE_T blobLengthInBytes,
9599 REFIID riid,
9600 _COM_Outptr_ void **ppvRootSignature) = 0;
9601
9602 virtual void STDMETHODCALLTYPE CreateConstantBufferView(
9603 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
9604 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9605
9606 virtual void STDMETHODCALLTYPE CreateShaderResourceView(
9607 _In_opt_ ID3D12Resource *pResource,
9608 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
9609 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9610
9611 virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
9612 _In_opt_ ID3D12Resource *pResource,
9613 _In_opt_ ID3D12Resource *pCounterResource,
9614 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9615 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9616
9617 virtual void STDMETHODCALLTYPE CreateRenderTargetView(
9618 _In_opt_ ID3D12Resource *pResource,
9619 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
9620 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9621
9622 virtual void STDMETHODCALLTYPE CreateDepthStencilView(
9623 _In_opt_ ID3D12Resource *pResource,
9624 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
9625 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9626
9627 virtual void STDMETHODCALLTYPE CreateSampler(
9628 _In_ const D3D12_SAMPLER_DESC *pDesc,
9629 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9630
9631 virtual void STDMETHODCALLTYPE CopyDescriptors(
9632 _In_ UINT NumDestDescriptorRanges,
9633 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
9634 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
9635 _In_ UINT NumSrcDescriptorRanges,
9636 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
9637 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
9638 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
9639
9640 virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
9641 _In_ UINT NumDescriptors,
9642 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
9643 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
9644 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
9645
9646#if defined(_MSC_VER) || !defined(_WIN32)
9647 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
9648 _In_ UINT visibleMask,
9649 _In_ UINT numResourceDescs,
9650 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
9651#else
9652 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo(
9653 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
9654 _In_ UINT visibleMask,
9655 _In_ UINT numResourceDescs,
9656 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
9657#endif
9658
9659#if defined(_MSC_VER) || !defined(_WIN32)
9660 virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
9661 _In_ UINT nodeMask,
9662 D3D12_HEAP_TYPE heapType) = 0;
9663#else
9664 virtual D3D12_HEAP_PROPERTIES *STDMETHODCALLTYPE GetCustomHeapProperties(
9665 D3D12_HEAP_PROPERTIES * RetVal,
9666 _In_ UINT nodeMask,
9667 D3D12_HEAP_TYPE heapType) = 0;
9668#endif
9669
9670 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
9671 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
9672 D3D12_HEAP_FLAGS HeapFlags,
9673 _In_ const D3D12_RESOURCE_DESC *pDesc,
9674 D3D12_RESOURCE_STATES InitialResourceState,
9675 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9676 REFIID riidResource,
9677 _COM_Outptr_opt_ void **ppvResource) = 0;
9678
9679 virtual HRESULT STDMETHODCALLTYPE CreateHeap(
9680 _In_ const D3D12_HEAP_DESC *pDesc,
9681 REFIID riid,
9682 _COM_Outptr_opt_ void **ppvHeap) = 0;
9683
9684 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
9685 _In_ ID3D12Heap *pHeap,
9686 UINT64 HeapOffset,
9687 _In_ const D3D12_RESOURCE_DESC *pDesc,
9688 D3D12_RESOURCE_STATES InitialState,
9689 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9690 REFIID riid,
9691 _COM_Outptr_opt_ void **ppvResource) = 0;
9692
9693 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
9694 _In_ const D3D12_RESOURCE_DESC *pDesc,
9695 D3D12_RESOURCE_STATES InitialState,
9696 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9697 REFIID riid,
9698 _COM_Outptr_opt_ void **ppvResource) = 0;
9699
9700 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
9701 _In_ ID3D12DeviceChild *pObject,
9702 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
9703 DWORD Access,
9704 _In_opt_ LPCWSTR Name,
9705 _Out_ HANDLE *pHandle) = 0;
9706
9707 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
9708 _In_ HANDLE NTHandle,
9709 REFIID riid,
9710 _COM_Outptr_opt_ void **ppvObj) = 0;
9711
9712 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
9713 _In_ LPCWSTR Name,
9714 DWORD Access,
9715 /* [annotation][out] */
9716 _Out_ HANDLE *pNTHandle) = 0;
9717
9718 virtual HRESULT STDMETHODCALLTYPE MakeResident(
9719 UINT NumObjects,
9720 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
9721
9722 virtual HRESULT STDMETHODCALLTYPE Evict(
9723 UINT NumObjects,
9724 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
9725
9726 virtual HRESULT STDMETHODCALLTYPE CreateFence(
9727 UINT64 InitialValue,
9728 D3D12_FENCE_FLAGS Flags,
9729 REFIID riid,
9730 _COM_Outptr_ void **ppFence) = 0;
9731
9732 virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
9733
9734 virtual void STDMETHODCALLTYPE GetCopyableFootprints(
9735 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
9736 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
9737 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
9738 UINT64 BaseOffset,
9739 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
9740 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
9741 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
9742 _Out_opt_ UINT64 *pTotalBytes) = 0;
9743
9744 virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
9745 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
9746 REFIID riid,
9747 _COM_Outptr_opt_ void **ppvHeap) = 0;
9748
9749 virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
9750 BOOL Enable) = 0;
9751
9752 virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
9753 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
9754 _In_opt_ ID3D12RootSignature *pRootSignature,
9755 REFIID riid,
9756 _COM_Outptr_opt_ void **ppvCommandSignature) = 0;
9757
9758 virtual void STDMETHODCALLTYPE GetResourceTiling(
9759 _In_ ID3D12Resource *pTiledResource,
9760 _Out_opt_ UINT *pNumTilesForEntireResource,
9761 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
9762 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
9763 _Inout_opt_ UINT *pNumSubresourceTilings,
9764 _In_ UINT FirstSubresourceTilingToGet,
9765 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0;
9766
9767#if defined(_MSC_VER) || !defined(_WIN32)
9768 virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0;
9769#else
9770 virtual LUID *STDMETHODCALLTYPE GetAdapterLuid(
9771 LUID * RetVal) = 0;
9772#endif
9773
9774 };
9775
9776
9777#else /* C style interface */
9778
9779 typedef struct ID3D12DeviceVtbl
9780 {
9781 BEGIN_INTERFACE
9782
9783 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9784 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9785 ID3D12Device * This,
9786 REFIID riid,
9787 _COM_Outptr_ void **ppvObject);
9788
9789 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9790 ULONG ( STDMETHODCALLTYPE *AddRef )(
9791 ID3D12Device * This);
9792
9793 DECLSPEC_XFGVIRT(IUnknown, Release)
9794 ULONG ( STDMETHODCALLTYPE *Release )(
9795 ID3D12Device * This);
9796
9797 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9798 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9799 ID3D12Device * This,
9800 _In_ REFGUID guid,
9801 _Inout_ UINT *pDataSize,
9802 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9803
9804 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9805 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9806 ID3D12Device * This,
9807 _In_ REFGUID guid,
9808 _In_ UINT DataSize,
9809 _In_reads_bytes_opt_( DataSize ) const void *pData);
9810
9811 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9812 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9813 ID3D12Device * This,
9814 _In_ REFGUID guid,
9815 _In_opt_ const IUnknown *pData);
9816
9817 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9818 HRESULT ( STDMETHODCALLTYPE *SetName )(
9819 ID3D12Device * This,
9820 _In_z_ LPCWSTR Name);
9821
9822 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
9823 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
9824 ID3D12Device * This);
9825
9826 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
9827 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
9828 ID3D12Device * This,
9829 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
9830 REFIID riid,
9831 _COM_Outptr_ void **ppCommandQueue);
9832
9833 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
9834 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
9835 ID3D12Device * This,
9836 _In_ D3D12_COMMAND_LIST_TYPE type,
9837 REFIID riid,
9838 _COM_Outptr_ void **ppCommandAllocator);
9839
9840 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
9841 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
9842 ID3D12Device * This,
9843 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9844 REFIID riid,
9845 _COM_Outptr_ void **ppPipelineState);
9846
9847 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
9848 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
9849 ID3D12Device * This,
9850 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9851 REFIID riid,
9852 _COM_Outptr_ void **ppPipelineState);
9853
9854 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
9855 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
9856 ID3D12Device * This,
9857 _In_ UINT nodeMask,
9858 _In_ D3D12_COMMAND_LIST_TYPE type,
9859 _In_ ID3D12CommandAllocator *pCommandAllocator,
9860 _In_opt_ ID3D12PipelineState *pInitialState,
9861 REFIID riid,
9862 _COM_Outptr_ void **ppCommandList);
9863
9864 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
9865 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
9866 ID3D12Device * This,
9867 D3D12_FEATURE Feature,
9868 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
9869 UINT FeatureSupportDataSize);
9870
9871 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
9872 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
9873 ID3D12Device * This,
9874 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
9875 REFIID riid,
9876 _COM_Outptr_ void **ppvHeap);
9877
9878 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
9879 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
9880 ID3D12Device * This,
9881 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
9882
9883 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
9884 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
9885 ID3D12Device * This,
9886 _In_ UINT nodeMask,
9887 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
9888 _In_ SIZE_T blobLengthInBytes,
9889 REFIID riid,
9890 _COM_Outptr_ void **ppvRootSignature);
9891
9892 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
9893 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
9894 ID3D12Device * This,
9895 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
9896 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9897
9898 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
9899 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
9900 ID3D12Device * This,
9901 _In_opt_ ID3D12Resource *pResource,
9902 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
9903 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9904
9905 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
9906 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
9907 ID3D12Device * This,
9908 _In_opt_ ID3D12Resource *pResource,
9909 _In_opt_ ID3D12Resource *pCounterResource,
9910 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9911 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9912
9913 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
9914 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
9915 ID3D12Device * This,
9916 _In_opt_ ID3D12Resource *pResource,
9917 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
9918 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9919
9920 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
9921 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
9922 ID3D12Device * This,
9923 _In_opt_ ID3D12Resource *pResource,
9924 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
9925 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9926
9927 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
9928 void ( STDMETHODCALLTYPE *CreateSampler )(
9929 ID3D12Device * This,
9930 _In_ const D3D12_SAMPLER_DESC *pDesc,
9931 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9932
9933 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
9934 void ( STDMETHODCALLTYPE *CopyDescriptors )(
9935 ID3D12Device * This,
9936 _In_ UINT NumDestDescriptorRanges,
9937 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
9938 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
9939 _In_ UINT NumSrcDescriptorRanges,
9940 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
9941 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
9942 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
9943
9944 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
9945 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
9946 ID3D12Device * This,
9947 _In_ UINT NumDescriptors,
9948 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
9949 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
9950 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
9951
9952 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
9953#if !defined(_WIN32)
9954 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
9955 ID3D12Device * This,
9956 _In_ UINT visibleMask,
9957 _In_ UINT numResourceDescs,
9958 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
9959
9960#else
9961 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
9962 ID3D12Device * This,
9963 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
9964 _In_ UINT visibleMask,
9965 _In_ UINT numResourceDescs,
9966 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
9967
9968#endif
9969
9970 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
9971#if !defined(_WIN32)
9972 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
9973 ID3D12Device * This,
9974 _In_ UINT nodeMask,
9975 D3D12_HEAP_TYPE heapType);
9976
9977#else
9978 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
9979 ID3D12Device * This,
9980 D3D12_HEAP_PROPERTIES * RetVal,
9981 _In_ UINT nodeMask,
9982 D3D12_HEAP_TYPE heapType);
9983
9984#endif
9985
9986 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
9987 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
9988 ID3D12Device * This,
9989 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
9990 D3D12_HEAP_FLAGS HeapFlags,
9991 _In_ const D3D12_RESOURCE_DESC *pDesc,
9992 D3D12_RESOURCE_STATES InitialResourceState,
9993 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9994 REFIID riidResource,
9995 _COM_Outptr_opt_ void **ppvResource);
9996
9997 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
9998 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
9999 ID3D12Device * This,
10000 _In_ const D3D12_HEAP_DESC *pDesc,
10001 REFIID riid,
10002 _COM_Outptr_opt_ void **ppvHeap);
10003
10004 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
10005 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
10006 ID3D12Device * This,
10007 _In_ ID3D12Heap *pHeap,
10008 UINT64 HeapOffset,
10009 _In_ const D3D12_RESOURCE_DESC *pDesc,
10010 D3D12_RESOURCE_STATES InitialState,
10011 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10012 REFIID riid,
10013 _COM_Outptr_opt_ void **ppvResource);
10014
10015 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
10016 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
10017 ID3D12Device * This,
10018 _In_ const D3D12_RESOURCE_DESC *pDesc,
10019 D3D12_RESOURCE_STATES InitialState,
10020 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10021 REFIID riid,
10022 _COM_Outptr_opt_ void **ppvResource);
10023
10024 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
10025 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
10026 ID3D12Device * This,
10027 _In_ ID3D12DeviceChild *pObject,
10028 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
10029 DWORD Access,
10030 _In_opt_ LPCWSTR Name,
10031 _Out_ HANDLE *pHandle);
10032
10033 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
10034 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
10035 ID3D12Device * This,
10036 _In_ HANDLE NTHandle,
10037 REFIID riid,
10038 _COM_Outptr_opt_ void **ppvObj);
10039
10040 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
10041 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
10042 ID3D12Device * This,
10043 _In_ LPCWSTR Name,
10044 DWORD Access,
10045 /* [annotation][out] */
10046 _Out_ HANDLE *pNTHandle);
10047
10048 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
10049 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
10050 ID3D12Device * This,
10051 UINT NumObjects,
10052 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10053
10054 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
10055 HRESULT ( STDMETHODCALLTYPE *Evict )(
10056 ID3D12Device * This,
10057 UINT NumObjects,
10058 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10059
10060 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
10061 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
10062 ID3D12Device * This,
10063 UINT64 InitialValue,
10064 D3D12_FENCE_FLAGS Flags,
10065 REFIID riid,
10066 _COM_Outptr_ void **ppFence);
10067
10068 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
10069 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
10070 ID3D12Device * This);
10071
10072 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
10073 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
10074 ID3D12Device * This,
10075 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
10076 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
10077 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
10078 UINT64 BaseOffset,
10079 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
10080 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
10081 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
10082 _Out_opt_ UINT64 *pTotalBytes);
10083
10084 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
10085 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
10086 ID3D12Device * This,
10087 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
10088 REFIID riid,
10089 _COM_Outptr_opt_ void **ppvHeap);
10090
10091 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
10092 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
10093 ID3D12Device * This,
10094 BOOL Enable);
10095
10096 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
10097 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
10098 ID3D12Device * This,
10099 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
10100 _In_opt_ ID3D12RootSignature *pRootSignature,
10101 REFIID riid,
10102 _COM_Outptr_opt_ void **ppvCommandSignature);
10103
10104 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
10105 void ( STDMETHODCALLTYPE *GetResourceTiling )(
10106 ID3D12Device * This,
10107 _In_ ID3D12Resource *pTiledResource,
10108 _Out_opt_ UINT *pNumTilesForEntireResource,
10109 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
10110 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
10111 _Inout_opt_ UINT *pNumSubresourceTilings,
10112 _In_ UINT FirstSubresourceTilingToGet,
10113 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
10114
10115 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
10116#if !defined(_WIN32)
10117 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
10118 ID3D12Device * This);
10119
10120#else
10121 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
10122 ID3D12Device * This,
10123 LUID * RetVal);
10124
10125#endif
10126
10127 END_INTERFACE
10128 } ID3D12DeviceVtbl;
10129
10130 interface ID3D12Device
10131 {
10132 CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl;
10133 };
10134
10135
10136
10137#ifdef COBJMACROS
10138
10139
10140#define ID3D12Device_QueryInterface(This,riid,ppvObject) \
10141 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10142
10143#define ID3D12Device_AddRef(This) \
10144 ( (This)->lpVtbl -> AddRef(This) )
10145
10146#define ID3D12Device_Release(This) \
10147 ( (This)->lpVtbl -> Release(This) )
10148
10149
10150#define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \
10151 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10152
10153#define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \
10154 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10155
10156#define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \
10157 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10158
10159#define ID3D12Device_SetName(This,Name) \
10160 ( (This)->lpVtbl -> SetName(This,Name) )
10161
10162
10163#define ID3D12Device_GetNodeCount(This) \
10164 ( (This)->lpVtbl -> GetNodeCount(This) )
10165
10166#define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
10167 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
10168
10169#define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
10170 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
10171
10172#define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
10173 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
10174
10175#define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
10176 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
10177
10178#define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
10179 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
10180
10181#define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
10182 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
10183
10184#define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
10185 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
10186
10187#define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
10188 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
10189
10190#define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
10191 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
10192
10193#define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \
10194 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
10195
10196#define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
10197 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
10198
10199#define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
10200 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
10201
10202#define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
10203 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
10204
10205#define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
10206 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
10207
10208#define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \
10209 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
10210
10211#define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
10212 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
10213
10214#define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
10215 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
10216#if !defined(_WIN32)
10217
10218#define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
10219 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
10220#else
10221#define ID3D12Device_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
10222 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
10223#endif
10224#if !defined(_WIN32)
10225
10226#define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \
10227 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
10228#else
10229#define ID3D12Device_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
10230 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
10231#endif
10232
10233#define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
10234 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
10235
10236#define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \
10237 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
10238
10239#define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
10240 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
10241
10242#define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
10243 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
10244
10245#define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
10246 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
10247
10248#define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
10249 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
10250
10251#define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
10252 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
10253
10254#define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \
10255 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
10256
10257#define ID3D12Device_Evict(This,NumObjects,ppObjects) \
10258 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
10259
10260#define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \
10261 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
10262
10263#define ID3D12Device_GetDeviceRemovedReason(This) \
10264 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
10265
10266#define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
10267 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
10268
10269#define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
10270 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
10271
10272#define ID3D12Device_SetStablePowerState(This,Enable) \
10273 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
10274
10275#define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
10276 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
10277
10278#define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
10279 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
10280#if !defined(_WIN32)
10281
10282#define ID3D12Device_GetAdapterLuid(This) \
10283 ( (This)->lpVtbl -> GetAdapterLuid(This) )
10284#else
10285#define ID3D12Device_GetAdapterLuid(This,RetVal) \
10286 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
10287#endif
10288
10289#endif /* COBJMACROS */
10290
10291
10292#endif /* C style interface */
10293
10294
10295
10296
10297#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
10298
10299
10300#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__
10301#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__
10302
10303/* interface ID3D12PipelineLibrary */
10304/* [unique][local][object][uuid] */
10305
10306
10307EXTERN_C const IID IID_ID3D12PipelineLibrary;
10308
10309#if defined(__cplusplus) && !defined(CINTERFACE)
10310
10311 MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f")
10312 ID3D12PipelineLibrary : public ID3D12DeviceChild
10313 {
10314 public:
10315 virtual HRESULT STDMETHODCALLTYPE StorePipeline(
10316 _In_opt_ LPCWSTR pName,
10317 _In_ ID3D12PipelineState *pPipeline) = 0;
10318
10319 virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline(
10320 _In_ LPCWSTR pName,
10321 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10322 REFIID riid,
10323 _COM_Outptr_ void **ppPipelineState) = 0;
10324
10325 virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline(
10326 _In_ LPCWSTR pName,
10327 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10328 REFIID riid,
10329 _COM_Outptr_ void **ppPipelineState) = 0;
10330
10331 virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0;
10332
10333 virtual HRESULT STDMETHODCALLTYPE Serialize(
10334 _Out_writes_(DataSizeInBytes) void *pData,
10335 SIZE_T DataSizeInBytes) = 0;
10336
10337 };
10338
10339
10340#else /* C style interface */
10341
10342 typedef struct ID3D12PipelineLibraryVtbl
10343 {
10344 BEGIN_INTERFACE
10345
10346 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10347 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10348 ID3D12PipelineLibrary * This,
10349 REFIID riid,
10350 _COM_Outptr_ void **ppvObject);
10351
10352 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10353 ULONG ( STDMETHODCALLTYPE *AddRef )(
10354 ID3D12PipelineLibrary * This);
10355
10356 DECLSPEC_XFGVIRT(IUnknown, Release)
10357 ULONG ( STDMETHODCALLTYPE *Release )(
10358 ID3D12PipelineLibrary * This);
10359
10360 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10361 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10362 ID3D12PipelineLibrary * This,
10363 _In_ REFGUID guid,
10364 _Inout_ UINT *pDataSize,
10365 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10366
10367 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10368 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10369 ID3D12PipelineLibrary * This,
10370 _In_ REFGUID guid,
10371 _In_ UINT DataSize,
10372 _In_reads_bytes_opt_( DataSize ) const void *pData);
10373
10374 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10375 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10376 ID3D12PipelineLibrary * This,
10377 _In_ REFGUID guid,
10378 _In_opt_ const IUnknown *pData);
10379
10380 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10381 HRESULT ( STDMETHODCALLTYPE *SetName )(
10382 ID3D12PipelineLibrary * This,
10383 _In_z_ LPCWSTR Name);
10384
10385 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
10386 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
10387 ID3D12PipelineLibrary * This,
10388 REFIID riid,
10389 _COM_Outptr_opt_ void **ppvDevice);
10390
10391 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
10392 HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
10393 ID3D12PipelineLibrary * This,
10394 _In_opt_ LPCWSTR pName,
10395 _In_ ID3D12PipelineState *pPipeline);
10396
10397 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
10398 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
10399 ID3D12PipelineLibrary * This,
10400 _In_ LPCWSTR pName,
10401 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10402 REFIID riid,
10403 _COM_Outptr_ void **ppPipelineState);
10404
10405 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
10406 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
10407 ID3D12PipelineLibrary * This,
10408 _In_ LPCWSTR pName,
10409 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10410 REFIID riid,
10411 _COM_Outptr_ void **ppPipelineState);
10412
10413 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
10414 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
10415 ID3D12PipelineLibrary * This);
10416
10417 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
10418 HRESULT ( STDMETHODCALLTYPE *Serialize )(
10419 ID3D12PipelineLibrary * This,
10420 _Out_writes_(DataSizeInBytes) void *pData,
10421 SIZE_T DataSizeInBytes);
10422
10423 END_INTERFACE
10424 } ID3D12PipelineLibraryVtbl;
10425
10426 interface ID3D12PipelineLibrary
10427 {
10428 CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl;
10429 };
10430
10431
10432
10433#ifdef COBJMACROS
10434
10435
10436#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \
10437 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10438
10439#define ID3D12PipelineLibrary_AddRef(This) \
10440 ( (This)->lpVtbl -> AddRef(This) )
10441
10442#define ID3D12PipelineLibrary_Release(This) \
10443 ( (This)->lpVtbl -> Release(This) )
10444
10445
10446#define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \
10447 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10448
10449#define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \
10450 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10451
10452#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \
10453 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10454
10455#define ID3D12PipelineLibrary_SetName(This,Name) \
10456 ( (This)->lpVtbl -> SetName(This,Name) )
10457
10458
10459#define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \
10460 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
10461
10462
10463#define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \
10464 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
10465
10466#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
10467 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
10468
10469#define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
10470 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
10471
10472#define ID3D12PipelineLibrary_GetSerializedSize(This) \
10473 ( (This)->lpVtbl -> GetSerializedSize(This) )
10474
10475#define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \
10476 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
10477
10478#endif /* COBJMACROS */
10479
10480
10481#endif /* C style interface */
10482
10483
10484
10485
10486#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */
10487
10488
10489#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
10490#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
10491
10492/* interface ID3D12PipelineLibrary1 */
10493/* [unique][local][object][uuid] */
10494
10495
10496EXTERN_C const IID IID_ID3D12PipelineLibrary1;
10497
10498#if defined(__cplusplus) && !defined(CINTERFACE)
10499
10500 MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3")
10501 ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary
10502 {
10503 public:
10504 virtual HRESULT STDMETHODCALLTYPE LoadPipeline(
10505 _In_ LPCWSTR pName,
10506 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
10507 REFIID riid,
10508 _COM_Outptr_ void **ppPipelineState) = 0;
10509
10510 };
10511
10512
10513#else /* C style interface */
10514
10515 typedef struct ID3D12PipelineLibrary1Vtbl
10516 {
10517 BEGIN_INTERFACE
10518
10519 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10520 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10521 ID3D12PipelineLibrary1 * This,
10522 REFIID riid,
10523 _COM_Outptr_ void **ppvObject);
10524
10525 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10526 ULONG ( STDMETHODCALLTYPE *AddRef )(
10527 ID3D12PipelineLibrary1 * This);
10528
10529 DECLSPEC_XFGVIRT(IUnknown, Release)
10530 ULONG ( STDMETHODCALLTYPE *Release )(
10531 ID3D12PipelineLibrary1 * This);
10532
10533 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10534 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10535 ID3D12PipelineLibrary1 * This,
10536 _In_ REFGUID guid,
10537 _Inout_ UINT *pDataSize,
10538 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10539
10540 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10541 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10542 ID3D12PipelineLibrary1 * This,
10543 _In_ REFGUID guid,
10544 _In_ UINT DataSize,
10545 _In_reads_bytes_opt_( DataSize ) const void *pData);
10546
10547 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10548 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10549 ID3D12PipelineLibrary1 * This,
10550 _In_ REFGUID guid,
10551 _In_opt_ const IUnknown *pData);
10552
10553 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10554 HRESULT ( STDMETHODCALLTYPE *SetName )(
10555 ID3D12PipelineLibrary1 * This,
10556 _In_z_ LPCWSTR Name);
10557
10558 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
10559 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
10560 ID3D12PipelineLibrary1 * This,
10561 REFIID riid,
10562 _COM_Outptr_opt_ void **ppvDevice);
10563
10564 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
10565 HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
10566 ID3D12PipelineLibrary1 * This,
10567 _In_opt_ LPCWSTR pName,
10568 _In_ ID3D12PipelineState *pPipeline);
10569
10570 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
10571 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
10572 ID3D12PipelineLibrary1 * This,
10573 _In_ LPCWSTR pName,
10574 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10575 REFIID riid,
10576 _COM_Outptr_ void **ppPipelineState);
10577
10578 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
10579 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
10580 ID3D12PipelineLibrary1 * This,
10581 _In_ LPCWSTR pName,
10582 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10583 REFIID riid,
10584 _COM_Outptr_ void **ppPipelineState);
10585
10586 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
10587 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
10588 ID3D12PipelineLibrary1 * This);
10589
10590 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
10591 HRESULT ( STDMETHODCALLTYPE *Serialize )(
10592 ID3D12PipelineLibrary1 * This,
10593 _Out_writes_(DataSizeInBytes) void *pData,
10594 SIZE_T DataSizeInBytes);
10595
10596 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary1, LoadPipeline)
10597 HRESULT ( STDMETHODCALLTYPE *LoadPipeline )(
10598 ID3D12PipelineLibrary1 * This,
10599 _In_ LPCWSTR pName,
10600 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
10601 REFIID riid,
10602 _COM_Outptr_ void **ppPipelineState);
10603
10604 END_INTERFACE
10605 } ID3D12PipelineLibrary1Vtbl;
10606
10607 interface ID3D12PipelineLibrary1
10608 {
10609 CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl;
10610 };
10611
10612
10613
10614#ifdef COBJMACROS
10615
10616
10617#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \
10618 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10619
10620#define ID3D12PipelineLibrary1_AddRef(This) \
10621 ( (This)->lpVtbl -> AddRef(This) )
10622
10623#define ID3D12PipelineLibrary1_Release(This) \
10624 ( (This)->lpVtbl -> Release(This) )
10625
10626
10627#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \
10628 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10629
10630#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \
10631 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10632
10633#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \
10634 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10635
10636#define ID3D12PipelineLibrary1_SetName(This,Name) \
10637 ( (This)->lpVtbl -> SetName(This,Name) )
10638
10639
10640#define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \
10641 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
10642
10643
10644#define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \
10645 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
10646
10647#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
10648 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
10649
10650#define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
10651 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
10652
10653#define ID3D12PipelineLibrary1_GetSerializedSize(This) \
10654 ( (This)->lpVtbl -> GetSerializedSize(This) )
10655
10656#define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \
10657 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
10658
10659
10660#define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \
10661 ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) )
10662
10663#endif /* COBJMACROS */
10664
10665
10666#endif /* C style interface */
10667
10668
10669
10670
10671#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */
10672
10673
10674/* interface __MIDL_itf_d3d12_0000_0025 */
10675/* [local] */
10676
10677typedef
10678enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
10679 {
10680 D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0,
10681 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
10682 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0
10683 } D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
10684
10685DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS )
10686typedef
10687enum D3D12_RESIDENCY_PRIORITY
10688 {
10689 D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
10690 D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
10691 D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
10692 D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
10693 D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
10694 } D3D12_RESIDENCY_PRIORITY;
10695
10696
10697
10698extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec;
10699extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec;
10700
10701#ifndef __ID3D12Device1_INTERFACE_DEFINED__
10702#define __ID3D12Device1_INTERFACE_DEFINED__
10703
10704/* interface ID3D12Device1 */
10705/* [unique][local][object][uuid] */
10706
10707
10708EXTERN_C const IID IID_ID3D12Device1;
10709
10710#if defined(__cplusplus) && !defined(CINTERFACE)
10711
10712 MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
10713 ID3D12Device1 : public ID3D12Device
10714 {
10715 public:
10716 virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
10717 _In_reads_(BlobLength) const void *pLibraryBlob,
10718 SIZE_T BlobLength,
10719 REFIID riid,
10720 _COM_Outptr_ void **ppPipelineLibrary) = 0;
10721
10722 virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
10723 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
10724 _In_reads_(NumFences) const UINT64 *pFenceValues,
10725 UINT NumFences,
10726 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
10727 HANDLE hEvent) = 0;
10728
10729 virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
10730 UINT NumObjects,
10731 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
10732 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0;
10733
10734 };
10735
10736
10737#else /* C style interface */
10738
10739 typedef struct ID3D12Device1Vtbl
10740 {
10741 BEGIN_INTERFACE
10742
10743 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10744 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10745 ID3D12Device1 * This,
10746 REFIID riid,
10747 _COM_Outptr_ void **ppvObject);
10748
10749 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10750 ULONG ( STDMETHODCALLTYPE *AddRef )(
10751 ID3D12Device1 * This);
10752
10753 DECLSPEC_XFGVIRT(IUnknown, Release)
10754 ULONG ( STDMETHODCALLTYPE *Release )(
10755 ID3D12Device1 * This);
10756
10757 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10758 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10759 ID3D12Device1 * This,
10760 _In_ REFGUID guid,
10761 _Inout_ UINT *pDataSize,
10762 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10763
10764 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10765 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10766 ID3D12Device1 * This,
10767 _In_ REFGUID guid,
10768 _In_ UINT DataSize,
10769 _In_reads_bytes_opt_( DataSize ) const void *pData);
10770
10771 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10772 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10773 ID3D12Device1 * This,
10774 _In_ REFGUID guid,
10775 _In_opt_ const IUnknown *pData);
10776
10777 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10778 HRESULT ( STDMETHODCALLTYPE *SetName )(
10779 ID3D12Device1 * This,
10780 _In_z_ LPCWSTR Name);
10781
10782 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
10783 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
10784 ID3D12Device1 * This);
10785
10786 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
10787 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
10788 ID3D12Device1 * This,
10789 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
10790 REFIID riid,
10791 _COM_Outptr_ void **ppCommandQueue);
10792
10793 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
10794 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
10795 ID3D12Device1 * This,
10796 _In_ D3D12_COMMAND_LIST_TYPE type,
10797 REFIID riid,
10798 _COM_Outptr_ void **ppCommandAllocator);
10799
10800 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
10801 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
10802 ID3D12Device1 * This,
10803 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10804 REFIID riid,
10805 _COM_Outptr_ void **ppPipelineState);
10806
10807 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
10808 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
10809 ID3D12Device1 * This,
10810 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10811 REFIID riid,
10812 _COM_Outptr_ void **ppPipelineState);
10813
10814 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
10815 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
10816 ID3D12Device1 * This,
10817 _In_ UINT nodeMask,
10818 _In_ D3D12_COMMAND_LIST_TYPE type,
10819 _In_ ID3D12CommandAllocator *pCommandAllocator,
10820 _In_opt_ ID3D12PipelineState *pInitialState,
10821 REFIID riid,
10822 _COM_Outptr_ void **ppCommandList);
10823
10824 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
10825 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
10826 ID3D12Device1 * This,
10827 D3D12_FEATURE Feature,
10828 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
10829 UINT FeatureSupportDataSize);
10830
10831 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
10832 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
10833 ID3D12Device1 * This,
10834 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
10835 REFIID riid,
10836 _COM_Outptr_ void **ppvHeap);
10837
10838 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
10839 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
10840 ID3D12Device1 * This,
10841 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
10842
10843 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
10844 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
10845 ID3D12Device1 * This,
10846 _In_ UINT nodeMask,
10847 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
10848 _In_ SIZE_T blobLengthInBytes,
10849 REFIID riid,
10850 _COM_Outptr_ void **ppvRootSignature);
10851
10852 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
10853 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
10854 ID3D12Device1 * This,
10855 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
10856 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10857
10858 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
10859 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
10860 ID3D12Device1 * This,
10861 _In_opt_ ID3D12Resource *pResource,
10862 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
10863 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10864
10865 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
10866 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
10867 ID3D12Device1 * This,
10868 _In_opt_ ID3D12Resource *pResource,
10869 _In_opt_ ID3D12Resource *pCounterResource,
10870 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
10871 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10872
10873 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
10874 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
10875 ID3D12Device1 * This,
10876 _In_opt_ ID3D12Resource *pResource,
10877 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
10878 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10879
10880 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
10881 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
10882 ID3D12Device1 * This,
10883 _In_opt_ ID3D12Resource *pResource,
10884 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
10885 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10886
10887 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
10888 void ( STDMETHODCALLTYPE *CreateSampler )(
10889 ID3D12Device1 * This,
10890 _In_ const D3D12_SAMPLER_DESC *pDesc,
10891 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10892
10893 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
10894 void ( STDMETHODCALLTYPE *CopyDescriptors )(
10895 ID3D12Device1 * This,
10896 _In_ UINT NumDestDescriptorRanges,
10897 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
10898 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
10899 _In_ UINT NumSrcDescriptorRanges,
10900 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
10901 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
10902 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10903
10904 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
10905 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
10906 ID3D12Device1 * This,
10907 _In_ UINT NumDescriptors,
10908 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
10909 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
10910 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10911
10912 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
10913#if !defined(_WIN32)
10914 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10915 ID3D12Device1 * This,
10916 _In_ UINT visibleMask,
10917 _In_ UINT numResourceDescs,
10918 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10919
10920#else
10921 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10922 ID3D12Device1 * This,
10923 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
10924 _In_ UINT visibleMask,
10925 _In_ UINT numResourceDescs,
10926 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10927
10928#endif
10929
10930 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
10931#if !defined(_WIN32)
10932 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10933 ID3D12Device1 * This,
10934 _In_ UINT nodeMask,
10935 D3D12_HEAP_TYPE heapType);
10936
10937#else
10938 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10939 ID3D12Device1 * This,
10940 D3D12_HEAP_PROPERTIES * RetVal,
10941 _In_ UINT nodeMask,
10942 D3D12_HEAP_TYPE heapType);
10943
10944#endif
10945
10946 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
10947 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
10948 ID3D12Device1 * This,
10949 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
10950 D3D12_HEAP_FLAGS HeapFlags,
10951 _In_ const D3D12_RESOURCE_DESC *pDesc,
10952 D3D12_RESOURCE_STATES InitialResourceState,
10953 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10954 REFIID riidResource,
10955 _COM_Outptr_opt_ void **ppvResource);
10956
10957 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
10958 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
10959 ID3D12Device1 * This,
10960 _In_ const D3D12_HEAP_DESC *pDesc,
10961 REFIID riid,
10962 _COM_Outptr_opt_ void **ppvHeap);
10963
10964 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
10965 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
10966 ID3D12Device1 * This,
10967 _In_ ID3D12Heap *pHeap,
10968 UINT64 HeapOffset,
10969 _In_ const D3D12_RESOURCE_DESC *pDesc,
10970 D3D12_RESOURCE_STATES InitialState,
10971 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10972 REFIID riid,
10973 _COM_Outptr_opt_ void **ppvResource);
10974
10975 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
10976 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
10977 ID3D12Device1 * This,
10978 _In_ const D3D12_RESOURCE_DESC *pDesc,
10979 D3D12_RESOURCE_STATES InitialState,
10980 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10981 REFIID riid,
10982 _COM_Outptr_opt_ void **ppvResource);
10983
10984 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
10985 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
10986 ID3D12Device1 * This,
10987 _In_ ID3D12DeviceChild *pObject,
10988 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
10989 DWORD Access,
10990 _In_opt_ LPCWSTR Name,
10991 _Out_ HANDLE *pHandle);
10992
10993 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
10994 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
10995 ID3D12Device1 * This,
10996 _In_ HANDLE NTHandle,
10997 REFIID riid,
10998 _COM_Outptr_opt_ void **ppvObj);
10999
11000 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
11001 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
11002 ID3D12Device1 * This,
11003 _In_ LPCWSTR Name,
11004 DWORD Access,
11005 /* [annotation][out] */
11006 _Out_ HANDLE *pNTHandle);
11007
11008 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
11009 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
11010 ID3D12Device1 * This,
11011 UINT NumObjects,
11012 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11013
11014 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
11015 HRESULT ( STDMETHODCALLTYPE *Evict )(
11016 ID3D12Device1 * This,
11017 UINT NumObjects,
11018 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11019
11020 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
11021 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
11022 ID3D12Device1 * This,
11023 UINT64 InitialValue,
11024 D3D12_FENCE_FLAGS Flags,
11025 REFIID riid,
11026 _COM_Outptr_ void **ppFence);
11027
11028 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
11029 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
11030 ID3D12Device1 * This);
11031
11032 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
11033 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
11034 ID3D12Device1 * This,
11035 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
11036 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
11037 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
11038 UINT64 BaseOffset,
11039 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
11040 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
11041 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
11042 _Out_opt_ UINT64 *pTotalBytes);
11043
11044 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
11045 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
11046 ID3D12Device1 * This,
11047 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
11048 REFIID riid,
11049 _COM_Outptr_opt_ void **ppvHeap);
11050
11051 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
11052 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
11053 ID3D12Device1 * This,
11054 BOOL Enable);
11055
11056 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
11057 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
11058 ID3D12Device1 * This,
11059 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
11060 _In_opt_ ID3D12RootSignature *pRootSignature,
11061 REFIID riid,
11062 _COM_Outptr_opt_ void **ppvCommandSignature);
11063
11064 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
11065 void ( STDMETHODCALLTYPE *GetResourceTiling )(
11066 ID3D12Device1 * This,
11067 _In_ ID3D12Resource *pTiledResource,
11068 _Out_opt_ UINT *pNumTilesForEntireResource,
11069 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
11070 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
11071 _Inout_opt_ UINT *pNumSubresourceTilings,
11072 _In_ UINT FirstSubresourceTilingToGet,
11073 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
11074
11075 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
11076#if !defined(_WIN32)
11077 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
11078 ID3D12Device1 * This);
11079
11080#else
11081 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
11082 ID3D12Device1 * This,
11083 LUID * RetVal);
11084
11085#endif
11086
11087 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
11088 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
11089 ID3D12Device1 * This,
11090 _In_reads_(BlobLength) const void *pLibraryBlob,
11091 SIZE_T BlobLength,
11092 REFIID riid,
11093 _COM_Outptr_ void **ppPipelineLibrary);
11094
11095 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
11096 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
11097 ID3D12Device1 * This,
11098 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
11099 _In_reads_(NumFences) const UINT64 *pFenceValues,
11100 UINT NumFences,
11101 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
11102 HANDLE hEvent);
11103
11104 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
11105 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
11106 ID3D12Device1 * This,
11107 UINT NumObjects,
11108 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11109 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
11110
11111 END_INTERFACE
11112 } ID3D12Device1Vtbl;
11113
11114 interface ID3D12Device1
11115 {
11116 CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl;
11117 };
11118
11119
11120
11121#ifdef COBJMACROS
11122
11123
11124#define ID3D12Device1_QueryInterface(This,riid,ppvObject) \
11125 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11126
11127#define ID3D12Device1_AddRef(This) \
11128 ( (This)->lpVtbl -> AddRef(This) )
11129
11130#define ID3D12Device1_Release(This) \
11131 ( (This)->lpVtbl -> Release(This) )
11132
11133
11134#define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \
11135 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11136
11137#define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \
11138 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11139
11140#define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \
11141 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11142
11143#define ID3D12Device1_SetName(This,Name) \
11144 ( (This)->lpVtbl -> SetName(This,Name) )
11145
11146
11147#define ID3D12Device1_GetNodeCount(This) \
11148 ( (This)->lpVtbl -> GetNodeCount(This) )
11149
11150#define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
11151 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
11152
11153#define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
11154 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
11155
11156#define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
11157 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
11158
11159#define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
11160 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
11161
11162#define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
11163 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
11164
11165#define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
11166 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
11167
11168#define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
11169 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
11170
11171#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
11172 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
11173
11174#define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
11175 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
11176
11177#define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \
11178 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
11179
11180#define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
11181 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
11182
11183#define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
11184 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
11185
11186#define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
11187 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
11188
11189#define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
11190 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
11191
11192#define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \
11193 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
11194
11195#define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
11196 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
11197
11198#define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
11199 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
11200#if !defined(_WIN32)
11201
11202#define ID3D12Device1_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
11203 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
11204#else
11205#define ID3D12Device1_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
11206 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
11207#endif
11208#if !defined(_WIN32)
11209
11210#define ID3D12Device1_GetCustomHeapProperties(This,nodeMask,heapType) \
11211 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
11212#else
11213#define ID3D12Device1_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
11214 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
11215#endif
11216
11217#define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
11218 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
11219
11220#define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \
11221 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
11222
11223#define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11224 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11225
11226#define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11227 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11228
11229#define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
11230 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
11231
11232#define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
11233 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
11234
11235#define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
11236 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
11237
11238#define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \
11239 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
11240
11241#define ID3D12Device1_Evict(This,NumObjects,ppObjects) \
11242 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
11243
11244#define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \
11245 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
11246
11247#define ID3D12Device1_GetDeviceRemovedReason(This) \
11248 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
11249
11250#define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
11251 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
11252
11253#define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
11254 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
11255
11256#define ID3D12Device1_SetStablePowerState(This,Enable) \
11257 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
11258
11259#define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
11260 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
11261
11262#define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
11263 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
11264#if !defined(_WIN32)
11265
11266#define ID3D12Device1_GetAdapterLuid(This) \
11267 ( (This)->lpVtbl -> GetAdapterLuid(This) )
11268#else
11269#define ID3D12Device1_GetAdapterLuid(This,RetVal) \
11270 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
11271#endif
11272
11273
11274#define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
11275 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
11276
11277#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
11278 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
11279
11280#define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
11281 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
11282
11283#endif /* COBJMACROS */
11284
11285
11286#endif /* C style interface */
11287
11288
11289
11290
11291#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
11292
11293
11294#ifndef __ID3D12Device2_INTERFACE_DEFINED__
11295#define __ID3D12Device2_INTERFACE_DEFINED__
11296
11297/* interface ID3D12Device2 */
11298/* [unique][local][object][uuid] */
11299
11300
11301EXTERN_C const IID IID_ID3D12Device2;
11302
11303#if defined(__cplusplus) && !defined(CINTERFACE)
11304
11305 MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328")
11306 ID3D12Device2 : public ID3D12Device1
11307 {
11308 public:
11309 virtual HRESULT STDMETHODCALLTYPE CreatePipelineState(
11310 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
11311 REFIID riid,
11312 _COM_Outptr_ void **ppPipelineState) = 0;
11313
11314 };
11315
11316
11317#else /* C style interface */
11318
11319 typedef struct ID3D12Device2Vtbl
11320 {
11321 BEGIN_INTERFACE
11322
11323 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11324 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11325 ID3D12Device2 * This,
11326 REFIID riid,
11327 _COM_Outptr_ void **ppvObject);
11328
11329 DECLSPEC_XFGVIRT(IUnknown, AddRef)
11330 ULONG ( STDMETHODCALLTYPE *AddRef )(
11331 ID3D12Device2 * This);
11332
11333 DECLSPEC_XFGVIRT(IUnknown, Release)
11334 ULONG ( STDMETHODCALLTYPE *Release )(
11335 ID3D12Device2 * This);
11336
11337 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
11338 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
11339 ID3D12Device2 * This,
11340 _In_ REFGUID guid,
11341 _Inout_ UINT *pDataSize,
11342 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
11343
11344 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
11345 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
11346 ID3D12Device2 * This,
11347 _In_ REFGUID guid,
11348 _In_ UINT DataSize,
11349 _In_reads_bytes_opt_( DataSize ) const void *pData);
11350
11351 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
11352 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
11353 ID3D12Device2 * This,
11354 _In_ REFGUID guid,
11355 _In_opt_ const IUnknown *pData);
11356
11357 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
11358 HRESULT ( STDMETHODCALLTYPE *SetName )(
11359 ID3D12Device2 * This,
11360 _In_z_ LPCWSTR Name);
11361
11362 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
11363 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
11364 ID3D12Device2 * This);
11365
11366 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
11367 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
11368 ID3D12Device2 * This,
11369 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
11370 REFIID riid,
11371 _COM_Outptr_ void **ppCommandQueue);
11372
11373 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
11374 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
11375 ID3D12Device2 * This,
11376 _In_ D3D12_COMMAND_LIST_TYPE type,
11377 REFIID riid,
11378 _COM_Outptr_ void **ppCommandAllocator);
11379
11380 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
11381 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
11382 ID3D12Device2 * This,
11383 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
11384 REFIID riid,
11385 _COM_Outptr_ void **ppPipelineState);
11386
11387 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
11388 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
11389 ID3D12Device2 * This,
11390 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
11391 REFIID riid,
11392 _COM_Outptr_ void **ppPipelineState);
11393
11394 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
11395 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
11396 ID3D12Device2 * This,
11397 _In_ UINT nodeMask,
11398 _In_ D3D12_COMMAND_LIST_TYPE type,
11399 _In_ ID3D12CommandAllocator *pCommandAllocator,
11400 _In_opt_ ID3D12PipelineState *pInitialState,
11401 REFIID riid,
11402 _COM_Outptr_ void **ppCommandList);
11403
11404 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
11405 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
11406 ID3D12Device2 * This,
11407 D3D12_FEATURE Feature,
11408 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
11409 UINT FeatureSupportDataSize);
11410
11411 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
11412 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
11413 ID3D12Device2 * This,
11414 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
11415 REFIID riid,
11416 _COM_Outptr_ void **ppvHeap);
11417
11418 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
11419 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
11420 ID3D12Device2 * This,
11421 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
11422
11423 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
11424 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
11425 ID3D12Device2 * This,
11426 _In_ UINT nodeMask,
11427 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
11428 _In_ SIZE_T blobLengthInBytes,
11429 REFIID riid,
11430 _COM_Outptr_ void **ppvRootSignature);
11431
11432 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
11433 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
11434 ID3D12Device2 * This,
11435 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
11436 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11437
11438 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
11439 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
11440 ID3D12Device2 * This,
11441 _In_opt_ ID3D12Resource *pResource,
11442 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
11443 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11444
11445 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
11446 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
11447 ID3D12Device2 * This,
11448 _In_opt_ ID3D12Resource *pResource,
11449 _In_opt_ ID3D12Resource *pCounterResource,
11450 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
11451 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11452
11453 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
11454 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
11455 ID3D12Device2 * This,
11456 _In_opt_ ID3D12Resource *pResource,
11457 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
11458 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11459
11460 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
11461 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
11462 ID3D12Device2 * This,
11463 _In_opt_ ID3D12Resource *pResource,
11464 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
11465 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11466
11467 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
11468 void ( STDMETHODCALLTYPE *CreateSampler )(
11469 ID3D12Device2 * This,
11470 _In_ const D3D12_SAMPLER_DESC *pDesc,
11471 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11472
11473 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
11474 void ( STDMETHODCALLTYPE *CopyDescriptors )(
11475 ID3D12Device2 * This,
11476 _In_ UINT NumDestDescriptorRanges,
11477 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
11478 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
11479 _In_ UINT NumSrcDescriptorRanges,
11480 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
11481 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
11482 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
11483
11484 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
11485 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
11486 ID3D12Device2 * This,
11487 _In_ UINT NumDescriptors,
11488 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
11489 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
11490 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
11491
11492 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
11493#if !defined(_WIN32)
11494 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
11495 ID3D12Device2 * This,
11496 _In_ UINT visibleMask,
11497 _In_ UINT numResourceDescs,
11498 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
11499
11500#else
11501 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
11502 ID3D12Device2 * This,
11503 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
11504 _In_ UINT visibleMask,
11505 _In_ UINT numResourceDescs,
11506 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
11507
11508#endif
11509
11510 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
11511#if !defined(_WIN32)
11512 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
11513 ID3D12Device2 * This,
11514 _In_ UINT nodeMask,
11515 D3D12_HEAP_TYPE heapType);
11516
11517#else
11518 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
11519 ID3D12Device2 * This,
11520 D3D12_HEAP_PROPERTIES * RetVal,
11521 _In_ UINT nodeMask,
11522 D3D12_HEAP_TYPE heapType);
11523
11524#endif
11525
11526 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
11527 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
11528 ID3D12Device2 * This,
11529 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
11530 D3D12_HEAP_FLAGS HeapFlags,
11531 _In_ const D3D12_RESOURCE_DESC *pDesc,
11532 D3D12_RESOURCE_STATES InitialResourceState,
11533 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11534 REFIID riidResource,
11535 _COM_Outptr_opt_ void **ppvResource);
11536
11537 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
11538 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
11539 ID3D12Device2 * This,
11540 _In_ const D3D12_HEAP_DESC *pDesc,
11541 REFIID riid,
11542 _COM_Outptr_opt_ void **ppvHeap);
11543
11544 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
11545 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
11546 ID3D12Device2 * This,
11547 _In_ ID3D12Heap *pHeap,
11548 UINT64 HeapOffset,
11549 _In_ const D3D12_RESOURCE_DESC *pDesc,
11550 D3D12_RESOURCE_STATES InitialState,
11551 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11552 REFIID riid,
11553 _COM_Outptr_opt_ void **ppvResource);
11554
11555 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
11556 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
11557 ID3D12Device2 * This,
11558 _In_ const D3D12_RESOURCE_DESC *pDesc,
11559 D3D12_RESOURCE_STATES InitialState,
11560 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11561 REFIID riid,
11562 _COM_Outptr_opt_ void **ppvResource);
11563
11564 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
11565 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
11566 ID3D12Device2 * This,
11567 _In_ ID3D12DeviceChild *pObject,
11568 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
11569 DWORD Access,
11570 _In_opt_ LPCWSTR Name,
11571 _Out_ HANDLE *pHandle);
11572
11573 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
11574 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
11575 ID3D12Device2 * This,
11576 _In_ HANDLE NTHandle,
11577 REFIID riid,
11578 _COM_Outptr_opt_ void **ppvObj);
11579
11580 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
11581 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
11582 ID3D12Device2 * This,
11583 _In_ LPCWSTR Name,
11584 DWORD Access,
11585 /* [annotation][out] */
11586 _Out_ HANDLE *pNTHandle);
11587
11588 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
11589 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
11590 ID3D12Device2 * This,
11591 UINT NumObjects,
11592 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11593
11594 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
11595 HRESULT ( STDMETHODCALLTYPE *Evict )(
11596 ID3D12Device2 * This,
11597 UINT NumObjects,
11598 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11599
11600 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
11601 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
11602 ID3D12Device2 * This,
11603 UINT64 InitialValue,
11604 D3D12_FENCE_FLAGS Flags,
11605 REFIID riid,
11606 _COM_Outptr_ void **ppFence);
11607
11608 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
11609 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
11610 ID3D12Device2 * This);
11611
11612 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
11613 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
11614 ID3D12Device2 * This,
11615 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
11616 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
11617 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
11618 UINT64 BaseOffset,
11619 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
11620 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
11621 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
11622 _Out_opt_ UINT64 *pTotalBytes);
11623
11624 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
11625 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
11626 ID3D12Device2 * This,
11627 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
11628 REFIID riid,
11629 _COM_Outptr_opt_ void **ppvHeap);
11630
11631 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
11632 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
11633 ID3D12Device2 * This,
11634 BOOL Enable);
11635
11636 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
11637 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
11638 ID3D12Device2 * This,
11639 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
11640 _In_opt_ ID3D12RootSignature *pRootSignature,
11641 REFIID riid,
11642 _COM_Outptr_opt_ void **ppvCommandSignature);
11643
11644 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
11645 void ( STDMETHODCALLTYPE *GetResourceTiling )(
11646 ID3D12Device2 * This,
11647 _In_ ID3D12Resource *pTiledResource,
11648 _Out_opt_ UINT *pNumTilesForEntireResource,
11649 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
11650 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
11651 _Inout_opt_ UINT *pNumSubresourceTilings,
11652 _In_ UINT FirstSubresourceTilingToGet,
11653 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
11654
11655 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
11656#if !defined(_WIN32)
11657 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
11658 ID3D12Device2 * This);
11659
11660#else
11661 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
11662 ID3D12Device2 * This,
11663 LUID * RetVal);
11664
11665#endif
11666
11667 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
11668 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
11669 ID3D12Device2 * This,
11670 _In_reads_(BlobLength) const void *pLibraryBlob,
11671 SIZE_T BlobLength,
11672 REFIID riid,
11673 _COM_Outptr_ void **ppPipelineLibrary);
11674
11675 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
11676 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
11677 ID3D12Device2 * This,
11678 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
11679 _In_reads_(NumFences) const UINT64 *pFenceValues,
11680 UINT NumFences,
11681 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
11682 HANDLE hEvent);
11683
11684 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
11685 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
11686 ID3D12Device2 * This,
11687 UINT NumObjects,
11688 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11689 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
11690
11691 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
11692 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
11693 ID3D12Device2 * This,
11694 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
11695 REFIID riid,
11696 _COM_Outptr_ void **ppPipelineState);
11697
11698 END_INTERFACE
11699 } ID3D12Device2Vtbl;
11700
11701 interface ID3D12Device2
11702 {
11703 CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl;
11704 };
11705
11706
11707
11708#ifdef COBJMACROS
11709
11710
11711#define ID3D12Device2_QueryInterface(This,riid,ppvObject) \
11712 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11713
11714#define ID3D12Device2_AddRef(This) \
11715 ( (This)->lpVtbl -> AddRef(This) )
11716
11717#define ID3D12Device2_Release(This) \
11718 ( (This)->lpVtbl -> Release(This) )
11719
11720
11721#define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \
11722 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11723
11724#define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \
11725 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11726
11727#define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \
11728 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11729
11730#define ID3D12Device2_SetName(This,Name) \
11731 ( (This)->lpVtbl -> SetName(This,Name) )
11732
11733
11734#define ID3D12Device2_GetNodeCount(This) \
11735 ( (This)->lpVtbl -> GetNodeCount(This) )
11736
11737#define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
11738 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
11739
11740#define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
11741 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
11742
11743#define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
11744 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
11745
11746#define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
11747 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
11748
11749#define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
11750 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
11751
11752#define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
11753 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
11754
11755#define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
11756 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
11757
11758#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
11759 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
11760
11761#define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
11762 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
11763
11764#define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \
11765 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
11766
11767#define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
11768 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
11769
11770#define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
11771 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
11772
11773#define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
11774 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
11775
11776#define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
11777 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
11778
11779#define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \
11780 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
11781
11782#define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
11783 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
11784
11785#define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
11786 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
11787#if !defined(_WIN32)
11788
11789#define ID3D12Device2_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
11790 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
11791#else
11792#define ID3D12Device2_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
11793 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
11794#endif
11795#if !defined(_WIN32)
11796
11797#define ID3D12Device2_GetCustomHeapProperties(This,nodeMask,heapType) \
11798 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
11799#else
11800#define ID3D12Device2_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
11801 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
11802#endif
11803
11804#define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
11805 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
11806
11807#define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \
11808 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
11809
11810#define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11811 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11812
11813#define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11814 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11815
11816#define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
11817 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
11818
11819#define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
11820 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
11821
11822#define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
11823 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
11824
11825#define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \
11826 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
11827
11828#define ID3D12Device2_Evict(This,NumObjects,ppObjects) \
11829 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
11830
11831#define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \
11832 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
11833
11834#define ID3D12Device2_GetDeviceRemovedReason(This) \
11835 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
11836
11837#define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
11838 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
11839
11840#define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
11841 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
11842
11843#define ID3D12Device2_SetStablePowerState(This,Enable) \
11844 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
11845
11846#define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
11847 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
11848
11849#define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
11850 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
11851#if !defined(_WIN32)
11852
11853#define ID3D12Device2_GetAdapterLuid(This) \
11854 ( (This)->lpVtbl -> GetAdapterLuid(This) )
11855#else
11856#define ID3D12Device2_GetAdapterLuid(This,RetVal) \
11857 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
11858#endif
11859
11860
11861#define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
11862 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
11863
11864#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
11865 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
11866
11867#define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
11868 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
11869
11870
11871#define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
11872 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
11873
11874#endif /* COBJMACROS */
11875
11876
11877#endif /* C style interface */
11878
11879
11880
11881
11882#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */
11883
11884
11885/* interface __MIDL_itf_d3d12_0000_0027 */
11886/* [local] */
11887
11888typedef
11889enum D3D12_RESIDENCY_FLAGS
11890 {
11891 D3D12_RESIDENCY_FLAG_NONE = 0,
11892 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1
11893 } D3D12_RESIDENCY_FLAGS;
11894
11895DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS )
11896
11897
11898extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec;
11899extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec;
11900
11901#ifndef __ID3D12Device3_INTERFACE_DEFINED__
11902#define __ID3D12Device3_INTERFACE_DEFINED__
11903
11904/* interface ID3D12Device3 */
11905/* [unique][local][object][uuid] */
11906
11907
11908EXTERN_C const IID IID_ID3D12Device3;
11909
11910#if defined(__cplusplus) && !defined(CINTERFACE)
11911
11912 MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98")
11913 ID3D12Device3 : public ID3D12Device2
11914 {
11915 public:
11916 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress(
11917 _In_ const void *pAddress,
11918 REFIID riid,
11919 _COM_Outptr_ void **ppvHeap) = 0;
11920
11921 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping(
11922 _In_ HANDLE hFileMapping,
11923 REFIID riid,
11924 _COM_Outptr_ void **ppvHeap) = 0;
11925
11926 virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident(
11927 D3D12_RESIDENCY_FLAGS Flags,
11928 UINT NumObjects,
11929 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11930 _In_ ID3D12Fence *pFenceToSignal,
11931 UINT64 FenceValueToSignal) = 0;
11932
11933 };
11934
11935
11936#else /* C style interface */
11937
11938 typedef struct ID3D12Device3Vtbl
11939 {
11940 BEGIN_INTERFACE
11941
11942 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11943 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11944 ID3D12Device3 * This,
11945 REFIID riid,
11946 _COM_Outptr_ void **ppvObject);
11947
11948 DECLSPEC_XFGVIRT(IUnknown, AddRef)
11949 ULONG ( STDMETHODCALLTYPE *AddRef )(
11950 ID3D12Device3 * This);
11951
11952 DECLSPEC_XFGVIRT(IUnknown, Release)
11953 ULONG ( STDMETHODCALLTYPE *Release )(
11954 ID3D12Device3 * This);
11955
11956 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
11957 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
11958 ID3D12Device3 * This,
11959 _In_ REFGUID guid,
11960 _Inout_ UINT *pDataSize,
11961 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
11962
11963 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
11964 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
11965 ID3D12Device3 * This,
11966 _In_ REFGUID guid,
11967 _In_ UINT DataSize,
11968 _In_reads_bytes_opt_( DataSize ) const void *pData);
11969
11970 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
11971 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
11972 ID3D12Device3 * This,
11973 _In_ REFGUID guid,
11974 _In_opt_ const IUnknown *pData);
11975
11976 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
11977 HRESULT ( STDMETHODCALLTYPE *SetName )(
11978 ID3D12Device3 * This,
11979 _In_z_ LPCWSTR Name);
11980
11981 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
11982 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
11983 ID3D12Device3 * This);
11984
11985 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
11986 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
11987 ID3D12Device3 * This,
11988 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
11989 REFIID riid,
11990 _COM_Outptr_ void **ppCommandQueue);
11991
11992 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
11993 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
11994 ID3D12Device3 * This,
11995 _In_ D3D12_COMMAND_LIST_TYPE type,
11996 REFIID riid,
11997 _COM_Outptr_ void **ppCommandAllocator);
11998
11999 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
12000 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
12001 ID3D12Device3 * This,
12002 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
12003 REFIID riid,
12004 _COM_Outptr_ void **ppPipelineState);
12005
12006 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
12007 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
12008 ID3D12Device3 * This,
12009 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
12010 REFIID riid,
12011 _COM_Outptr_ void **ppPipelineState);
12012
12013 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
12014 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
12015 ID3D12Device3 * This,
12016 _In_ UINT nodeMask,
12017 _In_ D3D12_COMMAND_LIST_TYPE type,
12018 _In_ ID3D12CommandAllocator *pCommandAllocator,
12019 _In_opt_ ID3D12PipelineState *pInitialState,
12020 REFIID riid,
12021 _COM_Outptr_ void **ppCommandList);
12022
12023 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
12024 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
12025 ID3D12Device3 * This,
12026 D3D12_FEATURE Feature,
12027 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
12028 UINT FeatureSupportDataSize);
12029
12030 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
12031 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
12032 ID3D12Device3 * This,
12033 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
12034 REFIID riid,
12035 _COM_Outptr_ void **ppvHeap);
12036
12037 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
12038 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
12039 ID3D12Device3 * This,
12040 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
12041
12042 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
12043 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
12044 ID3D12Device3 * This,
12045 _In_ UINT nodeMask,
12046 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
12047 _In_ SIZE_T blobLengthInBytes,
12048 REFIID riid,
12049 _COM_Outptr_ void **ppvRootSignature);
12050
12051 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
12052 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
12053 ID3D12Device3 * This,
12054 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
12055 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12056
12057 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
12058 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
12059 ID3D12Device3 * This,
12060 _In_opt_ ID3D12Resource *pResource,
12061 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
12062 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12063
12064 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
12065 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
12066 ID3D12Device3 * This,
12067 _In_opt_ ID3D12Resource *pResource,
12068 _In_opt_ ID3D12Resource *pCounterResource,
12069 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
12070 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12071
12072 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
12073 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
12074 ID3D12Device3 * This,
12075 _In_opt_ ID3D12Resource *pResource,
12076 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
12077 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12078
12079 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
12080 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
12081 ID3D12Device3 * This,
12082 _In_opt_ ID3D12Resource *pResource,
12083 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
12084 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12085
12086 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
12087 void ( STDMETHODCALLTYPE *CreateSampler )(
12088 ID3D12Device3 * This,
12089 _In_ const D3D12_SAMPLER_DESC *pDesc,
12090 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12091
12092 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
12093 void ( STDMETHODCALLTYPE *CopyDescriptors )(
12094 ID3D12Device3 * This,
12095 _In_ UINT NumDestDescriptorRanges,
12096 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
12097 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
12098 _In_ UINT NumSrcDescriptorRanges,
12099 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
12100 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
12101 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
12102
12103 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
12104 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
12105 ID3D12Device3 * This,
12106 _In_ UINT NumDescriptors,
12107 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
12108 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
12109 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
12110
12111 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
12112#if !defined(_WIN32)
12113 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
12114 ID3D12Device3 * This,
12115 _In_ UINT visibleMask,
12116 _In_ UINT numResourceDescs,
12117 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
12118
12119#else
12120 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
12121 ID3D12Device3 * This,
12122 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
12123 _In_ UINT visibleMask,
12124 _In_ UINT numResourceDescs,
12125 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
12126
12127#endif
12128
12129 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
12130#if !defined(_WIN32)
12131 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
12132 ID3D12Device3 * This,
12133 _In_ UINT nodeMask,
12134 D3D12_HEAP_TYPE heapType);
12135
12136#else
12137 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
12138 ID3D12Device3 * This,
12139 D3D12_HEAP_PROPERTIES * RetVal,
12140 _In_ UINT nodeMask,
12141 D3D12_HEAP_TYPE heapType);
12142
12143#endif
12144
12145 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
12146 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
12147 ID3D12Device3 * This,
12148 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
12149 D3D12_HEAP_FLAGS HeapFlags,
12150 _In_ const D3D12_RESOURCE_DESC *pDesc,
12151 D3D12_RESOURCE_STATES InitialResourceState,
12152 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12153 REFIID riidResource,
12154 _COM_Outptr_opt_ void **ppvResource);
12155
12156 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
12157 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
12158 ID3D12Device3 * This,
12159 _In_ const D3D12_HEAP_DESC *pDesc,
12160 REFIID riid,
12161 _COM_Outptr_opt_ void **ppvHeap);
12162
12163 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
12164 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
12165 ID3D12Device3 * This,
12166 _In_ ID3D12Heap *pHeap,
12167 UINT64 HeapOffset,
12168 _In_ const D3D12_RESOURCE_DESC *pDesc,
12169 D3D12_RESOURCE_STATES InitialState,
12170 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12171 REFIID riid,
12172 _COM_Outptr_opt_ void **ppvResource);
12173
12174 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
12175 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
12176 ID3D12Device3 * This,
12177 _In_ const D3D12_RESOURCE_DESC *pDesc,
12178 D3D12_RESOURCE_STATES InitialState,
12179 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12180 REFIID riid,
12181 _COM_Outptr_opt_ void **ppvResource);
12182
12183 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
12184 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
12185 ID3D12Device3 * This,
12186 _In_ ID3D12DeviceChild *pObject,
12187 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
12188 DWORD Access,
12189 _In_opt_ LPCWSTR Name,
12190 _Out_ HANDLE *pHandle);
12191
12192 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
12193 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
12194 ID3D12Device3 * This,
12195 _In_ HANDLE NTHandle,
12196 REFIID riid,
12197 _COM_Outptr_opt_ void **ppvObj);
12198
12199 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
12200 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
12201 ID3D12Device3 * This,
12202 _In_ LPCWSTR Name,
12203 DWORD Access,
12204 /* [annotation][out] */
12205 _Out_ HANDLE *pNTHandle);
12206
12207 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
12208 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
12209 ID3D12Device3 * This,
12210 UINT NumObjects,
12211 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
12212
12213 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
12214 HRESULT ( STDMETHODCALLTYPE *Evict )(
12215 ID3D12Device3 * This,
12216 UINT NumObjects,
12217 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
12218
12219 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
12220 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
12221 ID3D12Device3 * This,
12222 UINT64 InitialValue,
12223 D3D12_FENCE_FLAGS Flags,
12224 REFIID riid,
12225 _COM_Outptr_ void **ppFence);
12226
12227 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
12228 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
12229 ID3D12Device3 * This);
12230
12231 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
12232 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
12233 ID3D12Device3 * This,
12234 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
12235 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
12236 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
12237 UINT64 BaseOffset,
12238 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
12239 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
12240 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
12241 _Out_opt_ UINT64 *pTotalBytes);
12242
12243 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
12244 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
12245 ID3D12Device3 * This,
12246 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
12247 REFIID riid,
12248 _COM_Outptr_opt_ void **ppvHeap);
12249
12250 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
12251 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
12252 ID3D12Device3 * This,
12253 BOOL Enable);
12254
12255 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
12256 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
12257 ID3D12Device3 * This,
12258 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
12259 _In_opt_ ID3D12RootSignature *pRootSignature,
12260 REFIID riid,
12261 _COM_Outptr_opt_ void **ppvCommandSignature);
12262
12263 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
12264 void ( STDMETHODCALLTYPE *GetResourceTiling )(
12265 ID3D12Device3 * This,
12266 _In_ ID3D12Resource *pTiledResource,
12267 _Out_opt_ UINT *pNumTilesForEntireResource,
12268 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
12269 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
12270 _Inout_opt_ UINT *pNumSubresourceTilings,
12271 _In_ UINT FirstSubresourceTilingToGet,
12272 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
12273
12274 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
12275#if !defined(_WIN32)
12276 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
12277 ID3D12Device3 * This);
12278
12279#else
12280 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
12281 ID3D12Device3 * This,
12282 LUID * RetVal);
12283
12284#endif
12285
12286 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
12287 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
12288 ID3D12Device3 * This,
12289 _In_reads_(BlobLength) const void *pLibraryBlob,
12290 SIZE_T BlobLength,
12291 REFIID riid,
12292 _COM_Outptr_ void **ppPipelineLibrary);
12293
12294 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
12295 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
12296 ID3D12Device3 * This,
12297 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
12298 _In_reads_(NumFences) const UINT64 *pFenceValues,
12299 UINT NumFences,
12300 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
12301 HANDLE hEvent);
12302
12303 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
12304 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
12305 ID3D12Device3 * This,
12306 UINT NumObjects,
12307 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
12308 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
12309
12310 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
12311 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
12312 ID3D12Device3 * This,
12313 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
12314 REFIID riid,
12315 _COM_Outptr_ void **ppPipelineState);
12316
12317 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
12318 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
12319 ID3D12Device3 * This,
12320 _In_ const void *pAddress,
12321 REFIID riid,
12322 _COM_Outptr_ void **ppvHeap);
12323
12324 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
12325 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
12326 ID3D12Device3 * This,
12327 _In_ HANDLE hFileMapping,
12328 REFIID riid,
12329 _COM_Outptr_ void **ppvHeap);
12330
12331 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
12332 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
12333 ID3D12Device3 * This,
12334 D3D12_RESIDENCY_FLAGS Flags,
12335 UINT NumObjects,
12336 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
12337 _In_ ID3D12Fence *pFenceToSignal,
12338 UINT64 FenceValueToSignal);
12339
12340 END_INTERFACE
12341 } ID3D12Device3Vtbl;
12342
12343 interface ID3D12Device3
12344 {
12345 CONST_VTBL struct ID3D12Device3Vtbl *lpVtbl;
12346 };
12347
12348
12349
12350#ifdef COBJMACROS
12351
12352
12353#define ID3D12Device3_QueryInterface(This,riid,ppvObject) \
12354 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12355
12356#define ID3D12Device3_AddRef(This) \
12357 ( (This)->lpVtbl -> AddRef(This) )
12358
12359#define ID3D12Device3_Release(This) \
12360 ( (This)->lpVtbl -> Release(This) )
12361
12362
12363#define ID3D12Device3_GetPrivateData(This,guid,pDataSize,pData) \
12364 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12365
12366#define ID3D12Device3_SetPrivateData(This,guid,DataSize,pData) \
12367 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12368
12369#define ID3D12Device3_SetPrivateDataInterface(This,guid,pData) \
12370 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12371
12372#define ID3D12Device3_SetName(This,Name) \
12373 ( (This)->lpVtbl -> SetName(This,Name) )
12374
12375
12376#define ID3D12Device3_GetNodeCount(This) \
12377 ( (This)->lpVtbl -> GetNodeCount(This) )
12378
12379#define ID3D12Device3_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
12380 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
12381
12382#define ID3D12Device3_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
12383 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
12384
12385#define ID3D12Device3_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
12386 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
12387
12388#define ID3D12Device3_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
12389 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
12390
12391#define ID3D12Device3_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
12392 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
12393
12394#define ID3D12Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
12395 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
12396
12397#define ID3D12Device3_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
12398 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
12399
12400#define ID3D12Device3_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
12401 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
12402
12403#define ID3D12Device3_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
12404 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
12405
12406#define ID3D12Device3_CreateConstantBufferView(This,pDesc,DestDescriptor) \
12407 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
12408
12409#define ID3D12Device3_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
12410 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
12411
12412#define ID3D12Device3_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
12413 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
12414
12415#define ID3D12Device3_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
12416 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
12417
12418#define ID3D12Device3_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
12419 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
12420
12421#define ID3D12Device3_CreateSampler(This,pDesc,DestDescriptor) \
12422 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
12423
12424#define ID3D12Device3_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
12425 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
12426
12427#define ID3D12Device3_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
12428 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
12429#if !defined(_WIN32)
12430
12431#define ID3D12Device3_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
12432 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
12433#else
12434#define ID3D12Device3_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
12435 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
12436#endif
12437#if !defined(_WIN32)
12438
12439#define ID3D12Device3_GetCustomHeapProperties(This,nodeMask,heapType) \
12440 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
12441#else
12442#define ID3D12Device3_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
12443 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
12444#endif
12445
12446#define ID3D12Device3_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
12447 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
12448
12449#define ID3D12Device3_CreateHeap(This,pDesc,riid,ppvHeap) \
12450 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
12451
12452#define ID3D12Device3_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
12453 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
12454
12455#define ID3D12Device3_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
12456 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
12457
12458#define ID3D12Device3_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
12459 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
12460
12461#define ID3D12Device3_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
12462 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
12463
12464#define ID3D12Device3_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
12465 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
12466
12467#define ID3D12Device3_MakeResident(This,NumObjects,ppObjects) \
12468 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
12469
12470#define ID3D12Device3_Evict(This,NumObjects,ppObjects) \
12471 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
12472
12473#define ID3D12Device3_CreateFence(This,InitialValue,Flags,riid,ppFence) \
12474 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
12475
12476#define ID3D12Device3_GetDeviceRemovedReason(This) \
12477 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
12478
12479#define ID3D12Device3_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
12480 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
12481
12482#define ID3D12Device3_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
12483 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
12484
12485#define ID3D12Device3_SetStablePowerState(This,Enable) \
12486 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
12487
12488#define ID3D12Device3_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
12489 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
12490
12491#define ID3D12Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
12492 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
12493#if !defined(_WIN32)
12494
12495#define ID3D12Device3_GetAdapterLuid(This) \
12496 ( (This)->lpVtbl -> GetAdapterLuid(This) )
12497#else
12498#define ID3D12Device3_GetAdapterLuid(This,RetVal) \
12499 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
12500#endif
12501
12502
12503#define ID3D12Device3_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
12504 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
12505
12506#define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
12507 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
12508
12509#define ID3D12Device3_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
12510 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
12511
12512
12513#define ID3D12Device3_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
12514 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
12515
12516
12517#define ID3D12Device3_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
12518 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
12519
12520#define ID3D12Device3_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
12521 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
12522
12523#define ID3D12Device3_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
12524 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
12525
12526#endif /* COBJMACROS */
12527
12528
12529#endif /* C style interface */
12530
12531
12532
12533
12534#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */
12535
12536
12537/* interface __MIDL_itf_d3d12_0000_0028 */
12538/* [local] */
12539
12540typedef
12541enum D3D12_COMMAND_LIST_FLAGS
12542 {
12543 D3D12_COMMAND_LIST_FLAG_NONE = 0
12544 } D3D12_COMMAND_LIST_FLAGS;
12545
12546DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS )
12547typedef
12548enum D3D12_COMMAND_POOL_FLAGS
12549 {
12550 D3D12_COMMAND_POOL_FLAG_NONE = 0
12551 } D3D12_COMMAND_POOL_FLAGS;
12552
12553DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS )
12554typedef
12555enum D3D12_COMMAND_RECORDER_FLAGS
12556 {
12557 D3D12_COMMAND_RECORDER_FLAG_NONE = 0
12558 } D3D12_COMMAND_RECORDER_FLAGS;
12559
12560DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS )
12561typedef
12562enum D3D12_PROTECTED_SESSION_STATUS
12563 {
12564 D3D12_PROTECTED_SESSION_STATUS_OK = 0,
12565 D3D12_PROTECTED_SESSION_STATUS_INVALID = 1
12566 } D3D12_PROTECTED_SESSION_STATUS;
12567
12568
12569
12570extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_c_ifspec;
12571extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_s_ifspec;
12572
12573#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__
12574#define __ID3D12ProtectedSession_INTERFACE_DEFINED__
12575
12576/* interface ID3D12ProtectedSession */
12577/* [unique][local][object][uuid] */
12578
12579
12580EXTERN_C const IID IID_ID3D12ProtectedSession;
12581
12582#if defined(__cplusplus) && !defined(CINTERFACE)
12583
12584 MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B")
12585 ID3D12ProtectedSession : public ID3D12DeviceChild
12586 {
12587 public:
12588 virtual HRESULT STDMETHODCALLTYPE GetStatusFence(
12589 REFIID riid,
12590 _COM_Outptr_opt_ void **ppFence) = 0;
12591
12592 virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0;
12593
12594 };
12595
12596
12597#else /* C style interface */
12598
12599 typedef struct ID3D12ProtectedSessionVtbl
12600 {
12601 BEGIN_INTERFACE
12602
12603 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12604 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12605 ID3D12ProtectedSession * This,
12606 REFIID riid,
12607 _COM_Outptr_ void **ppvObject);
12608
12609 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12610 ULONG ( STDMETHODCALLTYPE *AddRef )(
12611 ID3D12ProtectedSession * This);
12612
12613 DECLSPEC_XFGVIRT(IUnknown, Release)
12614 ULONG ( STDMETHODCALLTYPE *Release )(
12615 ID3D12ProtectedSession * This);
12616
12617 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12618 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12619 ID3D12ProtectedSession * This,
12620 _In_ REFGUID guid,
12621 _Inout_ UINT *pDataSize,
12622 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12623
12624 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12625 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12626 ID3D12ProtectedSession * This,
12627 _In_ REFGUID guid,
12628 _In_ UINT DataSize,
12629 _In_reads_bytes_opt_( DataSize ) const void *pData);
12630
12631 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12632 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12633 ID3D12ProtectedSession * This,
12634 _In_ REFGUID guid,
12635 _In_opt_ const IUnknown *pData);
12636
12637 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12638 HRESULT ( STDMETHODCALLTYPE *SetName )(
12639 ID3D12ProtectedSession * This,
12640 _In_z_ LPCWSTR Name);
12641
12642 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
12643 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
12644 ID3D12ProtectedSession * This,
12645 REFIID riid,
12646 _COM_Outptr_opt_ void **ppvDevice);
12647
12648 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
12649 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
12650 ID3D12ProtectedSession * This,
12651 REFIID riid,
12652 _COM_Outptr_opt_ void **ppFence);
12653
12654 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
12655 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
12656 ID3D12ProtectedSession * This);
12657
12658 END_INTERFACE
12659 } ID3D12ProtectedSessionVtbl;
12660
12661 interface ID3D12ProtectedSession
12662 {
12663 CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl;
12664 };
12665
12666
12667
12668#ifdef COBJMACROS
12669
12670
12671#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \
12672 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12673
12674#define ID3D12ProtectedSession_AddRef(This) \
12675 ( (This)->lpVtbl -> AddRef(This) )
12676
12677#define ID3D12ProtectedSession_Release(This) \
12678 ( (This)->lpVtbl -> Release(This) )
12679
12680
12681#define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \
12682 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12683
12684#define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \
12685 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12686
12687#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \
12688 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12689
12690#define ID3D12ProtectedSession_SetName(This,Name) \
12691 ( (This)->lpVtbl -> SetName(This,Name) )
12692
12693
12694#define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \
12695 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
12696
12697
12698#define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \
12699 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
12700
12701#define ID3D12ProtectedSession_GetSessionStatus(This) \
12702 ( (This)->lpVtbl -> GetSessionStatus(This) )
12703
12704#endif /* COBJMACROS */
12705
12706
12707#endif /* C style interface */
12708
12709
12710
12711
12712#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */
12713
12714
12715/* interface __MIDL_itf_d3d12_0000_0029 */
12716/* [local] */
12717
12718typedef
12719enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS
12720 {
12721 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0,
12722 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1
12723 } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
12724
12725DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS )
12726typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT
12727 {
12728 UINT NodeIndex;
12729 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
12730 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
12731
12732typedef
12733enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS
12734 {
12735 D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0
12736 } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
12737
12738DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS )
12739typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC
12740 {
12741 UINT NodeMask;
12742 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
12743 } D3D12_PROTECTED_RESOURCE_SESSION_DESC;
12744
12745
12746
12747extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec;
12748extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec;
12749
12750#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
12751#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
12752
12753/* interface ID3D12ProtectedResourceSession */
12754/* [unique][local][object][uuid] */
12755
12756
12757EXTERN_C const IID IID_ID3D12ProtectedResourceSession;
12758
12759#if defined(__cplusplus) && !defined(CINTERFACE)
12760
12761 MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D")
12762 ID3D12ProtectedResourceSession : public ID3D12ProtectedSession
12763 {
12764 public:
12765#if defined(_MSC_VER) || !defined(_WIN32)
12766 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
12767#else
12768 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC *STDMETHODCALLTYPE GetDesc(
12769 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal) = 0;
12770#endif
12771
12772 };
12773
12774
12775#else /* C style interface */
12776
12777 typedef struct ID3D12ProtectedResourceSessionVtbl
12778 {
12779 BEGIN_INTERFACE
12780
12781 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12782 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12783 ID3D12ProtectedResourceSession * This,
12784 REFIID riid,
12785 _COM_Outptr_ void **ppvObject);
12786
12787 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12788 ULONG ( STDMETHODCALLTYPE *AddRef )(
12789 ID3D12ProtectedResourceSession * This);
12790
12791 DECLSPEC_XFGVIRT(IUnknown, Release)
12792 ULONG ( STDMETHODCALLTYPE *Release )(
12793 ID3D12ProtectedResourceSession * This);
12794
12795 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12796 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12797 ID3D12ProtectedResourceSession * This,
12798 _In_ REFGUID guid,
12799 _Inout_ UINT *pDataSize,
12800 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12801
12802 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12803 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12804 ID3D12ProtectedResourceSession * This,
12805 _In_ REFGUID guid,
12806 _In_ UINT DataSize,
12807 _In_reads_bytes_opt_( DataSize ) const void *pData);
12808
12809 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12810 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12811 ID3D12ProtectedResourceSession * This,
12812 _In_ REFGUID guid,
12813 _In_opt_ const IUnknown *pData);
12814
12815 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12816 HRESULT ( STDMETHODCALLTYPE *SetName )(
12817 ID3D12ProtectedResourceSession * This,
12818 _In_z_ LPCWSTR Name);
12819
12820 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
12821 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
12822 ID3D12ProtectedResourceSession * This,
12823 REFIID riid,
12824 _COM_Outptr_opt_ void **ppvDevice);
12825
12826 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
12827 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
12828 ID3D12ProtectedResourceSession * This,
12829 REFIID riid,
12830 _COM_Outptr_opt_ void **ppFence);
12831
12832 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
12833 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
12834 ID3D12ProtectedResourceSession * This);
12835
12836 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
12837#if !defined(_WIN32)
12838 D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
12839 ID3D12ProtectedResourceSession * This);
12840
12841#else
12842 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
12843 ID3D12ProtectedResourceSession * This,
12844 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
12845
12846#endif
12847
12848 END_INTERFACE
12849 } ID3D12ProtectedResourceSessionVtbl;
12850
12851 interface ID3D12ProtectedResourceSession
12852 {
12853 CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl;
12854 };
12855
12856
12857
12858#ifdef COBJMACROS
12859
12860
12861#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \
12862 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12863
12864#define ID3D12ProtectedResourceSession_AddRef(This) \
12865 ( (This)->lpVtbl -> AddRef(This) )
12866
12867#define ID3D12ProtectedResourceSession_Release(This) \
12868 ( (This)->lpVtbl -> Release(This) )
12869
12870
12871#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \
12872 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12873
12874#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \
12875 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12876
12877#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \
12878 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12879
12880#define ID3D12ProtectedResourceSession_SetName(This,Name) \
12881 ( (This)->lpVtbl -> SetName(This,Name) )
12882
12883
12884#define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \
12885 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
12886
12887
12888#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \
12889 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
12890
12891#define ID3D12ProtectedResourceSession_GetSessionStatus(This) \
12892 ( (This)->lpVtbl -> GetSessionStatus(This) )
12893
12894#if !defined(_WIN32)
12895
12896#define ID3D12ProtectedResourceSession_GetDesc(This) \
12897 ( (This)->lpVtbl -> GetDesc(This) )
12898#else
12899#define ID3D12ProtectedResourceSession_GetDesc(This,RetVal) \
12900 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
12901#endif
12902
12903#endif /* COBJMACROS */
12904
12905
12906#endif /* C style interface */
12907
12908
12909
12910
12911#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
12912
12913
12914#ifndef __ID3D12Device4_INTERFACE_DEFINED__
12915#define __ID3D12Device4_INTERFACE_DEFINED__
12916
12917/* interface ID3D12Device4 */
12918/* [unique][local][object][uuid] */
12919
12920
12921EXTERN_C const IID IID_ID3D12Device4;
12922
12923#if defined(__cplusplus) && !defined(CINTERFACE)
12924
12925 MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5")
12926 ID3D12Device4 : public ID3D12Device3
12927 {
12928 public:
12929 virtual HRESULT STDMETHODCALLTYPE CreateCommandList1(
12930 _In_ UINT nodeMask,
12931 _In_ D3D12_COMMAND_LIST_TYPE type,
12932 _In_ D3D12_COMMAND_LIST_FLAGS flags,
12933 REFIID riid,
12934 _COM_Outptr_ void **ppCommandList) = 0;
12935
12936 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession(
12937 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
12938 _In_ REFIID riid,
12939 _COM_Outptr_ void **ppSession) = 0;
12940
12941 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1(
12942 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
12943 D3D12_HEAP_FLAGS HeapFlags,
12944 _In_ const D3D12_RESOURCE_DESC *pDesc,
12945 D3D12_RESOURCE_STATES InitialResourceState,
12946 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12947 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12948 REFIID riidResource,
12949 _COM_Outptr_opt_ void **ppvResource) = 0;
12950
12951 virtual HRESULT STDMETHODCALLTYPE CreateHeap1(
12952 _In_ const D3D12_HEAP_DESC *pDesc,
12953 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12954 REFIID riid,
12955 _COM_Outptr_opt_ void **ppvHeap) = 0;
12956
12957 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1(
12958 _In_ const D3D12_RESOURCE_DESC *pDesc,
12959 D3D12_RESOURCE_STATES InitialState,
12960 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12961 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12962 REFIID riid,
12963 _COM_Outptr_opt_ void **ppvResource) = 0;
12964
12965#if defined(_MSC_VER) || !defined(_WIN32)
12966 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
12967 UINT visibleMask,
12968 UINT numResourceDescs,
12969 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12970 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
12971#else
12972 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo1(
12973 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
12974 UINT visibleMask,
12975 UINT numResourceDescs,
12976 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12977 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
12978#endif
12979
12980 };
12981
12982
12983#else /* C style interface */
12984
12985 typedef struct ID3D12Device4Vtbl
12986 {
12987 BEGIN_INTERFACE
12988
12989 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12990 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12991 ID3D12Device4 * This,
12992 REFIID riid,
12993 _COM_Outptr_ void **ppvObject);
12994
12995 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12996 ULONG ( STDMETHODCALLTYPE *AddRef )(
12997 ID3D12Device4 * This);
12998
12999 DECLSPEC_XFGVIRT(IUnknown, Release)
13000 ULONG ( STDMETHODCALLTYPE *Release )(
13001 ID3D12Device4 * This);
13002
13003 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
13004 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
13005 ID3D12Device4 * This,
13006 _In_ REFGUID guid,
13007 _Inout_ UINT *pDataSize,
13008 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
13009
13010 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
13011 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
13012 ID3D12Device4 * This,
13013 _In_ REFGUID guid,
13014 _In_ UINT DataSize,
13015 _In_reads_bytes_opt_( DataSize ) const void *pData);
13016
13017 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
13018 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
13019 ID3D12Device4 * This,
13020 _In_ REFGUID guid,
13021 _In_opt_ const IUnknown *pData);
13022
13023 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
13024 HRESULT ( STDMETHODCALLTYPE *SetName )(
13025 ID3D12Device4 * This,
13026 _In_z_ LPCWSTR Name);
13027
13028 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
13029 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
13030 ID3D12Device4 * This);
13031
13032 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
13033 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
13034 ID3D12Device4 * This,
13035 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
13036 REFIID riid,
13037 _COM_Outptr_ void **ppCommandQueue);
13038
13039 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
13040 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
13041 ID3D12Device4 * This,
13042 _In_ D3D12_COMMAND_LIST_TYPE type,
13043 REFIID riid,
13044 _COM_Outptr_ void **ppCommandAllocator);
13045
13046 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
13047 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
13048 ID3D12Device4 * This,
13049 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
13050 REFIID riid,
13051 _COM_Outptr_ void **ppPipelineState);
13052
13053 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
13054 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
13055 ID3D12Device4 * This,
13056 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
13057 REFIID riid,
13058 _COM_Outptr_ void **ppPipelineState);
13059
13060 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
13061 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
13062 ID3D12Device4 * This,
13063 _In_ UINT nodeMask,
13064 _In_ D3D12_COMMAND_LIST_TYPE type,
13065 _In_ ID3D12CommandAllocator *pCommandAllocator,
13066 _In_opt_ ID3D12PipelineState *pInitialState,
13067 REFIID riid,
13068 _COM_Outptr_ void **ppCommandList);
13069
13070 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
13071 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
13072 ID3D12Device4 * This,
13073 D3D12_FEATURE Feature,
13074 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
13075 UINT FeatureSupportDataSize);
13076
13077 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
13078 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
13079 ID3D12Device4 * This,
13080 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
13081 REFIID riid,
13082 _COM_Outptr_ void **ppvHeap);
13083
13084 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
13085 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
13086 ID3D12Device4 * This,
13087 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
13088
13089 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
13090 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
13091 ID3D12Device4 * This,
13092 _In_ UINT nodeMask,
13093 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
13094 _In_ SIZE_T blobLengthInBytes,
13095 REFIID riid,
13096 _COM_Outptr_ void **ppvRootSignature);
13097
13098 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
13099 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
13100 ID3D12Device4 * This,
13101 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
13102 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13103
13104 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
13105 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
13106 ID3D12Device4 * This,
13107 _In_opt_ ID3D12Resource *pResource,
13108 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
13109 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13110
13111 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
13112 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
13113 ID3D12Device4 * This,
13114 _In_opt_ ID3D12Resource *pResource,
13115 _In_opt_ ID3D12Resource *pCounterResource,
13116 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
13117 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13118
13119 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
13120 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
13121 ID3D12Device4 * This,
13122 _In_opt_ ID3D12Resource *pResource,
13123 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
13124 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13125
13126 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
13127 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
13128 ID3D12Device4 * This,
13129 _In_opt_ ID3D12Resource *pResource,
13130 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
13131 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13132
13133 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
13134 void ( STDMETHODCALLTYPE *CreateSampler )(
13135 ID3D12Device4 * This,
13136 _In_ const D3D12_SAMPLER_DESC *pDesc,
13137 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13138
13139 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
13140 void ( STDMETHODCALLTYPE *CopyDescriptors )(
13141 ID3D12Device4 * This,
13142 _In_ UINT NumDestDescriptorRanges,
13143 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
13144 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
13145 _In_ UINT NumSrcDescriptorRanges,
13146 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
13147 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
13148 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
13149
13150 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
13151 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
13152 ID3D12Device4 * This,
13153 _In_ UINT NumDescriptors,
13154 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
13155 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
13156 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
13157
13158 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
13159#if !defined(_WIN32)
13160 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
13161 ID3D12Device4 * This,
13162 _In_ UINT visibleMask,
13163 _In_ UINT numResourceDescs,
13164 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
13165
13166#else
13167 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
13168 ID3D12Device4 * This,
13169 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
13170 _In_ UINT visibleMask,
13171 _In_ UINT numResourceDescs,
13172 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
13173
13174#endif
13175
13176 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
13177#if !defined(_WIN32)
13178 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
13179 ID3D12Device4 * This,
13180 _In_ UINT nodeMask,
13181 D3D12_HEAP_TYPE heapType);
13182
13183#else
13184 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
13185 ID3D12Device4 * This,
13186 D3D12_HEAP_PROPERTIES * RetVal,
13187 _In_ UINT nodeMask,
13188 D3D12_HEAP_TYPE heapType);
13189
13190#endif
13191
13192 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
13193 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
13194 ID3D12Device4 * This,
13195 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
13196 D3D12_HEAP_FLAGS HeapFlags,
13197 _In_ const D3D12_RESOURCE_DESC *pDesc,
13198 D3D12_RESOURCE_STATES InitialResourceState,
13199 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13200 REFIID riidResource,
13201 _COM_Outptr_opt_ void **ppvResource);
13202
13203 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
13204 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
13205 ID3D12Device4 * This,
13206 _In_ const D3D12_HEAP_DESC *pDesc,
13207 REFIID riid,
13208 _COM_Outptr_opt_ void **ppvHeap);
13209
13210 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
13211 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
13212 ID3D12Device4 * This,
13213 _In_ ID3D12Heap *pHeap,
13214 UINT64 HeapOffset,
13215 _In_ const D3D12_RESOURCE_DESC *pDesc,
13216 D3D12_RESOURCE_STATES InitialState,
13217 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13218 REFIID riid,
13219 _COM_Outptr_opt_ void **ppvResource);
13220
13221 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
13222 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
13223 ID3D12Device4 * This,
13224 _In_ const D3D12_RESOURCE_DESC *pDesc,
13225 D3D12_RESOURCE_STATES InitialState,
13226 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13227 REFIID riid,
13228 _COM_Outptr_opt_ void **ppvResource);
13229
13230 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
13231 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
13232 ID3D12Device4 * This,
13233 _In_ ID3D12DeviceChild *pObject,
13234 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
13235 DWORD Access,
13236 _In_opt_ LPCWSTR Name,
13237 _Out_ HANDLE *pHandle);
13238
13239 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
13240 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
13241 ID3D12Device4 * This,
13242 _In_ HANDLE NTHandle,
13243 REFIID riid,
13244 _COM_Outptr_opt_ void **ppvObj);
13245
13246 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
13247 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
13248 ID3D12Device4 * This,
13249 _In_ LPCWSTR Name,
13250 DWORD Access,
13251 /* [annotation][out] */
13252 _Out_ HANDLE *pNTHandle);
13253
13254 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
13255 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
13256 ID3D12Device4 * This,
13257 UINT NumObjects,
13258 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
13259
13260 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
13261 HRESULT ( STDMETHODCALLTYPE *Evict )(
13262 ID3D12Device4 * This,
13263 UINT NumObjects,
13264 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
13265
13266 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
13267 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
13268 ID3D12Device4 * This,
13269 UINT64 InitialValue,
13270 D3D12_FENCE_FLAGS Flags,
13271 REFIID riid,
13272 _COM_Outptr_ void **ppFence);
13273
13274 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
13275 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
13276 ID3D12Device4 * This);
13277
13278 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
13279 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
13280 ID3D12Device4 * This,
13281 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
13282 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
13283 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
13284 UINT64 BaseOffset,
13285 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
13286 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
13287 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
13288 _Out_opt_ UINT64 *pTotalBytes);
13289
13290 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
13291 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
13292 ID3D12Device4 * This,
13293 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
13294 REFIID riid,
13295 _COM_Outptr_opt_ void **ppvHeap);
13296
13297 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
13298 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
13299 ID3D12Device4 * This,
13300 BOOL Enable);
13301
13302 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
13303 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
13304 ID3D12Device4 * This,
13305 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
13306 _In_opt_ ID3D12RootSignature *pRootSignature,
13307 REFIID riid,
13308 _COM_Outptr_opt_ void **ppvCommandSignature);
13309
13310 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
13311 void ( STDMETHODCALLTYPE *GetResourceTiling )(
13312 ID3D12Device4 * This,
13313 _In_ ID3D12Resource *pTiledResource,
13314 _Out_opt_ UINT *pNumTilesForEntireResource,
13315 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
13316 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
13317 _Inout_opt_ UINT *pNumSubresourceTilings,
13318 _In_ UINT FirstSubresourceTilingToGet,
13319 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
13320
13321 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
13322#if !defined(_WIN32)
13323 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
13324 ID3D12Device4 * This);
13325
13326#else
13327 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
13328 ID3D12Device4 * This,
13329 LUID * RetVal);
13330
13331#endif
13332
13333 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
13334 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
13335 ID3D12Device4 * This,
13336 _In_reads_(BlobLength) const void *pLibraryBlob,
13337 SIZE_T BlobLength,
13338 REFIID riid,
13339 _COM_Outptr_ void **ppPipelineLibrary);
13340
13341 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
13342 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
13343 ID3D12Device4 * This,
13344 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
13345 _In_reads_(NumFences) const UINT64 *pFenceValues,
13346 UINT NumFences,
13347 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
13348 HANDLE hEvent);
13349
13350 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
13351 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
13352 ID3D12Device4 * This,
13353 UINT NumObjects,
13354 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
13355 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
13356
13357 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
13358 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
13359 ID3D12Device4 * This,
13360 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
13361 REFIID riid,
13362 _COM_Outptr_ void **ppPipelineState);
13363
13364 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
13365 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
13366 ID3D12Device4 * This,
13367 _In_ const void *pAddress,
13368 REFIID riid,
13369 _COM_Outptr_ void **ppvHeap);
13370
13371 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
13372 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
13373 ID3D12Device4 * This,
13374 _In_ HANDLE hFileMapping,
13375 REFIID riid,
13376 _COM_Outptr_ void **ppvHeap);
13377
13378 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
13379 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
13380 ID3D12Device4 * This,
13381 D3D12_RESIDENCY_FLAGS Flags,
13382 UINT NumObjects,
13383 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
13384 _In_ ID3D12Fence *pFenceToSignal,
13385 UINT64 FenceValueToSignal);
13386
13387 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
13388 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
13389 ID3D12Device4 * This,
13390 _In_ UINT nodeMask,
13391 _In_ D3D12_COMMAND_LIST_TYPE type,
13392 _In_ D3D12_COMMAND_LIST_FLAGS flags,
13393 REFIID riid,
13394 _COM_Outptr_ void **ppCommandList);
13395
13396 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
13397 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
13398 ID3D12Device4 * This,
13399 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
13400 _In_ REFIID riid,
13401 _COM_Outptr_ void **ppSession);
13402
13403 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
13404 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
13405 ID3D12Device4 * This,
13406 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
13407 D3D12_HEAP_FLAGS HeapFlags,
13408 _In_ const D3D12_RESOURCE_DESC *pDesc,
13409 D3D12_RESOURCE_STATES InitialResourceState,
13410 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13411 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13412 REFIID riidResource,
13413 _COM_Outptr_opt_ void **ppvResource);
13414
13415 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
13416 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
13417 ID3D12Device4 * This,
13418 _In_ const D3D12_HEAP_DESC *pDesc,
13419 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13420 REFIID riid,
13421 _COM_Outptr_opt_ void **ppvHeap);
13422
13423 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
13424 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
13425 ID3D12Device4 * This,
13426 _In_ const D3D12_RESOURCE_DESC *pDesc,
13427 D3D12_RESOURCE_STATES InitialState,
13428 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13429 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13430 REFIID riid,
13431 _COM_Outptr_opt_ void **ppvResource);
13432
13433 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
13434#if !defined(_WIN32)
13435 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
13436 ID3D12Device4 * This,
13437 UINT visibleMask,
13438 UINT numResourceDescs,
13439 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
13440 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
13441
13442#else
13443 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
13444 ID3D12Device4 * This,
13445 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
13446 UINT visibleMask,
13447 UINT numResourceDescs,
13448 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
13449 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
13450
13451#endif
13452
13453 END_INTERFACE
13454 } ID3D12Device4Vtbl;
13455
13456 interface ID3D12Device4
13457 {
13458 CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl;
13459 };
13460
13461
13462
13463#ifdef COBJMACROS
13464
13465
13466#define ID3D12Device4_QueryInterface(This,riid,ppvObject) \
13467 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13468
13469#define ID3D12Device4_AddRef(This) \
13470 ( (This)->lpVtbl -> AddRef(This) )
13471
13472#define ID3D12Device4_Release(This) \
13473 ( (This)->lpVtbl -> Release(This) )
13474
13475
13476#define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \
13477 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
13478
13479#define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \
13480 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
13481
13482#define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \
13483 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
13484
13485#define ID3D12Device4_SetName(This,Name) \
13486 ( (This)->lpVtbl -> SetName(This,Name) )
13487
13488
13489#define ID3D12Device4_GetNodeCount(This) \
13490 ( (This)->lpVtbl -> GetNodeCount(This) )
13491
13492#define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
13493 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
13494
13495#define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
13496 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
13497
13498#define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
13499 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
13500
13501#define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
13502 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
13503
13504#define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
13505 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
13506
13507#define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
13508 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
13509
13510#define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
13511 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
13512
13513#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
13514 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
13515
13516#define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
13517 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
13518
13519#define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \
13520 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
13521
13522#define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
13523 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
13524
13525#define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
13526 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
13527
13528#define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
13529 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
13530
13531#define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
13532 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
13533
13534#define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \
13535 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
13536
13537#define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
13538 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
13539
13540#define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
13541 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
13542#if !defined(_WIN32)
13543
13544#define ID3D12Device4_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
13545 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
13546#else
13547#define ID3D12Device4_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
13548 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
13549#endif
13550#if !defined(_WIN32)
13551
13552#define ID3D12Device4_GetCustomHeapProperties(This,nodeMask,heapType) \
13553 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
13554#else
13555#define ID3D12Device4_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
13556 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
13557#endif
13558
13559#define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
13560 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
13561
13562#define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \
13563 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
13564
13565#define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
13566 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
13567
13568#define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
13569 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
13570
13571#define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
13572 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
13573
13574#define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
13575 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
13576
13577#define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
13578 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
13579
13580#define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \
13581 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
13582
13583#define ID3D12Device4_Evict(This,NumObjects,ppObjects) \
13584 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
13585
13586#define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \
13587 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
13588
13589#define ID3D12Device4_GetDeviceRemovedReason(This) \
13590 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
13591
13592#define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
13593 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
13594
13595#define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
13596 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
13597
13598#define ID3D12Device4_SetStablePowerState(This,Enable) \
13599 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
13600
13601#define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
13602 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
13603
13604#define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
13605 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
13606#if !defined(_WIN32)
13607
13608#define ID3D12Device4_GetAdapterLuid(This) \
13609 ( (This)->lpVtbl -> GetAdapterLuid(This) )
13610#else
13611#define ID3D12Device4_GetAdapterLuid(This,RetVal) \
13612 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
13613#endif
13614
13615
13616#define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
13617 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
13618
13619#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
13620 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
13621
13622#define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
13623 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
13624
13625
13626#define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
13627 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
13628
13629
13630#define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
13631 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
13632
13633#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
13634 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
13635
13636#define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
13637 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
13638
13639
13640#define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
13641 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
13642
13643#define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
13644 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
13645
13646#define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
13647 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
13648
13649#define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
13650 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
13651
13652#define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
13653 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
13654#if !defined(_WIN32)
13655
13656#define ID3D12Device4_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
13657 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
13658#else
13659#define ID3D12Device4_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
13660 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
13661#endif
13662
13663#endif /* COBJMACROS */
13664
13665
13666#endif /* C style interface */
13667
13668
13669
13670
13671#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
13672
13673
13674/* interface __MIDL_itf_d3d12_0000_0031 */
13675/* [local] */
13676
13677typedef
13678enum D3D12_LIFETIME_STATE
13679 {
13680 D3D12_LIFETIME_STATE_IN_USE = 0,
13681 D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 )
13682 } D3D12_LIFETIME_STATE;
13683
13684
13685
13686
13687extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_c_ifspec;
13688extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_s_ifspec;
13689
13690#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__
13691#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__
13692
13693/* interface ID3D12LifetimeOwner */
13694/* [unique][local][object][uuid] */
13695
13696
13697EXTERN_C const IID IID_ID3D12LifetimeOwner;
13698
13699#if defined(__cplusplus) && !defined(CINTERFACE)
13700
13701 MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8")
13702 ID3D12LifetimeOwner : public IUnknown
13703 {
13704 public:
13705 virtual void STDMETHODCALLTYPE LifetimeStateUpdated(
13706 D3D12_LIFETIME_STATE NewState) = 0;
13707
13708 };
13709
13710
13711#else /* C style interface */
13712
13713 typedef struct ID3D12LifetimeOwnerVtbl
13714 {
13715 BEGIN_INTERFACE
13716
13717 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13718 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13719 ID3D12LifetimeOwner * This,
13720 REFIID riid,
13721 _COM_Outptr_ void **ppvObject);
13722
13723 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13724 ULONG ( STDMETHODCALLTYPE *AddRef )(
13725 ID3D12LifetimeOwner * This);
13726
13727 DECLSPEC_XFGVIRT(IUnknown, Release)
13728 ULONG ( STDMETHODCALLTYPE *Release )(
13729 ID3D12LifetimeOwner * This);
13730
13731 DECLSPEC_XFGVIRT(ID3D12LifetimeOwner, LifetimeStateUpdated)
13732 void ( STDMETHODCALLTYPE *LifetimeStateUpdated )(
13733 ID3D12LifetimeOwner * This,
13734 D3D12_LIFETIME_STATE NewState);
13735
13736 END_INTERFACE
13737 } ID3D12LifetimeOwnerVtbl;
13738
13739 interface ID3D12LifetimeOwner
13740 {
13741 CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl;
13742 };
13743
13744
13745
13746#ifdef COBJMACROS
13747
13748
13749#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \
13750 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13751
13752#define ID3D12LifetimeOwner_AddRef(This) \
13753 ( (This)->lpVtbl -> AddRef(This) )
13754
13755#define ID3D12LifetimeOwner_Release(This) \
13756 ( (This)->lpVtbl -> Release(This) )
13757
13758
13759#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \
13760 ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) )
13761
13762#endif /* COBJMACROS */
13763
13764
13765#endif /* C style interface */
13766
13767
13768
13769
13770#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */
13771
13772
13773#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
13774#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
13775
13776/* interface ID3D12SwapChainAssistant */
13777/* [unique][local][object][uuid] */
13778
13779
13780EXTERN_C const IID IID_ID3D12SwapChainAssistant;
13781
13782#if defined(__cplusplus) && !defined(CINTERFACE)
13783
13784 MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f")
13785 ID3D12SwapChainAssistant : public IUnknown
13786 {
13787 public:
13788#if defined(_MSC_VER) || !defined(_WIN32)
13789 virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0;
13790#else
13791 virtual LUID *STDMETHODCALLTYPE GetLUID(
13792 LUID * RetVal) = 0;
13793#endif
13794
13795 virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject(
13796 REFIID riid,
13797 _COM_Outptr_ void **ppv) = 0;
13798
13799 virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue(
13800 REFIID riidResource,
13801 _COM_Outptr_ void **ppvResource,
13802 REFIID riidQueue,
13803 _COM_Outptr_ void **ppvQueue) = 0;
13804
13805 virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0;
13806
13807 };
13808
13809
13810#else /* C style interface */
13811
13812 typedef struct ID3D12SwapChainAssistantVtbl
13813 {
13814 BEGIN_INTERFACE
13815
13816 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13817 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13818 ID3D12SwapChainAssistant * This,
13819 REFIID riid,
13820 _COM_Outptr_ void **ppvObject);
13821
13822 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13823 ULONG ( STDMETHODCALLTYPE *AddRef )(
13824 ID3D12SwapChainAssistant * This);
13825
13826 DECLSPEC_XFGVIRT(IUnknown, Release)
13827 ULONG ( STDMETHODCALLTYPE *Release )(
13828 ID3D12SwapChainAssistant * This);
13829
13830 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetLUID)
13831#if !defined(_WIN32)
13832 LUID ( STDMETHODCALLTYPE *GetLUID )(
13833 ID3D12SwapChainAssistant * This);
13834
13835#else
13836 LUID *( STDMETHODCALLTYPE *GetLUID )(
13837 ID3D12SwapChainAssistant * This,
13838 LUID * RetVal);
13839
13840#endif
13841
13842 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetSwapChainObject)
13843 HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )(
13844 ID3D12SwapChainAssistant * This,
13845 REFIID riid,
13846 _COM_Outptr_ void **ppv);
13847
13848 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetCurrentResourceAndCommandQueue)
13849 HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )(
13850 ID3D12SwapChainAssistant * This,
13851 REFIID riidResource,
13852 _COM_Outptr_ void **ppvResource,
13853 REFIID riidQueue,
13854 _COM_Outptr_ void **ppvQueue);
13855
13856 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, InsertImplicitSync)
13857 HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )(
13858 ID3D12SwapChainAssistant * This);
13859
13860 END_INTERFACE
13861 } ID3D12SwapChainAssistantVtbl;
13862
13863 interface ID3D12SwapChainAssistant
13864 {
13865 CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl;
13866 };
13867
13868
13869
13870#ifdef COBJMACROS
13871
13872
13873#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \
13874 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13875
13876#define ID3D12SwapChainAssistant_AddRef(This) \
13877 ( (This)->lpVtbl -> AddRef(This) )
13878
13879#define ID3D12SwapChainAssistant_Release(This) \
13880 ( (This)->lpVtbl -> Release(This) )
13881
13882#if !defined(_WIN32)
13883
13884#define ID3D12SwapChainAssistant_GetLUID(This) \
13885 ( (This)->lpVtbl -> GetLUID(This) )
13886#else
13887#define ID3D12SwapChainAssistant_GetLUID(This,RetVal) \
13888 ( (This)->lpVtbl -> GetLUID(This,RetVal) )
13889#endif
13890
13891#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \
13892 ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) )
13893
13894#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \
13895 ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) )
13896
13897#define ID3D12SwapChainAssistant_InsertImplicitSync(This) \
13898 ( (This)->lpVtbl -> InsertImplicitSync(This) )
13899
13900#endif /* COBJMACROS */
13901
13902
13903#endif /* C style interface */
13904
13905
13906
13907
13908#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
13909
13910
13911#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__
13912#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__
13913
13914/* interface ID3D12LifetimeTracker */
13915/* [unique][local][object][uuid] */
13916
13917
13918EXTERN_C const IID IID_ID3D12LifetimeTracker;
13919
13920#if defined(__cplusplus) && !defined(CINTERFACE)
13921
13922 MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813")
13923 ID3D12LifetimeTracker : public ID3D12DeviceChild
13924 {
13925 public:
13926 virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject(
13927 _In_ ID3D12DeviceChild *pObject) = 0;
13928
13929 };
13930
13931
13932#else /* C style interface */
13933
13934 typedef struct ID3D12LifetimeTrackerVtbl
13935 {
13936 BEGIN_INTERFACE
13937
13938 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13939 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13940 ID3D12LifetimeTracker * This,
13941 REFIID riid,
13942 _COM_Outptr_ void **ppvObject);
13943
13944 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13945 ULONG ( STDMETHODCALLTYPE *AddRef )(
13946 ID3D12LifetimeTracker * This);
13947
13948 DECLSPEC_XFGVIRT(IUnknown, Release)
13949 ULONG ( STDMETHODCALLTYPE *Release )(
13950 ID3D12LifetimeTracker * This);
13951
13952 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
13953 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
13954 ID3D12LifetimeTracker * This,
13955 _In_ REFGUID guid,
13956 _Inout_ UINT *pDataSize,
13957 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
13958
13959 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
13960 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
13961 ID3D12LifetimeTracker * This,
13962 _In_ REFGUID guid,
13963 _In_ UINT DataSize,
13964 _In_reads_bytes_opt_( DataSize ) const void *pData);
13965
13966 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
13967 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
13968 ID3D12LifetimeTracker * This,
13969 _In_ REFGUID guid,
13970 _In_opt_ const IUnknown *pData);
13971
13972 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
13973 HRESULT ( STDMETHODCALLTYPE *SetName )(
13974 ID3D12LifetimeTracker * This,
13975 _In_z_ LPCWSTR Name);
13976
13977 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
13978 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
13979 ID3D12LifetimeTracker * This,
13980 REFIID riid,
13981 _COM_Outptr_opt_ void **ppvDevice);
13982
13983 DECLSPEC_XFGVIRT(ID3D12LifetimeTracker, DestroyOwnedObject)
13984 HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )(
13985 ID3D12LifetimeTracker * This,
13986 _In_ ID3D12DeviceChild *pObject);
13987
13988 END_INTERFACE
13989 } ID3D12LifetimeTrackerVtbl;
13990
13991 interface ID3D12LifetimeTracker
13992 {
13993 CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl;
13994 };
13995
13996
13997
13998#ifdef COBJMACROS
13999
14000
14001#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \
14002 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14003
14004#define ID3D12LifetimeTracker_AddRef(This) \
14005 ( (This)->lpVtbl -> AddRef(This) )
14006
14007#define ID3D12LifetimeTracker_Release(This) \
14008 ( (This)->lpVtbl -> Release(This) )
14009
14010
14011#define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \
14012 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
14013
14014#define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \
14015 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
14016
14017#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \
14018 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
14019
14020#define ID3D12LifetimeTracker_SetName(This,Name) \
14021 ( (This)->lpVtbl -> SetName(This,Name) )
14022
14023
14024#define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \
14025 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
14026
14027
14028#define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \
14029 ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) )
14030
14031#endif /* COBJMACROS */
14032
14033
14034#endif /* C style interface */
14035
14036
14037
14038
14039#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */
14040
14041
14042/* interface __MIDL_itf_d3d12_0000_0034 */
14043/* [local] */
14044
14045typedef
14046enum D3D12_META_COMMAND_PARAMETER_TYPE
14047 {
14048 D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0,
14049 D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1,
14050 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2,
14051 D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3,
14052 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4
14053 } D3D12_META_COMMAND_PARAMETER_TYPE;
14054
14055typedef
14056enum D3D12_META_COMMAND_PARAMETER_FLAGS
14057 {
14058 D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1,
14059 D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2
14060 } D3D12_META_COMMAND_PARAMETER_FLAGS;
14061
14062DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS )
14063typedef
14064enum D3D12_META_COMMAND_PARAMETER_STAGE
14065 {
14066 D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0,
14067 D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
14068 D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2
14069 } D3D12_META_COMMAND_PARAMETER_STAGE;
14070
14071typedef struct D3D12_META_COMMAND_PARAMETER_DESC
14072 {
14073 LPCWSTR Name;
14074 D3D12_META_COMMAND_PARAMETER_TYPE Type;
14075 D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
14076 D3D12_RESOURCE_STATES RequiredResourceState;
14077 UINT StructureOffset;
14078 } D3D12_META_COMMAND_PARAMETER_DESC;
14079
14080typedef
14081enum D3D12_GRAPHICS_STATES
14082 {
14083 D3D12_GRAPHICS_STATE_NONE = 0,
14084 D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) ,
14085 D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) ,
14086 D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) ,
14087 D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) ,
14088 D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) ,
14089 D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) ,
14090 D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) ,
14091 D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) ,
14092 D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) ,
14093 D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) ,
14094 D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) ,
14095 D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) ,
14096 D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) ,
14097 D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) ,
14098 D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) ,
14099 D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) ,
14100 D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 )
14101 } D3D12_GRAPHICS_STATES;
14102
14103DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES )
14104typedef struct D3D12_META_COMMAND_DESC
14105 {
14106 GUID Id;
14107 LPCWSTR Name;
14108 D3D12_GRAPHICS_STATES InitializationDirtyState;
14109 D3D12_GRAPHICS_STATES ExecutionDirtyState;
14110 } D3D12_META_COMMAND_DESC;
14111
14112
14113
14114extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec;
14115extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec;
14116
14117#ifndef __ID3D12StateObject_INTERFACE_DEFINED__
14118#define __ID3D12StateObject_INTERFACE_DEFINED__
14119
14120/* interface ID3D12StateObject */
14121/* [unique][local][object][uuid] */
14122
14123
14124EXTERN_C const IID IID_ID3D12StateObject;
14125
14126#if defined(__cplusplus) && !defined(CINTERFACE)
14127
14128 MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d")
14129 ID3D12StateObject : public ID3D12Pageable
14130 {
14131 public:
14132 };
14133
14134
14135#else /* C style interface */
14136
14137 typedef struct ID3D12StateObjectVtbl
14138 {
14139 BEGIN_INTERFACE
14140
14141 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14142 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14143 ID3D12StateObject * This,
14144 REFIID riid,
14145 _COM_Outptr_ void **ppvObject);
14146
14147 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14148 ULONG ( STDMETHODCALLTYPE *AddRef )(
14149 ID3D12StateObject * This);
14150
14151 DECLSPEC_XFGVIRT(IUnknown, Release)
14152 ULONG ( STDMETHODCALLTYPE *Release )(
14153 ID3D12StateObject * This);
14154
14155 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
14156 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
14157 ID3D12StateObject * This,
14158 _In_ REFGUID guid,
14159 _Inout_ UINT *pDataSize,
14160 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
14161
14162 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
14163 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
14164 ID3D12StateObject * This,
14165 _In_ REFGUID guid,
14166 _In_ UINT DataSize,
14167 _In_reads_bytes_opt_( DataSize ) const void *pData);
14168
14169 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
14170 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
14171 ID3D12StateObject * This,
14172 _In_ REFGUID guid,
14173 _In_opt_ const IUnknown *pData);
14174
14175 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
14176 HRESULT ( STDMETHODCALLTYPE *SetName )(
14177 ID3D12StateObject * This,
14178 _In_z_ LPCWSTR Name);
14179
14180 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
14181 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
14182 ID3D12StateObject * This,
14183 REFIID riid,
14184 _COM_Outptr_opt_ void **ppvDevice);
14185
14186 END_INTERFACE
14187 } ID3D12StateObjectVtbl;
14188
14189 interface ID3D12StateObject
14190 {
14191 CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl;
14192 };
14193
14194
14195
14196#ifdef COBJMACROS
14197
14198
14199#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \
14200 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14201
14202#define ID3D12StateObject_AddRef(This) \
14203 ( (This)->lpVtbl -> AddRef(This) )
14204
14205#define ID3D12StateObject_Release(This) \
14206 ( (This)->lpVtbl -> Release(This) )
14207
14208
14209#define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \
14210 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
14211
14212#define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \
14213 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
14214
14215#define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \
14216 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
14217
14218#define ID3D12StateObject_SetName(This,Name) \
14219 ( (This)->lpVtbl -> SetName(This,Name) )
14220
14221
14222#define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \
14223 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
14224
14225
14226
14227#endif /* COBJMACROS */
14228
14229
14230#endif /* C style interface */
14231
14232
14233
14234
14235#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */
14236
14237
14238#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__
14239#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__
14240
14241/* interface ID3D12StateObjectProperties */
14242/* [unique][local][object][uuid] */
14243
14244
14245EXTERN_C const IID IID_ID3D12StateObjectProperties;
14246
14247#if defined(__cplusplus) && !defined(CINTERFACE)
14248
14249 MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860")
14250 ID3D12StateObjectProperties : public IUnknown
14251 {
14252 public:
14253 virtual void *STDMETHODCALLTYPE GetShaderIdentifier(
14254 _In_ LPCWSTR pExportName) = 0;
14255
14256 virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize(
14257 _In_ LPCWSTR pExportName) = 0;
14258
14259 virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0;
14260
14261 virtual void STDMETHODCALLTYPE SetPipelineStackSize(
14262 UINT64 PipelineStackSizeInBytes) = 0;
14263
14264 };
14265
14266
14267#else /* C style interface */
14268
14269 typedef struct ID3D12StateObjectPropertiesVtbl
14270 {
14271 BEGIN_INTERFACE
14272
14273 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14274 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14275 ID3D12StateObjectProperties * This,
14276 REFIID riid,
14277 _COM_Outptr_ void **ppvObject);
14278
14279 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14280 ULONG ( STDMETHODCALLTYPE *AddRef )(
14281 ID3D12StateObjectProperties * This);
14282
14283 DECLSPEC_XFGVIRT(IUnknown, Release)
14284 ULONG ( STDMETHODCALLTYPE *Release )(
14285 ID3D12StateObjectProperties * This);
14286
14287 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
14288 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
14289 ID3D12StateObjectProperties * This,
14290 _In_ LPCWSTR pExportName);
14291
14292 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
14293 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
14294 ID3D12StateObjectProperties * This,
14295 _In_ LPCWSTR pExportName);
14296
14297 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
14298 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
14299 ID3D12StateObjectProperties * This);
14300
14301 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
14302 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
14303 ID3D12StateObjectProperties * This,
14304 UINT64 PipelineStackSizeInBytes);
14305
14306 END_INTERFACE
14307 } ID3D12StateObjectPropertiesVtbl;
14308
14309 interface ID3D12StateObjectProperties
14310 {
14311 CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl;
14312 };
14313
14314
14315
14316#ifdef COBJMACROS
14317
14318
14319#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \
14320 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14321
14322#define ID3D12StateObjectProperties_AddRef(This) \
14323 ( (This)->lpVtbl -> AddRef(This) )
14324
14325#define ID3D12StateObjectProperties_Release(This) \
14326 ( (This)->lpVtbl -> Release(This) )
14327
14328
14329#define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \
14330 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
14331
14332#define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \
14333 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
14334
14335#define ID3D12StateObjectProperties_GetPipelineStackSize(This) \
14336 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
14337
14338#define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
14339 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
14340
14341#endif /* COBJMACROS */
14342
14343
14344#endif /* C style interface */
14345
14346
14347
14348
14349#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */
14350
14351
14352/* interface __MIDL_itf_d3d12_0000_0036 */
14353/* [local] */
14354
14355typedef struct D3D12_PROGRAM_IDENTIFIER
14356 {
14357 UINT64 OpaqueData[ 4 ];
14358 } D3D12_PROGRAM_IDENTIFIER;
14359
14360
14361
14362extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec;
14363extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec;
14364
14365#ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__
14366#define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__
14367
14368/* interface ID3D12StateObjectProperties1 */
14369/* [unique][local][object][uuid] */
14370
14371
14372EXTERN_C const IID IID_ID3D12StateObjectProperties1;
14373
14374#if defined(__cplusplus) && !defined(CINTERFACE)
14375
14376 MIDL_INTERFACE("460caac7-1d24-446a-a184-ca67db494138")
14377 ID3D12StateObjectProperties1 : public ID3D12StateObjectProperties
14378 {
14379 public:
14380#if defined(_MSC_VER) || !defined(_WIN32)
14381 virtual D3D12_PROGRAM_IDENTIFIER STDMETHODCALLTYPE GetProgramIdentifier(
14382 LPCWSTR pProgramName) = 0;
14383#else
14384 virtual D3D12_PROGRAM_IDENTIFIER *STDMETHODCALLTYPE GetProgramIdentifier(
14385 D3D12_PROGRAM_IDENTIFIER * RetVal,
14386 LPCWSTR pProgramName) = 0;
14387#endif
14388
14389 };
14390
14391
14392#else /* C style interface */
14393
14394 typedef struct ID3D12StateObjectProperties1Vtbl
14395 {
14396 BEGIN_INTERFACE
14397
14398 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14399 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14400 ID3D12StateObjectProperties1 * This,
14401 REFIID riid,
14402 _COM_Outptr_ void **ppvObject);
14403
14404 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14405 ULONG ( STDMETHODCALLTYPE *AddRef )(
14406 ID3D12StateObjectProperties1 * This);
14407
14408 DECLSPEC_XFGVIRT(IUnknown, Release)
14409 ULONG ( STDMETHODCALLTYPE *Release )(
14410 ID3D12StateObjectProperties1 * This);
14411
14412 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
14413 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
14414 ID3D12StateObjectProperties1 * This,
14415 _In_ LPCWSTR pExportName);
14416
14417 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
14418 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
14419 ID3D12StateObjectProperties1 * This,
14420 _In_ LPCWSTR pExportName);
14421
14422 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
14423 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
14424 ID3D12StateObjectProperties1 * This);
14425
14426 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
14427 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
14428 ID3D12StateObjectProperties1 * This,
14429 UINT64 PipelineStackSizeInBytes);
14430
14431 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier)
14432#if !defined(_WIN32)
14433 D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )(
14434 ID3D12StateObjectProperties1 * This,
14435 LPCWSTR pProgramName);
14436
14437#else
14438 D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )(
14439 ID3D12StateObjectProperties1 * This,
14440 D3D12_PROGRAM_IDENTIFIER * RetVal,
14441 LPCWSTR pProgramName);
14442
14443#endif
14444
14445 END_INTERFACE
14446 } ID3D12StateObjectProperties1Vtbl;
14447
14448 interface ID3D12StateObjectProperties1
14449 {
14450 CONST_VTBL struct ID3D12StateObjectProperties1Vtbl *lpVtbl;
14451 };
14452
14453
14454
14455#ifdef COBJMACROS
14456
14457
14458#define ID3D12StateObjectProperties1_QueryInterface(This,riid,ppvObject) \
14459 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14460
14461#define ID3D12StateObjectProperties1_AddRef(This) \
14462 ( (This)->lpVtbl -> AddRef(This) )
14463
14464#define ID3D12StateObjectProperties1_Release(This) \
14465 ( (This)->lpVtbl -> Release(This) )
14466
14467
14468#define ID3D12StateObjectProperties1_GetShaderIdentifier(This,pExportName) \
14469 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
14470
14471#define ID3D12StateObjectProperties1_GetShaderStackSize(This,pExportName) \
14472 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
14473
14474#define ID3D12StateObjectProperties1_GetPipelineStackSize(This) \
14475 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
14476
14477#define ID3D12StateObjectProperties1_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
14478 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
14479
14480#if !defined(_WIN32)
14481
14482#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,pProgramName) \
14483 ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) )
14484#else
14485#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,RetVal,pProgramName) \
14486 ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) )
14487#endif
14488
14489#endif /* COBJMACROS */
14490
14491
14492#endif /* C style interface */
14493
14494
14495
14496
14497#endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */
14498
14499
14500#ifndef __ID3D12StateObjectProperties2_INTERFACE_DEFINED__
14501#define __ID3D12StateObjectProperties2_INTERFACE_DEFINED__
14502
14503/* interface ID3D12StateObjectProperties2 */
14504/* [unique][local][object][uuid] */
14505
14506
14507EXTERN_C const IID IID_ID3D12StateObjectProperties2;
14508
14509#if defined(__cplusplus) && !defined(CINTERFACE)
14510
14511 MIDL_INTERFACE("d5e82917-f0f1-44cf-ae5e-ce222dd0b884")
14512 ID3D12StateObjectProperties2 : public ID3D12StateObjectProperties1
14513 {
14514 public:
14515 virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForProgram(
14516 LPCWSTR pProgramName,
14517 REFIID riid,
14518 _COM_Outptr_ void **ppvRootSignature) = 0;
14519
14520 virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForShader(
14521 LPCWSTR pExportName,
14522 REFIID riid,
14523 _COM_Outptr_ void **ppvRootSignature) = 0;
14524
14525 };
14526
14527
14528#else /* C style interface */
14529
14530 typedef struct ID3D12StateObjectProperties2Vtbl
14531 {
14532 BEGIN_INTERFACE
14533
14534 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14535 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14536 ID3D12StateObjectProperties2 * This,
14537 REFIID riid,
14538 _COM_Outptr_ void **ppvObject);
14539
14540 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14541 ULONG ( STDMETHODCALLTYPE *AddRef )(
14542 ID3D12StateObjectProperties2 * This);
14543
14544 DECLSPEC_XFGVIRT(IUnknown, Release)
14545 ULONG ( STDMETHODCALLTYPE *Release )(
14546 ID3D12StateObjectProperties2 * This);
14547
14548 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
14549 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
14550 ID3D12StateObjectProperties2 * This,
14551 _In_ LPCWSTR pExportName);
14552
14553 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
14554 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
14555 ID3D12StateObjectProperties2 * This,
14556 _In_ LPCWSTR pExportName);
14557
14558 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
14559 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
14560 ID3D12StateObjectProperties2 * This);
14561
14562 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
14563 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
14564 ID3D12StateObjectProperties2 * This,
14565 UINT64 PipelineStackSizeInBytes);
14566
14567 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier)
14568#if !defined(_WIN32)
14569 D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )(
14570 ID3D12StateObjectProperties2 * This,
14571 LPCWSTR pProgramName);
14572
14573#else
14574 D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )(
14575 ID3D12StateObjectProperties2 * This,
14576 D3D12_PROGRAM_IDENTIFIER * RetVal,
14577 LPCWSTR pProgramName);
14578
14579#endif
14580
14581 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForProgram)
14582 HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForProgram )(
14583 ID3D12StateObjectProperties2 * This,
14584 LPCWSTR pProgramName,
14585 REFIID riid,
14586 _COM_Outptr_ void **ppvRootSignature);
14587
14588 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForShader)
14589 HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForShader )(
14590 ID3D12StateObjectProperties2 * This,
14591 LPCWSTR pExportName,
14592 REFIID riid,
14593 _COM_Outptr_ void **ppvRootSignature);
14594
14595 END_INTERFACE
14596 } ID3D12StateObjectProperties2Vtbl;
14597
14598 interface ID3D12StateObjectProperties2
14599 {
14600 CONST_VTBL struct ID3D12StateObjectProperties2Vtbl *lpVtbl;
14601 };
14602
14603
14604
14605#ifdef COBJMACROS
14606
14607
14608#define ID3D12StateObjectProperties2_QueryInterface(This,riid,ppvObject) \
14609 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14610
14611#define ID3D12StateObjectProperties2_AddRef(This) \
14612 ( (This)->lpVtbl -> AddRef(This) )
14613
14614#define ID3D12StateObjectProperties2_Release(This) \
14615 ( (This)->lpVtbl -> Release(This) )
14616
14617
14618#define ID3D12StateObjectProperties2_GetShaderIdentifier(This,pExportName) \
14619 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
14620
14621#define ID3D12StateObjectProperties2_GetShaderStackSize(This,pExportName) \
14622 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
14623
14624#define ID3D12StateObjectProperties2_GetPipelineStackSize(This) \
14625 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
14626
14627#define ID3D12StateObjectProperties2_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
14628 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
14629
14630#if !defined(_WIN32)
14631
14632#define ID3D12StateObjectProperties2_GetProgramIdentifier(This,pProgramName) \
14633 ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) )
14634#else
14635#define ID3D12StateObjectProperties2_GetProgramIdentifier(This,RetVal,pProgramName) \
14636 ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) )
14637#endif
14638
14639
14640#define ID3D12StateObjectProperties2_GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) \
14641 ( (This)->lpVtbl -> GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) )
14642
14643#define ID3D12StateObjectProperties2_GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) \
14644 ( (This)->lpVtbl -> GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) )
14645
14646#endif /* COBJMACROS */
14647
14648
14649#endif /* C style interface */
14650
14651
14652
14653
14654#endif /* __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ */
14655
14656
14657/* interface __MIDL_itf_d3d12_0000_0038 */
14658/* [local] */
14659
14660typedef struct D3D12_NODE_ID
14661 {
14662 LPCWSTR Name;
14663 UINT ArrayIndex;
14664 } D3D12_NODE_ID;
14665
14666typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS
14667 {
14668 UINT64 MinSizeInBytes;
14669 UINT64 MaxSizeInBytes;
14670 UINT SizeGranularityInBytes;
14671 } D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS;
14672
14673
14674
14675extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_c_ifspec;
14676extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_s_ifspec;
14677
14678#ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__
14679#define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__
14680
14681/* interface ID3D12WorkGraphProperties */
14682/* [unique][local][object][uuid] */
14683
14684
14685EXTERN_C const IID IID_ID3D12WorkGraphProperties;
14686
14687#if defined(__cplusplus) && !defined(CINTERFACE)
14688
14689 MIDL_INTERFACE("065acf71-f863-4b89-82f4-02e4d5886757")
14690 ID3D12WorkGraphProperties : public IUnknown
14691 {
14692 public:
14693 virtual UINT STDMETHODCALLTYPE GetNumWorkGraphs( void) = 0;
14694
14695 virtual LPCWSTR STDMETHODCALLTYPE GetProgramName(
14696 UINT WorkGraphIndex) = 0;
14697
14698 virtual UINT STDMETHODCALLTYPE GetWorkGraphIndex(
14699 LPCWSTR pProgramName) = 0;
14700
14701 virtual UINT STDMETHODCALLTYPE GetNumNodes(
14702 UINT WorkGraphIndex) = 0;
14703
14704#if defined(_MSC_VER) || !defined(_WIN32)
14705 virtual D3D12_NODE_ID STDMETHODCALLTYPE GetNodeID(
14706 UINT WorkGraphIndex,
14707 UINT NodeIndex) = 0;
14708#else
14709 virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetNodeID(
14710 D3D12_NODE_ID * RetVal,
14711 UINT WorkGraphIndex,
14712 UINT NodeIndex) = 0;
14713#endif
14714
14715 virtual UINT STDMETHODCALLTYPE GetNodeIndex(
14716 UINT WorkGraphIndex,
14717 D3D12_NODE_ID NodeID) = 0;
14718
14719 virtual UINT STDMETHODCALLTYPE GetNodeLocalRootArgumentsTableIndex(
14720 UINT WorkGraphIndex,
14721 UINT NodeIndex) = 0;
14722
14723 virtual UINT STDMETHODCALLTYPE GetNumEntrypoints(
14724 UINT WorkGraphIndex) = 0;
14725
14726#if defined(_MSC_VER) || !defined(_WIN32)
14727 virtual D3D12_NODE_ID STDMETHODCALLTYPE GetEntrypointID(
14728 UINT WorkGraphIndex,
14729 UINT EntrypointIndex) = 0;
14730#else
14731 virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetEntrypointID(
14732 D3D12_NODE_ID * RetVal,
14733 UINT WorkGraphIndex,
14734 UINT EntrypointIndex) = 0;
14735#endif
14736
14737 virtual UINT STDMETHODCALLTYPE GetEntrypointIndex(
14738 UINT WorkGraphIndex,
14739 D3D12_NODE_ID NodeID) = 0;
14740
14741 virtual UINT STDMETHODCALLTYPE GetEntrypointRecordSizeInBytes(
14742 UINT WorkGraphIndex,
14743 UINT EntrypointIndex) = 0;
14744
14745 virtual void STDMETHODCALLTYPE GetWorkGraphMemoryRequirements(
14746 UINT WorkGraphIndex,
14747 _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements) = 0;
14748
14749 virtual UINT STDMETHODCALLTYPE GetEntrypointRecordAlignmentInBytes(
14750 UINT WorkGraphIndex,
14751 UINT EntrypointIndex) = 0;
14752
14753 };
14754
14755
14756#else /* C style interface */
14757
14758 typedef struct ID3D12WorkGraphPropertiesVtbl
14759 {
14760 BEGIN_INTERFACE
14761
14762 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14763 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14764 ID3D12WorkGraphProperties * This,
14765 REFIID riid,
14766 _COM_Outptr_ void **ppvObject);
14767
14768 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14769 ULONG ( STDMETHODCALLTYPE *AddRef )(
14770 ID3D12WorkGraphProperties * This);
14771
14772 DECLSPEC_XFGVIRT(IUnknown, Release)
14773 ULONG ( STDMETHODCALLTYPE *Release )(
14774 ID3D12WorkGraphProperties * This);
14775
14776 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumWorkGraphs)
14777 UINT ( STDMETHODCALLTYPE *GetNumWorkGraphs )(
14778 ID3D12WorkGraphProperties * This);
14779
14780 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetProgramName)
14781 LPCWSTR ( STDMETHODCALLTYPE *GetProgramName )(
14782 ID3D12WorkGraphProperties * This,
14783 UINT WorkGraphIndex);
14784
14785 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphIndex)
14786 UINT ( STDMETHODCALLTYPE *GetWorkGraphIndex )(
14787 ID3D12WorkGraphProperties * This,
14788 LPCWSTR pProgramName);
14789
14790 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumNodes)
14791 UINT ( STDMETHODCALLTYPE *GetNumNodes )(
14792 ID3D12WorkGraphProperties * This,
14793 UINT WorkGraphIndex);
14794
14795 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeID)
14796#if !defined(_WIN32)
14797 D3D12_NODE_ID ( STDMETHODCALLTYPE *GetNodeID )(
14798 ID3D12WorkGraphProperties * This,
14799 UINT WorkGraphIndex,
14800 UINT NodeIndex);
14801
14802#else
14803 D3D12_NODE_ID *( STDMETHODCALLTYPE *GetNodeID )(
14804 ID3D12WorkGraphProperties * This,
14805 D3D12_NODE_ID * RetVal,
14806 UINT WorkGraphIndex,
14807 UINT NodeIndex);
14808
14809#endif
14810
14811 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeIndex)
14812 UINT ( STDMETHODCALLTYPE *GetNodeIndex )(
14813 ID3D12WorkGraphProperties * This,
14814 UINT WorkGraphIndex,
14815 D3D12_NODE_ID NodeID);
14816
14817 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeLocalRootArgumentsTableIndex)
14818 UINT ( STDMETHODCALLTYPE *GetNodeLocalRootArgumentsTableIndex )(
14819 ID3D12WorkGraphProperties * This,
14820 UINT WorkGraphIndex,
14821 UINT NodeIndex);
14822
14823 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumEntrypoints)
14824 UINT ( STDMETHODCALLTYPE *GetNumEntrypoints )(
14825 ID3D12WorkGraphProperties * This,
14826 UINT WorkGraphIndex);
14827
14828 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointID)
14829#if !defined(_WIN32)
14830 D3D12_NODE_ID ( STDMETHODCALLTYPE *GetEntrypointID )(
14831 ID3D12WorkGraphProperties * This,
14832 UINT WorkGraphIndex,
14833 UINT EntrypointIndex);
14834
14835#else
14836 D3D12_NODE_ID *( STDMETHODCALLTYPE *GetEntrypointID )(
14837 ID3D12WorkGraphProperties * This,
14838 D3D12_NODE_ID * RetVal,
14839 UINT WorkGraphIndex,
14840 UINT EntrypointIndex);
14841
14842#endif
14843
14844 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointIndex)
14845 UINT ( STDMETHODCALLTYPE *GetEntrypointIndex )(
14846 ID3D12WorkGraphProperties * This,
14847 UINT WorkGraphIndex,
14848 D3D12_NODE_ID NodeID);
14849
14850 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordSizeInBytes)
14851 UINT ( STDMETHODCALLTYPE *GetEntrypointRecordSizeInBytes )(
14852 ID3D12WorkGraphProperties * This,
14853 UINT WorkGraphIndex,
14854 UINT EntrypointIndex);
14855
14856 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphMemoryRequirements)
14857 void ( STDMETHODCALLTYPE *GetWorkGraphMemoryRequirements )(
14858 ID3D12WorkGraphProperties * This,
14859 UINT WorkGraphIndex,
14860 _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements);
14861
14862 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordAlignmentInBytes)
14863 UINT ( STDMETHODCALLTYPE *GetEntrypointRecordAlignmentInBytes )(
14864 ID3D12WorkGraphProperties * This,
14865 UINT WorkGraphIndex,
14866 UINT EntrypointIndex);
14867
14868 END_INTERFACE
14869 } ID3D12WorkGraphPropertiesVtbl;
14870
14871 interface ID3D12WorkGraphProperties
14872 {
14873 CONST_VTBL struct ID3D12WorkGraphPropertiesVtbl *lpVtbl;
14874 };
14875
14876
14877
14878#ifdef COBJMACROS
14879
14880
14881#define ID3D12WorkGraphProperties_QueryInterface(This,riid,ppvObject) \
14882 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14883
14884#define ID3D12WorkGraphProperties_AddRef(This) \
14885 ( (This)->lpVtbl -> AddRef(This) )
14886
14887#define ID3D12WorkGraphProperties_Release(This) \
14888 ( (This)->lpVtbl -> Release(This) )
14889
14890
14891#define ID3D12WorkGraphProperties_GetNumWorkGraphs(This) \
14892 ( (This)->lpVtbl -> GetNumWorkGraphs(This) )
14893
14894#define ID3D12WorkGraphProperties_GetProgramName(This,WorkGraphIndex) \
14895 ( (This)->lpVtbl -> GetProgramName(This,WorkGraphIndex) )
14896
14897#define ID3D12WorkGraphProperties_GetWorkGraphIndex(This,pProgramName) \
14898 ( (This)->lpVtbl -> GetWorkGraphIndex(This,pProgramName) )
14899
14900#define ID3D12WorkGraphProperties_GetNumNodes(This,WorkGraphIndex) \
14901 ( (This)->lpVtbl -> GetNumNodes(This,WorkGraphIndex) )
14902#if !defined(_WIN32)
14903
14904#define ID3D12WorkGraphProperties_GetNodeID(This,WorkGraphIndex,NodeIndex) \
14905 ( (This)->lpVtbl -> GetNodeID(This,WorkGraphIndex,NodeIndex) )
14906#else
14907#define ID3D12WorkGraphProperties_GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) \
14908 ( (This)->lpVtbl -> GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) )
14909#endif
14910
14911#define ID3D12WorkGraphProperties_GetNodeIndex(This,WorkGraphIndex,NodeID) \
14912 ( (This)->lpVtbl -> GetNodeIndex(This,WorkGraphIndex,NodeID) )
14913
14914#define ID3D12WorkGraphProperties_GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) \
14915 ( (This)->lpVtbl -> GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) )
14916
14917#define ID3D12WorkGraphProperties_GetNumEntrypoints(This,WorkGraphIndex) \
14918 ( (This)->lpVtbl -> GetNumEntrypoints(This,WorkGraphIndex) )
14919#if !defined(_WIN32)
14920
14921#define ID3D12WorkGraphProperties_GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) \
14922 ( (This)->lpVtbl -> GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) )
14923#else
14924#define ID3D12WorkGraphProperties_GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) \
14925 ( (This)->lpVtbl -> GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) )
14926#endif
14927
14928#define ID3D12WorkGraphProperties_GetEntrypointIndex(This,WorkGraphIndex,NodeID) \
14929 ( (This)->lpVtbl -> GetEntrypointIndex(This,WorkGraphIndex,NodeID) )
14930
14931#define ID3D12WorkGraphProperties_GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) \
14932 ( (This)->lpVtbl -> GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) )
14933
14934#define ID3D12WorkGraphProperties_GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) \
14935 ( (This)->lpVtbl -> GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) )
14936
14937#define ID3D12WorkGraphProperties_GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) \
14938 ( (This)->lpVtbl -> GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) )
14939
14940#endif /* COBJMACROS */
14941
14942
14943#endif /* C style interface */
14944
14945
14946
14947
14948#endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */
14949
14950
14951/* interface __MIDL_itf_d3d12_0000_0039 */
14952/* [local] */
14953
14954typedef
14955enum D3D12_STATE_SUBOBJECT_TYPE
14956 {
14957 D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0,
14958 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1,
14959 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2,
14960 D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3,
14961 D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5,
14962 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6,
14963 D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7,
14964 D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8,
14965 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9,
14966 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10,
14967 D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11,
14968 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12,
14969 D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13,
14970 D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14,
14971 D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15,
14972 D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16,
14973 D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17,
14974 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18,
14975 D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19,
14976 D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20,
14977 D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21,
14978 D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22,
14979 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23,
14980 D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24,
14981 D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26,
14982 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27,
14983 D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28,
14984 D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29,
14985 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30,
14986 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE = 31,
14987 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE = 32,
14988 D3D12_STATE_SUBOBJECT_TYPE_COMPILER_EXISITING_COLLECTION = 33,
14989 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY = 36,
14990 D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY + 1 )
14991 } D3D12_STATE_SUBOBJECT_TYPE;
14992
14993typedef struct D3D12_STATE_SUBOBJECT
14994 {
14995 D3D12_STATE_SUBOBJECT_TYPE Type;
14996 const void *pDesc;
14997 } D3D12_STATE_SUBOBJECT;
14998
14999typedef
15000enum D3D12_STATE_OBJECT_FLAGS
15001 {
15002 D3D12_STATE_OBJECT_FLAG_NONE = 0,
15003 D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
15004 D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
15005 D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4
15006 } D3D12_STATE_OBJECT_FLAGS;
15007
15008DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS )
15009typedef struct D3D12_STATE_OBJECT_CONFIG
15010 {
15011 D3D12_STATE_OBJECT_FLAGS Flags;
15012 } D3D12_STATE_OBJECT_CONFIG;
15013
15014typedef struct D3D12_GLOBAL_ROOT_SIGNATURE
15015 {
15016 ID3D12RootSignature *pGlobalRootSignature;
15017 } D3D12_GLOBAL_ROOT_SIGNATURE;
15018
15019typedef struct D3D12_LOCAL_ROOT_SIGNATURE
15020 {
15021 ID3D12RootSignature *pLocalRootSignature;
15022 } D3D12_LOCAL_ROOT_SIGNATURE;
15023
15024typedef struct D3D12_NODE_MASK
15025 {
15026 UINT NodeMask;
15027 } D3D12_NODE_MASK;
15028
15029typedef struct D3D12_SAMPLE_MASK
15030 {
15031 UINT SampleMask;
15032 } D3D12_SAMPLE_MASK;
15033
15034typedef struct D3D12_IB_STRIP_CUT_VALUE
15035 {
15036 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue;
15037 } D3D12_IB_STRIP_CUT_VALUE;
15038
15039typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC
15040 {
15041 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology;
15042 } D3D12_PRIMITIVE_TOPOLOGY_DESC;
15043
15044typedef struct D3D12_DEPTH_STENCIL_FORMAT
15045 {
15046 DXGI_FORMAT DepthStencilFormat;
15047 } D3D12_DEPTH_STENCIL_FORMAT;
15048
15049typedef
15050enum D3D12_EXPORT_FLAGS
15051 {
15052 D3D12_EXPORT_FLAG_NONE = 0
15053 } D3D12_EXPORT_FLAGS;
15054
15055DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS )
15056typedef struct D3D12_EXPORT_DESC
15057 {
15058 LPCWSTR Name;
15059 _In_opt_ LPCWSTR ExportToRename;
15060 D3D12_EXPORT_FLAGS Flags;
15061 } D3D12_EXPORT_DESC;
15062
15063typedef struct D3D12_DXIL_LIBRARY_DESC
15064 {
15065 D3D12_SHADER_BYTECODE DXILLibrary;
15066 UINT NumExports;
15067 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
15068 } D3D12_DXIL_LIBRARY_DESC;
15069
15070typedef struct D3D12_EXISTING_COLLECTION_DESC
15071 {
15072 ID3D12StateObject *pExistingCollection;
15073 UINT NumExports;
15074 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
15075 } D3D12_EXISTING_COLLECTION_DESC;
15076
15077typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
15078 {
15079 const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate;
15080 UINT NumExports;
15081 _In_reads_(NumExports) LPCWSTR *pExports;
15082 } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
15083
15084typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
15085 {
15086 LPCWSTR SubobjectToAssociate;
15087 UINT NumExports;
15088 _In_reads_(NumExports) LPCWSTR *pExports;
15089 } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
15090
15091typedef
15092enum D3D12_HIT_GROUP_TYPE
15093 {
15094 D3D12_HIT_GROUP_TYPE_TRIANGLES = 0,
15095 D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1
15096 } D3D12_HIT_GROUP_TYPE;
15097
15098typedef struct D3D12_HIT_GROUP_DESC
15099 {
15100 LPCWSTR HitGroupExport;
15101 D3D12_HIT_GROUP_TYPE Type;
15102 _In_opt_ LPCWSTR AnyHitShaderImport;
15103 _In_opt_ LPCWSTR ClosestHitShaderImport;
15104 _In_opt_ LPCWSTR IntersectionShaderImport;
15105 } D3D12_HIT_GROUP_DESC;
15106
15107typedef struct D3D12_RAYTRACING_SHADER_CONFIG
15108 {
15109 UINT MaxPayloadSizeInBytes;
15110 UINT MaxAttributeSizeInBytes;
15111 } D3D12_RAYTRACING_SHADER_CONFIG;
15112
15113typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG
15114 {
15115 UINT MaxTraceRecursionDepth;
15116 } D3D12_RAYTRACING_PIPELINE_CONFIG;
15117
15118typedef
15119enum D3D12_RAYTRACING_PIPELINE_FLAGS
15120 {
15121 D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0,
15122 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100,
15123 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
15124 D3D12_RAYTRACING_PIPELINE_FLAG_ALLOW_OPACITY_MICROMAPS = 0x400
15125 } D3D12_RAYTRACING_PIPELINE_FLAGS;
15126
15127DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS )
15128typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1
15129 {
15130 UINT MaxTraceRecursionDepth;
15131 D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
15132 } D3D12_RAYTRACING_PIPELINE_CONFIG1;
15133
15134typedef struct D3D12_NODE_OUTPUT_OVERRIDES
15135 {
15136 UINT OutputIndex;
15137 _In_opt_ const D3D12_NODE_ID *pNewName;
15138 _In_opt_ const BOOL *pAllowSparseNodes;
15139 _In_opt_ const UINT *pMaxRecords;
15140 _In_opt_ const UINT *pMaxRecordsSharedWithOutputIndex;
15141 } D3D12_NODE_OUTPUT_OVERRIDES;
15142
15143typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES
15144 {
15145 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
15146 _In_opt_ const BOOL *pProgramEntry;
15147 _In_opt_ const D3D12_NODE_ID *pNewName;
15148 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
15149 _In_reads_opt_(3) const UINT *pDispatchGrid;
15150 _In_reads_opt_(3) const UINT *pMaxDispatchGrid;
15151 UINT NumOutputOverrides;
15152 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
15153 } D3D12_BROADCASTING_LAUNCH_OVERRIDES;
15154
15155typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES
15156 {
15157 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
15158 _In_opt_ const BOOL *pProgramEntry;
15159 _In_opt_ const D3D12_NODE_ID *pNewName;
15160 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
15161 UINT NumOutputOverrides;
15162 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
15163 } D3D12_COALESCING_LAUNCH_OVERRIDES;
15164
15165typedef struct D3D12_THREAD_LAUNCH_OVERRIDES
15166 {
15167 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
15168 _In_opt_ const BOOL *pProgramEntry;
15169 _In_opt_ const D3D12_NODE_ID *pNewName;
15170 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
15171 UINT NumOutputOverrides;
15172 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
15173 } D3D12_THREAD_LAUNCH_OVERRIDES;
15174
15175typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES
15176 {
15177 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
15178 _In_opt_ const BOOL *pProgramEntry;
15179 _In_opt_ const D3D12_NODE_ID *pNewName;
15180 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
15181 UINT NumOutputOverrides;
15182 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
15183 } D3D12_COMMON_COMPUTE_NODE_OVERRIDES;
15184
15185typedef
15186enum D3D12_NODE_OVERRIDES_TYPE
15187 {
15188 D3D12_NODE_OVERRIDES_TYPE_NONE = 0,
15189 D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1,
15190 D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2,
15191 D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3,
15192 D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4
15193 } D3D12_NODE_OVERRIDES_TYPE;
15194
15195typedef struct D3D12_SHADER_NODE
15196 {
15197 LPCWSTR Shader;
15198 D3D12_NODE_OVERRIDES_TYPE OverridesType;
15199 union
15200 {
15201 const D3D12_BROADCASTING_LAUNCH_OVERRIDES *pBroadcastingLaunchOverrides;
15202 const D3D12_COALESCING_LAUNCH_OVERRIDES *pCoalescingLaunchOverrides;
15203 const D3D12_THREAD_LAUNCH_OVERRIDES *pThreadLaunchOverrides;
15204 const D3D12_COMMON_COMPUTE_NODE_OVERRIDES *pCommonComputeNodeOverrides;
15205 } ;
15206 } D3D12_SHADER_NODE;
15207
15208typedef
15209enum D3D12_NODE_TYPE
15210 {
15211 D3D12_NODE_TYPE_SHADER = 0
15212 } D3D12_NODE_TYPE;
15213
15214typedef struct D3D12_NODE
15215 {
15216 D3D12_NODE_TYPE NodeType;
15217 union
15218 {
15219 D3D12_SHADER_NODE Shader;
15220 } ;
15221 } D3D12_NODE;
15222
15223typedef
15224enum D3D12_WORK_GRAPH_FLAGS
15225 {
15226 D3D12_WORK_GRAPH_FLAG_NONE = 0,
15227 D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1
15228 } D3D12_WORK_GRAPH_FLAGS;
15229
15230DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS )
15231typedef struct D3D12_WORK_GRAPH_DESC
15232 {
15233 LPCWSTR ProgramName;
15234 D3D12_WORK_GRAPH_FLAGS Flags;
15235 UINT NumEntrypoints;
15236 _In_reads_opt_(NumEntrypoints) const D3D12_NODE_ID *pEntrypoints;
15237 UINT NumExplicitlyDefinedNodes;
15238 _In_reads_opt_(NumExplicitlyDefinedNodes) const D3D12_NODE *pExplicitlyDefinedNodes;
15239 } D3D12_WORK_GRAPH_DESC;
15240
15241typedef struct D3D12_GENERIC_PROGRAM_DESC
15242 {
15243 LPCWSTR ProgramName;
15244 UINT NumExports;
15245 _In_reads_(NumExports) LPCWSTR *pExports;
15246 UINT NumSubobjects;
15247 _In_reads_opt_(NumSubobjects) const D3D12_STATE_SUBOBJECT *const *ppSubobjects;
15248 } D3D12_GENERIC_PROGRAM_DESC;
15249
15250typedef
15251enum D3D12_STATE_OBJECT_TYPE
15252 {
15253 D3D12_STATE_OBJECT_TYPE_COLLECTION = 0,
15254 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3,
15255 D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4
15256 } D3D12_STATE_OBJECT_TYPE;
15257
15258typedef struct D3D12_STATE_OBJECT_DESC
15259 {
15260 D3D12_STATE_OBJECT_TYPE Type;
15261 UINT NumSubobjects;
15262 _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects;
15263 } D3D12_STATE_OBJECT_DESC;
15264
15265typedef
15266enum D3D12_RAYTRACING_GEOMETRY_FLAGS
15267 {
15268 D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
15269 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
15270 D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
15271 } D3D12_RAYTRACING_GEOMETRY_FLAGS;
15272
15273DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS )
15274typedef
15275enum D3D12_RAYTRACING_GEOMETRY_TYPE
15276 {
15277 D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0,
15278 D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 ) ,
15279 D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES = ( D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS + 1 )
15280 } D3D12_RAYTRACING_GEOMETRY_TYPE;
15281
15282typedef
15283enum D3D12_RAYTRACING_INSTANCE_FLAGS
15284 {
15285 D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
15286 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
15287 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
15288 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
15289 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8,
15290 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 0x10,
15291 D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 0x20
15292 } D3D12_RAYTRACING_INSTANCE_FLAGS;
15293
15294DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS )
15295typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
15296 {
15297 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
15298 UINT64 StrideInBytes;
15299 } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
15300
15301typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE
15302 {
15303 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
15304 UINT64 SizeInBytes;
15305 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
15306
15307typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE
15308 {
15309 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
15310 UINT64 SizeInBytes;
15311 UINT64 StrideInBytes;
15312 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
15313
15314typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
15315 {
15316 D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
15317 DXGI_FORMAT IndexFormat;
15318 DXGI_FORMAT VertexFormat;
15319 UINT IndexCount;
15320 UINT VertexCount;
15321 D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
15322 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
15323 } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
15324
15325typedef struct D3D12_RAYTRACING_AABB
15326 {
15327 FLOAT MinX;
15328 FLOAT MinY;
15329 FLOAT MinZ;
15330 FLOAT MaxX;
15331 FLOAT MaxY;
15332 FLOAT MaxZ;
15333 } D3D12_RAYTRACING_AABB;
15334
15335typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC
15336 {
15337 UINT64 AABBCount;
15338 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
15339 } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
15340
15341typedef
15342enum D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX
15343 {
15344 D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT = -1,
15345 D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE = -2,
15346 D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT = -3,
15347 D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE = -4
15348 } D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX;
15349
15350typedef
15351enum D3D12_RAYTRACING_OPACITY_MICROMAP_STATE
15352 {
15353 D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_TRANSPARENT = 0,
15354 D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_OPAQUE = 1,
15355 D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT = 2,
15356 D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE = 3
15357 } D3D12_RAYTRACING_OPACITY_MICROMAP_STATE;
15358
15359typedef
15360enum D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT
15361 {
15362 D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_2_STATE = 0x1,
15363 D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_4_STATE = 0x2
15364 } D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT;
15365
15366typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_DESC
15367{
15368 UINT ByteOffset;
15369 UINT SubdivisionLevel : 16;
15370 D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format : 16;
15371} D3D12_RAYTRACING_OPACITY_MICROMAP_DESC;
15372typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC
15373 {
15374 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE OpacityMicromapIndexBuffer;
15375 DXGI_FORMAT OpacityMicromapIndexFormat;
15376 UINT OpacityMicromapBaseLocation;
15377 D3D12_GPU_VIRTUAL_ADDRESS OpacityMicromapArray;
15378 } D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC;
15379
15380typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC
15381 {
15382 const D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC *pTriangles;
15383 const D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC *pOmmLinkage;
15384 } D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC;
15385
15386typedef
15387enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
15388 {
15389 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0,
15390 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
15391 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
15392 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
15393 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
15394 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
15395 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20,
15396 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE = 0x40,
15397 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS = 0x80
15398 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
15399
15400DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS )
15401typedef
15402enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
15403 {
15404 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0,
15405 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
15406 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
15407 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
15408 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
15409 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
15410
15411typedef
15412enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
15413 {
15414 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0,
15415 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1,
15416 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_OPACITY_MICROMAP_ARRAY = 0x2
15417 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
15418
15419typedef
15420enum D3D12_ELEMENTS_LAYOUT
15421 {
15422 D3D12_ELEMENTS_LAYOUT_ARRAY = 0,
15423 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
15424 } D3D12_ELEMENTS_LAYOUT;
15425
15426typedef
15427enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE
15428 {
15429 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0,
15430 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
15431 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
15432 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3
15433 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
15434
15435typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC
15436 {
15437 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
15438 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
15439 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
15440
15441typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
15442 {
15443 UINT64 CompactedSizeInBytes;
15444 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
15445
15446typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
15447 {
15448 UINT64 DecodedSizeInBytes;
15449 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
15450
15451typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
15452 {
15453 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
15454 UINT NumDescs;
15455 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
15456
15457// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,
15458// depending on Type field, NumDescs above is followed by either:
15459// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]
15460// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].
15461// or D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC (NumDescs == 1 in this case).
15462//
15463// For D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC, the pOmmHistogram pointer becomes a GPUVA instead of CPU pointer
15464//
15465// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.
15466
15467typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
15468 {
15469 UINT64 SerializedSizeInBytes;
15470 union
15471 {
15472 UINT64 NumBottomLevelAccelerationStructurePointers;
15473 UINT64 NumBottomLevelAccelerationStructureHeaderAndPointerListPairs;
15474 } ;
15475 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
15476
15477typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
15478 {
15479 GUID DriverOpaqueGUID;
15480 BYTE DriverOpaqueVersioningData[ 16 ];
15481 } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
15482
15483typedef
15484enum D3D12_SERIALIZED_DATA_TYPE
15485 {
15486 D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0,
15487 D3D12_SERIALIZED_DATA_APPLICATION_SPECIFIC_DRIVER_STATE = 0x1
15488 } D3D12_SERIALIZED_DATA_TYPE;
15489
15490typedef
15491enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS
15492 {
15493 D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0,
15494 D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
15495 D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
15496 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
15497 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4
15498 } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
15499
15500typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER
15501 {
15502 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
15503 UINT64 SerializedSizeInBytesIncludingHeader;
15504 UINT64 DeserializedSizeInBytes;
15505 UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
15506 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
15507
15508typedef
15509enum D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE
15510 {
15511 D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_NONE = 0,
15512 D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BOTTOM_LEVEL_POINTERS = 0,
15513 D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BLOCKS = 0xffffffff
15514 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE;
15515
15516typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1
15517 {
15518 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
15519 UINT64 SerializedSizeInBytesIncludingHeader;
15520 UINT64 DeserializedSizeInBytes;
15521 union
15522 {
15523 UINT NumBottomLevelAccelerationStructurePointersAfterHeader;
15524 UINT NumBlocks;
15525 } ;
15526 D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE HeaderPostambleType;
15527 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1;
15528
15529typedef
15530enum D3D12_SERIALIZED_BLOCK_TYPE
15531 {
15532 D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE_OPACITY_MICROMAPS = 0
15533 } D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE;
15534
15535typedef struct D3D12_RAYTRACING_SERIALIZED_BLOCK
15536 {
15537 D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE Type;
15538 UINT64 NumBlockPointersAfterHeader;
15539 } D3D12_RAYTRACING_SERIALIZED_BLOCK;
15540
15541typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
15542 {
15543 UINT64 CurrentSizeInBytes;
15544 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
15545
15546typedef struct D3D12_RAYTRACING_INSTANCE_DESC
15547 {
15548 FLOAT Transform[ 3 ][ 4 ];
15549 UINT InstanceID : 24;
15550 UINT InstanceMask : 8;
15551 UINT InstanceContributionToHitGroupIndex : 24;
15552 UINT Flags : 8;
15553 D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
15554 } D3D12_RAYTRACING_INSTANCE_DESC;
15555
15556typedef struct D3D12_RAYTRACING_GEOMETRY_DESC
15557 {
15558 D3D12_RAYTRACING_GEOMETRY_TYPE Type;
15559 D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
15560 union
15561 {
15562 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
15563 D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
15564 D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC OmmTriangles;
15565 } ;
15566 } D3D12_RAYTRACING_GEOMETRY_DESC;
15567
15568typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY
15569 {
15570 UINT Count;
15571 UINT SubdivisionLevel;
15572 D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format;
15573 } D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY;
15574
15575typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC
15576 {
15577 UINT NumOmmHistogramEntries;
15578 const D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY *pOmmHistogram;
15579 D3D12_GPU_VIRTUAL_ADDRESS InputBuffer;
15580 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE PerOmmDescs;
15581 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC;
15582
15583typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
15584 {
15585 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
15586 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
15587 UINT NumDescs;
15588 D3D12_ELEMENTS_LAYOUT DescsLayout;
15589 union
15590 {
15591 D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
15592 const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
15593 const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs;
15594 const D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC *pOpacityMicromapArrayDesc;
15595 } ;
15596 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
15597
15598typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC
15599 {
15600 D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
15601 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
15602 _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
15603 D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
15604 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
15605
15606typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
15607 {
15608 UINT64 ResultDataMaxSizeInBytes;
15609 UINT64 ScratchDataSizeInBytes;
15610 UINT64 UpdateScratchDataSizeInBytes;
15611 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
15612
15613typedef
15614enum D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE
15615 {
15616 D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE = 0,
15617 D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1
15618 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE;
15619
15620typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC
15621 {
15622 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
15623 D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE InfoType;
15624 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC;
15625
15626typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC
15627 {
15628 UINT64 CurrentSizeInBytes;
15629 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC;
15630
15631typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
15632 {
15633 UINT64 DecodedSizeInBytes;
15634 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
15635
15636typedef
15637enum D3D12_RAY_FLAGS
15638 {
15639 D3D12_RAY_FLAG_NONE = 0,
15640 D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
15641 D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
15642 D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
15643 D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
15644 D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
15645 D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
15646 D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
15647 D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
15648 D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100,
15649 D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
15650 D3D12_RAY_FLAG_FORCE_OMM_2_STATE = 0x400
15651 } D3D12_RAY_FLAGS;
15652
15653DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS )
15654typedef
15655enum D3D12_HIT_KIND
15656 {
15657 D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
15658 D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff
15659 } D3D12_HIT_KIND;
15660
15661
15662
15663extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_c_ifspec;
15664extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_s_ifspec;
15665
15666#ifndef __ID3D12Device5_INTERFACE_DEFINED__
15667#define __ID3D12Device5_INTERFACE_DEFINED__
15668
15669/* interface ID3D12Device5 */
15670/* [unique][local][object][uuid] */
15671
15672
15673EXTERN_C const IID IID_ID3D12Device5;
15674
15675#if defined(__cplusplus) && !defined(CINTERFACE)
15676
15677 MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d")
15678 ID3D12Device5 : public ID3D12Device4
15679 {
15680 public:
15681 virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker(
15682 _In_ ID3D12LifetimeOwner *pOwner,
15683 REFIID riid,
15684 _COM_Outptr_ void **ppvTracker) = 0;
15685
15686 virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0;
15687
15688 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands(
15689 _Inout_ UINT *pNumMetaCommands,
15690 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0;
15691
15692 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters(
15693 _In_ REFGUID CommandId,
15694 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
15695 _Out_opt_ UINT *pTotalStructureSizeInBytes,
15696 _Inout_ UINT *pParameterCount,
15697 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0;
15698
15699 virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand(
15700 _In_ REFGUID CommandId,
15701 _In_ UINT NodeMask,
15702 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
15703 _In_ SIZE_T CreationParametersDataSizeInBytes,
15704 REFIID riid,
15705 _COM_Outptr_ void **ppMetaCommand) = 0;
15706
15707 virtual HRESULT STDMETHODCALLTYPE CreateStateObject(
15708 const D3D12_STATE_OBJECT_DESC *pDesc,
15709 REFIID riid,
15710 _COM_Outptr_ void **ppStateObject) = 0;
15711
15712 virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo(
15713 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
15714 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0;
15715
15716 virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier(
15717 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
15718 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0;
15719
15720 };
15721
15722
15723#else /* C style interface */
15724
15725 typedef struct ID3D12Device5Vtbl
15726 {
15727 BEGIN_INTERFACE
15728
15729 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
15730 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15731 ID3D12Device5 * This,
15732 REFIID riid,
15733 _COM_Outptr_ void **ppvObject);
15734
15735 DECLSPEC_XFGVIRT(IUnknown, AddRef)
15736 ULONG ( STDMETHODCALLTYPE *AddRef )(
15737 ID3D12Device5 * This);
15738
15739 DECLSPEC_XFGVIRT(IUnknown, Release)
15740 ULONG ( STDMETHODCALLTYPE *Release )(
15741 ID3D12Device5 * This);
15742
15743 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
15744 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
15745 ID3D12Device5 * This,
15746 _In_ REFGUID guid,
15747 _Inout_ UINT *pDataSize,
15748 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
15749
15750 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
15751 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
15752 ID3D12Device5 * This,
15753 _In_ REFGUID guid,
15754 _In_ UINT DataSize,
15755 _In_reads_bytes_opt_( DataSize ) const void *pData);
15756
15757 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
15758 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
15759 ID3D12Device5 * This,
15760 _In_ REFGUID guid,
15761 _In_opt_ const IUnknown *pData);
15762
15763 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
15764 HRESULT ( STDMETHODCALLTYPE *SetName )(
15765 ID3D12Device5 * This,
15766 _In_z_ LPCWSTR Name);
15767
15768 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
15769 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
15770 ID3D12Device5 * This);
15771
15772 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
15773 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
15774 ID3D12Device5 * This,
15775 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
15776 REFIID riid,
15777 _COM_Outptr_ void **ppCommandQueue);
15778
15779 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
15780 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
15781 ID3D12Device5 * This,
15782 _In_ D3D12_COMMAND_LIST_TYPE type,
15783 REFIID riid,
15784 _COM_Outptr_ void **ppCommandAllocator);
15785
15786 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
15787 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
15788 ID3D12Device5 * This,
15789 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
15790 REFIID riid,
15791 _COM_Outptr_ void **ppPipelineState);
15792
15793 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
15794 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
15795 ID3D12Device5 * This,
15796 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
15797 REFIID riid,
15798 _COM_Outptr_ void **ppPipelineState);
15799
15800 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
15801 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
15802 ID3D12Device5 * This,
15803 _In_ UINT nodeMask,
15804 _In_ D3D12_COMMAND_LIST_TYPE type,
15805 _In_ ID3D12CommandAllocator *pCommandAllocator,
15806 _In_opt_ ID3D12PipelineState *pInitialState,
15807 REFIID riid,
15808 _COM_Outptr_ void **ppCommandList);
15809
15810 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
15811 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
15812 ID3D12Device5 * This,
15813 D3D12_FEATURE Feature,
15814 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
15815 UINT FeatureSupportDataSize);
15816
15817 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
15818 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
15819 ID3D12Device5 * This,
15820 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
15821 REFIID riid,
15822 _COM_Outptr_ void **ppvHeap);
15823
15824 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
15825 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
15826 ID3D12Device5 * This,
15827 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
15828
15829 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
15830 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
15831 ID3D12Device5 * This,
15832 _In_ UINT nodeMask,
15833 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
15834 _In_ SIZE_T blobLengthInBytes,
15835 REFIID riid,
15836 _COM_Outptr_ void **ppvRootSignature);
15837
15838 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
15839 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
15840 ID3D12Device5 * This,
15841 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
15842 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15843
15844 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
15845 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
15846 ID3D12Device5 * This,
15847 _In_opt_ ID3D12Resource *pResource,
15848 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
15849 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15850
15851 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
15852 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
15853 ID3D12Device5 * This,
15854 _In_opt_ ID3D12Resource *pResource,
15855 _In_opt_ ID3D12Resource *pCounterResource,
15856 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
15857 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15858
15859 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
15860 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
15861 ID3D12Device5 * This,
15862 _In_opt_ ID3D12Resource *pResource,
15863 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
15864 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15865
15866 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
15867 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
15868 ID3D12Device5 * This,
15869 _In_opt_ ID3D12Resource *pResource,
15870 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
15871 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15872
15873 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
15874 void ( STDMETHODCALLTYPE *CreateSampler )(
15875 ID3D12Device5 * This,
15876 _In_ const D3D12_SAMPLER_DESC *pDesc,
15877 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15878
15879 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
15880 void ( STDMETHODCALLTYPE *CopyDescriptors )(
15881 ID3D12Device5 * This,
15882 _In_ UINT NumDestDescriptorRanges,
15883 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
15884 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
15885 _In_ UINT NumSrcDescriptorRanges,
15886 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
15887 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
15888 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
15889
15890 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
15891 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
15892 ID3D12Device5 * This,
15893 _In_ UINT NumDescriptors,
15894 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
15895 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
15896 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
15897
15898 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
15899#if !defined(_WIN32)
15900 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
15901 ID3D12Device5 * This,
15902 _In_ UINT visibleMask,
15903 _In_ UINT numResourceDescs,
15904 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
15905
15906#else
15907 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
15908 ID3D12Device5 * This,
15909 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
15910 _In_ UINT visibleMask,
15911 _In_ UINT numResourceDescs,
15912 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
15913
15914#endif
15915
15916 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
15917#if !defined(_WIN32)
15918 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
15919 ID3D12Device5 * This,
15920 _In_ UINT nodeMask,
15921 D3D12_HEAP_TYPE heapType);
15922
15923#else
15924 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
15925 ID3D12Device5 * This,
15926 D3D12_HEAP_PROPERTIES * RetVal,
15927 _In_ UINT nodeMask,
15928 D3D12_HEAP_TYPE heapType);
15929
15930#endif
15931
15932 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
15933 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
15934 ID3D12Device5 * This,
15935 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
15936 D3D12_HEAP_FLAGS HeapFlags,
15937 _In_ const D3D12_RESOURCE_DESC *pDesc,
15938 D3D12_RESOURCE_STATES InitialResourceState,
15939 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15940 REFIID riidResource,
15941 _COM_Outptr_opt_ void **ppvResource);
15942
15943 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
15944 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
15945 ID3D12Device5 * This,
15946 _In_ const D3D12_HEAP_DESC *pDesc,
15947 REFIID riid,
15948 _COM_Outptr_opt_ void **ppvHeap);
15949
15950 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
15951 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
15952 ID3D12Device5 * This,
15953 _In_ ID3D12Heap *pHeap,
15954 UINT64 HeapOffset,
15955 _In_ const D3D12_RESOURCE_DESC *pDesc,
15956 D3D12_RESOURCE_STATES InitialState,
15957 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15958 REFIID riid,
15959 _COM_Outptr_opt_ void **ppvResource);
15960
15961 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
15962 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
15963 ID3D12Device5 * This,
15964 _In_ const D3D12_RESOURCE_DESC *pDesc,
15965 D3D12_RESOURCE_STATES InitialState,
15966 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15967 REFIID riid,
15968 _COM_Outptr_opt_ void **ppvResource);
15969
15970 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
15971 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
15972 ID3D12Device5 * This,
15973 _In_ ID3D12DeviceChild *pObject,
15974 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
15975 DWORD Access,
15976 _In_opt_ LPCWSTR Name,
15977 _Out_ HANDLE *pHandle);
15978
15979 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
15980 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
15981 ID3D12Device5 * This,
15982 _In_ HANDLE NTHandle,
15983 REFIID riid,
15984 _COM_Outptr_opt_ void **ppvObj);
15985
15986 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
15987 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
15988 ID3D12Device5 * This,
15989 _In_ LPCWSTR Name,
15990 DWORD Access,
15991 /* [annotation][out] */
15992 _Out_ HANDLE *pNTHandle);
15993
15994 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
15995 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
15996 ID3D12Device5 * This,
15997 UINT NumObjects,
15998 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
15999
16000 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
16001 HRESULT ( STDMETHODCALLTYPE *Evict )(
16002 ID3D12Device5 * This,
16003 UINT NumObjects,
16004 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
16005
16006 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
16007 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
16008 ID3D12Device5 * This,
16009 UINT64 InitialValue,
16010 D3D12_FENCE_FLAGS Flags,
16011 REFIID riid,
16012 _COM_Outptr_ void **ppFence);
16013
16014 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
16015 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
16016 ID3D12Device5 * This);
16017
16018 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
16019 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
16020 ID3D12Device5 * This,
16021 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
16022 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
16023 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
16024 UINT64 BaseOffset,
16025 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
16026 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
16027 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
16028 _Out_opt_ UINT64 *pTotalBytes);
16029
16030 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
16031 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
16032 ID3D12Device5 * This,
16033 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
16034 REFIID riid,
16035 _COM_Outptr_opt_ void **ppvHeap);
16036
16037 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
16038 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
16039 ID3D12Device5 * This,
16040 BOOL Enable);
16041
16042 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
16043 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
16044 ID3D12Device5 * This,
16045 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
16046 _In_opt_ ID3D12RootSignature *pRootSignature,
16047 REFIID riid,
16048 _COM_Outptr_opt_ void **ppvCommandSignature);
16049
16050 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
16051 void ( STDMETHODCALLTYPE *GetResourceTiling )(
16052 ID3D12Device5 * This,
16053 _In_ ID3D12Resource *pTiledResource,
16054 _Out_opt_ UINT *pNumTilesForEntireResource,
16055 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
16056 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
16057 _Inout_opt_ UINT *pNumSubresourceTilings,
16058 _In_ UINT FirstSubresourceTilingToGet,
16059 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
16060
16061 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
16062#if !defined(_WIN32)
16063 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
16064 ID3D12Device5 * This);
16065
16066#else
16067 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
16068 ID3D12Device5 * This,
16069 LUID * RetVal);
16070
16071#endif
16072
16073 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
16074 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
16075 ID3D12Device5 * This,
16076 _In_reads_(BlobLength) const void *pLibraryBlob,
16077 SIZE_T BlobLength,
16078 REFIID riid,
16079 _COM_Outptr_ void **ppPipelineLibrary);
16080
16081 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
16082 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
16083 ID3D12Device5 * This,
16084 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
16085 _In_reads_(NumFences) const UINT64 *pFenceValues,
16086 UINT NumFences,
16087 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
16088 HANDLE hEvent);
16089
16090 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
16091 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
16092 ID3D12Device5 * This,
16093 UINT NumObjects,
16094 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
16095 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
16096
16097 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
16098 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
16099 ID3D12Device5 * This,
16100 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
16101 REFIID riid,
16102 _COM_Outptr_ void **ppPipelineState);
16103
16104 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
16105 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
16106 ID3D12Device5 * This,
16107 _In_ const void *pAddress,
16108 REFIID riid,
16109 _COM_Outptr_ void **ppvHeap);
16110
16111 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
16112 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
16113 ID3D12Device5 * This,
16114 _In_ HANDLE hFileMapping,
16115 REFIID riid,
16116 _COM_Outptr_ void **ppvHeap);
16117
16118 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
16119 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
16120 ID3D12Device5 * This,
16121 D3D12_RESIDENCY_FLAGS Flags,
16122 UINT NumObjects,
16123 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
16124 _In_ ID3D12Fence *pFenceToSignal,
16125 UINT64 FenceValueToSignal);
16126
16127 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
16128 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
16129 ID3D12Device5 * This,
16130 _In_ UINT nodeMask,
16131 _In_ D3D12_COMMAND_LIST_TYPE type,
16132 _In_ D3D12_COMMAND_LIST_FLAGS flags,
16133 REFIID riid,
16134 _COM_Outptr_ void **ppCommandList);
16135
16136 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
16137 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
16138 ID3D12Device5 * This,
16139 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
16140 _In_ REFIID riid,
16141 _COM_Outptr_ void **ppSession);
16142
16143 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
16144 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
16145 ID3D12Device5 * This,
16146 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
16147 D3D12_HEAP_FLAGS HeapFlags,
16148 _In_ const D3D12_RESOURCE_DESC *pDesc,
16149 D3D12_RESOURCE_STATES InitialResourceState,
16150 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16151 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16152 REFIID riidResource,
16153 _COM_Outptr_opt_ void **ppvResource);
16154
16155 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
16156 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
16157 ID3D12Device5 * This,
16158 _In_ const D3D12_HEAP_DESC *pDesc,
16159 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16160 REFIID riid,
16161 _COM_Outptr_opt_ void **ppvHeap);
16162
16163 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
16164 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
16165 ID3D12Device5 * This,
16166 _In_ const D3D12_RESOURCE_DESC *pDesc,
16167 D3D12_RESOURCE_STATES InitialState,
16168 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16169 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16170 REFIID riid,
16171 _COM_Outptr_opt_ void **ppvResource);
16172
16173 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
16174#if !defined(_WIN32)
16175 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
16176 ID3D12Device5 * This,
16177 UINT visibleMask,
16178 UINT numResourceDescs,
16179 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
16180 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
16181
16182#else
16183 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
16184 ID3D12Device5 * This,
16185 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
16186 UINT visibleMask,
16187 UINT numResourceDescs,
16188 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
16189 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
16190
16191#endif
16192
16193 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
16194 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
16195 ID3D12Device5 * This,
16196 _In_ ID3D12LifetimeOwner *pOwner,
16197 REFIID riid,
16198 _COM_Outptr_ void **ppvTracker);
16199
16200 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
16201 void ( STDMETHODCALLTYPE *RemoveDevice )(
16202 ID3D12Device5 * This);
16203
16204 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
16205 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
16206 ID3D12Device5 * This,
16207 _Inout_ UINT *pNumMetaCommands,
16208 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
16209
16210 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
16211 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
16212 ID3D12Device5 * This,
16213 _In_ REFGUID CommandId,
16214 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
16215 _Out_opt_ UINT *pTotalStructureSizeInBytes,
16216 _Inout_ UINT *pParameterCount,
16217 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
16218
16219 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
16220 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
16221 ID3D12Device5 * This,
16222 _In_ REFGUID CommandId,
16223 _In_ UINT NodeMask,
16224 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
16225 _In_ SIZE_T CreationParametersDataSizeInBytes,
16226 REFIID riid,
16227 _COM_Outptr_ void **ppMetaCommand);
16228
16229 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
16230 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
16231 ID3D12Device5 * This,
16232 const D3D12_STATE_OBJECT_DESC *pDesc,
16233 REFIID riid,
16234 _COM_Outptr_ void **ppStateObject);
16235
16236 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
16237 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
16238 ID3D12Device5 * This,
16239 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
16240 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
16241
16242 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
16243 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
16244 ID3D12Device5 * This,
16245 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
16246 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
16247
16248 END_INTERFACE
16249 } ID3D12Device5Vtbl;
16250
16251 interface ID3D12Device5
16252 {
16253 CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl;
16254 };
16255
16256
16257
16258#ifdef COBJMACROS
16259
16260
16261#define ID3D12Device5_QueryInterface(This,riid,ppvObject) \
16262 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16263
16264#define ID3D12Device5_AddRef(This) \
16265 ( (This)->lpVtbl -> AddRef(This) )
16266
16267#define ID3D12Device5_Release(This) \
16268 ( (This)->lpVtbl -> Release(This) )
16269
16270
16271#define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \
16272 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
16273
16274#define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \
16275 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
16276
16277#define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \
16278 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
16279
16280#define ID3D12Device5_SetName(This,Name) \
16281 ( (This)->lpVtbl -> SetName(This,Name) )
16282
16283
16284#define ID3D12Device5_GetNodeCount(This) \
16285 ( (This)->lpVtbl -> GetNodeCount(This) )
16286
16287#define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
16288 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
16289
16290#define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
16291 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
16292
16293#define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
16294 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
16295
16296#define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
16297 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
16298
16299#define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
16300 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
16301
16302#define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
16303 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
16304
16305#define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
16306 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
16307
16308#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
16309 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
16310
16311#define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
16312 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
16313
16314#define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \
16315 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
16316
16317#define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
16318 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
16319
16320#define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
16321 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
16322
16323#define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
16324 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
16325
16326#define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
16327 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
16328
16329#define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \
16330 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
16331
16332#define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
16333 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
16334
16335#define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
16336 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
16337#if !defined(_WIN32)
16338
16339#define ID3D12Device5_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
16340 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
16341#else
16342#define ID3D12Device5_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
16343 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
16344#endif
16345#if !defined(_WIN32)
16346
16347#define ID3D12Device5_GetCustomHeapProperties(This,nodeMask,heapType) \
16348 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
16349#else
16350#define ID3D12Device5_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
16351 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
16352#endif
16353
16354#define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
16355 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
16356
16357#define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \
16358 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
16359
16360#define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
16361 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
16362
16363#define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
16364 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
16365
16366#define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
16367 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
16368
16369#define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
16370 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
16371
16372#define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
16373 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
16374
16375#define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \
16376 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
16377
16378#define ID3D12Device5_Evict(This,NumObjects,ppObjects) \
16379 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
16380
16381#define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \
16382 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
16383
16384#define ID3D12Device5_GetDeviceRemovedReason(This) \
16385 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
16386
16387#define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
16388 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
16389
16390#define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
16391 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
16392
16393#define ID3D12Device5_SetStablePowerState(This,Enable) \
16394 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
16395
16396#define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
16397 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
16398
16399#define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
16400 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
16401#if !defined(_WIN32)
16402
16403#define ID3D12Device5_GetAdapterLuid(This) \
16404 ( (This)->lpVtbl -> GetAdapterLuid(This) )
16405#else
16406#define ID3D12Device5_GetAdapterLuid(This,RetVal) \
16407 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
16408#endif
16409
16410
16411#define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
16412 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
16413
16414#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
16415 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
16416
16417#define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
16418 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
16419
16420
16421#define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
16422 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
16423
16424
16425#define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
16426 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
16427
16428#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
16429 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
16430
16431#define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
16432 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
16433
16434
16435#define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
16436 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
16437
16438#define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
16439 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
16440
16441#define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
16442 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
16443
16444#define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
16445 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
16446
16447#define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
16448 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
16449#if !defined(_WIN32)
16450
16451#define ID3D12Device5_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
16452 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
16453#else
16454#define ID3D12Device5_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
16455 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
16456#endif
16457
16458
16459#define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
16460 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
16461
16462#define ID3D12Device5_RemoveDevice(This) \
16463 ( (This)->lpVtbl -> RemoveDevice(This) )
16464
16465#define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
16466 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
16467
16468#define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
16469 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
16470
16471#define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
16472 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
16473
16474#define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \
16475 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
16476
16477#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
16478 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
16479
16480#define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
16481 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
16482
16483#endif /* COBJMACROS */
16484
16485
16486#endif /* C style interface */
16487
16488
16489
16490
16491#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */
16492
16493
16494/* interface __MIDL_itf_d3d12_0000_0040 */
16495/* [local] */
16496
16497typedef
16498enum D3D12_MARKER_API
16499 {
16500 D3D12_MARKER_API_SETMARKER = 0,
16501 D3D12_MARKER_API_BEGINEVENT = 1,
16502 D3D12_MARKER_API_ENDEVENT = 2,
16503 D3D12_MARKER_API_DRAWINSTANCED = 3,
16504 D3D12_MARKER_API_DRAWINDEXEDINSTANCED = 4,
16505 D3D12_MARKER_API_EXECUTEINDIRECT = 5,
16506 D3D12_MARKER_API_DISPATCH = 6,
16507 D3D12_MARKER_API_COPYBUFFERREGION = 7,
16508 D3D12_MARKER_API_COPYTEXTUREREGION = 8,
16509 D3D12_MARKER_API_COPYRESOURCE = 9,
16510 D3D12_MARKER_API_COPYTILES = 10,
16511 D3D12_MARKER_API_RESOLVESUBRESOURCE = 11,
16512 D3D12_MARKER_API_CLEARRENDERTARGETVIEW = 12,
16513 D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW = 13,
16514 D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW = 14,
16515 D3D12_MARKER_API_RESOURCEBARRIER = 15,
16516 D3D12_MARKER_API_EXECUTEBUNDLE = 16,
16517 D3D12_MARKER_API_PRESENT = 17,
16518 D3D12_MARKER_API_RESOLVEQUERYDATA = 18,
16519 D3D12_MARKER_API_BEGINSUBMISSION = 19,
16520 D3D12_MARKER_API_ENDSUBMISSION = 20,
16521 D3D12_MARKER_API_DECODEFRAME = 21,
16522 D3D12_MARKER_API_PROCESSFRAMES = 22,
16523 D3D12_MARKER_API_ATOMICCOPYBUFFERUINT = 23,
16524 D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64 = 24,
16525 D3D12_MARKER_API_RESOLVESUBRESOURCEREGION = 25,
16526 D3D12_MARKER_API_WRITEBUFFERIMMEDIATE = 26,
16527 D3D12_MARKER_API_DECODEFRAME1 = 27,
16528 D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION = 28,
16529 D3D12_MARKER_API_DECODEFRAME2 = 29,
16530 D3D12_MARKER_API_PROCESSFRAMES1 = 30,
16531 D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31,
16532 D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32,
16533 D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33,
16534 D3D12_MARKER_API_DISPATCHRAYS = 34,
16535 D3D12_MARKER_API_INITIALIZEMETACOMMAND = 35,
16536 D3D12_MARKER_API_EXECUTEMETACOMMAND = 36,
16537 D3D12_MARKER_API_ESTIMATEMOTION = 37,
16538 D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP = 38,
16539 D3D12_MARKER_API_SETPIPELINESTATE1 = 39,
16540 D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND = 40,
16541 D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND = 41,
16542 D3D12_MARKER_API_DISPATCHMESH = 42,
16543 D3D12_MARKER_API_ENCODEFRAME = 43,
16544 D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA = 44,
16545 D3D12_MARKER_API_BARRIER = 45,
16546 D3D12_MARKER_API_BEGIN_COMMAND_LIST = 46,
16547 D3D12_MARKER_API_DISPATCHGRAPH = 47,
16548 D3D12_MARKER_API_SETPROGRAM = 48,
16549 D3D12_MARKER_API_ENCODEFRAME1 = 49,
16550 D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1 = 50,
16551 D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT = 51,
16552 D3D12_MARKER_API_PROCESSFRAMES2 = 52,
16553 D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = 53
16554 } D3D12_MARKER_API;
16555
16556typedef
16557enum D3D12_AUTO_BREADCRUMB_OP
16558 {
16559 D3D12_AUTO_BREADCRUMB_OP_SETMARKER = D3D12_MARKER_API_SETMARKER,
16560 D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = D3D12_MARKER_API_BEGINEVENT,
16561 D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = D3D12_MARKER_API_ENDEVENT,
16562 D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = D3D12_MARKER_API_DRAWINSTANCED,
16563 D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = D3D12_MARKER_API_DRAWINDEXEDINSTANCED,
16564 D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = D3D12_MARKER_API_EXECUTEINDIRECT,
16565 D3D12_AUTO_BREADCRUMB_OP_DISPATCH = D3D12_MARKER_API_DISPATCH,
16566 D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = D3D12_MARKER_API_COPYBUFFERREGION,
16567 D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = D3D12_MARKER_API_COPYTEXTUREREGION,
16568 D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = D3D12_MARKER_API_COPYRESOURCE,
16569 D3D12_AUTO_BREADCRUMB_OP_COPYTILES = D3D12_MARKER_API_COPYTILES,
16570 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = D3D12_MARKER_API_RESOLVESUBRESOURCE,
16571 D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = D3D12_MARKER_API_CLEARRENDERTARGETVIEW,
16572 D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW,
16573 D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW,
16574 D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = D3D12_MARKER_API_RESOURCEBARRIER,
16575 D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = D3D12_MARKER_API_EXECUTEBUNDLE,
16576 D3D12_AUTO_BREADCRUMB_OP_PRESENT = D3D12_MARKER_API_PRESENT,
16577 D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = D3D12_MARKER_API_RESOLVEQUERYDATA,
16578 D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = D3D12_MARKER_API_BEGINSUBMISSION,
16579 D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = D3D12_MARKER_API_ENDSUBMISSION,
16580 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = D3D12_MARKER_API_DECODEFRAME,
16581 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = D3D12_MARKER_API_PROCESSFRAMES,
16582 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT,
16583 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64,
16584 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = D3D12_MARKER_API_RESOLVESUBRESOURCEREGION,
16585 D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = D3D12_MARKER_API_WRITEBUFFERIMMEDIATE,
16586 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = D3D12_MARKER_API_DECODEFRAME1,
16587 D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION,
16588 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = D3D12_MARKER_API_DECODEFRAME2,
16589 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = D3D12_MARKER_API_PROCESSFRAMES1,
16590 D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE,
16591 D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO,
16592 D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE,
16593 D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = D3D12_MARKER_API_DISPATCHRAYS,
16594 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = D3D12_MARKER_API_INITIALIZEMETACOMMAND,
16595 D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = D3D12_MARKER_API_EXECUTEMETACOMMAND,
16596 D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = D3D12_MARKER_API_ESTIMATEMOTION,
16597 D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP,
16598 D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = D3D12_MARKER_API_SETPIPELINESTATE1,
16599 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND,
16600 D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND,
16601 D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = D3D12_MARKER_API_DISPATCHMESH,
16602 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = D3D12_MARKER_API_ENCODEFRAME,
16603 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA,
16604 D3D12_AUTO_BREADCRUMB_OP_BARRIER = D3D12_MARKER_API_BARRIER,
16605 D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = D3D12_MARKER_API_BEGIN_COMMAND_LIST,
16606 D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = D3D12_MARKER_API_DISPATCHGRAPH,
16607 D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = D3D12_MARKER_API_SETPROGRAM,
16608 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME1 = D3D12_MARKER_API_ENCODEFRAME1,
16609 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA1 = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1,
16610 D3D12_AUTO_BREADCRUMB_OP_RESOLVEINPUTPARAMLAYOUT = D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT,
16611 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = D3D12_MARKER_API_PROCESSFRAMES2,
16612 D3D12_AUTO_BREADCRUMB_OP_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS
16613 } D3D12_AUTO_BREADCRUMB_OP;
16614
16615typedef struct D3D12_AUTO_BREADCRUMB_NODE
16616 {
16617 const char *pCommandListDebugNameA;
16618 const wchar_t *pCommandListDebugNameW;
16619 const char *pCommandQueueDebugNameA;
16620 const wchar_t *pCommandQueueDebugNameW;
16621 ID3D12GraphicsCommandList *pCommandList;
16622 ID3D12CommandQueue *pCommandQueue;
16623 UINT32 BreadcrumbCount;
16624 const UINT32 *pLastBreadcrumbValue;
16625 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
16626 const struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
16627 } D3D12_AUTO_BREADCRUMB_NODE;
16628
16629typedef struct D3D12_DRED_BREADCRUMB_CONTEXT
16630 {
16631 UINT BreadcrumbIndex;
16632 const wchar_t *pContextString;
16633 } D3D12_DRED_BREADCRUMB_CONTEXT;
16634
16635typedef struct D3D12_AUTO_BREADCRUMB_NODE1
16636 {
16637 const char *pCommandListDebugNameA;
16638 const wchar_t *pCommandListDebugNameW;
16639 const char *pCommandQueueDebugNameA;
16640 const wchar_t *pCommandQueueDebugNameW;
16641 ID3D12GraphicsCommandList *pCommandList;
16642 ID3D12CommandQueue *pCommandQueue;
16643 UINT BreadcrumbCount;
16644 const UINT *pLastBreadcrumbValue;
16645 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
16646 const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext;
16647 UINT BreadcrumbContextsCount;
16648 D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
16649 } D3D12_AUTO_BREADCRUMB_NODE1;
16650
16651typedef
16652enum D3D12_DRED_VERSION
16653 {
16654 D3D12_DRED_VERSION_1_0 = 0x1,
16655 D3D12_DRED_VERSION_1_1 = 0x2,
16656 D3D12_DRED_VERSION_1_2 = 0x3,
16657 D3D12_DRED_VERSION_1_3 = 0x4
16658 } D3D12_DRED_VERSION;
16659
16660typedef
16661enum D3D12_DRED_FLAGS
16662 {
16663 D3D12_DRED_FLAG_NONE = 0,
16664 D3D12_DRED_FLAG_FORCE_ENABLE = 1,
16665 D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2
16666 } D3D12_DRED_FLAGS;
16667
16668DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS )
16669typedef
16670enum D3D12_DRED_ENABLEMENT
16671 {
16672 D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0,
16673 D3D12_DRED_ENABLEMENT_FORCED_OFF = 1,
16674 D3D12_DRED_ENABLEMENT_FORCED_ON = 2
16675 } D3D12_DRED_ENABLEMENT;
16676
16677typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
16678 {
16679 _In_ D3D12_DRED_FLAGS Flags;
16680 _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
16681 } D3D12_DEVICE_REMOVED_EXTENDED_DATA;
16682
16683typedef
16684enum D3D12_DRED_ALLOCATION_TYPE
16685 {
16686 D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19,
16687 D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20,
16688 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21,
16689 D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22,
16690 D3D12_DRED_ALLOCATION_TYPE_FENCE = 23,
16691 D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24,
16692 D3D12_DRED_ALLOCATION_TYPE_HEAP = 25,
16693 D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27,
16694 D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28,
16695 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29,
16696 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30,
16697 D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32,
16698 D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34,
16699 D3D12_DRED_ALLOCATION_TYPE_PASS = 35,
16700 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36,
16701 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37,
16702 D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38,
16703 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39,
16704 D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40,
16705 D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41,
16706 D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42,
16707 D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43,
16708 D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44,
16709 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45,
16710 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46,
16711 D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47,
16712 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48,
16713 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49,
16714 D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff
16715 } D3D12_DRED_ALLOCATION_TYPE;
16716
16717typedef struct D3D12_DRED_ALLOCATION_NODE
16718 {
16719 const char *ObjectNameA;
16720 const wchar_t *ObjectNameW;
16721 D3D12_DRED_ALLOCATION_TYPE AllocationType;
16722 const struct D3D12_DRED_ALLOCATION_NODE *pNext;
16723 } D3D12_DRED_ALLOCATION_NODE;
16724
16725typedef struct D3D12_DRED_ALLOCATION_NODE1
16726 {
16727 const char *ObjectNameA;
16728 const wchar_t *ObjectNameW;
16729 D3D12_DRED_ALLOCATION_TYPE AllocationType;
16730 const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
16731 const IUnknown *pObject;
16732 } D3D12_DRED_ALLOCATION_NODE1;
16733
16734typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
16735 {
16736 _Out_ const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
16737 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
16738
16739typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1
16740 {
16741 _Out_ const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode;
16742 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
16743
16744typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT
16745 {
16746 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
16747 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
16748 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
16749 } D3D12_DRED_PAGE_FAULT_OUTPUT;
16750
16751typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1
16752 {
16753 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
16754 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
16755 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
16756 } D3D12_DRED_PAGE_FAULT_OUTPUT1;
16757
16758typedef
16759enum D3D12_DRED_PAGE_FAULT_FLAGS
16760 {
16761 D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0
16762 } D3D12_DRED_PAGE_FAULT_FLAGS;
16763
16764DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS )
16765typedef
16766enum D3D12_DRED_DEVICE_STATE
16767 {
16768 D3D12_DRED_DEVICE_STATE_UNKNOWN = 0,
16769 D3D12_DRED_DEVICE_STATE_HUNG = 3,
16770 D3D12_DRED_DEVICE_STATE_FAULT = 6,
16771 D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7
16772 } D3D12_DRED_DEVICE_STATE;
16773
16774typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2
16775 {
16776 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
16777 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
16778 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
16779 D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
16780 } D3D12_DRED_PAGE_FAULT_OUTPUT2;
16781
16782typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1
16783 {
16784 HRESULT DeviceRemovedReason;
16785 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
16786 D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
16787 } D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
16788
16789typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2
16790 {
16791 HRESULT DeviceRemovedReason;
16792 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
16793 D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
16794 } D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
16795
16796typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3
16797 {
16798 HRESULT DeviceRemovedReason;
16799 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
16800 D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
16801 D3D12_DRED_DEVICE_STATE DeviceState;
16802 } D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
16803
16804typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
16805 {
16806 D3D12_DRED_VERSION Version;
16807 union
16808 {
16809 D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
16810 D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
16811 D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
16812 D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
16813 } ;
16814 } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
16815
16816
16817
16818extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_c_ifspec;
16819extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_s_ifspec;
16820
16821#ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
16822#define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
16823
16824/* interface ID3D12DeviceRemovedExtendedDataSettings */
16825/* [unique][local][object][uuid] */
16826
16827
16828EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings;
16829
16830#if defined(__cplusplus) && !defined(CINTERFACE)
16831
16832 MIDL_INTERFACE("82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63")
16833 ID3D12DeviceRemovedExtendedDataSettings : public IUnknown
16834 {
16835 public:
16836 virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement(
16837 D3D12_DRED_ENABLEMENT Enablement) = 0;
16838
16839 virtual void STDMETHODCALLTYPE SetPageFaultEnablement(
16840 D3D12_DRED_ENABLEMENT Enablement) = 0;
16841
16842 virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement(
16843 D3D12_DRED_ENABLEMENT Enablement) = 0;
16844
16845 };
16846
16847
16848#else /* C style interface */
16849
16850 typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl
16851 {
16852 BEGIN_INTERFACE
16853
16854 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16855 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16856 ID3D12DeviceRemovedExtendedDataSettings * This,
16857 REFIID riid,
16858 _COM_Outptr_ void **ppvObject);
16859
16860 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16861 ULONG ( STDMETHODCALLTYPE *AddRef )(
16862 ID3D12DeviceRemovedExtendedDataSettings * This);
16863
16864 DECLSPEC_XFGVIRT(IUnknown, Release)
16865 ULONG ( STDMETHODCALLTYPE *Release )(
16866 ID3D12DeviceRemovedExtendedDataSettings * This);
16867
16868 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
16869 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
16870 ID3D12DeviceRemovedExtendedDataSettings * This,
16871 D3D12_DRED_ENABLEMENT Enablement);
16872
16873 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
16874 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
16875 ID3D12DeviceRemovedExtendedDataSettings * This,
16876 D3D12_DRED_ENABLEMENT Enablement);
16877
16878 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
16879 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
16880 ID3D12DeviceRemovedExtendedDataSettings * This,
16881 D3D12_DRED_ENABLEMENT Enablement);
16882
16883 END_INTERFACE
16884 } ID3D12DeviceRemovedExtendedDataSettingsVtbl;
16885
16886 interface ID3D12DeviceRemovedExtendedDataSettings
16887 {
16888 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettingsVtbl *lpVtbl;
16889 };
16890
16891
16892
16893#ifdef COBJMACROS
16894
16895
16896#define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) \
16897 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16898
16899#define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) \
16900 ( (This)->lpVtbl -> AddRef(This) )
16901
16902#define ID3D12DeviceRemovedExtendedDataSettings_Release(This) \
16903 ( (This)->lpVtbl -> Release(This) )
16904
16905
16906#define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,Enablement) \
16907 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
16908
16909#define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,Enablement) \
16910 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
16911
16912#define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,Enablement) \
16913 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
16914
16915#endif /* COBJMACROS */
16916
16917
16918#endif /* C style interface */
16919
16920
16921
16922
16923#endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */
16924
16925
16926#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
16927#define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
16928
16929/* interface ID3D12DeviceRemovedExtendedDataSettings1 */
16930/* [unique][local][object][uuid] */
16931
16932
16933EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings1;
16934
16935#if defined(__cplusplus) && !defined(CINTERFACE)
16936
16937 MIDL_INTERFACE("DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B")
16938 ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings
16939 {
16940 public:
16941 virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement(
16942 D3D12_DRED_ENABLEMENT Enablement) = 0;
16943
16944 };
16945
16946
16947#else /* C style interface */
16948
16949 typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl
16950 {
16951 BEGIN_INTERFACE
16952
16953 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16954 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16955 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16956 REFIID riid,
16957 _COM_Outptr_ void **ppvObject);
16958
16959 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16960 ULONG ( STDMETHODCALLTYPE *AddRef )(
16961 ID3D12DeviceRemovedExtendedDataSettings1 * This);
16962
16963 DECLSPEC_XFGVIRT(IUnknown, Release)
16964 ULONG ( STDMETHODCALLTYPE *Release )(
16965 ID3D12DeviceRemovedExtendedDataSettings1 * This);
16966
16967 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
16968 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
16969 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16970 D3D12_DRED_ENABLEMENT Enablement);
16971
16972 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
16973 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
16974 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16975 D3D12_DRED_ENABLEMENT Enablement);
16976
16977 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
16978 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
16979 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16980 D3D12_DRED_ENABLEMENT Enablement);
16981
16982 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
16983 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
16984 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16985 D3D12_DRED_ENABLEMENT Enablement);
16986
16987 END_INTERFACE
16988 } ID3D12DeviceRemovedExtendedDataSettings1Vtbl;
16989
16990 interface ID3D12DeviceRemovedExtendedDataSettings1
16991 {
16992 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl *lpVtbl;
16993 };
16994
16995
16996
16997#ifdef COBJMACROS
16998
16999
17000#define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) \
17001 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17002
17003#define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) \
17004 ( (This)->lpVtbl -> AddRef(This) )
17005
17006#define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) \
17007 ( (This)->lpVtbl -> Release(This) )
17008
17009
17010#define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,Enablement) \
17011 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
17012
17013#define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,Enablement) \
17014 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
17015
17016#define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,Enablement) \
17017 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
17018
17019
17020#define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,Enablement) \
17021 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
17022
17023#endif /* COBJMACROS */
17024
17025
17026#endif /* C style interface */
17027
17028
17029
17030
17031#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */
17032
17033
17034#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__
17035#define __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__
17036
17037/* interface ID3D12DeviceRemovedExtendedDataSettings2 */
17038/* [unique][local][object][uuid] */
17039
17040
17041EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings2;
17042
17043#if defined(__cplusplus) && !defined(CINTERFACE)
17044
17045 MIDL_INTERFACE("61552388-01ab-4008-a436-83db189566ea")
17046 ID3D12DeviceRemovedExtendedDataSettings2 : public ID3D12DeviceRemovedExtendedDataSettings1
17047 {
17048 public:
17049 virtual void STDMETHODCALLTYPE UseMarkersOnlyAutoBreadcrumbs(
17050 BOOL MarkersOnly) = 0;
17051
17052 };
17053
17054
17055#else /* C style interface */
17056
17057 typedef struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl
17058 {
17059 BEGIN_INTERFACE
17060
17061 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17062 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17063 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17064 REFIID riid,
17065 _COM_Outptr_ void **ppvObject);
17066
17067 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17068 ULONG ( STDMETHODCALLTYPE *AddRef )(
17069 ID3D12DeviceRemovedExtendedDataSettings2 * This);
17070
17071 DECLSPEC_XFGVIRT(IUnknown, Release)
17072 ULONG ( STDMETHODCALLTYPE *Release )(
17073 ID3D12DeviceRemovedExtendedDataSettings2 * This);
17074
17075 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
17076 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
17077 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17078 D3D12_DRED_ENABLEMENT Enablement);
17079
17080 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
17081 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
17082 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17083 D3D12_DRED_ENABLEMENT Enablement);
17084
17085 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
17086 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
17087 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17088 D3D12_DRED_ENABLEMENT Enablement);
17089
17090 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
17091 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
17092 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17093 D3D12_DRED_ENABLEMENT Enablement);
17094
17095 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings2, UseMarkersOnlyAutoBreadcrumbs)
17096 void ( STDMETHODCALLTYPE *UseMarkersOnlyAutoBreadcrumbs )(
17097 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17098 BOOL MarkersOnly);
17099
17100 END_INTERFACE
17101 } ID3D12DeviceRemovedExtendedDataSettings2Vtbl;
17102
17103 interface ID3D12DeviceRemovedExtendedDataSettings2
17104 {
17105 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl *lpVtbl;
17106 };
17107
17108
17109
17110#ifdef COBJMACROS
17111
17112
17113#define ID3D12DeviceRemovedExtendedDataSettings2_QueryInterface(This,riid,ppvObject) \
17114 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17115
17116#define ID3D12DeviceRemovedExtendedDataSettings2_AddRef(This) \
17117 ( (This)->lpVtbl -> AddRef(This) )
17118
17119#define ID3D12DeviceRemovedExtendedDataSettings2_Release(This) \
17120 ( (This)->lpVtbl -> Release(This) )
17121
17122
17123#define ID3D12DeviceRemovedExtendedDataSettings2_SetAutoBreadcrumbsEnablement(This,Enablement) \
17124 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
17125
17126#define ID3D12DeviceRemovedExtendedDataSettings2_SetPageFaultEnablement(This,Enablement) \
17127 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
17128
17129#define ID3D12DeviceRemovedExtendedDataSettings2_SetWatsonDumpEnablement(This,Enablement) \
17130 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
17131
17132
17133#define ID3D12DeviceRemovedExtendedDataSettings2_SetBreadcrumbContextEnablement(This,Enablement) \
17134 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
17135
17136
17137#define ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) \
17138 ( (This)->lpVtbl -> UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) )
17139
17140#endif /* COBJMACROS */
17141
17142
17143#endif /* C style interface */
17144
17145
17146
17147
17148#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ */
17149
17150
17151#ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
17152#define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
17153
17154/* interface ID3D12DeviceRemovedExtendedData */
17155/* [unique][local][object][uuid] */
17156
17157
17158EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData;
17159
17160#if defined(__cplusplus) && !defined(CINTERFACE)
17161
17162 MIDL_INTERFACE("98931D33-5AE8-4791-AA3C-1A73A2934E71")
17163 ID3D12DeviceRemovedExtendedData : public IUnknown
17164 {
17165 public:
17166 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput(
17167 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput) = 0;
17168
17169 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput(
17170 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput) = 0;
17171
17172 };
17173
17174
17175#else /* C style interface */
17176
17177 typedef struct ID3D12DeviceRemovedExtendedDataVtbl
17178 {
17179 BEGIN_INTERFACE
17180
17181 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17182 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17183 ID3D12DeviceRemovedExtendedData * This,
17184 REFIID riid,
17185 _COM_Outptr_ void **ppvObject);
17186
17187 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17188 ULONG ( STDMETHODCALLTYPE *AddRef )(
17189 ID3D12DeviceRemovedExtendedData * This);
17190
17191 DECLSPEC_XFGVIRT(IUnknown, Release)
17192 ULONG ( STDMETHODCALLTYPE *Release )(
17193 ID3D12DeviceRemovedExtendedData * This);
17194
17195 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
17196 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
17197 ID3D12DeviceRemovedExtendedData * This,
17198 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
17199
17200 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
17201 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
17202 ID3D12DeviceRemovedExtendedData * This,
17203 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
17204
17205 END_INTERFACE
17206 } ID3D12DeviceRemovedExtendedDataVtbl;
17207
17208 interface ID3D12DeviceRemovedExtendedData
17209 {
17210 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataVtbl *lpVtbl;
17211 };
17212
17213
17214
17215#ifdef COBJMACROS
17216
17217
17218#define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) \
17219 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17220
17221#define ID3D12DeviceRemovedExtendedData_AddRef(This) \
17222 ( (This)->lpVtbl -> AddRef(This) )
17223
17224#define ID3D12DeviceRemovedExtendedData_Release(This) \
17225 ( (This)->lpVtbl -> Release(This) )
17226
17227
17228#define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,pOutput) \
17229 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
17230
17231#define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,pOutput) \
17232 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
17233
17234#endif /* COBJMACROS */
17235
17236
17237#endif /* C style interface */
17238
17239
17240
17241
17242#endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */
17243
17244
17245#ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
17246#define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
17247
17248/* interface ID3D12DeviceRemovedExtendedData1 */
17249/* [unique][local][object][uuid] */
17250
17251
17252EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData1;
17253
17254#if defined(__cplusplus) && !defined(CINTERFACE)
17255
17256 MIDL_INTERFACE("9727A022-CF1D-4DDA-9EBA-EFFA653FC506")
17257 ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData
17258 {
17259 public:
17260 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1(
17261 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput) = 0;
17262
17263 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1(
17264 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput) = 0;
17265
17266 };
17267
17268
17269#else /* C style interface */
17270
17271 typedef struct ID3D12DeviceRemovedExtendedData1Vtbl
17272 {
17273 BEGIN_INTERFACE
17274
17275 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17276 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17277 ID3D12DeviceRemovedExtendedData1 * This,
17278 REFIID riid,
17279 _COM_Outptr_ void **ppvObject);
17280
17281 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17282 ULONG ( STDMETHODCALLTYPE *AddRef )(
17283 ID3D12DeviceRemovedExtendedData1 * This);
17284
17285 DECLSPEC_XFGVIRT(IUnknown, Release)
17286 ULONG ( STDMETHODCALLTYPE *Release )(
17287 ID3D12DeviceRemovedExtendedData1 * This);
17288
17289 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
17290 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
17291 ID3D12DeviceRemovedExtendedData1 * This,
17292 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
17293
17294 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
17295 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
17296 ID3D12DeviceRemovedExtendedData1 * This,
17297 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
17298
17299 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
17300 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
17301 ID3D12DeviceRemovedExtendedData1 * This,
17302 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
17303
17304 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
17305 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
17306 ID3D12DeviceRemovedExtendedData1 * This,
17307 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
17308
17309 END_INTERFACE
17310 } ID3D12DeviceRemovedExtendedData1Vtbl;
17311
17312 interface ID3D12DeviceRemovedExtendedData1
17313 {
17314 CONST_VTBL struct ID3D12DeviceRemovedExtendedData1Vtbl *lpVtbl;
17315 };
17316
17317
17318
17319#ifdef COBJMACROS
17320
17321
17322#define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) \
17323 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17324
17325#define ID3D12DeviceRemovedExtendedData1_AddRef(This) \
17326 ( (This)->lpVtbl -> AddRef(This) )
17327
17328#define ID3D12DeviceRemovedExtendedData1_Release(This) \
17329 ( (This)->lpVtbl -> Release(This) )
17330
17331
17332#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,pOutput) \
17333 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
17334
17335#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,pOutput) \
17336 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
17337
17338
17339#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,pOutput) \
17340 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
17341
17342#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,pOutput) \
17343 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
17344
17345#endif /* COBJMACROS */
17346
17347
17348#endif /* C style interface */
17349
17350
17351
17352
17353#endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */
17354
17355
17356#ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
17357#define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
17358
17359/* interface ID3D12DeviceRemovedExtendedData2 */
17360/* [unique][local][object][uuid] */
17361
17362
17363EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2;
17364
17365#if defined(__cplusplus) && !defined(CINTERFACE)
17366
17367 MIDL_INTERFACE("67FC5816-E4CA-4915-BF18-42541272DA54")
17368 ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1
17369 {
17370 public:
17371 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2(
17372 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput) = 0;
17373
17374 virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( void) = 0;
17375
17376 };
17377
17378
17379#else /* C style interface */
17380
17381 typedef struct ID3D12DeviceRemovedExtendedData2Vtbl
17382 {
17383 BEGIN_INTERFACE
17384
17385 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17386 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17387 ID3D12DeviceRemovedExtendedData2 * This,
17388 REFIID riid,
17389 _COM_Outptr_ void **ppvObject);
17390
17391 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17392 ULONG ( STDMETHODCALLTYPE *AddRef )(
17393 ID3D12DeviceRemovedExtendedData2 * This);
17394
17395 DECLSPEC_XFGVIRT(IUnknown, Release)
17396 ULONG ( STDMETHODCALLTYPE *Release )(
17397 ID3D12DeviceRemovedExtendedData2 * This);
17398
17399 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
17400 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
17401 ID3D12DeviceRemovedExtendedData2 * This,
17402 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
17403
17404 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
17405 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
17406 ID3D12DeviceRemovedExtendedData2 * This,
17407 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
17408
17409 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
17410 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
17411 ID3D12DeviceRemovedExtendedData2 * This,
17412 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
17413
17414 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
17415 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
17416 ID3D12DeviceRemovedExtendedData2 * This,
17417 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
17418
17419 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetPageFaultAllocationOutput2)
17420 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput2 )(
17421 ID3D12DeviceRemovedExtendedData2 * This,
17422 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput);
17423
17424 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetDeviceState)
17425 D3D12_DRED_DEVICE_STATE ( STDMETHODCALLTYPE *GetDeviceState )(
17426 ID3D12DeviceRemovedExtendedData2 * This);
17427
17428 END_INTERFACE
17429 } ID3D12DeviceRemovedExtendedData2Vtbl;
17430
17431 interface ID3D12DeviceRemovedExtendedData2
17432 {
17433 CONST_VTBL struct ID3D12DeviceRemovedExtendedData2Vtbl *lpVtbl;
17434 };
17435
17436
17437
17438#ifdef COBJMACROS
17439
17440
17441#define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) \
17442 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17443
17444#define ID3D12DeviceRemovedExtendedData2_AddRef(This) \
17445 ( (This)->lpVtbl -> AddRef(This) )
17446
17447#define ID3D12DeviceRemovedExtendedData2_Release(This) \
17448 ( (This)->lpVtbl -> Release(This) )
17449
17450
17451#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,pOutput) \
17452 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
17453
17454#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,pOutput) \
17455 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
17456
17457
17458#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,pOutput) \
17459 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
17460
17461#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,pOutput) \
17462 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
17463
17464
17465#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,pOutput) \
17466 ( (This)->lpVtbl -> GetPageFaultAllocationOutput2(This,pOutput) )
17467
17468#define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) \
17469 ( (This)->lpVtbl -> GetDeviceState(This) )
17470
17471#endif /* COBJMACROS */
17472
17473
17474#endif /* C style interface */
17475
17476
17477
17478
17479#endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */
17480
17481
17482/* interface __MIDL_itf_d3d12_0000_0046 */
17483/* [local] */
17484
17485typedef
17486enum D3D12_BACKGROUND_PROCESSING_MODE
17487 {
17488 D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0,
17489 D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED + 1 ) ,
17490 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS + 1 ) ,
17491 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = ( D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK + 1 )
17492 } D3D12_BACKGROUND_PROCESSING_MODE;
17493
17494typedef
17495enum D3D12_MEASUREMENTS_ACTION
17496 {
17497 D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0,
17498 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = ( D3D12_MEASUREMENTS_ACTION_KEEP_ALL + 1 ) ,
17499 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS + 1 ) ,
17500 D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY + 1 )
17501 } D3D12_MEASUREMENTS_ACTION;
17502
17503
17504
17505extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_c_ifspec;
17506extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_s_ifspec;
17507
17508#ifndef __ID3D12Device6_INTERFACE_DEFINED__
17509#define __ID3D12Device6_INTERFACE_DEFINED__
17510
17511/* interface ID3D12Device6 */
17512/* [unique][local][object][uuid] */
17513
17514
17515EXTERN_C const IID IID_ID3D12Device6;
17516
17517#if defined(__cplusplus) && !defined(CINTERFACE)
17518
17519 MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc")
17520 ID3D12Device6 : public ID3D12Device5
17521 {
17522 public:
17523 virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode(
17524 D3D12_BACKGROUND_PROCESSING_MODE Mode,
17525 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
17526 _In_opt_ HANDLE hEventToSignalUponCompletion,
17527 _Out_opt_ BOOL *pbFurtherMeasurementsDesired) = 0;
17528
17529 };
17530
17531
17532#else /* C style interface */
17533
17534 typedef struct ID3D12Device6Vtbl
17535 {
17536 BEGIN_INTERFACE
17537
17538 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17539 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17540 ID3D12Device6 * This,
17541 REFIID riid,
17542 _COM_Outptr_ void **ppvObject);
17543
17544 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17545 ULONG ( STDMETHODCALLTYPE *AddRef )(
17546 ID3D12Device6 * This);
17547
17548 DECLSPEC_XFGVIRT(IUnknown, Release)
17549 ULONG ( STDMETHODCALLTYPE *Release )(
17550 ID3D12Device6 * This);
17551
17552 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
17553 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
17554 ID3D12Device6 * This,
17555 _In_ REFGUID guid,
17556 _Inout_ UINT *pDataSize,
17557 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
17558
17559 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
17560 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
17561 ID3D12Device6 * This,
17562 _In_ REFGUID guid,
17563 _In_ UINT DataSize,
17564 _In_reads_bytes_opt_( DataSize ) const void *pData);
17565
17566 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
17567 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
17568 ID3D12Device6 * This,
17569 _In_ REFGUID guid,
17570 _In_opt_ const IUnknown *pData);
17571
17572 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
17573 HRESULT ( STDMETHODCALLTYPE *SetName )(
17574 ID3D12Device6 * This,
17575 _In_z_ LPCWSTR Name);
17576
17577 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
17578 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
17579 ID3D12Device6 * This);
17580
17581 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
17582 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
17583 ID3D12Device6 * This,
17584 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
17585 REFIID riid,
17586 _COM_Outptr_ void **ppCommandQueue);
17587
17588 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
17589 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
17590 ID3D12Device6 * This,
17591 _In_ D3D12_COMMAND_LIST_TYPE type,
17592 REFIID riid,
17593 _COM_Outptr_ void **ppCommandAllocator);
17594
17595 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
17596 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
17597 ID3D12Device6 * This,
17598 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
17599 REFIID riid,
17600 _COM_Outptr_ void **ppPipelineState);
17601
17602 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
17603 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
17604 ID3D12Device6 * This,
17605 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
17606 REFIID riid,
17607 _COM_Outptr_ void **ppPipelineState);
17608
17609 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
17610 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
17611 ID3D12Device6 * This,
17612 _In_ UINT nodeMask,
17613 _In_ D3D12_COMMAND_LIST_TYPE type,
17614 _In_ ID3D12CommandAllocator *pCommandAllocator,
17615 _In_opt_ ID3D12PipelineState *pInitialState,
17616 REFIID riid,
17617 _COM_Outptr_ void **ppCommandList);
17618
17619 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
17620 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
17621 ID3D12Device6 * This,
17622 D3D12_FEATURE Feature,
17623 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
17624 UINT FeatureSupportDataSize);
17625
17626 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
17627 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
17628 ID3D12Device6 * This,
17629 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
17630 REFIID riid,
17631 _COM_Outptr_ void **ppvHeap);
17632
17633 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
17634 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
17635 ID3D12Device6 * This,
17636 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
17637
17638 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
17639 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
17640 ID3D12Device6 * This,
17641 _In_ UINT nodeMask,
17642 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
17643 _In_ SIZE_T blobLengthInBytes,
17644 REFIID riid,
17645 _COM_Outptr_ void **ppvRootSignature);
17646
17647 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
17648 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
17649 ID3D12Device6 * This,
17650 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
17651 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17652
17653 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
17654 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
17655 ID3D12Device6 * This,
17656 _In_opt_ ID3D12Resource *pResource,
17657 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
17658 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17659
17660 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
17661 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
17662 ID3D12Device6 * This,
17663 _In_opt_ ID3D12Resource *pResource,
17664 _In_opt_ ID3D12Resource *pCounterResource,
17665 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
17666 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17667
17668 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
17669 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
17670 ID3D12Device6 * This,
17671 _In_opt_ ID3D12Resource *pResource,
17672 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
17673 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17674
17675 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
17676 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
17677 ID3D12Device6 * This,
17678 _In_opt_ ID3D12Resource *pResource,
17679 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
17680 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17681
17682 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
17683 void ( STDMETHODCALLTYPE *CreateSampler )(
17684 ID3D12Device6 * This,
17685 _In_ const D3D12_SAMPLER_DESC *pDesc,
17686 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17687
17688 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
17689 void ( STDMETHODCALLTYPE *CopyDescriptors )(
17690 ID3D12Device6 * This,
17691 _In_ UINT NumDestDescriptorRanges,
17692 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
17693 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
17694 _In_ UINT NumSrcDescriptorRanges,
17695 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
17696 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
17697 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
17698
17699 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
17700 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
17701 ID3D12Device6 * This,
17702 _In_ UINT NumDescriptors,
17703 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
17704 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
17705 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
17706
17707 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
17708#if !defined(_WIN32)
17709 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
17710 ID3D12Device6 * This,
17711 _In_ UINT visibleMask,
17712 _In_ UINT numResourceDescs,
17713 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
17714
17715#else
17716 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
17717 ID3D12Device6 * This,
17718 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
17719 _In_ UINT visibleMask,
17720 _In_ UINT numResourceDescs,
17721 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
17722
17723#endif
17724
17725 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
17726#if !defined(_WIN32)
17727 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
17728 ID3D12Device6 * This,
17729 _In_ UINT nodeMask,
17730 D3D12_HEAP_TYPE heapType);
17731
17732#else
17733 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
17734 ID3D12Device6 * This,
17735 D3D12_HEAP_PROPERTIES * RetVal,
17736 _In_ UINT nodeMask,
17737 D3D12_HEAP_TYPE heapType);
17738
17739#endif
17740
17741 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
17742 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
17743 ID3D12Device6 * This,
17744 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
17745 D3D12_HEAP_FLAGS HeapFlags,
17746 _In_ const D3D12_RESOURCE_DESC *pDesc,
17747 D3D12_RESOURCE_STATES InitialResourceState,
17748 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17749 REFIID riidResource,
17750 _COM_Outptr_opt_ void **ppvResource);
17751
17752 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
17753 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
17754 ID3D12Device6 * This,
17755 _In_ const D3D12_HEAP_DESC *pDesc,
17756 REFIID riid,
17757 _COM_Outptr_opt_ void **ppvHeap);
17758
17759 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
17760 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
17761 ID3D12Device6 * This,
17762 _In_ ID3D12Heap *pHeap,
17763 UINT64 HeapOffset,
17764 _In_ const D3D12_RESOURCE_DESC *pDesc,
17765 D3D12_RESOURCE_STATES InitialState,
17766 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17767 REFIID riid,
17768 _COM_Outptr_opt_ void **ppvResource);
17769
17770 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
17771 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
17772 ID3D12Device6 * This,
17773 _In_ const D3D12_RESOURCE_DESC *pDesc,
17774 D3D12_RESOURCE_STATES InitialState,
17775 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17776 REFIID riid,
17777 _COM_Outptr_opt_ void **ppvResource);
17778
17779 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
17780 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
17781 ID3D12Device6 * This,
17782 _In_ ID3D12DeviceChild *pObject,
17783 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
17784 DWORD Access,
17785 _In_opt_ LPCWSTR Name,
17786 _Out_ HANDLE *pHandle);
17787
17788 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
17789 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
17790 ID3D12Device6 * This,
17791 _In_ HANDLE NTHandle,
17792 REFIID riid,
17793 _COM_Outptr_opt_ void **ppvObj);
17794
17795 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
17796 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
17797 ID3D12Device6 * This,
17798 _In_ LPCWSTR Name,
17799 DWORD Access,
17800 /* [annotation][out] */
17801 _Out_ HANDLE *pNTHandle);
17802
17803 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
17804 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
17805 ID3D12Device6 * This,
17806 UINT NumObjects,
17807 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
17808
17809 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
17810 HRESULT ( STDMETHODCALLTYPE *Evict )(
17811 ID3D12Device6 * This,
17812 UINT NumObjects,
17813 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
17814
17815 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
17816 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
17817 ID3D12Device6 * This,
17818 UINT64 InitialValue,
17819 D3D12_FENCE_FLAGS Flags,
17820 REFIID riid,
17821 _COM_Outptr_ void **ppFence);
17822
17823 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
17824 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
17825 ID3D12Device6 * This);
17826
17827 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
17828 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
17829 ID3D12Device6 * This,
17830 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
17831 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
17832 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
17833 UINT64 BaseOffset,
17834 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
17835 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
17836 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
17837 _Out_opt_ UINT64 *pTotalBytes);
17838
17839 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
17840 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
17841 ID3D12Device6 * This,
17842 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
17843 REFIID riid,
17844 _COM_Outptr_opt_ void **ppvHeap);
17845
17846 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
17847 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
17848 ID3D12Device6 * This,
17849 BOOL Enable);
17850
17851 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
17852 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
17853 ID3D12Device6 * This,
17854 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
17855 _In_opt_ ID3D12RootSignature *pRootSignature,
17856 REFIID riid,
17857 _COM_Outptr_opt_ void **ppvCommandSignature);
17858
17859 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
17860 void ( STDMETHODCALLTYPE *GetResourceTiling )(
17861 ID3D12Device6 * This,
17862 _In_ ID3D12Resource *pTiledResource,
17863 _Out_opt_ UINT *pNumTilesForEntireResource,
17864 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
17865 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
17866 _Inout_opt_ UINT *pNumSubresourceTilings,
17867 _In_ UINT FirstSubresourceTilingToGet,
17868 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
17869
17870 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
17871#if !defined(_WIN32)
17872 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
17873 ID3D12Device6 * This);
17874
17875#else
17876 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
17877 ID3D12Device6 * This,
17878 LUID * RetVal);
17879
17880#endif
17881
17882 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
17883 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
17884 ID3D12Device6 * This,
17885 _In_reads_(BlobLength) const void *pLibraryBlob,
17886 SIZE_T BlobLength,
17887 REFIID riid,
17888 _COM_Outptr_ void **ppPipelineLibrary);
17889
17890 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
17891 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
17892 ID3D12Device6 * This,
17893 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
17894 _In_reads_(NumFences) const UINT64 *pFenceValues,
17895 UINT NumFences,
17896 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
17897 HANDLE hEvent);
17898
17899 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
17900 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
17901 ID3D12Device6 * This,
17902 UINT NumObjects,
17903 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
17904 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
17905
17906 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
17907 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
17908 ID3D12Device6 * This,
17909 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
17910 REFIID riid,
17911 _COM_Outptr_ void **ppPipelineState);
17912
17913 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
17914 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
17915 ID3D12Device6 * This,
17916 _In_ const void *pAddress,
17917 REFIID riid,
17918 _COM_Outptr_ void **ppvHeap);
17919
17920 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
17921 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
17922 ID3D12Device6 * This,
17923 _In_ HANDLE hFileMapping,
17924 REFIID riid,
17925 _COM_Outptr_ void **ppvHeap);
17926
17927 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
17928 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
17929 ID3D12Device6 * This,
17930 D3D12_RESIDENCY_FLAGS Flags,
17931 UINT NumObjects,
17932 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
17933 _In_ ID3D12Fence *pFenceToSignal,
17934 UINT64 FenceValueToSignal);
17935
17936 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
17937 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
17938 ID3D12Device6 * This,
17939 _In_ UINT nodeMask,
17940 _In_ D3D12_COMMAND_LIST_TYPE type,
17941 _In_ D3D12_COMMAND_LIST_FLAGS flags,
17942 REFIID riid,
17943 _COM_Outptr_ void **ppCommandList);
17944
17945 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
17946 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
17947 ID3D12Device6 * This,
17948 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
17949 _In_ REFIID riid,
17950 _COM_Outptr_ void **ppSession);
17951
17952 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
17953 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
17954 ID3D12Device6 * This,
17955 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
17956 D3D12_HEAP_FLAGS HeapFlags,
17957 _In_ const D3D12_RESOURCE_DESC *pDesc,
17958 D3D12_RESOURCE_STATES InitialResourceState,
17959 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17960 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17961 REFIID riidResource,
17962 _COM_Outptr_opt_ void **ppvResource);
17963
17964 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
17965 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
17966 ID3D12Device6 * This,
17967 _In_ const D3D12_HEAP_DESC *pDesc,
17968 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17969 REFIID riid,
17970 _COM_Outptr_opt_ void **ppvHeap);
17971
17972 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
17973 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
17974 ID3D12Device6 * This,
17975 _In_ const D3D12_RESOURCE_DESC *pDesc,
17976 D3D12_RESOURCE_STATES InitialState,
17977 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17978 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17979 REFIID riid,
17980 _COM_Outptr_opt_ void **ppvResource);
17981
17982 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
17983#if !defined(_WIN32)
17984 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
17985 ID3D12Device6 * This,
17986 UINT visibleMask,
17987 UINT numResourceDescs,
17988 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
17989 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
17990
17991#else
17992 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
17993 ID3D12Device6 * This,
17994 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
17995 UINT visibleMask,
17996 UINT numResourceDescs,
17997 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
17998 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
17999
18000#endif
18001
18002 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
18003 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
18004 ID3D12Device6 * This,
18005 _In_ ID3D12LifetimeOwner *pOwner,
18006 REFIID riid,
18007 _COM_Outptr_ void **ppvTracker);
18008
18009 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
18010 void ( STDMETHODCALLTYPE *RemoveDevice )(
18011 ID3D12Device6 * This);
18012
18013 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
18014 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
18015 ID3D12Device6 * This,
18016 _Inout_ UINT *pNumMetaCommands,
18017 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
18018
18019 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
18020 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
18021 ID3D12Device6 * This,
18022 _In_ REFGUID CommandId,
18023 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
18024 _Out_opt_ UINT *pTotalStructureSizeInBytes,
18025 _Inout_ UINT *pParameterCount,
18026 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
18027
18028 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
18029 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
18030 ID3D12Device6 * This,
18031 _In_ REFGUID CommandId,
18032 _In_ UINT NodeMask,
18033 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
18034 _In_ SIZE_T CreationParametersDataSizeInBytes,
18035 REFIID riid,
18036 _COM_Outptr_ void **ppMetaCommand);
18037
18038 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
18039 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
18040 ID3D12Device6 * This,
18041 const D3D12_STATE_OBJECT_DESC *pDesc,
18042 REFIID riid,
18043 _COM_Outptr_ void **ppStateObject);
18044
18045 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
18046 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
18047 ID3D12Device6 * This,
18048 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
18049 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
18050
18051 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
18052 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
18053 ID3D12Device6 * This,
18054 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
18055 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
18056
18057 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
18058 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
18059 ID3D12Device6 * This,
18060 D3D12_BACKGROUND_PROCESSING_MODE Mode,
18061 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
18062 _In_opt_ HANDLE hEventToSignalUponCompletion,
18063 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
18064
18065 END_INTERFACE
18066 } ID3D12Device6Vtbl;
18067
18068 interface ID3D12Device6
18069 {
18070 CONST_VTBL struct ID3D12Device6Vtbl *lpVtbl;
18071 };
18072
18073
18074
18075#ifdef COBJMACROS
18076
18077
18078#define ID3D12Device6_QueryInterface(This,riid,ppvObject) \
18079 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
18080
18081#define ID3D12Device6_AddRef(This) \
18082 ( (This)->lpVtbl -> AddRef(This) )
18083
18084#define ID3D12Device6_Release(This) \
18085 ( (This)->lpVtbl -> Release(This) )
18086
18087
18088#define ID3D12Device6_GetPrivateData(This,guid,pDataSize,pData) \
18089 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
18090
18091#define ID3D12Device6_SetPrivateData(This,guid,DataSize,pData) \
18092 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
18093
18094#define ID3D12Device6_SetPrivateDataInterface(This,guid,pData) \
18095 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
18096
18097#define ID3D12Device6_SetName(This,Name) \
18098 ( (This)->lpVtbl -> SetName(This,Name) )
18099
18100
18101#define ID3D12Device6_GetNodeCount(This) \
18102 ( (This)->lpVtbl -> GetNodeCount(This) )
18103
18104#define ID3D12Device6_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
18105 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
18106
18107#define ID3D12Device6_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
18108 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
18109
18110#define ID3D12Device6_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
18111 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
18112
18113#define ID3D12Device6_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
18114 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
18115
18116#define ID3D12Device6_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
18117 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
18118
18119#define ID3D12Device6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
18120 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
18121
18122#define ID3D12Device6_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
18123 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
18124
18125#define ID3D12Device6_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
18126 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
18127
18128#define ID3D12Device6_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
18129 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
18130
18131#define ID3D12Device6_CreateConstantBufferView(This,pDesc,DestDescriptor) \
18132 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
18133
18134#define ID3D12Device6_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
18135 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
18136
18137#define ID3D12Device6_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
18138 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
18139
18140#define ID3D12Device6_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
18141 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
18142
18143#define ID3D12Device6_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
18144 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
18145
18146#define ID3D12Device6_CreateSampler(This,pDesc,DestDescriptor) \
18147 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
18148
18149#define ID3D12Device6_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
18150 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
18151
18152#define ID3D12Device6_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
18153 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
18154#if !defined(_WIN32)
18155
18156#define ID3D12Device6_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
18157 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
18158#else
18159#define ID3D12Device6_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
18160 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
18161#endif
18162#if !defined(_WIN32)
18163
18164#define ID3D12Device6_GetCustomHeapProperties(This,nodeMask,heapType) \
18165 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
18166#else
18167#define ID3D12Device6_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
18168 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
18169#endif
18170
18171#define ID3D12Device6_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
18172 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
18173
18174#define ID3D12Device6_CreateHeap(This,pDesc,riid,ppvHeap) \
18175 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
18176
18177#define ID3D12Device6_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
18178 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
18179
18180#define ID3D12Device6_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
18181 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
18182
18183#define ID3D12Device6_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
18184 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
18185
18186#define ID3D12Device6_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
18187 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
18188
18189#define ID3D12Device6_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
18190 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
18191
18192#define ID3D12Device6_MakeResident(This,NumObjects,ppObjects) \
18193 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
18194
18195#define ID3D12Device6_Evict(This,NumObjects,ppObjects) \
18196 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
18197
18198#define ID3D12Device6_CreateFence(This,InitialValue,Flags,riid,ppFence) \
18199 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
18200
18201#define ID3D12Device6_GetDeviceRemovedReason(This) \
18202 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
18203
18204#define ID3D12Device6_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
18205 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
18206
18207#define ID3D12Device6_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
18208 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
18209
18210#define ID3D12Device6_SetStablePowerState(This,Enable) \
18211 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
18212
18213#define ID3D12Device6_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
18214 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
18215
18216#define ID3D12Device6_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
18217 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
18218#if !defined(_WIN32)
18219
18220#define ID3D12Device6_GetAdapterLuid(This) \
18221 ( (This)->lpVtbl -> GetAdapterLuid(This) )
18222#else
18223#define ID3D12Device6_GetAdapterLuid(This,RetVal) \
18224 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
18225#endif
18226
18227
18228#define ID3D12Device6_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
18229 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
18230
18231#define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
18232 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
18233
18234#define ID3D12Device6_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
18235 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
18236
18237
18238#define ID3D12Device6_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
18239 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
18240
18241
18242#define ID3D12Device6_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
18243 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
18244
18245#define ID3D12Device6_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
18246 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
18247
18248#define ID3D12Device6_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
18249 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
18250
18251
18252#define ID3D12Device6_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
18253 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
18254
18255#define ID3D12Device6_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
18256 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
18257
18258#define ID3D12Device6_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
18259 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
18260
18261#define ID3D12Device6_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
18262 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
18263
18264#define ID3D12Device6_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
18265 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
18266#if !defined(_WIN32)
18267
18268#define ID3D12Device6_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
18269 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
18270#else
18271#define ID3D12Device6_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
18272 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
18273#endif
18274
18275
18276#define ID3D12Device6_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
18277 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
18278
18279#define ID3D12Device6_RemoveDevice(This) \
18280 ( (This)->lpVtbl -> RemoveDevice(This) )
18281
18282#define ID3D12Device6_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
18283 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
18284
18285#define ID3D12Device6_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
18286 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
18287
18288#define ID3D12Device6_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
18289 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
18290
18291#define ID3D12Device6_CreateStateObject(This,pDesc,riid,ppStateObject) \
18292 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
18293
18294#define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
18295 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
18296
18297#define ID3D12Device6_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
18298 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
18299
18300
18301#define ID3D12Device6_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
18302 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
18303
18304#endif /* COBJMACROS */
18305
18306
18307#endif /* C style interface */
18308
18309
18310
18311
18312#endif /* __ID3D12Device6_INTERFACE_DEFINED__ */
18313
18314
18315/* interface __MIDL_itf_d3d12_0000_0047 */
18316/* [local] */
18317
18318DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82);
18319typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
18320 {
18321 UINT NodeIndex;
18322 UINT Count;
18323 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT;
18324
18325typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES
18326 {
18327 UINT NodeIndex;
18328 UINT Count;
18329 GUID *pTypes;
18330 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES;
18331
18332typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1
18333 {
18334 UINT NodeMask;
18335 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
18336 GUID ProtectionType;
18337 } D3D12_PROTECTED_RESOURCE_SESSION_DESC1;
18338
18339
18340
18341extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_c_ifspec;
18342extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_s_ifspec;
18343
18344#ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
18345#define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
18346
18347/* interface ID3D12ProtectedResourceSession1 */
18348/* [unique][local][object][uuid] */
18349
18350
18351EXTERN_C const IID IID_ID3D12ProtectedResourceSession1;
18352
18353#if defined(__cplusplus) && !defined(CINTERFACE)
18354
18355 MIDL_INTERFACE("D6F12DD6-76FB-406E-8961-4296EEFC0409")
18356 ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession
18357 {
18358 public:
18359#if defined(_MSC_VER) || !defined(_WIN32)
18360 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
18361#else
18362 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *STDMETHODCALLTYPE GetDesc1(
18363 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal) = 0;
18364#endif
18365
18366 };
18367
18368
18369#else /* C style interface */
18370
18371 typedef struct ID3D12ProtectedResourceSession1Vtbl
18372 {
18373 BEGIN_INTERFACE
18374
18375 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
18376 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
18377 ID3D12ProtectedResourceSession1 * This,
18378 REFIID riid,
18379 _COM_Outptr_ void **ppvObject);
18380
18381 DECLSPEC_XFGVIRT(IUnknown, AddRef)
18382 ULONG ( STDMETHODCALLTYPE *AddRef )(
18383 ID3D12ProtectedResourceSession1 * This);
18384
18385 DECLSPEC_XFGVIRT(IUnknown, Release)
18386 ULONG ( STDMETHODCALLTYPE *Release )(
18387 ID3D12ProtectedResourceSession1 * This);
18388
18389 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
18390 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
18391 ID3D12ProtectedResourceSession1 * This,
18392 _In_ REFGUID guid,
18393 _Inout_ UINT *pDataSize,
18394 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
18395
18396 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
18397 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
18398 ID3D12ProtectedResourceSession1 * This,
18399 _In_ REFGUID guid,
18400 _In_ UINT DataSize,
18401 _In_reads_bytes_opt_( DataSize ) const void *pData);
18402
18403 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
18404 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
18405 ID3D12ProtectedResourceSession1 * This,
18406 _In_ REFGUID guid,
18407 _In_opt_ const IUnknown *pData);
18408
18409 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
18410 HRESULT ( STDMETHODCALLTYPE *SetName )(
18411 ID3D12ProtectedResourceSession1 * This,
18412 _In_z_ LPCWSTR Name);
18413
18414 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
18415 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
18416 ID3D12ProtectedResourceSession1 * This,
18417 REFIID riid,
18418 _COM_Outptr_opt_ void **ppvDevice);
18419
18420 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
18421 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
18422 ID3D12ProtectedResourceSession1 * This,
18423 REFIID riid,
18424 _COM_Outptr_opt_ void **ppFence);
18425
18426 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
18427 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
18428 ID3D12ProtectedResourceSession1 * This);
18429
18430 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
18431#if !defined(_WIN32)
18432 D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
18433 ID3D12ProtectedResourceSession1 * This);
18434
18435#else
18436 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
18437 ID3D12ProtectedResourceSession1 * This,
18438 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
18439
18440#endif
18441
18442 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession1, GetDesc1)
18443#if !defined(_WIN32)
18444 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )(
18445 ID3D12ProtectedResourceSession1 * This);
18446
18447#else
18448 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
18449 ID3D12ProtectedResourceSession1 * This,
18450 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal);
18451
18452#endif
18453
18454 END_INTERFACE
18455 } ID3D12ProtectedResourceSession1Vtbl;
18456
18457 interface ID3D12ProtectedResourceSession1
18458 {
18459 CONST_VTBL struct ID3D12ProtectedResourceSession1Vtbl *lpVtbl;
18460 };
18461
18462
18463
18464#ifdef COBJMACROS
18465
18466
18467#define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) \
18468 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
18469
18470#define ID3D12ProtectedResourceSession1_AddRef(This) \
18471 ( (This)->lpVtbl -> AddRef(This) )
18472
18473#define ID3D12ProtectedResourceSession1_Release(This) \
18474 ( (This)->lpVtbl -> Release(This) )
18475
18476
18477#define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,pDataSize,pData) \
18478 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
18479
18480#define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,DataSize,pData) \
18481 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
18482
18483#define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,pData) \
18484 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
18485
18486#define ID3D12ProtectedResourceSession1_SetName(This,Name) \
18487 ( (This)->lpVtbl -> SetName(This,Name) )
18488
18489
18490#define ID3D12ProtectedResourceSession1_GetDevice(This,riid,ppvDevice) \
18491 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
18492
18493
18494#define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,ppFence) \
18495 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
18496
18497#define ID3D12ProtectedResourceSession1_GetSessionStatus(This) \
18498 ( (This)->lpVtbl -> GetSessionStatus(This) )
18499
18500#if !defined(_WIN32)
18501
18502#define ID3D12ProtectedResourceSession1_GetDesc(This) \
18503 ( (This)->lpVtbl -> GetDesc(This) )
18504#else
18505#define ID3D12ProtectedResourceSession1_GetDesc(This,RetVal) \
18506 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
18507#endif
18508
18509#if !defined(_WIN32)
18510
18511#define ID3D12ProtectedResourceSession1_GetDesc1(This) \
18512 ( (This)->lpVtbl -> GetDesc1(This) )
18513#else
18514#define ID3D12ProtectedResourceSession1_GetDesc1(This,RetVal) \
18515 ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
18516#endif
18517
18518#endif /* COBJMACROS */
18519
18520
18521#endif /* C style interface */
18522
18523
18524
18525
18526#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */
18527
18528
18529#ifndef __ID3D12Device7_INTERFACE_DEFINED__
18530#define __ID3D12Device7_INTERFACE_DEFINED__
18531
18532/* interface ID3D12Device7 */
18533/* [unique][local][object][uuid] */
18534
18535
18536EXTERN_C const IID IID_ID3D12Device7;
18537
18538#if defined(__cplusplus) && !defined(CINTERFACE)
18539
18540 MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b")
18541 ID3D12Device7 : public ID3D12Device6
18542 {
18543 public:
18544 virtual HRESULT STDMETHODCALLTYPE AddToStateObject(
18545 const D3D12_STATE_OBJECT_DESC *pAddition,
18546 ID3D12StateObject *pStateObjectToGrowFrom,
18547 REFIID riid,
18548 _COM_Outptr_ void **ppNewStateObject) = 0;
18549
18550 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1(
18551 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
18552 _In_ REFIID riid,
18553 _COM_Outptr_ void **ppSession) = 0;
18554
18555 };
18556
18557
18558#else /* C style interface */
18559
18560 typedef struct ID3D12Device7Vtbl
18561 {
18562 BEGIN_INTERFACE
18563
18564 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
18565 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
18566 ID3D12Device7 * This,
18567 REFIID riid,
18568 _COM_Outptr_ void **ppvObject);
18569
18570 DECLSPEC_XFGVIRT(IUnknown, AddRef)
18571 ULONG ( STDMETHODCALLTYPE *AddRef )(
18572 ID3D12Device7 * This);
18573
18574 DECLSPEC_XFGVIRT(IUnknown, Release)
18575 ULONG ( STDMETHODCALLTYPE *Release )(
18576 ID3D12Device7 * This);
18577
18578 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
18579 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
18580 ID3D12Device7 * This,
18581 _In_ REFGUID guid,
18582 _Inout_ UINT *pDataSize,
18583 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
18584
18585 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
18586 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
18587 ID3D12Device7 * This,
18588 _In_ REFGUID guid,
18589 _In_ UINT DataSize,
18590 _In_reads_bytes_opt_( DataSize ) const void *pData);
18591
18592 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
18593 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
18594 ID3D12Device7 * This,
18595 _In_ REFGUID guid,
18596 _In_opt_ const IUnknown *pData);
18597
18598 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
18599 HRESULT ( STDMETHODCALLTYPE *SetName )(
18600 ID3D12Device7 * This,
18601 _In_z_ LPCWSTR Name);
18602
18603 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
18604 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
18605 ID3D12Device7 * This);
18606
18607 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
18608 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
18609 ID3D12Device7 * This,
18610 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
18611 REFIID riid,
18612 _COM_Outptr_ void **ppCommandQueue);
18613
18614 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
18615 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
18616 ID3D12Device7 * This,
18617 _In_ D3D12_COMMAND_LIST_TYPE type,
18618 REFIID riid,
18619 _COM_Outptr_ void **ppCommandAllocator);
18620
18621 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
18622 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
18623 ID3D12Device7 * This,
18624 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
18625 REFIID riid,
18626 _COM_Outptr_ void **ppPipelineState);
18627
18628 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
18629 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
18630 ID3D12Device7 * This,
18631 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
18632 REFIID riid,
18633 _COM_Outptr_ void **ppPipelineState);
18634
18635 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
18636 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
18637 ID3D12Device7 * This,
18638 _In_ UINT nodeMask,
18639 _In_ D3D12_COMMAND_LIST_TYPE type,
18640 _In_ ID3D12CommandAllocator *pCommandAllocator,
18641 _In_opt_ ID3D12PipelineState *pInitialState,
18642 REFIID riid,
18643 _COM_Outptr_ void **ppCommandList);
18644
18645 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
18646 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
18647 ID3D12Device7 * This,
18648 D3D12_FEATURE Feature,
18649 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
18650 UINT FeatureSupportDataSize);
18651
18652 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
18653 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
18654 ID3D12Device7 * This,
18655 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
18656 REFIID riid,
18657 _COM_Outptr_ void **ppvHeap);
18658
18659 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
18660 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
18661 ID3D12Device7 * This,
18662 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
18663
18664 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
18665 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
18666 ID3D12Device7 * This,
18667 _In_ UINT nodeMask,
18668 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
18669 _In_ SIZE_T blobLengthInBytes,
18670 REFIID riid,
18671 _COM_Outptr_ void **ppvRootSignature);
18672
18673 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
18674 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
18675 ID3D12Device7 * This,
18676 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
18677 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18678
18679 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
18680 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
18681 ID3D12Device7 * This,
18682 _In_opt_ ID3D12Resource *pResource,
18683 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
18684 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18685
18686 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
18687 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
18688 ID3D12Device7 * This,
18689 _In_opt_ ID3D12Resource *pResource,
18690 _In_opt_ ID3D12Resource *pCounterResource,
18691 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
18692 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18693
18694 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
18695 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
18696 ID3D12Device7 * This,
18697 _In_opt_ ID3D12Resource *pResource,
18698 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
18699 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18700
18701 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
18702 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
18703 ID3D12Device7 * This,
18704 _In_opt_ ID3D12Resource *pResource,
18705 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
18706 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18707
18708 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
18709 void ( STDMETHODCALLTYPE *CreateSampler )(
18710 ID3D12Device7 * This,
18711 _In_ const D3D12_SAMPLER_DESC *pDesc,
18712 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18713
18714 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
18715 void ( STDMETHODCALLTYPE *CopyDescriptors )(
18716 ID3D12Device7 * This,
18717 _In_ UINT NumDestDescriptorRanges,
18718 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
18719 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
18720 _In_ UINT NumSrcDescriptorRanges,
18721 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
18722 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
18723 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
18724
18725 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
18726 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
18727 ID3D12Device7 * This,
18728 _In_ UINT NumDescriptors,
18729 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
18730 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
18731 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
18732
18733 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
18734#if !defined(_WIN32)
18735 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
18736 ID3D12Device7 * This,
18737 _In_ UINT visibleMask,
18738 _In_ UINT numResourceDescs,
18739 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
18740
18741#else
18742 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
18743 ID3D12Device7 * This,
18744 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
18745 _In_ UINT visibleMask,
18746 _In_ UINT numResourceDescs,
18747 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
18748
18749#endif
18750
18751 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
18752#if !defined(_WIN32)
18753 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
18754 ID3D12Device7 * This,
18755 _In_ UINT nodeMask,
18756 D3D12_HEAP_TYPE heapType);
18757
18758#else
18759 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
18760 ID3D12Device7 * This,
18761 D3D12_HEAP_PROPERTIES * RetVal,
18762 _In_ UINT nodeMask,
18763 D3D12_HEAP_TYPE heapType);
18764
18765#endif
18766
18767 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
18768 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
18769 ID3D12Device7 * This,
18770 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
18771 D3D12_HEAP_FLAGS HeapFlags,
18772 _In_ const D3D12_RESOURCE_DESC *pDesc,
18773 D3D12_RESOURCE_STATES InitialResourceState,
18774 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18775 REFIID riidResource,
18776 _COM_Outptr_opt_ void **ppvResource);
18777
18778 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
18779 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
18780 ID3D12Device7 * This,
18781 _In_ const D3D12_HEAP_DESC *pDesc,
18782 REFIID riid,
18783 _COM_Outptr_opt_ void **ppvHeap);
18784
18785 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
18786 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
18787 ID3D12Device7 * This,
18788 _In_ ID3D12Heap *pHeap,
18789 UINT64 HeapOffset,
18790 _In_ const D3D12_RESOURCE_DESC *pDesc,
18791 D3D12_RESOURCE_STATES InitialState,
18792 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18793 REFIID riid,
18794 _COM_Outptr_opt_ void **ppvResource);
18795
18796 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
18797 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
18798 ID3D12Device7 * This,
18799 _In_ const D3D12_RESOURCE_DESC *pDesc,
18800 D3D12_RESOURCE_STATES InitialState,
18801 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18802 REFIID riid,
18803 _COM_Outptr_opt_ void **ppvResource);
18804
18805 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
18806 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
18807 ID3D12Device7 * This,
18808 _In_ ID3D12DeviceChild *pObject,
18809 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
18810 DWORD Access,
18811 _In_opt_ LPCWSTR Name,
18812 _Out_ HANDLE *pHandle);
18813
18814 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
18815 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
18816 ID3D12Device7 * This,
18817 _In_ HANDLE NTHandle,
18818 REFIID riid,
18819 _COM_Outptr_opt_ void **ppvObj);
18820
18821 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
18822 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
18823 ID3D12Device7 * This,
18824 _In_ LPCWSTR Name,
18825 DWORD Access,
18826 /* [annotation][out] */
18827 _Out_ HANDLE *pNTHandle);
18828
18829 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
18830 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
18831 ID3D12Device7 * This,
18832 UINT NumObjects,
18833 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
18834
18835 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
18836 HRESULT ( STDMETHODCALLTYPE *Evict )(
18837 ID3D12Device7 * This,
18838 UINT NumObjects,
18839 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
18840
18841 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
18842 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
18843 ID3D12Device7 * This,
18844 UINT64 InitialValue,
18845 D3D12_FENCE_FLAGS Flags,
18846 REFIID riid,
18847 _COM_Outptr_ void **ppFence);
18848
18849 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
18850 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
18851 ID3D12Device7 * This);
18852
18853 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
18854 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
18855 ID3D12Device7 * This,
18856 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
18857 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
18858 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
18859 UINT64 BaseOffset,
18860 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
18861 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
18862 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
18863 _Out_opt_ UINT64 *pTotalBytes);
18864
18865 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
18866 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
18867 ID3D12Device7 * This,
18868 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
18869 REFIID riid,
18870 _COM_Outptr_opt_ void **ppvHeap);
18871
18872 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
18873 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
18874 ID3D12Device7 * This,
18875 BOOL Enable);
18876
18877 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
18878 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
18879 ID3D12Device7 * This,
18880 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
18881 _In_opt_ ID3D12RootSignature *pRootSignature,
18882 REFIID riid,
18883 _COM_Outptr_opt_ void **ppvCommandSignature);
18884
18885 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
18886 void ( STDMETHODCALLTYPE *GetResourceTiling )(
18887 ID3D12Device7 * This,
18888 _In_ ID3D12Resource *pTiledResource,
18889 _Out_opt_ UINT *pNumTilesForEntireResource,
18890 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
18891 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
18892 _Inout_opt_ UINT *pNumSubresourceTilings,
18893 _In_ UINT FirstSubresourceTilingToGet,
18894 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
18895
18896 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
18897#if !defined(_WIN32)
18898 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
18899 ID3D12Device7 * This);
18900
18901#else
18902 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
18903 ID3D12Device7 * This,
18904 LUID * RetVal);
18905
18906#endif
18907
18908 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
18909 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
18910 ID3D12Device7 * This,
18911 _In_reads_(BlobLength) const void *pLibraryBlob,
18912 SIZE_T BlobLength,
18913 REFIID riid,
18914 _COM_Outptr_ void **ppPipelineLibrary);
18915
18916 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
18917 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
18918 ID3D12Device7 * This,
18919 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
18920 _In_reads_(NumFences) const UINT64 *pFenceValues,
18921 UINT NumFences,
18922 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
18923 HANDLE hEvent);
18924
18925 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
18926 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
18927 ID3D12Device7 * This,
18928 UINT NumObjects,
18929 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
18930 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
18931
18932 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
18933 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
18934 ID3D12Device7 * This,
18935 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
18936 REFIID riid,
18937 _COM_Outptr_ void **ppPipelineState);
18938
18939 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
18940 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
18941 ID3D12Device7 * This,
18942 _In_ const void *pAddress,
18943 REFIID riid,
18944 _COM_Outptr_ void **ppvHeap);
18945
18946 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
18947 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
18948 ID3D12Device7 * This,
18949 _In_ HANDLE hFileMapping,
18950 REFIID riid,
18951 _COM_Outptr_ void **ppvHeap);
18952
18953 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
18954 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
18955 ID3D12Device7 * This,
18956 D3D12_RESIDENCY_FLAGS Flags,
18957 UINT NumObjects,
18958 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
18959 _In_ ID3D12Fence *pFenceToSignal,
18960 UINT64 FenceValueToSignal);
18961
18962 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
18963 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
18964 ID3D12Device7 * This,
18965 _In_ UINT nodeMask,
18966 _In_ D3D12_COMMAND_LIST_TYPE type,
18967 _In_ D3D12_COMMAND_LIST_FLAGS flags,
18968 REFIID riid,
18969 _COM_Outptr_ void **ppCommandList);
18970
18971 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
18972 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
18973 ID3D12Device7 * This,
18974 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
18975 _In_ REFIID riid,
18976 _COM_Outptr_ void **ppSession);
18977
18978 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
18979 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
18980 ID3D12Device7 * This,
18981 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
18982 D3D12_HEAP_FLAGS HeapFlags,
18983 _In_ const D3D12_RESOURCE_DESC *pDesc,
18984 D3D12_RESOURCE_STATES InitialResourceState,
18985 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18986 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18987 REFIID riidResource,
18988 _COM_Outptr_opt_ void **ppvResource);
18989
18990 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
18991 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
18992 ID3D12Device7 * This,
18993 _In_ const D3D12_HEAP_DESC *pDesc,
18994 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18995 REFIID riid,
18996 _COM_Outptr_opt_ void **ppvHeap);
18997
18998 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
18999 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
19000 ID3D12Device7 * This,
19001 _In_ const D3D12_RESOURCE_DESC *pDesc,
19002 D3D12_RESOURCE_STATES InitialState,
19003 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19004 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19005 REFIID riid,
19006 _COM_Outptr_opt_ void **ppvResource);
19007
19008 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
19009#if !defined(_WIN32)
19010 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
19011 ID3D12Device7 * This,
19012 UINT visibleMask,
19013 UINT numResourceDescs,
19014 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
19015 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19016
19017#else
19018 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
19019 ID3D12Device7 * This,
19020 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19021 UINT visibleMask,
19022 UINT numResourceDescs,
19023 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
19024 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19025
19026#endif
19027
19028 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
19029 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
19030 ID3D12Device7 * This,
19031 _In_ ID3D12LifetimeOwner *pOwner,
19032 REFIID riid,
19033 _COM_Outptr_ void **ppvTracker);
19034
19035 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
19036 void ( STDMETHODCALLTYPE *RemoveDevice )(
19037 ID3D12Device7 * This);
19038
19039 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
19040 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
19041 ID3D12Device7 * This,
19042 _Inout_ UINT *pNumMetaCommands,
19043 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
19044
19045 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
19046 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
19047 ID3D12Device7 * This,
19048 _In_ REFGUID CommandId,
19049 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
19050 _Out_opt_ UINT *pTotalStructureSizeInBytes,
19051 _Inout_ UINT *pParameterCount,
19052 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
19053
19054 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
19055 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
19056 ID3D12Device7 * This,
19057 _In_ REFGUID CommandId,
19058 _In_ UINT NodeMask,
19059 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
19060 _In_ SIZE_T CreationParametersDataSizeInBytes,
19061 REFIID riid,
19062 _COM_Outptr_ void **ppMetaCommand);
19063
19064 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
19065 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
19066 ID3D12Device7 * This,
19067 const D3D12_STATE_OBJECT_DESC *pDesc,
19068 REFIID riid,
19069 _COM_Outptr_ void **ppStateObject);
19070
19071 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
19072 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
19073 ID3D12Device7 * This,
19074 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
19075 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
19076
19077 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
19078 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
19079 ID3D12Device7 * This,
19080 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
19081 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
19082
19083 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
19084 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
19085 ID3D12Device7 * This,
19086 D3D12_BACKGROUND_PROCESSING_MODE Mode,
19087 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
19088 _In_opt_ HANDLE hEventToSignalUponCompletion,
19089 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
19090
19091 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
19092 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
19093 ID3D12Device7 * This,
19094 const D3D12_STATE_OBJECT_DESC *pAddition,
19095 ID3D12StateObject *pStateObjectToGrowFrom,
19096 REFIID riid,
19097 _COM_Outptr_ void **ppNewStateObject);
19098
19099 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
19100 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
19101 ID3D12Device7 * This,
19102 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
19103 _In_ REFIID riid,
19104 _COM_Outptr_ void **ppSession);
19105
19106 END_INTERFACE
19107 } ID3D12Device7Vtbl;
19108
19109 interface ID3D12Device7
19110 {
19111 CONST_VTBL struct ID3D12Device7Vtbl *lpVtbl;
19112 };
19113
19114
19115
19116#ifdef COBJMACROS
19117
19118
19119#define ID3D12Device7_QueryInterface(This,riid,ppvObject) \
19120 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
19121
19122#define ID3D12Device7_AddRef(This) \
19123 ( (This)->lpVtbl -> AddRef(This) )
19124
19125#define ID3D12Device7_Release(This) \
19126 ( (This)->lpVtbl -> Release(This) )
19127
19128
19129#define ID3D12Device7_GetPrivateData(This,guid,pDataSize,pData) \
19130 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
19131
19132#define ID3D12Device7_SetPrivateData(This,guid,DataSize,pData) \
19133 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
19134
19135#define ID3D12Device7_SetPrivateDataInterface(This,guid,pData) \
19136 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
19137
19138#define ID3D12Device7_SetName(This,Name) \
19139 ( (This)->lpVtbl -> SetName(This,Name) )
19140
19141
19142#define ID3D12Device7_GetNodeCount(This) \
19143 ( (This)->lpVtbl -> GetNodeCount(This) )
19144
19145#define ID3D12Device7_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
19146 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
19147
19148#define ID3D12Device7_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
19149 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
19150
19151#define ID3D12Device7_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
19152 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
19153
19154#define ID3D12Device7_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
19155 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
19156
19157#define ID3D12Device7_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
19158 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
19159
19160#define ID3D12Device7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
19161 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
19162
19163#define ID3D12Device7_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
19164 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
19165
19166#define ID3D12Device7_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
19167 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
19168
19169#define ID3D12Device7_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
19170 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
19171
19172#define ID3D12Device7_CreateConstantBufferView(This,pDesc,DestDescriptor) \
19173 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
19174
19175#define ID3D12Device7_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
19176 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
19177
19178#define ID3D12Device7_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
19179 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
19180
19181#define ID3D12Device7_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
19182 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
19183
19184#define ID3D12Device7_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
19185 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
19186
19187#define ID3D12Device7_CreateSampler(This,pDesc,DestDescriptor) \
19188 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
19189
19190#define ID3D12Device7_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
19191 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
19192
19193#define ID3D12Device7_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
19194 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
19195#if !defined(_WIN32)
19196
19197#define ID3D12Device7_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
19198 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
19199#else
19200#define ID3D12Device7_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
19201 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
19202#endif
19203#if !defined(_WIN32)
19204
19205#define ID3D12Device7_GetCustomHeapProperties(This,nodeMask,heapType) \
19206 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
19207#else
19208#define ID3D12Device7_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
19209 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
19210#endif
19211
19212#define ID3D12Device7_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
19213 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
19214
19215#define ID3D12Device7_CreateHeap(This,pDesc,riid,ppvHeap) \
19216 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
19217
19218#define ID3D12Device7_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
19219 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
19220
19221#define ID3D12Device7_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
19222 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
19223
19224#define ID3D12Device7_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
19225 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
19226
19227#define ID3D12Device7_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
19228 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
19229
19230#define ID3D12Device7_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
19231 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
19232
19233#define ID3D12Device7_MakeResident(This,NumObjects,ppObjects) \
19234 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
19235
19236#define ID3D12Device7_Evict(This,NumObjects,ppObjects) \
19237 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
19238
19239#define ID3D12Device7_CreateFence(This,InitialValue,Flags,riid,ppFence) \
19240 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
19241
19242#define ID3D12Device7_GetDeviceRemovedReason(This) \
19243 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
19244
19245#define ID3D12Device7_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
19246 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
19247
19248#define ID3D12Device7_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
19249 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
19250
19251#define ID3D12Device7_SetStablePowerState(This,Enable) \
19252 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
19253
19254#define ID3D12Device7_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
19255 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
19256
19257#define ID3D12Device7_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
19258 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
19259#if !defined(_WIN32)
19260
19261#define ID3D12Device7_GetAdapterLuid(This) \
19262 ( (This)->lpVtbl -> GetAdapterLuid(This) )
19263#else
19264#define ID3D12Device7_GetAdapterLuid(This,RetVal) \
19265 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
19266#endif
19267
19268
19269#define ID3D12Device7_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
19270 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
19271
19272#define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
19273 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
19274
19275#define ID3D12Device7_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
19276 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
19277
19278
19279#define ID3D12Device7_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
19280 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
19281
19282
19283#define ID3D12Device7_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
19284 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
19285
19286#define ID3D12Device7_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
19287 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
19288
19289#define ID3D12Device7_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
19290 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
19291
19292
19293#define ID3D12Device7_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
19294 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
19295
19296#define ID3D12Device7_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
19297 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
19298
19299#define ID3D12Device7_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
19300 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
19301
19302#define ID3D12Device7_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
19303 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
19304
19305#define ID3D12Device7_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
19306 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
19307#if !defined(_WIN32)
19308
19309#define ID3D12Device7_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
19310 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
19311#else
19312#define ID3D12Device7_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
19313 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
19314#endif
19315
19316
19317#define ID3D12Device7_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
19318 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
19319
19320#define ID3D12Device7_RemoveDevice(This) \
19321 ( (This)->lpVtbl -> RemoveDevice(This) )
19322
19323#define ID3D12Device7_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
19324 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
19325
19326#define ID3D12Device7_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
19327 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
19328
19329#define ID3D12Device7_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
19330 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
19331
19332#define ID3D12Device7_CreateStateObject(This,pDesc,riid,ppStateObject) \
19333 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
19334
19335#define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
19336 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
19337
19338#define ID3D12Device7_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
19339 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
19340
19341
19342#define ID3D12Device7_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
19343 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
19344
19345
19346#define ID3D12Device7_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
19347 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
19348
19349#define ID3D12Device7_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
19350 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
19351
19352#endif /* COBJMACROS */
19353
19354
19355#endif /* C style interface */
19356
19357
19358
19359
19360#endif /* __ID3D12Device7_INTERFACE_DEFINED__ */
19361
19362
19363#ifndef __ID3D12Device8_INTERFACE_DEFINED__
19364#define __ID3D12Device8_INTERFACE_DEFINED__
19365
19366/* interface ID3D12Device8 */
19367/* [unique][local][object][uuid] */
19368
19369
19370EXTERN_C const IID IID_ID3D12Device8;
19371
19372#if defined(__cplusplus) && !defined(CINTERFACE)
19373
19374 MIDL_INTERFACE("9218E6BB-F944-4F7E-A75C-B1B2C7B701F3")
19375 ID3D12Device8 : public ID3D12Device7
19376 {
19377 public:
19378#if defined(_MSC_VER) || !defined(_WIN32)
19379 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
19380 UINT visibleMask,
19381 UINT numResourceDescs,
19382 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19383 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
19384#else
19385 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo2(
19386 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19387 UINT visibleMask,
19388 UINT numResourceDescs,
19389 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19390 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
19391#endif
19392
19393 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2(
19394 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
19395 D3D12_HEAP_FLAGS HeapFlags,
19396 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
19397 D3D12_RESOURCE_STATES InitialResourceState,
19398 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19399 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19400 REFIID riidResource,
19401 _COM_Outptr_opt_ void **ppvResource) = 0;
19402
19403 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1(
19404 _In_ ID3D12Heap *pHeap,
19405 UINT64 HeapOffset,
19406 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
19407 D3D12_RESOURCE_STATES InitialState,
19408 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19409 REFIID riid,
19410 _COM_Outptr_opt_ void **ppvResource) = 0;
19411
19412 virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView(
19413 _In_opt_ ID3D12Resource *pTargetedResource,
19414 _In_opt_ ID3D12Resource *pFeedbackResource,
19415 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
19416
19417 virtual void STDMETHODCALLTYPE GetCopyableFootprints1(
19418 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
19419 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
19420 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
19421 UINT64 BaseOffset,
19422 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
19423 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
19424 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
19425 _Out_opt_ UINT64 *pTotalBytes) = 0;
19426
19427 };
19428
19429
19430#else /* C style interface */
19431
19432 typedef struct ID3D12Device8Vtbl
19433 {
19434 BEGIN_INTERFACE
19435
19436 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
19437 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
19438 ID3D12Device8 * This,
19439 REFIID riid,
19440 _COM_Outptr_ void **ppvObject);
19441
19442 DECLSPEC_XFGVIRT(IUnknown, AddRef)
19443 ULONG ( STDMETHODCALLTYPE *AddRef )(
19444 ID3D12Device8 * This);
19445
19446 DECLSPEC_XFGVIRT(IUnknown, Release)
19447 ULONG ( STDMETHODCALLTYPE *Release )(
19448 ID3D12Device8 * This);
19449
19450 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
19451 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
19452 ID3D12Device8 * This,
19453 _In_ REFGUID guid,
19454 _Inout_ UINT *pDataSize,
19455 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
19456
19457 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
19458 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
19459 ID3D12Device8 * This,
19460 _In_ REFGUID guid,
19461 _In_ UINT DataSize,
19462 _In_reads_bytes_opt_( DataSize ) const void *pData);
19463
19464 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
19465 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
19466 ID3D12Device8 * This,
19467 _In_ REFGUID guid,
19468 _In_opt_ const IUnknown *pData);
19469
19470 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
19471 HRESULT ( STDMETHODCALLTYPE *SetName )(
19472 ID3D12Device8 * This,
19473 _In_z_ LPCWSTR Name);
19474
19475 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
19476 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
19477 ID3D12Device8 * This);
19478
19479 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
19480 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
19481 ID3D12Device8 * This,
19482 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
19483 REFIID riid,
19484 _COM_Outptr_ void **ppCommandQueue);
19485
19486 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
19487 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
19488 ID3D12Device8 * This,
19489 _In_ D3D12_COMMAND_LIST_TYPE type,
19490 REFIID riid,
19491 _COM_Outptr_ void **ppCommandAllocator);
19492
19493 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
19494 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
19495 ID3D12Device8 * This,
19496 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
19497 REFIID riid,
19498 _COM_Outptr_ void **ppPipelineState);
19499
19500 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
19501 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
19502 ID3D12Device8 * This,
19503 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
19504 REFIID riid,
19505 _COM_Outptr_ void **ppPipelineState);
19506
19507 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
19508 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
19509 ID3D12Device8 * This,
19510 _In_ UINT nodeMask,
19511 _In_ D3D12_COMMAND_LIST_TYPE type,
19512 _In_ ID3D12CommandAllocator *pCommandAllocator,
19513 _In_opt_ ID3D12PipelineState *pInitialState,
19514 REFIID riid,
19515 _COM_Outptr_ void **ppCommandList);
19516
19517 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
19518 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
19519 ID3D12Device8 * This,
19520 D3D12_FEATURE Feature,
19521 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
19522 UINT FeatureSupportDataSize);
19523
19524 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
19525 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
19526 ID3D12Device8 * This,
19527 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
19528 REFIID riid,
19529 _COM_Outptr_ void **ppvHeap);
19530
19531 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
19532 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
19533 ID3D12Device8 * This,
19534 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
19535
19536 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
19537 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
19538 ID3D12Device8 * This,
19539 _In_ UINT nodeMask,
19540 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
19541 _In_ SIZE_T blobLengthInBytes,
19542 REFIID riid,
19543 _COM_Outptr_ void **ppvRootSignature);
19544
19545 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
19546 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
19547 ID3D12Device8 * This,
19548 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
19549 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19550
19551 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
19552 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
19553 ID3D12Device8 * This,
19554 _In_opt_ ID3D12Resource *pResource,
19555 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
19556 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19557
19558 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
19559 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
19560 ID3D12Device8 * This,
19561 _In_opt_ ID3D12Resource *pResource,
19562 _In_opt_ ID3D12Resource *pCounterResource,
19563 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
19564 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19565
19566 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
19567 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
19568 ID3D12Device8 * This,
19569 _In_opt_ ID3D12Resource *pResource,
19570 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
19571 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19572
19573 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
19574 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
19575 ID3D12Device8 * This,
19576 _In_opt_ ID3D12Resource *pResource,
19577 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
19578 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19579
19580 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
19581 void ( STDMETHODCALLTYPE *CreateSampler )(
19582 ID3D12Device8 * This,
19583 _In_ const D3D12_SAMPLER_DESC *pDesc,
19584 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19585
19586 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
19587 void ( STDMETHODCALLTYPE *CopyDescriptors )(
19588 ID3D12Device8 * This,
19589 _In_ UINT NumDestDescriptorRanges,
19590 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
19591 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
19592 _In_ UINT NumSrcDescriptorRanges,
19593 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
19594 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
19595 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
19596
19597 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
19598 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
19599 ID3D12Device8 * This,
19600 _In_ UINT NumDescriptors,
19601 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
19602 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
19603 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
19604
19605 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
19606#if !defined(_WIN32)
19607 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
19608 ID3D12Device8 * This,
19609 _In_ UINT visibleMask,
19610 _In_ UINT numResourceDescs,
19611 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
19612
19613#else
19614 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
19615 ID3D12Device8 * This,
19616 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19617 _In_ UINT visibleMask,
19618 _In_ UINT numResourceDescs,
19619 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
19620
19621#endif
19622
19623 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
19624#if !defined(_WIN32)
19625 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
19626 ID3D12Device8 * This,
19627 _In_ UINT nodeMask,
19628 D3D12_HEAP_TYPE heapType);
19629
19630#else
19631 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
19632 ID3D12Device8 * This,
19633 D3D12_HEAP_PROPERTIES * RetVal,
19634 _In_ UINT nodeMask,
19635 D3D12_HEAP_TYPE heapType);
19636
19637#endif
19638
19639 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
19640 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
19641 ID3D12Device8 * This,
19642 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
19643 D3D12_HEAP_FLAGS HeapFlags,
19644 _In_ const D3D12_RESOURCE_DESC *pDesc,
19645 D3D12_RESOURCE_STATES InitialResourceState,
19646 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19647 REFIID riidResource,
19648 _COM_Outptr_opt_ void **ppvResource);
19649
19650 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
19651 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
19652 ID3D12Device8 * This,
19653 _In_ const D3D12_HEAP_DESC *pDesc,
19654 REFIID riid,
19655 _COM_Outptr_opt_ void **ppvHeap);
19656
19657 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
19658 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
19659 ID3D12Device8 * This,
19660 _In_ ID3D12Heap *pHeap,
19661 UINT64 HeapOffset,
19662 _In_ const D3D12_RESOURCE_DESC *pDesc,
19663 D3D12_RESOURCE_STATES InitialState,
19664 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19665 REFIID riid,
19666 _COM_Outptr_opt_ void **ppvResource);
19667
19668 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
19669 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
19670 ID3D12Device8 * This,
19671 _In_ const D3D12_RESOURCE_DESC *pDesc,
19672 D3D12_RESOURCE_STATES InitialState,
19673 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19674 REFIID riid,
19675 _COM_Outptr_opt_ void **ppvResource);
19676
19677 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
19678 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
19679 ID3D12Device8 * This,
19680 _In_ ID3D12DeviceChild *pObject,
19681 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
19682 DWORD Access,
19683 _In_opt_ LPCWSTR Name,
19684 _Out_ HANDLE *pHandle);
19685
19686 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
19687 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
19688 ID3D12Device8 * This,
19689 _In_ HANDLE NTHandle,
19690 REFIID riid,
19691 _COM_Outptr_opt_ void **ppvObj);
19692
19693 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
19694 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
19695 ID3D12Device8 * This,
19696 _In_ LPCWSTR Name,
19697 DWORD Access,
19698 /* [annotation][out] */
19699 _Out_ HANDLE *pNTHandle);
19700
19701 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
19702 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
19703 ID3D12Device8 * This,
19704 UINT NumObjects,
19705 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
19706
19707 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
19708 HRESULT ( STDMETHODCALLTYPE *Evict )(
19709 ID3D12Device8 * This,
19710 UINT NumObjects,
19711 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
19712
19713 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
19714 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
19715 ID3D12Device8 * This,
19716 UINT64 InitialValue,
19717 D3D12_FENCE_FLAGS Flags,
19718 REFIID riid,
19719 _COM_Outptr_ void **ppFence);
19720
19721 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
19722 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
19723 ID3D12Device8 * This);
19724
19725 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
19726 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
19727 ID3D12Device8 * This,
19728 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
19729 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
19730 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
19731 UINT64 BaseOffset,
19732 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
19733 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
19734 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
19735 _Out_opt_ UINT64 *pTotalBytes);
19736
19737 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
19738 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
19739 ID3D12Device8 * This,
19740 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
19741 REFIID riid,
19742 _COM_Outptr_opt_ void **ppvHeap);
19743
19744 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
19745 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
19746 ID3D12Device8 * This,
19747 BOOL Enable);
19748
19749 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
19750 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
19751 ID3D12Device8 * This,
19752 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
19753 _In_opt_ ID3D12RootSignature *pRootSignature,
19754 REFIID riid,
19755 _COM_Outptr_opt_ void **ppvCommandSignature);
19756
19757 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
19758 void ( STDMETHODCALLTYPE *GetResourceTiling )(
19759 ID3D12Device8 * This,
19760 _In_ ID3D12Resource *pTiledResource,
19761 _Out_opt_ UINT *pNumTilesForEntireResource,
19762 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
19763 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
19764 _Inout_opt_ UINT *pNumSubresourceTilings,
19765 _In_ UINT FirstSubresourceTilingToGet,
19766 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
19767
19768 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
19769#if !defined(_WIN32)
19770 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
19771 ID3D12Device8 * This);
19772
19773#else
19774 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
19775 ID3D12Device8 * This,
19776 LUID * RetVal);
19777
19778#endif
19779
19780 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
19781 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
19782 ID3D12Device8 * This,
19783 _In_reads_(BlobLength) const void *pLibraryBlob,
19784 SIZE_T BlobLength,
19785 REFIID riid,
19786 _COM_Outptr_ void **ppPipelineLibrary);
19787
19788 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
19789 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
19790 ID3D12Device8 * This,
19791 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
19792 _In_reads_(NumFences) const UINT64 *pFenceValues,
19793 UINT NumFences,
19794 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
19795 HANDLE hEvent);
19796
19797 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
19798 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
19799 ID3D12Device8 * This,
19800 UINT NumObjects,
19801 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
19802 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
19803
19804 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
19805 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
19806 ID3D12Device8 * This,
19807 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
19808 REFIID riid,
19809 _COM_Outptr_ void **ppPipelineState);
19810
19811 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
19812 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
19813 ID3D12Device8 * This,
19814 _In_ const void *pAddress,
19815 REFIID riid,
19816 _COM_Outptr_ void **ppvHeap);
19817
19818 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
19819 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
19820 ID3D12Device8 * This,
19821 _In_ HANDLE hFileMapping,
19822 REFIID riid,
19823 _COM_Outptr_ void **ppvHeap);
19824
19825 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
19826 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
19827 ID3D12Device8 * This,
19828 D3D12_RESIDENCY_FLAGS Flags,
19829 UINT NumObjects,
19830 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
19831 _In_ ID3D12Fence *pFenceToSignal,
19832 UINT64 FenceValueToSignal);
19833
19834 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
19835 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
19836 ID3D12Device8 * This,
19837 _In_ UINT nodeMask,
19838 _In_ D3D12_COMMAND_LIST_TYPE type,
19839 _In_ D3D12_COMMAND_LIST_FLAGS flags,
19840 REFIID riid,
19841 _COM_Outptr_ void **ppCommandList);
19842
19843 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
19844 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
19845 ID3D12Device8 * This,
19846 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
19847 _In_ REFIID riid,
19848 _COM_Outptr_ void **ppSession);
19849
19850 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
19851 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
19852 ID3D12Device8 * This,
19853 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
19854 D3D12_HEAP_FLAGS HeapFlags,
19855 _In_ const D3D12_RESOURCE_DESC *pDesc,
19856 D3D12_RESOURCE_STATES InitialResourceState,
19857 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19858 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19859 REFIID riidResource,
19860 _COM_Outptr_opt_ void **ppvResource);
19861
19862 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
19863 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
19864 ID3D12Device8 * This,
19865 _In_ const D3D12_HEAP_DESC *pDesc,
19866 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19867 REFIID riid,
19868 _COM_Outptr_opt_ void **ppvHeap);
19869
19870 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
19871 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
19872 ID3D12Device8 * This,
19873 _In_ const D3D12_RESOURCE_DESC *pDesc,
19874 D3D12_RESOURCE_STATES InitialState,
19875 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19876 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19877 REFIID riid,
19878 _COM_Outptr_opt_ void **ppvResource);
19879
19880 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
19881#if !defined(_WIN32)
19882 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
19883 ID3D12Device8 * This,
19884 UINT visibleMask,
19885 UINT numResourceDescs,
19886 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
19887 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19888
19889#else
19890 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
19891 ID3D12Device8 * This,
19892 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19893 UINT visibleMask,
19894 UINT numResourceDescs,
19895 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
19896 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19897
19898#endif
19899
19900 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
19901 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
19902 ID3D12Device8 * This,
19903 _In_ ID3D12LifetimeOwner *pOwner,
19904 REFIID riid,
19905 _COM_Outptr_ void **ppvTracker);
19906
19907 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
19908 void ( STDMETHODCALLTYPE *RemoveDevice )(
19909 ID3D12Device8 * This);
19910
19911 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
19912 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
19913 ID3D12Device8 * This,
19914 _Inout_ UINT *pNumMetaCommands,
19915 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
19916
19917 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
19918 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
19919 ID3D12Device8 * This,
19920 _In_ REFGUID CommandId,
19921 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
19922 _Out_opt_ UINT *pTotalStructureSizeInBytes,
19923 _Inout_ UINT *pParameterCount,
19924 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
19925
19926 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
19927 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
19928 ID3D12Device8 * This,
19929 _In_ REFGUID CommandId,
19930 _In_ UINT NodeMask,
19931 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
19932 _In_ SIZE_T CreationParametersDataSizeInBytes,
19933 REFIID riid,
19934 _COM_Outptr_ void **ppMetaCommand);
19935
19936 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
19937 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
19938 ID3D12Device8 * This,
19939 const D3D12_STATE_OBJECT_DESC *pDesc,
19940 REFIID riid,
19941 _COM_Outptr_ void **ppStateObject);
19942
19943 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
19944 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
19945 ID3D12Device8 * This,
19946 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
19947 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
19948
19949 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
19950 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
19951 ID3D12Device8 * This,
19952 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
19953 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
19954
19955 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
19956 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
19957 ID3D12Device8 * This,
19958 D3D12_BACKGROUND_PROCESSING_MODE Mode,
19959 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
19960 _In_opt_ HANDLE hEventToSignalUponCompletion,
19961 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
19962
19963 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
19964 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
19965 ID3D12Device8 * This,
19966 const D3D12_STATE_OBJECT_DESC *pAddition,
19967 ID3D12StateObject *pStateObjectToGrowFrom,
19968 REFIID riid,
19969 _COM_Outptr_ void **ppNewStateObject);
19970
19971 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
19972 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
19973 ID3D12Device8 * This,
19974 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
19975 _In_ REFIID riid,
19976 _COM_Outptr_ void **ppSession);
19977
19978 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
19979#if !defined(_WIN32)
19980 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
19981 ID3D12Device8 * This,
19982 UINT visibleMask,
19983 UINT numResourceDescs,
19984 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19985 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19986
19987#else
19988 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
19989 ID3D12Device8 * This,
19990 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19991 UINT visibleMask,
19992 UINT numResourceDescs,
19993 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19994 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19995
19996#endif
19997
19998 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
19999 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
20000 ID3D12Device8 * This,
20001 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
20002 D3D12_HEAP_FLAGS HeapFlags,
20003 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
20004 D3D12_RESOURCE_STATES InitialResourceState,
20005 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20006 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
20007 REFIID riidResource,
20008 _COM_Outptr_opt_ void **ppvResource);
20009
20010 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
20011 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
20012 ID3D12Device8 * This,
20013 _In_ ID3D12Heap *pHeap,
20014 UINT64 HeapOffset,
20015 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
20016 D3D12_RESOURCE_STATES InitialState,
20017 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20018 REFIID riid,
20019 _COM_Outptr_opt_ void **ppvResource);
20020
20021 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
20022 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
20023 ID3D12Device8 * This,
20024 _In_opt_ ID3D12Resource *pTargetedResource,
20025 _In_opt_ ID3D12Resource *pFeedbackResource,
20026 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20027
20028 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
20029 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
20030 ID3D12Device8 * This,
20031 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
20032 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
20033 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
20034 UINT64 BaseOffset,
20035 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
20036 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
20037 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
20038 _Out_opt_ UINT64 *pTotalBytes);
20039
20040 END_INTERFACE
20041 } ID3D12Device8Vtbl;
20042
20043 interface ID3D12Device8
20044 {
20045 CONST_VTBL struct ID3D12Device8Vtbl *lpVtbl;
20046 };
20047
20048
20049
20050#ifdef COBJMACROS
20051
20052
20053#define ID3D12Device8_QueryInterface(This,riid,ppvObject) \
20054 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20055
20056#define ID3D12Device8_AddRef(This) \
20057 ( (This)->lpVtbl -> AddRef(This) )
20058
20059#define ID3D12Device8_Release(This) \
20060 ( (This)->lpVtbl -> Release(This) )
20061
20062
20063#define ID3D12Device8_GetPrivateData(This,guid,pDataSize,pData) \
20064 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20065
20066#define ID3D12Device8_SetPrivateData(This,guid,DataSize,pData) \
20067 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20068
20069#define ID3D12Device8_SetPrivateDataInterface(This,guid,pData) \
20070 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20071
20072#define ID3D12Device8_SetName(This,Name) \
20073 ( (This)->lpVtbl -> SetName(This,Name) )
20074
20075
20076#define ID3D12Device8_GetNodeCount(This) \
20077 ( (This)->lpVtbl -> GetNodeCount(This) )
20078
20079#define ID3D12Device8_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
20080 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
20081
20082#define ID3D12Device8_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
20083 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
20084
20085#define ID3D12Device8_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
20086 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
20087
20088#define ID3D12Device8_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
20089 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
20090
20091#define ID3D12Device8_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
20092 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
20093
20094#define ID3D12Device8_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
20095 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
20096
20097#define ID3D12Device8_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
20098 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
20099
20100#define ID3D12Device8_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
20101 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
20102
20103#define ID3D12Device8_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
20104 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
20105
20106#define ID3D12Device8_CreateConstantBufferView(This,pDesc,DestDescriptor) \
20107 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
20108
20109#define ID3D12Device8_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
20110 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
20111
20112#define ID3D12Device8_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
20113 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
20114
20115#define ID3D12Device8_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
20116 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
20117
20118#define ID3D12Device8_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
20119 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
20120
20121#define ID3D12Device8_CreateSampler(This,pDesc,DestDescriptor) \
20122 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
20123
20124#define ID3D12Device8_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
20125 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
20126
20127#define ID3D12Device8_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
20128 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
20129#if !defined(_WIN32)
20130
20131#define ID3D12Device8_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
20132 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
20133#else
20134#define ID3D12Device8_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
20135 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
20136#endif
20137#if !defined(_WIN32)
20138
20139#define ID3D12Device8_GetCustomHeapProperties(This,nodeMask,heapType) \
20140 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
20141#else
20142#define ID3D12Device8_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
20143 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
20144#endif
20145
20146#define ID3D12Device8_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
20147 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
20148
20149#define ID3D12Device8_CreateHeap(This,pDesc,riid,ppvHeap) \
20150 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
20151
20152#define ID3D12Device8_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20153 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20154
20155#define ID3D12Device8_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20156 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20157
20158#define ID3D12Device8_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
20159 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
20160
20161#define ID3D12Device8_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
20162 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
20163
20164#define ID3D12Device8_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
20165 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
20166
20167#define ID3D12Device8_MakeResident(This,NumObjects,ppObjects) \
20168 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
20169
20170#define ID3D12Device8_Evict(This,NumObjects,ppObjects) \
20171 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
20172
20173#define ID3D12Device8_CreateFence(This,InitialValue,Flags,riid,ppFence) \
20174 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
20175
20176#define ID3D12Device8_GetDeviceRemovedReason(This) \
20177 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
20178
20179#define ID3D12Device8_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
20180 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
20181
20182#define ID3D12Device8_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
20183 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
20184
20185#define ID3D12Device8_SetStablePowerState(This,Enable) \
20186 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
20187
20188#define ID3D12Device8_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
20189 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
20190
20191#define ID3D12Device8_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
20192 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
20193#if !defined(_WIN32)
20194
20195#define ID3D12Device8_GetAdapterLuid(This) \
20196 ( (This)->lpVtbl -> GetAdapterLuid(This) )
20197#else
20198#define ID3D12Device8_GetAdapterLuid(This,RetVal) \
20199 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
20200#endif
20201
20202
20203#define ID3D12Device8_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
20204 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
20205
20206#define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
20207 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
20208
20209#define ID3D12Device8_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
20210 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
20211
20212
20213#define ID3D12Device8_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
20214 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
20215
20216
20217#define ID3D12Device8_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
20218 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
20219
20220#define ID3D12Device8_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
20221 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
20222
20223#define ID3D12Device8_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
20224 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
20225
20226
20227#define ID3D12Device8_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
20228 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
20229
20230#define ID3D12Device8_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
20231 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
20232
20233#define ID3D12Device8_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
20234 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
20235
20236#define ID3D12Device8_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
20237 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
20238
20239#define ID3D12Device8_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
20240 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
20241#if !defined(_WIN32)
20242
20243#define ID3D12Device8_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20244 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20245#else
20246#define ID3D12Device8_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20247 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20248#endif
20249
20250
20251#define ID3D12Device8_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
20252 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
20253
20254#define ID3D12Device8_RemoveDevice(This) \
20255 ( (This)->lpVtbl -> RemoveDevice(This) )
20256
20257#define ID3D12Device8_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
20258 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
20259
20260#define ID3D12Device8_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
20261 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
20262
20263#define ID3D12Device8_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
20264 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
20265
20266#define ID3D12Device8_CreateStateObject(This,pDesc,riid,ppStateObject) \
20267 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
20268
20269#define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
20270 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
20271
20272#define ID3D12Device8_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
20273 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
20274
20275
20276#define ID3D12Device8_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
20277 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
20278
20279
20280#define ID3D12Device8_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
20281 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
20282
20283#define ID3D12Device8_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
20284 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
20285
20286#if !defined(_WIN32)
20287
20288#define ID3D12Device8_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20289 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20290#else
20291#define ID3D12Device8_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20292 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20293#endif
20294
20295#define ID3D12Device8_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
20296 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
20297
20298#define ID3D12Device8_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20299 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20300
20301#define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
20302 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
20303
20304#define ID3D12Device8_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
20305 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
20306
20307#endif /* COBJMACROS */
20308
20309
20310#endif /* C style interface */
20311
20312
20313
20314
20315#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */
20316
20317
20318#ifndef __ID3D12Resource1_INTERFACE_DEFINED__
20319#define __ID3D12Resource1_INTERFACE_DEFINED__
20320
20321/* interface ID3D12Resource1 */
20322/* [unique][local][object][uuid] */
20323
20324
20325EXTERN_C const IID IID_ID3D12Resource1;
20326
20327#if defined(__cplusplus) && !defined(CINTERFACE)
20328
20329 MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19")
20330 ID3D12Resource1 : public ID3D12Resource
20331 {
20332 public:
20333 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
20334 REFIID riid,
20335 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
20336
20337 };
20338
20339
20340#else /* C style interface */
20341
20342 typedef struct ID3D12Resource1Vtbl
20343 {
20344 BEGIN_INTERFACE
20345
20346 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20347 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20348 ID3D12Resource1 * This,
20349 REFIID riid,
20350 _COM_Outptr_ void **ppvObject);
20351
20352 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20353 ULONG ( STDMETHODCALLTYPE *AddRef )(
20354 ID3D12Resource1 * This);
20355
20356 DECLSPEC_XFGVIRT(IUnknown, Release)
20357 ULONG ( STDMETHODCALLTYPE *Release )(
20358 ID3D12Resource1 * This);
20359
20360 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20361 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20362 ID3D12Resource1 * This,
20363 _In_ REFGUID guid,
20364 _Inout_ UINT *pDataSize,
20365 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20366
20367 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20368 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20369 ID3D12Resource1 * This,
20370 _In_ REFGUID guid,
20371 _In_ UINT DataSize,
20372 _In_reads_bytes_opt_( DataSize ) const void *pData);
20373
20374 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20375 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20376 ID3D12Resource1 * This,
20377 _In_ REFGUID guid,
20378 _In_opt_ const IUnknown *pData);
20379
20380 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20381 HRESULT ( STDMETHODCALLTYPE *SetName )(
20382 ID3D12Resource1 * This,
20383 _In_z_ LPCWSTR Name);
20384
20385 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20386 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20387 ID3D12Resource1 * This,
20388 REFIID riid,
20389 _COM_Outptr_opt_ void **ppvDevice);
20390
20391 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
20392 HRESULT ( STDMETHODCALLTYPE *Map )(
20393 ID3D12Resource1 * This,
20394 UINT Subresource,
20395 _In_opt_ const D3D12_RANGE *pReadRange,
20396 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
20397
20398 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
20399 void ( STDMETHODCALLTYPE *Unmap )(
20400 ID3D12Resource1 * This,
20401 UINT Subresource,
20402 _In_opt_ const D3D12_RANGE *pWrittenRange);
20403
20404 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
20405#if !defined(_WIN32)
20406 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
20407 ID3D12Resource1 * This);
20408
20409#else
20410 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
20411 ID3D12Resource1 * This,
20412 D3D12_RESOURCE_DESC * RetVal);
20413
20414#endif
20415
20416 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
20417 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
20418 ID3D12Resource1 * This);
20419
20420 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
20421 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
20422 ID3D12Resource1 * This,
20423 UINT DstSubresource,
20424 _In_opt_ const D3D12_BOX *pDstBox,
20425 _In_ const void *pSrcData,
20426 UINT SrcRowPitch,
20427 UINT SrcDepthPitch);
20428
20429 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
20430 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
20431 ID3D12Resource1 * This,
20432 _Out_ void *pDstData,
20433 UINT DstRowPitch,
20434 UINT DstDepthPitch,
20435 UINT SrcSubresource,
20436 _In_opt_ const D3D12_BOX *pSrcBox);
20437
20438 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
20439 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
20440 ID3D12Resource1 * This,
20441 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
20442 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
20443
20444 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
20445 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
20446 ID3D12Resource1 * This,
20447 REFIID riid,
20448 _COM_Outptr_opt_ void **ppProtectedSession);
20449
20450 END_INTERFACE
20451 } ID3D12Resource1Vtbl;
20452
20453 interface ID3D12Resource1
20454 {
20455 CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl;
20456 };
20457
20458
20459
20460#ifdef COBJMACROS
20461
20462
20463#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \
20464 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20465
20466#define ID3D12Resource1_AddRef(This) \
20467 ( (This)->lpVtbl -> AddRef(This) )
20468
20469#define ID3D12Resource1_Release(This) \
20470 ( (This)->lpVtbl -> Release(This) )
20471
20472
20473#define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \
20474 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20475
20476#define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \
20477 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20478
20479#define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \
20480 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20481
20482#define ID3D12Resource1_SetName(This,Name) \
20483 ( (This)->lpVtbl -> SetName(This,Name) )
20484
20485
20486#define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \
20487 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20488
20489
20490
20491#define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \
20492 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
20493
20494#define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \
20495 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
20496#if !defined(_WIN32)
20497
20498#define ID3D12Resource1_GetDesc(This) \
20499 ( (This)->lpVtbl -> GetDesc(This) )
20500#else
20501#define ID3D12Resource1_GetDesc(This,RetVal) \
20502 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
20503#endif
20504
20505#define ID3D12Resource1_GetGPUVirtualAddress(This) \
20506 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
20507
20508#define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
20509 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
20510
20511#define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
20512 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
20513
20514#define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
20515 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
20516
20517
20518#define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
20519 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
20520
20521#endif /* COBJMACROS */
20522
20523
20524#endif /* C style interface */
20525
20526
20527
20528
20529#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */
20530
20531
20532#ifndef __ID3D12Resource2_INTERFACE_DEFINED__
20533#define __ID3D12Resource2_INTERFACE_DEFINED__
20534
20535/* interface ID3D12Resource2 */
20536/* [unique][local][object][uuid] */
20537
20538
20539EXTERN_C const IID IID_ID3D12Resource2;
20540
20541#if defined(__cplusplus) && !defined(CINTERFACE)
20542
20543 MIDL_INTERFACE("BE36EC3B-EA85-4AEB-A45A-E9D76404A495")
20544 ID3D12Resource2 : public ID3D12Resource1
20545 {
20546 public:
20547#if defined(_MSC_VER) || !defined(_WIN32)
20548 virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
20549#else
20550 virtual D3D12_RESOURCE_DESC1 *STDMETHODCALLTYPE GetDesc1(
20551 D3D12_RESOURCE_DESC1 * RetVal) = 0;
20552#endif
20553
20554 };
20555
20556
20557#else /* C style interface */
20558
20559 typedef struct ID3D12Resource2Vtbl
20560 {
20561 BEGIN_INTERFACE
20562
20563 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20564 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20565 ID3D12Resource2 * This,
20566 REFIID riid,
20567 _COM_Outptr_ void **ppvObject);
20568
20569 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20570 ULONG ( STDMETHODCALLTYPE *AddRef )(
20571 ID3D12Resource2 * This);
20572
20573 DECLSPEC_XFGVIRT(IUnknown, Release)
20574 ULONG ( STDMETHODCALLTYPE *Release )(
20575 ID3D12Resource2 * This);
20576
20577 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20578 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20579 ID3D12Resource2 * This,
20580 _In_ REFGUID guid,
20581 _Inout_ UINT *pDataSize,
20582 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20583
20584 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20585 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20586 ID3D12Resource2 * This,
20587 _In_ REFGUID guid,
20588 _In_ UINT DataSize,
20589 _In_reads_bytes_opt_( DataSize ) const void *pData);
20590
20591 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20592 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20593 ID3D12Resource2 * This,
20594 _In_ REFGUID guid,
20595 _In_opt_ const IUnknown *pData);
20596
20597 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20598 HRESULT ( STDMETHODCALLTYPE *SetName )(
20599 ID3D12Resource2 * This,
20600 _In_z_ LPCWSTR Name);
20601
20602 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20603 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20604 ID3D12Resource2 * This,
20605 REFIID riid,
20606 _COM_Outptr_opt_ void **ppvDevice);
20607
20608 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
20609 HRESULT ( STDMETHODCALLTYPE *Map )(
20610 ID3D12Resource2 * This,
20611 UINT Subresource,
20612 _In_opt_ const D3D12_RANGE *pReadRange,
20613 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
20614
20615 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
20616 void ( STDMETHODCALLTYPE *Unmap )(
20617 ID3D12Resource2 * This,
20618 UINT Subresource,
20619 _In_opt_ const D3D12_RANGE *pWrittenRange);
20620
20621 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
20622#if !defined(_WIN32)
20623 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
20624 ID3D12Resource2 * This);
20625
20626#else
20627 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
20628 ID3D12Resource2 * This,
20629 D3D12_RESOURCE_DESC * RetVal);
20630
20631#endif
20632
20633 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
20634 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
20635 ID3D12Resource2 * This);
20636
20637 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
20638 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
20639 ID3D12Resource2 * This,
20640 UINT DstSubresource,
20641 _In_opt_ const D3D12_BOX *pDstBox,
20642 _In_ const void *pSrcData,
20643 UINT SrcRowPitch,
20644 UINT SrcDepthPitch);
20645
20646 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
20647 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
20648 ID3D12Resource2 * This,
20649 _Out_ void *pDstData,
20650 UINT DstRowPitch,
20651 UINT DstDepthPitch,
20652 UINT SrcSubresource,
20653 _In_opt_ const D3D12_BOX *pSrcBox);
20654
20655 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
20656 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
20657 ID3D12Resource2 * This,
20658 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
20659 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
20660
20661 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
20662 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
20663 ID3D12Resource2 * This,
20664 REFIID riid,
20665 _COM_Outptr_opt_ void **ppProtectedSession);
20666
20667 DECLSPEC_XFGVIRT(ID3D12Resource2, GetDesc1)
20668#if !defined(_WIN32)
20669 D3D12_RESOURCE_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )(
20670 ID3D12Resource2 * This);
20671
20672#else
20673 D3D12_RESOURCE_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
20674 ID3D12Resource2 * This,
20675 D3D12_RESOURCE_DESC1 * RetVal);
20676
20677#endif
20678
20679 END_INTERFACE
20680 } ID3D12Resource2Vtbl;
20681
20682 interface ID3D12Resource2
20683 {
20684 CONST_VTBL struct ID3D12Resource2Vtbl *lpVtbl;
20685 };
20686
20687
20688
20689#ifdef COBJMACROS
20690
20691
20692#define ID3D12Resource2_QueryInterface(This,riid,ppvObject) \
20693 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20694
20695#define ID3D12Resource2_AddRef(This) \
20696 ( (This)->lpVtbl -> AddRef(This) )
20697
20698#define ID3D12Resource2_Release(This) \
20699 ( (This)->lpVtbl -> Release(This) )
20700
20701
20702#define ID3D12Resource2_GetPrivateData(This,guid,pDataSize,pData) \
20703 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20704
20705#define ID3D12Resource2_SetPrivateData(This,guid,DataSize,pData) \
20706 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20707
20708#define ID3D12Resource2_SetPrivateDataInterface(This,guid,pData) \
20709 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20710
20711#define ID3D12Resource2_SetName(This,Name) \
20712 ( (This)->lpVtbl -> SetName(This,Name) )
20713
20714
20715#define ID3D12Resource2_GetDevice(This,riid,ppvDevice) \
20716 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20717
20718
20719
20720#define ID3D12Resource2_Map(This,Subresource,pReadRange,ppData) \
20721 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
20722
20723#define ID3D12Resource2_Unmap(This,Subresource,pWrittenRange) \
20724 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
20725#if !defined(_WIN32)
20726
20727#define ID3D12Resource2_GetDesc(This) \
20728 ( (This)->lpVtbl -> GetDesc(This) )
20729#else
20730#define ID3D12Resource2_GetDesc(This,RetVal) \
20731 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
20732#endif
20733
20734#define ID3D12Resource2_GetGPUVirtualAddress(This) \
20735 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
20736
20737#define ID3D12Resource2_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
20738 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
20739
20740#define ID3D12Resource2_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
20741 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
20742
20743#define ID3D12Resource2_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
20744 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
20745
20746
20747#define ID3D12Resource2_GetProtectedResourceSession(This,riid,ppProtectedSession) \
20748 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
20749
20750#if !defined(_WIN32)
20751
20752#define ID3D12Resource2_GetDesc1(This) \
20753 ( (This)->lpVtbl -> GetDesc1(This) )
20754#else
20755#define ID3D12Resource2_GetDesc1(This,RetVal) \
20756 ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
20757#endif
20758
20759#endif /* COBJMACROS */
20760
20761
20762#endif /* C style interface */
20763
20764
20765
20766
20767#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */
20768
20769
20770#ifndef __ID3D12Heap1_INTERFACE_DEFINED__
20771#define __ID3D12Heap1_INTERFACE_DEFINED__
20772
20773/* interface ID3D12Heap1 */
20774/* [unique][local][object][uuid] */
20775
20776
20777EXTERN_C const IID IID_ID3D12Heap1;
20778
20779#if defined(__cplusplus) && !defined(CINTERFACE)
20780
20781 MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D")
20782 ID3D12Heap1 : public ID3D12Heap
20783 {
20784 public:
20785 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
20786 REFIID riid,
20787 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
20788
20789 };
20790
20791
20792#else /* C style interface */
20793
20794 typedef struct ID3D12Heap1Vtbl
20795 {
20796 BEGIN_INTERFACE
20797
20798 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20799 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20800 ID3D12Heap1 * This,
20801 REFIID riid,
20802 _COM_Outptr_ void **ppvObject);
20803
20804 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20805 ULONG ( STDMETHODCALLTYPE *AddRef )(
20806 ID3D12Heap1 * This);
20807
20808 DECLSPEC_XFGVIRT(IUnknown, Release)
20809 ULONG ( STDMETHODCALLTYPE *Release )(
20810 ID3D12Heap1 * This);
20811
20812 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20813 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20814 ID3D12Heap1 * This,
20815 _In_ REFGUID guid,
20816 _Inout_ UINT *pDataSize,
20817 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20818
20819 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20820 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20821 ID3D12Heap1 * This,
20822 _In_ REFGUID guid,
20823 _In_ UINT DataSize,
20824 _In_reads_bytes_opt_( DataSize ) const void *pData);
20825
20826 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20827 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20828 ID3D12Heap1 * This,
20829 _In_ REFGUID guid,
20830 _In_opt_ const IUnknown *pData);
20831
20832 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20833 HRESULT ( STDMETHODCALLTYPE *SetName )(
20834 ID3D12Heap1 * This,
20835 _In_z_ LPCWSTR Name);
20836
20837 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20838 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20839 ID3D12Heap1 * This,
20840 REFIID riid,
20841 _COM_Outptr_opt_ void **ppvDevice);
20842
20843 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
20844#if !defined(_WIN32)
20845 D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
20846 ID3D12Heap1 * This);
20847
20848#else
20849 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
20850 ID3D12Heap1 * This,
20851 D3D12_HEAP_DESC * RetVal);
20852
20853#endif
20854
20855 DECLSPEC_XFGVIRT(ID3D12Heap1, GetProtectedResourceSession)
20856 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
20857 ID3D12Heap1 * This,
20858 REFIID riid,
20859 _COM_Outptr_opt_ void **ppProtectedSession);
20860
20861 END_INTERFACE
20862 } ID3D12Heap1Vtbl;
20863
20864 interface ID3D12Heap1
20865 {
20866 CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl;
20867 };
20868
20869
20870
20871#ifdef COBJMACROS
20872
20873
20874#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \
20875 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20876
20877#define ID3D12Heap1_AddRef(This) \
20878 ( (This)->lpVtbl -> AddRef(This) )
20879
20880#define ID3D12Heap1_Release(This) \
20881 ( (This)->lpVtbl -> Release(This) )
20882
20883
20884#define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \
20885 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20886
20887#define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \
20888 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20889
20890#define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \
20891 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20892
20893#define ID3D12Heap1_SetName(This,Name) \
20894 ( (This)->lpVtbl -> SetName(This,Name) )
20895
20896
20897#define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \
20898 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20899
20900
20901#if !defined(_WIN32)
20902
20903#define ID3D12Heap1_GetDesc(This) \
20904 ( (This)->lpVtbl -> GetDesc(This) )
20905#else
20906#define ID3D12Heap1_GetDesc(This,RetVal) \
20907 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
20908#endif
20909
20910
20911#define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
20912 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
20913
20914#endif /* COBJMACROS */
20915
20916
20917#endif /* C style interface */
20918
20919
20920
20921
20922#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */
20923
20924
20925#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
20926#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
20927
20928/* interface ID3D12GraphicsCommandList3 */
20929/* [unique][local][object][uuid] */
20930
20931
20932EXTERN_C const IID IID_ID3D12GraphicsCommandList3;
20933
20934#if defined(__cplusplus) && !defined(CINTERFACE)
20935
20936 MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D")
20937 ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2
20938 {
20939 public:
20940 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
20941 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
20942
20943 };
20944
20945
20946#else /* C style interface */
20947
20948 typedef struct ID3D12GraphicsCommandList3Vtbl
20949 {
20950 BEGIN_INTERFACE
20951
20952 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20953 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20954 ID3D12GraphicsCommandList3 * This,
20955 REFIID riid,
20956 _COM_Outptr_ void **ppvObject);
20957
20958 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20959 ULONG ( STDMETHODCALLTYPE *AddRef )(
20960 ID3D12GraphicsCommandList3 * This);
20961
20962 DECLSPEC_XFGVIRT(IUnknown, Release)
20963 ULONG ( STDMETHODCALLTYPE *Release )(
20964 ID3D12GraphicsCommandList3 * This);
20965
20966 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20967 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20968 ID3D12GraphicsCommandList3 * This,
20969 _In_ REFGUID guid,
20970 _Inout_ UINT *pDataSize,
20971 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20972
20973 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20974 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20975 ID3D12GraphicsCommandList3 * This,
20976 _In_ REFGUID guid,
20977 _In_ UINT DataSize,
20978 _In_reads_bytes_opt_( DataSize ) const void *pData);
20979
20980 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20981 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20982 ID3D12GraphicsCommandList3 * This,
20983 _In_ REFGUID guid,
20984 _In_opt_ const IUnknown *pData);
20985
20986 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20987 HRESULT ( STDMETHODCALLTYPE *SetName )(
20988 ID3D12GraphicsCommandList3 * This,
20989 _In_z_ LPCWSTR Name);
20990
20991 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20992 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20993 ID3D12GraphicsCommandList3 * This,
20994 REFIID riid,
20995 _COM_Outptr_opt_ void **ppvDevice);
20996
20997 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
20998 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
20999 ID3D12GraphicsCommandList3 * This);
21000
21001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
21002 HRESULT ( STDMETHODCALLTYPE *Close )(
21003 ID3D12GraphicsCommandList3 * This);
21004
21005 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
21006 HRESULT ( STDMETHODCALLTYPE *Reset )(
21007 ID3D12GraphicsCommandList3 * This,
21008 _In_ ID3D12CommandAllocator *pAllocator,
21009 _In_opt_ ID3D12PipelineState *pInitialState);
21010
21011 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
21012 void ( STDMETHODCALLTYPE *ClearState )(
21013 ID3D12GraphicsCommandList3 * This,
21014 _In_opt_ ID3D12PipelineState *pPipelineState);
21015
21016 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
21017 void ( STDMETHODCALLTYPE *DrawInstanced )(
21018 ID3D12GraphicsCommandList3 * This,
21019 _In_ UINT VertexCountPerInstance,
21020 _In_ UINT InstanceCount,
21021 _In_ UINT StartVertexLocation,
21022 _In_ UINT StartInstanceLocation);
21023
21024 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
21025 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
21026 ID3D12GraphicsCommandList3 * This,
21027 _In_ UINT IndexCountPerInstance,
21028 _In_ UINT InstanceCount,
21029 _In_ UINT StartIndexLocation,
21030 _In_ INT BaseVertexLocation,
21031 _In_ UINT StartInstanceLocation);
21032
21033 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
21034 void ( STDMETHODCALLTYPE *Dispatch )(
21035 ID3D12GraphicsCommandList3 * This,
21036 _In_ UINT ThreadGroupCountX,
21037 _In_ UINT ThreadGroupCountY,
21038 _In_ UINT ThreadGroupCountZ);
21039
21040 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
21041 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
21042 ID3D12GraphicsCommandList3 * This,
21043 _In_ ID3D12Resource *pDstBuffer,
21044 UINT64 DstOffset,
21045 _In_ ID3D12Resource *pSrcBuffer,
21046 UINT64 SrcOffset,
21047 UINT64 NumBytes);
21048
21049 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
21050 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
21051 ID3D12GraphicsCommandList3 * This,
21052 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
21053 UINT DstX,
21054 UINT DstY,
21055 UINT DstZ,
21056 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
21057 _In_opt_ const D3D12_BOX *pSrcBox);
21058
21059 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
21060 void ( STDMETHODCALLTYPE *CopyResource )(
21061 ID3D12GraphicsCommandList3 * This,
21062 _In_ ID3D12Resource *pDstResource,
21063 _In_ ID3D12Resource *pSrcResource);
21064
21065 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
21066 void ( STDMETHODCALLTYPE *CopyTiles )(
21067 ID3D12GraphicsCommandList3 * This,
21068 _In_ ID3D12Resource *pTiledResource,
21069 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
21070 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
21071 _In_ ID3D12Resource *pBuffer,
21072 UINT64 BufferStartOffsetInBytes,
21073 D3D12_TILE_COPY_FLAGS Flags);
21074
21075 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
21076 void ( STDMETHODCALLTYPE *ResolveSubresource )(
21077 ID3D12GraphicsCommandList3 * This,
21078 _In_ ID3D12Resource *pDstResource,
21079 _In_ UINT DstSubresource,
21080 _In_ ID3D12Resource *pSrcResource,
21081 _In_ UINT SrcSubresource,
21082 _In_ DXGI_FORMAT Format);
21083
21084 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
21085 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
21086 ID3D12GraphicsCommandList3 * This,
21087 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
21088
21089 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
21090 void ( STDMETHODCALLTYPE *RSSetViewports )(
21091 ID3D12GraphicsCommandList3 * This,
21092 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
21093 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
21094
21095 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
21096 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
21097 ID3D12GraphicsCommandList3 * This,
21098 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
21099 _In_reads_( NumRects) const D3D12_RECT *pRects);
21100
21101 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
21102 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
21103 ID3D12GraphicsCommandList3 * This,
21104 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
21105
21106 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
21107 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
21108 ID3D12GraphicsCommandList3 * This,
21109 _In_ UINT StencilRef);
21110
21111 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
21112 void ( STDMETHODCALLTYPE *SetPipelineState )(
21113 ID3D12GraphicsCommandList3 * This,
21114 _In_ ID3D12PipelineState *pPipelineState);
21115
21116 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
21117 void ( STDMETHODCALLTYPE *ResourceBarrier )(
21118 ID3D12GraphicsCommandList3 * This,
21119 _In_ UINT NumBarriers,
21120 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
21121
21122 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
21123 void ( STDMETHODCALLTYPE *ExecuteBundle )(
21124 ID3D12GraphicsCommandList3 * This,
21125 _In_ ID3D12GraphicsCommandList *pCommandList);
21126
21127 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
21128 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
21129 ID3D12GraphicsCommandList3 * This,
21130 _In_ UINT NumDescriptorHeaps,
21131 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
21132
21133 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
21134 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
21135 ID3D12GraphicsCommandList3 * This,
21136 _In_opt_ ID3D12RootSignature *pRootSignature);
21137
21138 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
21139 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
21140 ID3D12GraphicsCommandList3 * This,
21141 _In_opt_ ID3D12RootSignature *pRootSignature);
21142
21143 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
21144 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
21145 ID3D12GraphicsCommandList3 * This,
21146 _In_ UINT RootParameterIndex,
21147 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
21148
21149 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
21150 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
21151 ID3D12GraphicsCommandList3 * This,
21152 _In_ UINT RootParameterIndex,
21153 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
21154
21155 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
21156 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
21157 ID3D12GraphicsCommandList3 * This,
21158 _In_ UINT RootParameterIndex,
21159 _In_ UINT SrcData,
21160 _In_ UINT DestOffsetIn32BitValues);
21161
21162 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
21163 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
21164 ID3D12GraphicsCommandList3 * This,
21165 _In_ UINT RootParameterIndex,
21166 _In_ UINT SrcData,
21167 _In_ UINT DestOffsetIn32BitValues);
21168
21169 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
21170 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
21171 ID3D12GraphicsCommandList3 * This,
21172 _In_ UINT RootParameterIndex,
21173 _In_ UINT Num32BitValuesToSet,
21174 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
21175 _In_ UINT DestOffsetIn32BitValues);
21176
21177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
21178 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
21179 ID3D12GraphicsCommandList3 * This,
21180 _In_ UINT RootParameterIndex,
21181 _In_ UINT Num32BitValuesToSet,
21182 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
21183 _In_ UINT DestOffsetIn32BitValues);
21184
21185 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
21186 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
21187 ID3D12GraphicsCommandList3 * This,
21188 _In_ UINT RootParameterIndex,
21189 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21190
21191 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
21192 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
21193 ID3D12GraphicsCommandList3 * This,
21194 _In_ UINT RootParameterIndex,
21195 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21196
21197 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
21198 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
21199 ID3D12GraphicsCommandList3 * This,
21200 _In_ UINT RootParameterIndex,
21201 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21202
21203 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
21204 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
21205 ID3D12GraphicsCommandList3 * This,
21206 _In_ UINT RootParameterIndex,
21207 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21208
21209 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
21210 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
21211 ID3D12GraphicsCommandList3 * This,
21212 _In_ UINT RootParameterIndex,
21213 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21214
21215 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
21216 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
21217 ID3D12GraphicsCommandList3 * This,
21218 _In_ UINT RootParameterIndex,
21219 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21220
21221 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
21222 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
21223 ID3D12GraphicsCommandList3 * This,
21224 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
21225
21226 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
21227 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
21228 ID3D12GraphicsCommandList3 * This,
21229 _In_ UINT StartSlot,
21230 _In_ UINT NumViews,
21231 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
21232
21233 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
21234 void ( STDMETHODCALLTYPE *SOSetTargets )(
21235 ID3D12GraphicsCommandList3 * This,
21236 _In_ UINT StartSlot,
21237 _In_ UINT NumViews,
21238 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
21239
21240 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
21241 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
21242 ID3D12GraphicsCommandList3 * This,
21243 _In_ UINT NumRenderTargetDescriptors,
21244 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
21245 _In_ BOOL RTsSingleHandleToDescriptorRange,
21246 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
21247
21248 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
21249 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
21250 ID3D12GraphicsCommandList3 * This,
21251 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
21252 _In_ D3D12_CLEAR_FLAGS ClearFlags,
21253 _In_ FLOAT Depth,
21254 _In_ UINT8 Stencil,
21255 _In_ UINT NumRects,
21256 _In_reads_(NumRects) const D3D12_RECT *pRects);
21257
21258 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
21259 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
21260 ID3D12GraphicsCommandList3 * This,
21261 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
21262 _In_ const FLOAT ColorRGBA[ 4 ],
21263 _In_ UINT NumRects,
21264 _In_reads_(NumRects) const D3D12_RECT *pRects);
21265
21266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
21267 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
21268 ID3D12GraphicsCommandList3 * This,
21269 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
21270 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
21271 _In_ ID3D12Resource *pResource,
21272 _In_ const UINT Values[ 4 ],
21273 _In_ UINT NumRects,
21274 _In_reads_(NumRects) const D3D12_RECT *pRects);
21275
21276 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
21277 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
21278 ID3D12GraphicsCommandList3 * This,
21279 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
21280 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
21281 _In_ ID3D12Resource *pResource,
21282 _In_ const FLOAT Values[ 4 ],
21283 _In_ UINT NumRects,
21284 _In_reads_(NumRects) const D3D12_RECT *pRects);
21285
21286 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
21287 void ( STDMETHODCALLTYPE *DiscardResource )(
21288 ID3D12GraphicsCommandList3 * This,
21289 _In_ ID3D12Resource *pResource,
21290 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
21291
21292 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
21293 void ( STDMETHODCALLTYPE *BeginQuery )(
21294 ID3D12GraphicsCommandList3 * This,
21295 _In_ ID3D12QueryHeap *pQueryHeap,
21296 _In_ D3D12_QUERY_TYPE Type,
21297 _In_ UINT Index);
21298
21299 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
21300 void ( STDMETHODCALLTYPE *EndQuery )(
21301 ID3D12GraphicsCommandList3 * This,
21302 _In_ ID3D12QueryHeap *pQueryHeap,
21303 _In_ D3D12_QUERY_TYPE Type,
21304 _In_ UINT Index);
21305
21306 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
21307 void ( STDMETHODCALLTYPE *ResolveQueryData )(
21308 ID3D12GraphicsCommandList3 * This,
21309 _In_ ID3D12QueryHeap *pQueryHeap,
21310 _In_ D3D12_QUERY_TYPE Type,
21311 _In_ UINT StartIndex,
21312 _In_ UINT NumQueries,
21313 _In_ ID3D12Resource *pDestinationBuffer,
21314 _In_ UINT64 AlignedDestinationBufferOffset);
21315
21316 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
21317 void ( STDMETHODCALLTYPE *SetPredication )(
21318 ID3D12GraphicsCommandList3 * This,
21319 _In_opt_ ID3D12Resource *pBuffer,
21320 _In_ UINT64 AlignedBufferOffset,
21321 _In_ D3D12_PREDICATION_OP Operation);
21322
21323 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
21324 void ( STDMETHODCALLTYPE *SetMarker )(
21325 ID3D12GraphicsCommandList3 * This,
21326 UINT Metadata,
21327 _In_reads_bytes_opt_(Size) const void *pData,
21328 UINT Size);
21329
21330 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
21331 void ( STDMETHODCALLTYPE *BeginEvent )(
21332 ID3D12GraphicsCommandList3 * This,
21333 UINT Metadata,
21334 _In_reads_bytes_opt_(Size) const void *pData,
21335 UINT Size);
21336
21337 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
21338 void ( STDMETHODCALLTYPE *EndEvent )(
21339 ID3D12GraphicsCommandList3 * This);
21340
21341 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
21342 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
21343 ID3D12GraphicsCommandList3 * This,
21344 _In_ ID3D12CommandSignature *pCommandSignature,
21345 _In_ UINT MaxCommandCount,
21346 _In_ ID3D12Resource *pArgumentBuffer,
21347 _In_ UINT64 ArgumentBufferOffset,
21348 _In_opt_ ID3D12Resource *pCountBuffer,
21349 _In_ UINT64 CountBufferOffset);
21350
21351 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
21352 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
21353 ID3D12GraphicsCommandList3 * This,
21354 _In_ ID3D12Resource *pDstBuffer,
21355 UINT64 DstOffset,
21356 _In_ ID3D12Resource *pSrcBuffer,
21357 UINT64 SrcOffset,
21358 UINT Dependencies,
21359 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
21360 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
21361
21362 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
21363 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
21364 ID3D12GraphicsCommandList3 * This,
21365 _In_ ID3D12Resource *pDstBuffer,
21366 UINT64 DstOffset,
21367 _In_ ID3D12Resource *pSrcBuffer,
21368 UINT64 SrcOffset,
21369 UINT Dependencies,
21370 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
21371 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
21372
21373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
21374 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
21375 ID3D12GraphicsCommandList3 * This,
21376 _In_ FLOAT Min,
21377 _In_ FLOAT Max);
21378
21379 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
21380 void ( STDMETHODCALLTYPE *SetSamplePositions )(
21381 ID3D12GraphicsCommandList3 * This,
21382 _In_ UINT NumSamplesPerPixel,
21383 _In_ UINT NumPixels,
21384 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
21385
21386 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
21387 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
21388 ID3D12GraphicsCommandList3 * This,
21389 _In_ ID3D12Resource *pDstResource,
21390 _In_ UINT DstSubresource,
21391 _In_ UINT DstX,
21392 _In_ UINT DstY,
21393 _In_ ID3D12Resource *pSrcResource,
21394 _In_ UINT SrcSubresource,
21395 _In_opt_ D3D12_RECT *pSrcRect,
21396 _In_ DXGI_FORMAT Format,
21397 _In_ D3D12_RESOLVE_MODE ResolveMode);
21398
21399 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
21400 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
21401 ID3D12GraphicsCommandList3 * This,
21402 _In_ UINT Mask);
21403
21404 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
21405 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
21406 ID3D12GraphicsCommandList3 * This,
21407 UINT Count,
21408 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
21409 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
21410
21411 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
21412 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
21413 ID3D12GraphicsCommandList3 * This,
21414 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
21415
21416 END_INTERFACE
21417 } ID3D12GraphicsCommandList3Vtbl;
21418
21419 interface ID3D12GraphicsCommandList3
21420 {
21421 CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl;
21422 };
21423
21424
21425
21426#ifdef COBJMACROS
21427
21428
21429#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \
21430 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
21431
21432#define ID3D12GraphicsCommandList3_AddRef(This) \
21433 ( (This)->lpVtbl -> AddRef(This) )
21434
21435#define ID3D12GraphicsCommandList3_Release(This) \
21436 ( (This)->lpVtbl -> Release(This) )
21437
21438
21439#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
21440 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
21441
21442#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \
21443 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
21444
21445#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \
21446 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
21447
21448#define ID3D12GraphicsCommandList3_SetName(This,Name) \
21449 ( (This)->lpVtbl -> SetName(This,Name) )
21450
21451
21452#define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \
21453 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
21454
21455
21456#define ID3D12GraphicsCommandList3_GetType(This) \
21457 ( (This)->lpVtbl -> GetType(This) )
21458
21459
21460#define ID3D12GraphicsCommandList3_Close(This) \
21461 ( (This)->lpVtbl -> Close(This) )
21462
21463#define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \
21464 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
21465
21466#define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \
21467 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
21468
21469#define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
21470 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
21471
21472#define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
21473 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
21474
21475#define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
21476 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
21477
21478#define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
21479 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
21480
21481#define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
21482 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
21483
21484#define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \
21485 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
21486
21487#define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
21488 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
21489
21490#define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
21491 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
21492
21493#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \
21494 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
21495
21496#define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \
21497 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
21498
21499#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \
21500 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
21501
21502#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \
21503 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
21504
21505#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \
21506 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
21507
21508#define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \
21509 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
21510
21511#define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
21512 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
21513
21514#define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \
21515 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
21516
21517#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
21518 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
21519
21520#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \
21521 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
21522
21523#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \
21524 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
21525
21526#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
21527 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
21528
21529#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
21530 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
21531
21532#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
21533 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
21534
21535#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
21536 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
21537
21538#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
21539 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
21540
21541#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
21542 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
21543
21544#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
21545 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
21546
21547#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
21548 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
21549
21550#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
21551 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
21552
21553#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
21554 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
21555
21556#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
21557 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
21558
21559#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
21560 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
21561
21562#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \
21563 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
21564
21565#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
21566 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
21567
21568#define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \
21569 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
21570
21571#define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
21572 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
21573
21574#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
21575 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
21576
21577#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
21578 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
21579
21580#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
21581 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
21582
21583#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
21584 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
21585
21586#define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \
21587 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
21588
21589#define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
21590 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
21591
21592#define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
21593 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
21594
21595#define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
21596 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
21597
21598#define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
21599 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
21600
21601#define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \
21602 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
21603
21604#define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \
21605 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
21606
21607#define ID3D12GraphicsCommandList3_EndEvent(This) \
21608 ( (This)->lpVtbl -> EndEvent(This) )
21609
21610#define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
21611 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
21612
21613
21614#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
21615 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
21616
21617#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
21618 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
21619
21620#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \
21621 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
21622
21623#define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
21624 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
21625
21626#define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
21627 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
21628
21629#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \
21630 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
21631
21632
21633#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
21634 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
21635
21636
21637#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
21638 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
21639
21640#endif /* COBJMACROS */
21641
21642
21643#endif /* C style interface */
21644
21645
21646
21647
21648#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */
21649
21650
21651/* interface __MIDL_itf_d3d12_0000_0054 */
21652/* [local] */
21653
21654typedef
21655enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE
21656 {
21657 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0,
21658 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) ,
21659 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) ,
21660 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 ) ,
21661 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS + 1 ) ,
21662 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) ,
21663 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 )
21664 } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
21665
21666typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
21667 {
21668 D3D12_CLEAR_VALUE ClearValue;
21669 } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
21670
21671typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS
21672 {
21673 UINT AdditionalWidth;
21674 UINT AdditionalHeight;
21675 } D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS;
21676
21677typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS
21678 {
21679 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
21680 union
21681 {
21682 D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
21683 D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal;
21684 } ;
21685 } D3D12_RENDER_PASS_BEGINNING_ACCESS;
21686
21687typedef
21688enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE
21689 {
21690 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0,
21691 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) ,
21692 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) ,
21693 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 ) ,
21694 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS + 1 ) ,
21695 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) ,
21696 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 )
21697 } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
21698
21699typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS
21700 {
21701 UINT SrcSubresource;
21702 UINT DstSubresource;
21703 UINT DstX;
21704 UINT DstY;
21705 D3D12_RECT SrcRect;
21706 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
21707
21708typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
21709 {
21710 ID3D12Resource *pSrcResource;
21711 ID3D12Resource *pDstResource;
21712 UINT SubresourceCount;
21713 _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
21714 DXGI_FORMAT Format;
21715 D3D12_RESOLVE_MODE ResolveMode;
21716 BOOL PreserveResolveSource;
21717 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
21718
21719typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS
21720 {
21721 UINT AdditionalWidth;
21722 UINT AdditionalHeight;
21723 } D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS;
21724
21725typedef struct D3D12_RENDER_PASS_ENDING_ACCESS
21726 {
21727 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
21728 union
21729 {
21730 D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
21731 D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal;
21732 } ;
21733 } D3D12_RENDER_PASS_ENDING_ACCESS;
21734
21735typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC
21736 {
21737 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
21738 D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
21739 D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
21740 } D3D12_RENDER_PASS_RENDER_TARGET_DESC;
21741
21742typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC
21743 {
21744 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
21745 D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
21746 D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
21747 D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
21748 D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
21749 } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
21750
21751typedef
21752enum D3D12_RENDER_PASS_FLAGS
21753 {
21754 D3D12_RENDER_PASS_FLAG_NONE = 0,
21755 D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
21756 D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
21757 D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4,
21758 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8,
21759 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10
21760 } D3D12_RENDER_PASS_FLAGS;
21761
21762DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS )
21763
21764
21765extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec;
21766extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec;
21767
21768#ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__
21769#define __ID3D12MetaCommand_INTERFACE_DEFINED__
21770
21771/* interface ID3D12MetaCommand */
21772/* [unique][local][object][uuid] */
21773
21774
21775EXTERN_C const IID IID_ID3D12MetaCommand;
21776
21777#if defined(__cplusplus) && !defined(CINTERFACE)
21778
21779 MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570")
21780 ID3D12MetaCommand : public ID3D12Pageable
21781 {
21782 public:
21783 virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize(
21784 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
21785 _In_ UINT ParameterIndex) = 0;
21786
21787 };
21788
21789
21790#else /* C style interface */
21791
21792 typedef struct ID3D12MetaCommandVtbl
21793 {
21794 BEGIN_INTERFACE
21795
21796 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
21797 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
21798 ID3D12MetaCommand * This,
21799 REFIID riid,
21800 _COM_Outptr_ void **ppvObject);
21801
21802 DECLSPEC_XFGVIRT(IUnknown, AddRef)
21803 ULONG ( STDMETHODCALLTYPE *AddRef )(
21804 ID3D12MetaCommand * This);
21805
21806 DECLSPEC_XFGVIRT(IUnknown, Release)
21807 ULONG ( STDMETHODCALLTYPE *Release )(
21808 ID3D12MetaCommand * This);
21809
21810 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
21811 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
21812 ID3D12MetaCommand * This,
21813 _In_ REFGUID guid,
21814 _Inout_ UINT *pDataSize,
21815 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
21816
21817 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
21818 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
21819 ID3D12MetaCommand * This,
21820 _In_ REFGUID guid,
21821 _In_ UINT DataSize,
21822 _In_reads_bytes_opt_( DataSize ) const void *pData);
21823
21824 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
21825 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
21826 ID3D12MetaCommand * This,
21827 _In_ REFGUID guid,
21828 _In_opt_ const IUnknown *pData);
21829
21830 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
21831 HRESULT ( STDMETHODCALLTYPE *SetName )(
21832 ID3D12MetaCommand * This,
21833 _In_z_ LPCWSTR Name);
21834
21835 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
21836 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
21837 ID3D12MetaCommand * This,
21838 REFIID riid,
21839 _COM_Outptr_opt_ void **ppvDevice);
21840
21841 DECLSPEC_XFGVIRT(ID3D12MetaCommand, GetRequiredParameterResourceSize)
21842 UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )(
21843 ID3D12MetaCommand * This,
21844 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
21845 _In_ UINT ParameterIndex);
21846
21847 END_INTERFACE
21848 } ID3D12MetaCommandVtbl;
21849
21850 interface ID3D12MetaCommand
21851 {
21852 CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl;
21853 };
21854
21855
21856
21857#ifdef COBJMACROS
21858
21859
21860#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \
21861 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
21862
21863#define ID3D12MetaCommand_AddRef(This) \
21864 ( (This)->lpVtbl -> AddRef(This) )
21865
21866#define ID3D12MetaCommand_Release(This) \
21867 ( (This)->lpVtbl -> Release(This) )
21868
21869
21870#define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \
21871 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
21872
21873#define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \
21874 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
21875
21876#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \
21877 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
21878
21879#define ID3D12MetaCommand_SetName(This,Name) \
21880 ( (This)->lpVtbl -> SetName(This,Name) )
21881
21882
21883#define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \
21884 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
21885
21886
21887
21888#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \
21889 ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) )
21890
21891#endif /* COBJMACROS */
21892
21893
21894#endif /* C style interface */
21895
21896
21897
21898
21899#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */
21900
21901
21902/* interface __MIDL_itf_d3d12_0000_0055 */
21903/* [local] */
21904
21905typedef struct D3D12_DISPATCH_RAYS_DESC
21906 {
21907 D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
21908 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
21909 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
21910 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
21911 UINT Width;
21912 UINT Height;
21913 UINT Depth;
21914 } D3D12_DISPATCH_RAYS_DESC;
21915
21916typedef
21917enum D3D12_SET_WORK_GRAPH_FLAGS
21918 {
21919 D3D12_SET_WORK_GRAPH_FLAG_NONE = 0,
21920 D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1
21921 } D3D12_SET_WORK_GRAPH_FLAGS;
21922
21923DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS )
21924typedef struct D3D12_SET_WORK_GRAPH_DESC
21925 {
21926 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
21927 D3D12_SET_WORK_GRAPH_FLAGS Flags;
21928 D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory;
21929 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable;
21930 } D3D12_SET_WORK_GRAPH_DESC;
21931
21932typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC
21933 {
21934 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
21935 } D3D12_SET_RAYTRACING_PIPELINE_DESC;
21936
21937typedef struct D3D12_SET_GENERIC_PIPELINE_DESC
21938 {
21939 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
21940 } D3D12_SET_GENERIC_PIPELINE_DESC;
21941
21942typedef
21943enum D3D12_PROGRAM_TYPE
21944 {
21945 D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1,
21946 D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4,
21947 D3D12_PROGRAM_TYPE_WORK_GRAPH = 5
21948 } D3D12_PROGRAM_TYPE;
21949
21950typedef struct D3D12_SET_PROGRAM_DESC
21951 {
21952 D3D12_PROGRAM_TYPE Type;
21953 union
21954 {
21955 D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline;
21956 D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline;
21957 D3D12_SET_WORK_GRAPH_DESC WorkGraph;
21958 } ;
21959 } D3D12_SET_PROGRAM_DESC;
21960
21961typedef
21962enum D3D12_DISPATCH_MODE
21963 {
21964 D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0,
21965 D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1,
21966 D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2,
21967 D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3
21968 } D3D12_DISPATCH_MODE;
21969
21970typedef struct D3D12_NODE_CPU_INPUT
21971 {
21972 UINT EntrypointIndex;
21973 UINT NumRecords;
21974 const void *pRecords;
21975 UINT64 RecordStrideInBytes;
21976 } D3D12_NODE_CPU_INPUT;
21977
21978typedef struct D3D12_NODE_GPU_INPUT
21979 {
21980 UINT EntrypointIndex;
21981 UINT NumRecords;
21982 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records;
21983 } D3D12_NODE_GPU_INPUT;
21984
21985typedef struct D3D12_MULTI_NODE_CPU_INPUT
21986 {
21987 UINT NumNodeInputs;
21988 const D3D12_NODE_CPU_INPUT *pNodeInputs;
21989 UINT64 NodeInputStrideInBytes;
21990 } D3D12_MULTI_NODE_CPU_INPUT;
21991
21992typedef struct D3D12_MULTI_NODE_GPU_INPUT
21993 {
21994 UINT NumNodeInputs;
21995 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs;
21996 } D3D12_MULTI_NODE_GPU_INPUT;
21997
21998typedef struct D3D12_DISPATCH_GRAPH_DESC
21999 {
22000 D3D12_DISPATCH_MODE Mode;
22001 union
22002 {
22003 D3D12_NODE_CPU_INPUT NodeCPUInput;
22004 D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput;
22005 D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput;
22006 D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput;
22007 } ;
22008 } D3D12_DISPATCH_GRAPH_DESC;
22009
22010
22011
22012extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_c_ifspec;
22013extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_s_ifspec;
22014
22015#ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
22016#define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
22017
22018/* interface ID3D12GraphicsCommandList4 */
22019/* [unique][local][object][uuid] */
22020
22021
22022EXTERN_C const IID IID_ID3D12GraphicsCommandList4;
22023
22024#if defined(__cplusplus) && !defined(CINTERFACE)
22025
22026 MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874")
22027 ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3
22028 {
22029 public:
22030 virtual void STDMETHODCALLTYPE BeginRenderPass(
22031 _In_ UINT NumRenderTargets,
22032 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
22033 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
22034 D3D12_RENDER_PASS_FLAGS Flags) = 0;
22035
22036 virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0;
22037
22038 virtual void STDMETHODCALLTYPE InitializeMetaCommand(
22039 _In_ ID3D12MetaCommand *pMetaCommand,
22040 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
22041 _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0;
22042
22043 virtual void STDMETHODCALLTYPE ExecuteMetaCommand(
22044 _In_ ID3D12MetaCommand *pMetaCommand,
22045 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
22046 _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0;
22047
22048 virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure(
22049 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
22050 _In_ UINT NumPostbuildInfoDescs,
22051 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0;
22052
22053 virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo(
22054 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
22055 _In_ UINT NumSourceAccelerationStructures,
22056 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0;
22057
22058 virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure(
22059 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
22060 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
22061 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0;
22062
22063 virtual void STDMETHODCALLTYPE SetPipelineState1(
22064 _In_ ID3D12StateObject *pStateObject) = 0;
22065
22066 virtual void STDMETHODCALLTYPE DispatchRays(
22067 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0;
22068
22069 };
22070
22071
22072#else /* C style interface */
22073
22074 typedef struct ID3D12GraphicsCommandList4Vtbl
22075 {
22076 BEGIN_INTERFACE
22077
22078 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
22079 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
22080 ID3D12GraphicsCommandList4 * This,
22081 REFIID riid,
22082 _COM_Outptr_ void **ppvObject);
22083
22084 DECLSPEC_XFGVIRT(IUnknown, AddRef)
22085 ULONG ( STDMETHODCALLTYPE *AddRef )(
22086 ID3D12GraphicsCommandList4 * This);
22087
22088 DECLSPEC_XFGVIRT(IUnknown, Release)
22089 ULONG ( STDMETHODCALLTYPE *Release )(
22090 ID3D12GraphicsCommandList4 * This);
22091
22092 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
22093 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
22094 ID3D12GraphicsCommandList4 * This,
22095 _In_ REFGUID guid,
22096 _Inout_ UINT *pDataSize,
22097 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
22098
22099 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
22100 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
22101 ID3D12GraphicsCommandList4 * This,
22102 _In_ REFGUID guid,
22103 _In_ UINT DataSize,
22104 _In_reads_bytes_opt_( DataSize ) const void *pData);
22105
22106 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
22107 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
22108 ID3D12GraphicsCommandList4 * This,
22109 _In_ REFGUID guid,
22110 _In_opt_ const IUnknown *pData);
22111
22112 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
22113 HRESULT ( STDMETHODCALLTYPE *SetName )(
22114 ID3D12GraphicsCommandList4 * This,
22115 _In_z_ LPCWSTR Name);
22116
22117 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
22118 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
22119 ID3D12GraphicsCommandList4 * This,
22120 REFIID riid,
22121 _COM_Outptr_opt_ void **ppvDevice);
22122
22123 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
22124 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
22125 ID3D12GraphicsCommandList4 * This);
22126
22127 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
22128 HRESULT ( STDMETHODCALLTYPE *Close )(
22129 ID3D12GraphicsCommandList4 * This);
22130
22131 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
22132 HRESULT ( STDMETHODCALLTYPE *Reset )(
22133 ID3D12GraphicsCommandList4 * This,
22134 _In_ ID3D12CommandAllocator *pAllocator,
22135 _In_opt_ ID3D12PipelineState *pInitialState);
22136
22137 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
22138 void ( STDMETHODCALLTYPE *ClearState )(
22139 ID3D12GraphicsCommandList4 * This,
22140 _In_opt_ ID3D12PipelineState *pPipelineState);
22141
22142 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
22143 void ( STDMETHODCALLTYPE *DrawInstanced )(
22144 ID3D12GraphicsCommandList4 * This,
22145 _In_ UINT VertexCountPerInstance,
22146 _In_ UINT InstanceCount,
22147 _In_ UINT StartVertexLocation,
22148 _In_ UINT StartInstanceLocation);
22149
22150 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
22151 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
22152 ID3D12GraphicsCommandList4 * This,
22153 _In_ UINT IndexCountPerInstance,
22154 _In_ UINT InstanceCount,
22155 _In_ UINT StartIndexLocation,
22156 _In_ INT BaseVertexLocation,
22157 _In_ UINT StartInstanceLocation);
22158
22159 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
22160 void ( STDMETHODCALLTYPE *Dispatch )(
22161 ID3D12GraphicsCommandList4 * This,
22162 _In_ UINT ThreadGroupCountX,
22163 _In_ UINT ThreadGroupCountY,
22164 _In_ UINT ThreadGroupCountZ);
22165
22166 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
22167 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
22168 ID3D12GraphicsCommandList4 * This,
22169 _In_ ID3D12Resource *pDstBuffer,
22170 UINT64 DstOffset,
22171 _In_ ID3D12Resource *pSrcBuffer,
22172 UINT64 SrcOffset,
22173 UINT64 NumBytes);
22174
22175 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
22176 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
22177 ID3D12GraphicsCommandList4 * This,
22178 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
22179 UINT DstX,
22180 UINT DstY,
22181 UINT DstZ,
22182 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
22183 _In_opt_ const D3D12_BOX *pSrcBox);
22184
22185 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
22186 void ( STDMETHODCALLTYPE *CopyResource )(
22187 ID3D12GraphicsCommandList4 * This,
22188 _In_ ID3D12Resource *pDstResource,
22189 _In_ ID3D12Resource *pSrcResource);
22190
22191 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
22192 void ( STDMETHODCALLTYPE *CopyTiles )(
22193 ID3D12GraphicsCommandList4 * This,
22194 _In_ ID3D12Resource *pTiledResource,
22195 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
22196 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
22197 _In_ ID3D12Resource *pBuffer,
22198 UINT64 BufferStartOffsetInBytes,
22199 D3D12_TILE_COPY_FLAGS Flags);
22200
22201 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
22202 void ( STDMETHODCALLTYPE *ResolveSubresource )(
22203 ID3D12GraphicsCommandList4 * This,
22204 _In_ ID3D12Resource *pDstResource,
22205 _In_ UINT DstSubresource,
22206 _In_ ID3D12Resource *pSrcResource,
22207 _In_ UINT SrcSubresource,
22208 _In_ DXGI_FORMAT Format);
22209
22210 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
22211 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
22212 ID3D12GraphicsCommandList4 * This,
22213 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
22214
22215 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
22216 void ( STDMETHODCALLTYPE *RSSetViewports )(
22217 ID3D12GraphicsCommandList4 * This,
22218 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
22219 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
22220
22221 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
22222 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
22223 ID3D12GraphicsCommandList4 * This,
22224 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
22225 _In_reads_( NumRects) const D3D12_RECT *pRects);
22226
22227 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
22228 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
22229 ID3D12GraphicsCommandList4 * This,
22230 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
22231
22232 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
22233 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
22234 ID3D12GraphicsCommandList4 * This,
22235 _In_ UINT StencilRef);
22236
22237 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
22238 void ( STDMETHODCALLTYPE *SetPipelineState )(
22239 ID3D12GraphicsCommandList4 * This,
22240 _In_ ID3D12PipelineState *pPipelineState);
22241
22242 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
22243 void ( STDMETHODCALLTYPE *ResourceBarrier )(
22244 ID3D12GraphicsCommandList4 * This,
22245 _In_ UINT NumBarriers,
22246 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
22247
22248 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
22249 void ( STDMETHODCALLTYPE *ExecuteBundle )(
22250 ID3D12GraphicsCommandList4 * This,
22251 _In_ ID3D12GraphicsCommandList *pCommandList);
22252
22253 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
22254 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
22255 ID3D12GraphicsCommandList4 * This,
22256 _In_ UINT NumDescriptorHeaps,
22257 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
22258
22259 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
22260 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
22261 ID3D12GraphicsCommandList4 * This,
22262 _In_opt_ ID3D12RootSignature *pRootSignature);
22263
22264 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
22265 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
22266 ID3D12GraphicsCommandList4 * This,
22267 _In_opt_ ID3D12RootSignature *pRootSignature);
22268
22269 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
22270 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
22271 ID3D12GraphicsCommandList4 * This,
22272 _In_ UINT RootParameterIndex,
22273 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
22274
22275 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
22276 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
22277 ID3D12GraphicsCommandList4 * This,
22278 _In_ UINT RootParameterIndex,
22279 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
22280
22281 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
22282 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
22283 ID3D12GraphicsCommandList4 * This,
22284 _In_ UINT RootParameterIndex,
22285 _In_ UINT SrcData,
22286 _In_ UINT DestOffsetIn32BitValues);
22287
22288 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
22289 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
22290 ID3D12GraphicsCommandList4 * This,
22291 _In_ UINT RootParameterIndex,
22292 _In_ UINT SrcData,
22293 _In_ UINT DestOffsetIn32BitValues);
22294
22295 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
22296 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
22297 ID3D12GraphicsCommandList4 * This,
22298 _In_ UINT RootParameterIndex,
22299 _In_ UINT Num32BitValuesToSet,
22300 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
22301 _In_ UINT DestOffsetIn32BitValues);
22302
22303 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
22304 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
22305 ID3D12GraphicsCommandList4 * This,
22306 _In_ UINT RootParameterIndex,
22307 _In_ UINT Num32BitValuesToSet,
22308 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
22309 _In_ UINT DestOffsetIn32BitValues);
22310
22311 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
22312 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
22313 ID3D12GraphicsCommandList4 * This,
22314 _In_ UINT RootParameterIndex,
22315 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22316
22317 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
22318 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
22319 ID3D12GraphicsCommandList4 * This,
22320 _In_ UINT RootParameterIndex,
22321 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22322
22323 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
22324 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
22325 ID3D12GraphicsCommandList4 * This,
22326 _In_ UINT RootParameterIndex,
22327 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22328
22329 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
22330 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
22331 ID3D12GraphicsCommandList4 * This,
22332 _In_ UINT RootParameterIndex,
22333 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22334
22335 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
22336 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
22337 ID3D12GraphicsCommandList4 * This,
22338 _In_ UINT RootParameterIndex,
22339 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22340
22341 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
22342 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
22343 ID3D12GraphicsCommandList4 * This,
22344 _In_ UINT RootParameterIndex,
22345 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22346
22347 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
22348 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
22349 ID3D12GraphicsCommandList4 * This,
22350 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
22351
22352 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
22353 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
22354 ID3D12GraphicsCommandList4 * This,
22355 _In_ UINT StartSlot,
22356 _In_ UINT NumViews,
22357 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
22358
22359 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
22360 void ( STDMETHODCALLTYPE *SOSetTargets )(
22361 ID3D12GraphicsCommandList4 * This,
22362 _In_ UINT StartSlot,
22363 _In_ UINT NumViews,
22364 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
22365
22366 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
22367 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
22368 ID3D12GraphicsCommandList4 * This,
22369 _In_ UINT NumRenderTargetDescriptors,
22370 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
22371 _In_ BOOL RTsSingleHandleToDescriptorRange,
22372 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
22373
22374 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
22375 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
22376 ID3D12GraphicsCommandList4 * This,
22377 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
22378 _In_ D3D12_CLEAR_FLAGS ClearFlags,
22379 _In_ FLOAT Depth,
22380 _In_ UINT8 Stencil,
22381 _In_ UINT NumRects,
22382 _In_reads_(NumRects) const D3D12_RECT *pRects);
22383
22384 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
22385 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
22386 ID3D12GraphicsCommandList4 * This,
22387 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
22388 _In_ const FLOAT ColorRGBA[ 4 ],
22389 _In_ UINT NumRects,
22390 _In_reads_(NumRects) const D3D12_RECT *pRects);
22391
22392 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
22393 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
22394 ID3D12GraphicsCommandList4 * This,
22395 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
22396 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
22397 _In_ ID3D12Resource *pResource,
22398 _In_ const UINT Values[ 4 ],
22399 _In_ UINT NumRects,
22400 _In_reads_(NumRects) const D3D12_RECT *pRects);
22401
22402 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
22403 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
22404 ID3D12GraphicsCommandList4 * This,
22405 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
22406 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
22407 _In_ ID3D12Resource *pResource,
22408 _In_ const FLOAT Values[ 4 ],
22409 _In_ UINT NumRects,
22410 _In_reads_(NumRects) const D3D12_RECT *pRects);
22411
22412 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
22413 void ( STDMETHODCALLTYPE *DiscardResource )(
22414 ID3D12GraphicsCommandList4 * This,
22415 _In_ ID3D12Resource *pResource,
22416 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
22417
22418 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
22419 void ( STDMETHODCALLTYPE *BeginQuery )(
22420 ID3D12GraphicsCommandList4 * This,
22421 _In_ ID3D12QueryHeap *pQueryHeap,
22422 _In_ D3D12_QUERY_TYPE Type,
22423 _In_ UINT Index);
22424
22425 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
22426 void ( STDMETHODCALLTYPE *EndQuery )(
22427 ID3D12GraphicsCommandList4 * This,
22428 _In_ ID3D12QueryHeap *pQueryHeap,
22429 _In_ D3D12_QUERY_TYPE Type,
22430 _In_ UINT Index);
22431
22432 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
22433 void ( STDMETHODCALLTYPE *ResolveQueryData )(
22434 ID3D12GraphicsCommandList4 * This,
22435 _In_ ID3D12QueryHeap *pQueryHeap,
22436 _In_ D3D12_QUERY_TYPE Type,
22437 _In_ UINT StartIndex,
22438 _In_ UINT NumQueries,
22439 _In_ ID3D12Resource *pDestinationBuffer,
22440 _In_ UINT64 AlignedDestinationBufferOffset);
22441
22442 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
22443 void ( STDMETHODCALLTYPE *SetPredication )(
22444 ID3D12GraphicsCommandList4 * This,
22445 _In_opt_ ID3D12Resource *pBuffer,
22446 _In_ UINT64 AlignedBufferOffset,
22447 _In_ D3D12_PREDICATION_OP Operation);
22448
22449 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
22450 void ( STDMETHODCALLTYPE *SetMarker )(
22451 ID3D12GraphicsCommandList4 * This,
22452 UINT Metadata,
22453 _In_reads_bytes_opt_(Size) const void *pData,
22454 UINT Size);
22455
22456 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
22457 void ( STDMETHODCALLTYPE *BeginEvent )(
22458 ID3D12GraphicsCommandList4 * This,
22459 UINT Metadata,
22460 _In_reads_bytes_opt_(Size) const void *pData,
22461 UINT Size);
22462
22463 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
22464 void ( STDMETHODCALLTYPE *EndEvent )(
22465 ID3D12GraphicsCommandList4 * This);
22466
22467 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
22468 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
22469 ID3D12GraphicsCommandList4 * This,
22470 _In_ ID3D12CommandSignature *pCommandSignature,
22471 _In_ UINT MaxCommandCount,
22472 _In_ ID3D12Resource *pArgumentBuffer,
22473 _In_ UINT64 ArgumentBufferOffset,
22474 _In_opt_ ID3D12Resource *pCountBuffer,
22475 _In_ UINT64 CountBufferOffset);
22476
22477 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
22478 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
22479 ID3D12GraphicsCommandList4 * This,
22480 _In_ ID3D12Resource *pDstBuffer,
22481 UINT64 DstOffset,
22482 _In_ ID3D12Resource *pSrcBuffer,
22483 UINT64 SrcOffset,
22484 UINT Dependencies,
22485 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
22486 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
22487
22488 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
22489 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
22490 ID3D12GraphicsCommandList4 * This,
22491 _In_ ID3D12Resource *pDstBuffer,
22492 UINT64 DstOffset,
22493 _In_ ID3D12Resource *pSrcBuffer,
22494 UINT64 SrcOffset,
22495 UINT Dependencies,
22496 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
22497 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
22498
22499 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
22500 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
22501 ID3D12GraphicsCommandList4 * This,
22502 _In_ FLOAT Min,
22503 _In_ FLOAT Max);
22504
22505 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
22506 void ( STDMETHODCALLTYPE *SetSamplePositions )(
22507 ID3D12GraphicsCommandList4 * This,
22508 _In_ UINT NumSamplesPerPixel,
22509 _In_ UINT NumPixels,
22510 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
22511
22512 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
22513 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
22514 ID3D12GraphicsCommandList4 * This,
22515 _In_ ID3D12Resource *pDstResource,
22516 _In_ UINT DstSubresource,
22517 _In_ UINT DstX,
22518 _In_ UINT DstY,
22519 _In_ ID3D12Resource *pSrcResource,
22520 _In_ UINT SrcSubresource,
22521 _In_opt_ D3D12_RECT *pSrcRect,
22522 _In_ DXGI_FORMAT Format,
22523 _In_ D3D12_RESOLVE_MODE ResolveMode);
22524
22525 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
22526 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
22527 ID3D12GraphicsCommandList4 * This,
22528 _In_ UINT Mask);
22529
22530 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
22531 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
22532 ID3D12GraphicsCommandList4 * This,
22533 UINT Count,
22534 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
22535 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
22536
22537 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
22538 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
22539 ID3D12GraphicsCommandList4 * This,
22540 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
22541
22542 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
22543 void ( STDMETHODCALLTYPE *BeginRenderPass )(
22544 ID3D12GraphicsCommandList4 * This,
22545 _In_ UINT NumRenderTargets,
22546 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
22547 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
22548 D3D12_RENDER_PASS_FLAGS Flags);
22549
22550 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
22551 void ( STDMETHODCALLTYPE *EndRenderPass )(
22552 ID3D12GraphicsCommandList4 * This);
22553
22554 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
22555 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
22556 ID3D12GraphicsCommandList4 * This,
22557 _In_ ID3D12MetaCommand *pMetaCommand,
22558 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
22559 _In_ SIZE_T InitializationParametersDataSizeInBytes);
22560
22561 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
22562 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
22563 ID3D12GraphicsCommandList4 * This,
22564 _In_ ID3D12MetaCommand *pMetaCommand,
22565 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
22566 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
22567
22568 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
22569 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
22570 ID3D12GraphicsCommandList4 * This,
22571 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
22572 _In_ UINT NumPostbuildInfoDescs,
22573 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
22574
22575 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
22576 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
22577 ID3D12GraphicsCommandList4 * This,
22578 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
22579 _In_ UINT NumSourceAccelerationStructures,
22580 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
22581
22582 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
22583 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
22584 ID3D12GraphicsCommandList4 * This,
22585 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
22586 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
22587 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
22588
22589 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
22590 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
22591 ID3D12GraphicsCommandList4 * This,
22592 _In_ ID3D12StateObject *pStateObject);
22593
22594 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
22595 void ( STDMETHODCALLTYPE *DispatchRays )(
22596 ID3D12GraphicsCommandList4 * This,
22597 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
22598
22599 END_INTERFACE
22600 } ID3D12GraphicsCommandList4Vtbl;
22601
22602 interface ID3D12GraphicsCommandList4
22603 {
22604 CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl;
22605 };
22606
22607
22608
22609#ifdef COBJMACROS
22610
22611
22612#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \
22613 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
22614
22615#define ID3D12GraphicsCommandList4_AddRef(This) \
22616 ( (This)->lpVtbl -> AddRef(This) )
22617
22618#define ID3D12GraphicsCommandList4_Release(This) \
22619 ( (This)->lpVtbl -> Release(This) )
22620
22621
22622#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \
22623 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
22624
22625#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \
22626 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
22627
22628#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \
22629 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
22630
22631#define ID3D12GraphicsCommandList4_SetName(This,Name) \
22632 ( (This)->lpVtbl -> SetName(This,Name) )
22633
22634
22635#define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \
22636 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
22637
22638
22639#define ID3D12GraphicsCommandList4_GetType(This) \
22640 ( (This)->lpVtbl -> GetType(This) )
22641
22642
22643#define ID3D12GraphicsCommandList4_Close(This) \
22644 ( (This)->lpVtbl -> Close(This) )
22645
22646#define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \
22647 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
22648
22649#define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \
22650 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
22651
22652#define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
22653 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
22654
22655#define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
22656 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
22657
22658#define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
22659 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
22660
22661#define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
22662 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
22663
22664#define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
22665 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
22666
22667#define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \
22668 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
22669
22670#define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
22671 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
22672
22673#define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
22674 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
22675
22676#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \
22677 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
22678
22679#define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \
22680 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
22681
22682#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \
22683 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
22684
22685#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \
22686 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
22687
22688#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \
22689 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
22690
22691#define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \
22692 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
22693
22694#define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \
22695 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
22696
22697#define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \
22698 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
22699
22700#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
22701 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
22702
22703#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \
22704 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
22705
22706#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \
22707 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
22708
22709#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
22710 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
22711
22712#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
22713 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
22714
22715#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
22716 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
22717
22718#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
22719 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
22720
22721#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
22722 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
22723
22724#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
22725 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
22726
22727#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
22728 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
22729
22730#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
22731 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
22732
22733#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
22734 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
22735
22736#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
22737 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
22738
22739#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
22740 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
22741
22742#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
22743 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
22744
22745#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \
22746 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
22747
22748#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
22749 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
22750
22751#define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \
22752 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
22753
22754#define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
22755 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
22756
22757#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
22758 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
22759
22760#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
22761 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
22762
22763#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
22764 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
22765
22766#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
22767 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
22768
22769#define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \
22770 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
22771
22772#define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \
22773 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
22774
22775#define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \
22776 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
22777
22778#define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
22779 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
22780
22781#define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
22782 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
22783
22784#define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \
22785 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
22786
22787#define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \
22788 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
22789
22790#define ID3D12GraphicsCommandList4_EndEvent(This) \
22791 ( (This)->lpVtbl -> EndEvent(This) )
22792
22793#define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
22794 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
22795
22796
22797#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
22798 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
22799
22800#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
22801 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
22802
22803#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \
22804 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
22805
22806#define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
22807 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
22808
22809#define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
22810 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
22811
22812#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \
22813 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
22814
22815
22816#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \
22817 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
22818
22819
22820#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \
22821 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
22822
22823
22824#define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
22825 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
22826
22827#define ID3D12GraphicsCommandList4_EndRenderPass(This) \
22828 ( (This)->lpVtbl -> EndRenderPass(This) )
22829
22830#define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
22831 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
22832
22833#define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
22834 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
22835
22836#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
22837 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
22838
22839#define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
22840 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
22841
22842#define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
22843 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
22844
22845#define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \
22846 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
22847
22848#define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \
22849 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
22850
22851#endif /* COBJMACROS */
22852
22853
22854#endif /* C style interface */
22855
22856
22857
22858
22859#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */
22860
22861
22862/* interface __MIDL_itf_d3d12_0000_0056 */
22863/* [local] */
22864
22865typedef
22866enum D3D12_SHADER_CACHE_MODE
22867 {
22868 D3D12_SHADER_CACHE_MODE_MEMORY = 0,
22869 D3D12_SHADER_CACHE_MODE_DISK = ( D3D12_SHADER_CACHE_MODE_MEMORY + 1 )
22870 } D3D12_SHADER_CACHE_MODE;
22871
22872typedef
22873enum D3D12_SHADER_CACHE_FLAGS
22874 {
22875 D3D12_SHADER_CACHE_FLAG_NONE = 0,
22876 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1,
22877 D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2
22878 } D3D12_SHADER_CACHE_FLAGS;
22879
22880DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS )
22881typedef struct D3D12_SHADER_CACHE_SESSION_DESC
22882 {
22883 GUID Identifier;
22884 D3D12_SHADER_CACHE_MODE Mode;
22885 D3D12_SHADER_CACHE_FLAGS Flags;
22886 UINT MaximumInMemoryCacheSizeBytes;
22887 UINT MaximumInMemoryCacheEntries;
22888 UINT MaximumValueFileSizeBytes;
22889 UINT64 Version;
22890 } D3D12_SHADER_CACHE_SESSION_DESC;
22891
22892typedef
22893enum D3D12_BARRIER_LAYOUT
22894 {
22895 D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
22896 D3D12_BARRIER_LAYOUT_COMMON = 0,
22897 D3D12_BARRIER_LAYOUT_PRESENT = 0,
22898 D3D12_BARRIER_LAYOUT_GENERIC_READ = 1,
22899 D3D12_BARRIER_LAYOUT_RENDER_TARGET = 2,
22900 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 3,
22901 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 4,
22902 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 5,
22903 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 6,
22904 D3D12_BARRIER_LAYOUT_COPY_SOURCE = 7,
22905 D3D12_BARRIER_LAYOUT_COPY_DEST = 8,
22906 D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 9,
22907 D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 10,
22908 D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 11,
22909 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 12,
22910 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 13,
22911 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 14,
22912 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 15,
22913 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 16,
22914 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 17,
22915 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 18,
22916 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 19,
22917 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 20,
22918 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 21,
22919 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 22,
22920 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 23,
22921 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 24,
22922 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 25,
22923 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 26,
22924 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 27,
22925 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 28,
22926 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 29,
22927 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE = 31
22928 } D3D12_BARRIER_LAYOUT;
22929
22930typedef
22931enum D3D12_BARRIER_SYNC
22932 {
22933 D3D12_BARRIER_SYNC_NONE = 0,
22934 D3D12_BARRIER_SYNC_ALL = 0x1,
22935 D3D12_BARRIER_SYNC_DRAW = 0x2,
22936 D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4,
22937 D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
22938 D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
22939 D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
22940 D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40,
22941 D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80,
22942 D3D12_BARRIER_SYNC_RAYTRACING = 0x100,
22943 D3D12_BARRIER_SYNC_COPY = 0x200,
22944 D3D12_BARRIER_SYNC_RESOLVE = 0x400,
22945 D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800,
22946 D3D12_BARRIER_SYNC_PREDICATION = 0x800,
22947 D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
22948 D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
22949 D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
22950 D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000,
22951 D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
22952 D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
22953 D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
22954 D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000,
22955 D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000,
22956 D3D12_BARRIER_SYNC_SPLIT = 0x80000000
22957 } D3D12_BARRIER_SYNC;
22958
22959DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC )
22960typedef
22961enum D3D12_BARRIER_ACCESS
22962 {
22963 D3D12_BARRIER_ACCESS_COMMON = 0,
22964 D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
22965 D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
22966 D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
22967 D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8,
22968 D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
22969 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
22970 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
22971 D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
22972 D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
22973 D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
22974 D3D12_BARRIER_ACCESS_PREDICATION = 0x200,
22975 D3D12_BARRIER_ACCESS_COPY_DEST = 0x400,
22976 D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800,
22977 D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
22978 D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
22979 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
22980 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
22981 D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
22982 D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
22983 D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
22984 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
22985 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
22986 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
22987 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
22988 D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000
22989 } D3D12_BARRIER_ACCESS;
22990
22991DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS )
22992typedef
22993enum D3D12_BARRIER_TYPE
22994 {
22995 D3D12_BARRIER_TYPE_GLOBAL = 0,
22996 D3D12_BARRIER_TYPE_TEXTURE = ( D3D12_BARRIER_TYPE_GLOBAL + 1 ) ,
22997 D3D12_BARRIER_TYPE_BUFFER = ( D3D12_BARRIER_TYPE_TEXTURE + 1 )
22998 } D3D12_BARRIER_TYPE;
22999
23000typedef
23001enum D3D12_TEXTURE_BARRIER_FLAGS
23002 {
23003 D3D12_TEXTURE_BARRIER_FLAG_NONE = 0,
23004 D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1
23005 } D3D12_TEXTURE_BARRIER_FLAGS;
23006
23007DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS )
23008typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE
23009 {
23010 UINT IndexOrFirstMipLevel;
23011 UINT NumMipLevels;
23012 UINT FirstArraySlice;
23013 UINT NumArraySlices;
23014 UINT FirstPlane;
23015 UINT NumPlanes;
23016 } D3D12_BARRIER_SUBRESOURCE_RANGE;
23017
23018typedef struct D3D12_GLOBAL_BARRIER
23019 {
23020 D3D12_BARRIER_SYNC SyncBefore;
23021 D3D12_BARRIER_SYNC SyncAfter;
23022 D3D12_BARRIER_ACCESS AccessBefore;
23023 D3D12_BARRIER_ACCESS AccessAfter;
23024 } D3D12_GLOBAL_BARRIER;
23025
23026typedef struct D3D12_TEXTURE_BARRIER
23027 {
23028 D3D12_BARRIER_SYNC SyncBefore;
23029 D3D12_BARRIER_SYNC SyncAfter;
23030 D3D12_BARRIER_ACCESS AccessBefore;
23031 D3D12_BARRIER_ACCESS AccessAfter;
23032 D3D12_BARRIER_LAYOUT LayoutBefore;
23033 D3D12_BARRIER_LAYOUT LayoutAfter;
23034 _In_ ID3D12Resource *pResource;
23035 D3D12_BARRIER_SUBRESOURCE_RANGE Subresources;
23036 D3D12_TEXTURE_BARRIER_FLAGS Flags;
23037 } D3D12_TEXTURE_BARRIER;
23038
23039typedef struct D3D12_BUFFER_BARRIER
23040 {
23041 D3D12_BARRIER_SYNC SyncBefore;
23042 D3D12_BARRIER_SYNC SyncAfter;
23043 D3D12_BARRIER_ACCESS AccessBefore;
23044 D3D12_BARRIER_ACCESS AccessAfter;
23045 _In_ ID3D12Resource *pResource;
23046 UINT64 Offset;
23047 UINT64 Size;
23048 } D3D12_BUFFER_BARRIER;
23049
23050typedef struct D3D12_BARRIER_GROUP
23051 {
23052 D3D12_BARRIER_TYPE Type;
23053 UINT32 NumBarriers;
23054 union
23055 {
23056 _In_reads_(NumBarriers) const D3D12_GLOBAL_BARRIER *pGlobalBarriers;
23057 _In_reads_(NumBarriers) const D3D12_TEXTURE_BARRIER *pTextureBarriers;
23058 _In_reads_(NumBarriers) const D3D12_BUFFER_BARRIER *pBufferBarriers;
23059 } ;
23060 } D3D12_BARRIER_GROUP;
23061
23062
23063
23064extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_c_ifspec;
23065extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_s_ifspec;
23066
23067#ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
23068#define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
23069
23070/* interface ID3D12ShaderCacheSession */
23071/* [unique][local][object][uuid] */
23072
23073
23074EXTERN_C const IID IID_ID3D12ShaderCacheSession;
23075
23076#if defined(__cplusplus) && !defined(CINTERFACE)
23077
23078 MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8")
23079 ID3D12ShaderCacheSession : public ID3D12DeviceChild
23080 {
23081 public:
23082 virtual HRESULT STDMETHODCALLTYPE FindValue(
23083 /* [annotation][in] */
23084 _In_reads_bytes_(KeySize) const void *pKey,
23085 UINT KeySize,
23086 /* [annotation][out] */
23087 _Out_writes_bytes_(*pValueSize) void *pValue,
23088 _Inout_ UINT *pValueSize) = 0;
23089
23090 virtual HRESULT STDMETHODCALLTYPE StoreValue(
23091 /* [annotation][in] */
23092 _In_reads_bytes_(KeySize) const void *pKey,
23093 UINT KeySize,
23094 /* [annotation][in] */
23095 _In_reads_bytes_(ValueSize) const void *pValue,
23096 UINT ValueSize) = 0;
23097
23098 virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( void) = 0;
23099
23100#if defined(_MSC_VER) || !defined(_WIN32)
23101 virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
23102#else
23103 virtual D3D12_SHADER_CACHE_SESSION_DESC *STDMETHODCALLTYPE GetDesc(
23104 D3D12_SHADER_CACHE_SESSION_DESC * RetVal) = 0;
23105#endif
23106
23107 };
23108
23109
23110#else /* C style interface */
23111
23112 typedef struct ID3D12ShaderCacheSessionVtbl
23113 {
23114 BEGIN_INTERFACE
23115
23116 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
23117 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
23118 ID3D12ShaderCacheSession * This,
23119 REFIID riid,
23120 _COM_Outptr_ void **ppvObject);
23121
23122 DECLSPEC_XFGVIRT(IUnknown, AddRef)
23123 ULONG ( STDMETHODCALLTYPE *AddRef )(
23124 ID3D12ShaderCacheSession * This);
23125
23126 DECLSPEC_XFGVIRT(IUnknown, Release)
23127 ULONG ( STDMETHODCALLTYPE *Release )(
23128 ID3D12ShaderCacheSession * This);
23129
23130 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
23131 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
23132 ID3D12ShaderCacheSession * This,
23133 _In_ REFGUID guid,
23134 _Inout_ UINT *pDataSize,
23135 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
23136
23137 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
23138 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
23139 ID3D12ShaderCacheSession * This,
23140 _In_ REFGUID guid,
23141 _In_ UINT DataSize,
23142 _In_reads_bytes_opt_( DataSize ) const void *pData);
23143
23144 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
23145 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
23146 ID3D12ShaderCacheSession * This,
23147 _In_ REFGUID guid,
23148 _In_opt_ const IUnknown *pData);
23149
23150 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
23151 HRESULT ( STDMETHODCALLTYPE *SetName )(
23152 ID3D12ShaderCacheSession * This,
23153 _In_z_ LPCWSTR Name);
23154
23155 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
23156 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
23157 ID3D12ShaderCacheSession * This,
23158 REFIID riid,
23159 _COM_Outptr_opt_ void **ppvDevice);
23160
23161 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, FindValue)
23162 HRESULT ( STDMETHODCALLTYPE *FindValue )(
23163 ID3D12ShaderCacheSession * This,
23164 /* [annotation][in] */
23165 _In_reads_bytes_(KeySize) const void *pKey,
23166 UINT KeySize,
23167 /* [annotation][out] */
23168 _Out_writes_bytes_(*pValueSize) void *pValue,
23169 _Inout_ UINT *pValueSize);
23170
23171 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, StoreValue)
23172 HRESULT ( STDMETHODCALLTYPE *StoreValue )(
23173 ID3D12ShaderCacheSession * This,
23174 /* [annotation][in] */
23175 _In_reads_bytes_(KeySize) const void *pKey,
23176 UINT KeySize,
23177 /* [annotation][in] */
23178 _In_reads_bytes_(ValueSize) const void *pValue,
23179 UINT ValueSize);
23180
23181 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, SetDeleteOnDestroy)
23182 void ( STDMETHODCALLTYPE *SetDeleteOnDestroy )(
23183 ID3D12ShaderCacheSession * This);
23184
23185 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, GetDesc)
23186#if !defined(_WIN32)
23187 D3D12_SHADER_CACHE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
23188 ID3D12ShaderCacheSession * This);
23189
23190#else
23191 D3D12_SHADER_CACHE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
23192 ID3D12ShaderCacheSession * This,
23193 D3D12_SHADER_CACHE_SESSION_DESC * RetVal);
23194
23195#endif
23196
23197 END_INTERFACE
23198 } ID3D12ShaderCacheSessionVtbl;
23199
23200 interface ID3D12ShaderCacheSession
23201 {
23202 CONST_VTBL struct ID3D12ShaderCacheSessionVtbl *lpVtbl;
23203 };
23204
23205
23206
23207#ifdef COBJMACROS
23208
23209
23210#define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) \
23211 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
23212
23213#define ID3D12ShaderCacheSession_AddRef(This) \
23214 ( (This)->lpVtbl -> AddRef(This) )
23215
23216#define ID3D12ShaderCacheSession_Release(This) \
23217 ( (This)->lpVtbl -> Release(This) )
23218
23219
23220#define ID3D12ShaderCacheSession_GetPrivateData(This,guid,pDataSize,pData) \
23221 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
23222
23223#define ID3D12ShaderCacheSession_SetPrivateData(This,guid,DataSize,pData) \
23224 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
23225
23226#define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,pData) \
23227 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
23228
23229#define ID3D12ShaderCacheSession_SetName(This,Name) \
23230 ( (This)->lpVtbl -> SetName(This,Name) )
23231
23232
23233#define ID3D12ShaderCacheSession_GetDevice(This,riid,ppvDevice) \
23234 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
23235
23236
23237#define ID3D12ShaderCacheSession_FindValue(This,pKey,KeySize,pValue,pValueSize) \
23238 ( (This)->lpVtbl -> FindValue(This,pKey,KeySize,pValue,pValueSize) )
23239
23240#define ID3D12ShaderCacheSession_StoreValue(This,pKey,KeySize,pValue,ValueSize) \
23241 ( (This)->lpVtbl -> StoreValue(This,pKey,KeySize,pValue,ValueSize) )
23242
23243#define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) \
23244 ( (This)->lpVtbl -> SetDeleteOnDestroy(This) )
23245#if !defined(_WIN32)
23246
23247#define ID3D12ShaderCacheSession_GetDesc(This) \
23248 ( (This)->lpVtbl -> GetDesc(This) )
23249#else
23250#define ID3D12ShaderCacheSession_GetDesc(This,RetVal) \
23251 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
23252#endif
23253
23254#endif /* COBJMACROS */
23255
23256
23257#endif /* C style interface */
23258
23259
23260
23261
23262#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */
23263
23264
23265/* interface __MIDL_itf_d3d12_0000_0057 */
23266/* [local] */
23267
23268typedef
23269enum D3D12_SHADER_CACHE_KIND_FLAGS
23270 {
23271 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1,
23272 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2,
23273 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4,
23274 D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8
23275 } D3D12_SHADER_CACHE_KIND_FLAGS;
23276
23277DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS )
23278typedef
23279enum D3D12_SHADER_CACHE_CONTROL_FLAGS
23280 {
23281 D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1,
23282 D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2,
23283 D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4
23284 } D3D12_SHADER_CACHE_CONTROL_FLAGS;
23285
23286DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS )
23287
23288
23289extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_c_ifspec;
23290extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_s_ifspec;
23291
23292#ifndef __ID3D12Device9_INTERFACE_DEFINED__
23293#define __ID3D12Device9_INTERFACE_DEFINED__
23294
23295/* interface ID3D12Device9 */
23296/* [unique][local][object][uuid] */
23297
23298
23299EXTERN_C const IID IID_ID3D12Device9;
23300
23301#if defined(__cplusplus) && !defined(CINTERFACE)
23302
23303 MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c")
23304 ID3D12Device9 : public ID3D12Device8
23305 {
23306 public:
23307 virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession(
23308 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
23309 REFIID riid,
23310 _COM_Outptr_opt_ void **ppvSession) = 0;
23311
23312 virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl(
23313 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
23314 D3D12_SHADER_CACHE_CONTROL_FLAGS Control) = 0;
23315
23316 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1(
23317 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
23318 REFIID CreatorID,
23319 REFIID riid,
23320 _COM_Outptr_ void **ppCommandQueue) = 0;
23321
23322 };
23323
23324
23325#else /* C style interface */
23326
23327 typedef struct ID3D12Device9Vtbl
23328 {
23329 BEGIN_INTERFACE
23330
23331 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
23332 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
23333 ID3D12Device9 * This,
23334 REFIID riid,
23335 _COM_Outptr_ void **ppvObject);
23336
23337 DECLSPEC_XFGVIRT(IUnknown, AddRef)
23338 ULONG ( STDMETHODCALLTYPE *AddRef )(
23339 ID3D12Device9 * This);
23340
23341 DECLSPEC_XFGVIRT(IUnknown, Release)
23342 ULONG ( STDMETHODCALLTYPE *Release )(
23343 ID3D12Device9 * This);
23344
23345 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
23346 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
23347 ID3D12Device9 * This,
23348 _In_ REFGUID guid,
23349 _Inout_ UINT *pDataSize,
23350 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
23351
23352 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
23353 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
23354 ID3D12Device9 * This,
23355 _In_ REFGUID guid,
23356 _In_ UINT DataSize,
23357 _In_reads_bytes_opt_( DataSize ) const void *pData);
23358
23359 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
23360 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
23361 ID3D12Device9 * This,
23362 _In_ REFGUID guid,
23363 _In_opt_ const IUnknown *pData);
23364
23365 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
23366 HRESULT ( STDMETHODCALLTYPE *SetName )(
23367 ID3D12Device9 * This,
23368 _In_z_ LPCWSTR Name);
23369
23370 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
23371 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
23372 ID3D12Device9 * This);
23373
23374 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
23375 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
23376 ID3D12Device9 * This,
23377 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
23378 REFIID riid,
23379 _COM_Outptr_ void **ppCommandQueue);
23380
23381 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
23382 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
23383 ID3D12Device9 * This,
23384 _In_ D3D12_COMMAND_LIST_TYPE type,
23385 REFIID riid,
23386 _COM_Outptr_ void **ppCommandAllocator);
23387
23388 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
23389 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
23390 ID3D12Device9 * This,
23391 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
23392 REFIID riid,
23393 _COM_Outptr_ void **ppPipelineState);
23394
23395 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
23396 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
23397 ID3D12Device9 * This,
23398 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
23399 REFIID riid,
23400 _COM_Outptr_ void **ppPipelineState);
23401
23402 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
23403 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
23404 ID3D12Device9 * This,
23405 _In_ UINT nodeMask,
23406 _In_ D3D12_COMMAND_LIST_TYPE type,
23407 _In_ ID3D12CommandAllocator *pCommandAllocator,
23408 _In_opt_ ID3D12PipelineState *pInitialState,
23409 REFIID riid,
23410 _COM_Outptr_ void **ppCommandList);
23411
23412 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
23413 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
23414 ID3D12Device9 * This,
23415 D3D12_FEATURE Feature,
23416 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
23417 UINT FeatureSupportDataSize);
23418
23419 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
23420 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
23421 ID3D12Device9 * This,
23422 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
23423 REFIID riid,
23424 _COM_Outptr_ void **ppvHeap);
23425
23426 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
23427 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
23428 ID3D12Device9 * This,
23429 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
23430
23431 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
23432 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
23433 ID3D12Device9 * This,
23434 _In_ UINT nodeMask,
23435 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
23436 _In_ SIZE_T blobLengthInBytes,
23437 REFIID riid,
23438 _COM_Outptr_ void **ppvRootSignature);
23439
23440 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
23441 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
23442 ID3D12Device9 * This,
23443 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
23444 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23445
23446 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
23447 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
23448 ID3D12Device9 * This,
23449 _In_opt_ ID3D12Resource *pResource,
23450 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
23451 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23452
23453 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
23454 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
23455 ID3D12Device9 * This,
23456 _In_opt_ ID3D12Resource *pResource,
23457 _In_opt_ ID3D12Resource *pCounterResource,
23458 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
23459 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23460
23461 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
23462 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
23463 ID3D12Device9 * This,
23464 _In_opt_ ID3D12Resource *pResource,
23465 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
23466 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23467
23468 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
23469 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
23470 ID3D12Device9 * This,
23471 _In_opt_ ID3D12Resource *pResource,
23472 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
23473 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23474
23475 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
23476 void ( STDMETHODCALLTYPE *CreateSampler )(
23477 ID3D12Device9 * This,
23478 _In_ const D3D12_SAMPLER_DESC *pDesc,
23479 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23480
23481 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
23482 void ( STDMETHODCALLTYPE *CopyDescriptors )(
23483 ID3D12Device9 * This,
23484 _In_ UINT NumDestDescriptorRanges,
23485 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
23486 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
23487 _In_ UINT NumSrcDescriptorRanges,
23488 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
23489 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
23490 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
23491
23492 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
23493 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
23494 ID3D12Device9 * This,
23495 _In_ UINT NumDescriptors,
23496 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
23497 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
23498 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
23499
23500 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
23501#if !defined(_WIN32)
23502 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
23503 ID3D12Device9 * This,
23504 _In_ UINT visibleMask,
23505 _In_ UINT numResourceDescs,
23506 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
23507
23508#else
23509 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
23510 ID3D12Device9 * This,
23511 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23512 _In_ UINT visibleMask,
23513 _In_ UINT numResourceDescs,
23514 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
23515
23516#endif
23517
23518 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
23519#if !defined(_WIN32)
23520 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
23521 ID3D12Device9 * This,
23522 _In_ UINT nodeMask,
23523 D3D12_HEAP_TYPE heapType);
23524
23525#else
23526 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
23527 ID3D12Device9 * This,
23528 D3D12_HEAP_PROPERTIES * RetVal,
23529 _In_ UINT nodeMask,
23530 D3D12_HEAP_TYPE heapType);
23531
23532#endif
23533
23534 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
23535 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
23536 ID3D12Device9 * This,
23537 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23538 D3D12_HEAP_FLAGS HeapFlags,
23539 _In_ const D3D12_RESOURCE_DESC *pDesc,
23540 D3D12_RESOURCE_STATES InitialResourceState,
23541 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23542 REFIID riidResource,
23543 _COM_Outptr_opt_ void **ppvResource);
23544
23545 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
23546 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
23547 ID3D12Device9 * This,
23548 _In_ const D3D12_HEAP_DESC *pDesc,
23549 REFIID riid,
23550 _COM_Outptr_opt_ void **ppvHeap);
23551
23552 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
23553 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
23554 ID3D12Device9 * This,
23555 _In_ ID3D12Heap *pHeap,
23556 UINT64 HeapOffset,
23557 _In_ const D3D12_RESOURCE_DESC *pDesc,
23558 D3D12_RESOURCE_STATES InitialState,
23559 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23560 REFIID riid,
23561 _COM_Outptr_opt_ void **ppvResource);
23562
23563 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
23564 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
23565 ID3D12Device9 * This,
23566 _In_ const D3D12_RESOURCE_DESC *pDesc,
23567 D3D12_RESOURCE_STATES InitialState,
23568 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23569 REFIID riid,
23570 _COM_Outptr_opt_ void **ppvResource);
23571
23572 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
23573 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
23574 ID3D12Device9 * This,
23575 _In_ ID3D12DeviceChild *pObject,
23576 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
23577 DWORD Access,
23578 _In_opt_ LPCWSTR Name,
23579 _Out_ HANDLE *pHandle);
23580
23581 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
23582 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
23583 ID3D12Device9 * This,
23584 _In_ HANDLE NTHandle,
23585 REFIID riid,
23586 _COM_Outptr_opt_ void **ppvObj);
23587
23588 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
23589 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
23590 ID3D12Device9 * This,
23591 _In_ LPCWSTR Name,
23592 DWORD Access,
23593 /* [annotation][out] */
23594 _Out_ HANDLE *pNTHandle);
23595
23596 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
23597 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
23598 ID3D12Device9 * This,
23599 UINT NumObjects,
23600 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
23601
23602 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
23603 HRESULT ( STDMETHODCALLTYPE *Evict )(
23604 ID3D12Device9 * This,
23605 UINT NumObjects,
23606 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
23607
23608 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
23609 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
23610 ID3D12Device9 * This,
23611 UINT64 InitialValue,
23612 D3D12_FENCE_FLAGS Flags,
23613 REFIID riid,
23614 _COM_Outptr_ void **ppFence);
23615
23616 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
23617 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
23618 ID3D12Device9 * This);
23619
23620 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
23621 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
23622 ID3D12Device9 * This,
23623 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
23624 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
23625 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
23626 UINT64 BaseOffset,
23627 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
23628 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
23629 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
23630 _Out_opt_ UINT64 *pTotalBytes);
23631
23632 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
23633 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
23634 ID3D12Device9 * This,
23635 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
23636 REFIID riid,
23637 _COM_Outptr_opt_ void **ppvHeap);
23638
23639 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
23640 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
23641 ID3D12Device9 * This,
23642 BOOL Enable);
23643
23644 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
23645 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
23646 ID3D12Device9 * This,
23647 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
23648 _In_opt_ ID3D12RootSignature *pRootSignature,
23649 REFIID riid,
23650 _COM_Outptr_opt_ void **ppvCommandSignature);
23651
23652 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
23653 void ( STDMETHODCALLTYPE *GetResourceTiling )(
23654 ID3D12Device9 * This,
23655 _In_ ID3D12Resource *pTiledResource,
23656 _Out_opt_ UINT *pNumTilesForEntireResource,
23657 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
23658 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
23659 _Inout_opt_ UINT *pNumSubresourceTilings,
23660 _In_ UINT FirstSubresourceTilingToGet,
23661 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
23662
23663 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
23664#if !defined(_WIN32)
23665 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
23666 ID3D12Device9 * This);
23667
23668#else
23669 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
23670 ID3D12Device9 * This,
23671 LUID * RetVal);
23672
23673#endif
23674
23675 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
23676 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
23677 ID3D12Device9 * This,
23678 _In_reads_(BlobLength) const void *pLibraryBlob,
23679 SIZE_T BlobLength,
23680 REFIID riid,
23681 _COM_Outptr_ void **ppPipelineLibrary);
23682
23683 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
23684 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
23685 ID3D12Device9 * This,
23686 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
23687 _In_reads_(NumFences) const UINT64 *pFenceValues,
23688 UINT NumFences,
23689 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
23690 HANDLE hEvent);
23691
23692 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
23693 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
23694 ID3D12Device9 * This,
23695 UINT NumObjects,
23696 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
23697 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
23698
23699 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
23700 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
23701 ID3D12Device9 * This,
23702 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
23703 REFIID riid,
23704 _COM_Outptr_ void **ppPipelineState);
23705
23706 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
23707 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
23708 ID3D12Device9 * This,
23709 _In_ const void *pAddress,
23710 REFIID riid,
23711 _COM_Outptr_ void **ppvHeap);
23712
23713 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
23714 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
23715 ID3D12Device9 * This,
23716 _In_ HANDLE hFileMapping,
23717 REFIID riid,
23718 _COM_Outptr_ void **ppvHeap);
23719
23720 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
23721 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
23722 ID3D12Device9 * This,
23723 D3D12_RESIDENCY_FLAGS Flags,
23724 UINT NumObjects,
23725 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
23726 _In_ ID3D12Fence *pFenceToSignal,
23727 UINT64 FenceValueToSignal);
23728
23729 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
23730 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
23731 ID3D12Device9 * This,
23732 _In_ UINT nodeMask,
23733 _In_ D3D12_COMMAND_LIST_TYPE type,
23734 _In_ D3D12_COMMAND_LIST_FLAGS flags,
23735 REFIID riid,
23736 _COM_Outptr_ void **ppCommandList);
23737
23738 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
23739 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
23740 ID3D12Device9 * This,
23741 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
23742 _In_ REFIID riid,
23743 _COM_Outptr_ void **ppSession);
23744
23745 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
23746 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
23747 ID3D12Device9 * This,
23748 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23749 D3D12_HEAP_FLAGS HeapFlags,
23750 _In_ const D3D12_RESOURCE_DESC *pDesc,
23751 D3D12_RESOURCE_STATES InitialResourceState,
23752 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23753 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23754 REFIID riidResource,
23755 _COM_Outptr_opt_ void **ppvResource);
23756
23757 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
23758 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
23759 ID3D12Device9 * This,
23760 _In_ const D3D12_HEAP_DESC *pDesc,
23761 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23762 REFIID riid,
23763 _COM_Outptr_opt_ void **ppvHeap);
23764
23765 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
23766 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
23767 ID3D12Device9 * This,
23768 _In_ const D3D12_RESOURCE_DESC *pDesc,
23769 D3D12_RESOURCE_STATES InitialState,
23770 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23771 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23772 REFIID riid,
23773 _COM_Outptr_opt_ void **ppvResource);
23774
23775 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
23776#if !defined(_WIN32)
23777 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
23778 ID3D12Device9 * This,
23779 UINT visibleMask,
23780 UINT numResourceDescs,
23781 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
23782 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23783
23784#else
23785 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
23786 ID3D12Device9 * This,
23787 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23788 UINT visibleMask,
23789 UINT numResourceDescs,
23790 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
23791 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23792
23793#endif
23794
23795 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
23796 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
23797 ID3D12Device9 * This,
23798 _In_ ID3D12LifetimeOwner *pOwner,
23799 REFIID riid,
23800 _COM_Outptr_ void **ppvTracker);
23801
23802 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
23803 void ( STDMETHODCALLTYPE *RemoveDevice )(
23804 ID3D12Device9 * This);
23805
23806 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
23807 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
23808 ID3D12Device9 * This,
23809 _Inout_ UINT *pNumMetaCommands,
23810 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
23811
23812 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
23813 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
23814 ID3D12Device9 * This,
23815 _In_ REFGUID CommandId,
23816 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
23817 _Out_opt_ UINT *pTotalStructureSizeInBytes,
23818 _Inout_ UINT *pParameterCount,
23819 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
23820
23821 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
23822 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
23823 ID3D12Device9 * This,
23824 _In_ REFGUID CommandId,
23825 _In_ UINT NodeMask,
23826 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
23827 _In_ SIZE_T CreationParametersDataSizeInBytes,
23828 REFIID riid,
23829 _COM_Outptr_ void **ppMetaCommand);
23830
23831 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
23832 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
23833 ID3D12Device9 * This,
23834 const D3D12_STATE_OBJECT_DESC *pDesc,
23835 REFIID riid,
23836 _COM_Outptr_ void **ppStateObject);
23837
23838 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
23839 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
23840 ID3D12Device9 * This,
23841 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
23842 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
23843
23844 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
23845 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
23846 ID3D12Device9 * This,
23847 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
23848 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
23849
23850 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
23851 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
23852 ID3D12Device9 * This,
23853 D3D12_BACKGROUND_PROCESSING_MODE Mode,
23854 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
23855 _In_opt_ HANDLE hEventToSignalUponCompletion,
23856 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
23857
23858 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
23859 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
23860 ID3D12Device9 * This,
23861 const D3D12_STATE_OBJECT_DESC *pAddition,
23862 ID3D12StateObject *pStateObjectToGrowFrom,
23863 REFIID riid,
23864 _COM_Outptr_ void **ppNewStateObject);
23865
23866 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
23867 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
23868 ID3D12Device9 * This,
23869 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
23870 _In_ REFIID riid,
23871 _COM_Outptr_ void **ppSession);
23872
23873 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
23874#if !defined(_WIN32)
23875 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
23876 ID3D12Device9 * This,
23877 UINT visibleMask,
23878 UINT numResourceDescs,
23879 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
23880 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23881
23882#else
23883 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
23884 ID3D12Device9 * This,
23885 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23886 UINT visibleMask,
23887 UINT numResourceDescs,
23888 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
23889 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23890
23891#endif
23892
23893 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
23894 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
23895 ID3D12Device9 * This,
23896 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23897 D3D12_HEAP_FLAGS HeapFlags,
23898 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23899 D3D12_RESOURCE_STATES InitialResourceState,
23900 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23901 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23902 REFIID riidResource,
23903 _COM_Outptr_opt_ void **ppvResource);
23904
23905 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
23906 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
23907 ID3D12Device9 * This,
23908 _In_ ID3D12Heap *pHeap,
23909 UINT64 HeapOffset,
23910 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23911 D3D12_RESOURCE_STATES InitialState,
23912 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23913 REFIID riid,
23914 _COM_Outptr_opt_ void **ppvResource);
23915
23916 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
23917 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
23918 ID3D12Device9 * This,
23919 _In_opt_ ID3D12Resource *pTargetedResource,
23920 _In_opt_ ID3D12Resource *pFeedbackResource,
23921 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23922
23923 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
23924 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
23925 ID3D12Device9 * This,
23926 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
23927 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
23928 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
23929 UINT64 BaseOffset,
23930 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
23931 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
23932 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
23933 _Out_opt_ UINT64 *pTotalBytes);
23934
23935 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
23936 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
23937 ID3D12Device9 * This,
23938 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
23939 REFIID riid,
23940 _COM_Outptr_opt_ void **ppvSession);
23941
23942 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
23943 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
23944 ID3D12Device9 * This,
23945 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
23946 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
23947
23948 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
23949 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
23950 ID3D12Device9 * This,
23951 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
23952 REFIID CreatorID,
23953 REFIID riid,
23954 _COM_Outptr_ void **ppCommandQueue);
23955
23956 END_INTERFACE
23957 } ID3D12Device9Vtbl;
23958
23959 interface ID3D12Device9
23960 {
23961 CONST_VTBL struct ID3D12Device9Vtbl *lpVtbl;
23962 };
23963
23964
23965
23966#ifdef COBJMACROS
23967
23968
23969#define ID3D12Device9_QueryInterface(This,riid,ppvObject) \
23970 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
23971
23972#define ID3D12Device9_AddRef(This) \
23973 ( (This)->lpVtbl -> AddRef(This) )
23974
23975#define ID3D12Device9_Release(This) \
23976 ( (This)->lpVtbl -> Release(This) )
23977
23978
23979#define ID3D12Device9_GetPrivateData(This,guid,pDataSize,pData) \
23980 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
23981
23982#define ID3D12Device9_SetPrivateData(This,guid,DataSize,pData) \
23983 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
23984
23985#define ID3D12Device9_SetPrivateDataInterface(This,guid,pData) \
23986 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
23987
23988#define ID3D12Device9_SetName(This,Name) \
23989 ( (This)->lpVtbl -> SetName(This,Name) )
23990
23991
23992#define ID3D12Device9_GetNodeCount(This) \
23993 ( (This)->lpVtbl -> GetNodeCount(This) )
23994
23995#define ID3D12Device9_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
23996 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
23997
23998#define ID3D12Device9_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
23999 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
24000
24001#define ID3D12Device9_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
24002 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
24003
24004#define ID3D12Device9_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
24005 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
24006
24007#define ID3D12Device9_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
24008 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
24009
24010#define ID3D12Device9_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
24011 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
24012
24013#define ID3D12Device9_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
24014 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
24015
24016#define ID3D12Device9_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
24017 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
24018
24019#define ID3D12Device9_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
24020 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
24021
24022#define ID3D12Device9_CreateConstantBufferView(This,pDesc,DestDescriptor) \
24023 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
24024
24025#define ID3D12Device9_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
24026 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
24027
24028#define ID3D12Device9_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
24029 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
24030
24031#define ID3D12Device9_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
24032 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
24033
24034#define ID3D12Device9_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
24035 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
24036
24037#define ID3D12Device9_CreateSampler(This,pDesc,DestDescriptor) \
24038 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
24039
24040#define ID3D12Device9_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
24041 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
24042
24043#define ID3D12Device9_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
24044 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
24045#if !defined(_WIN32)
24046
24047#define ID3D12Device9_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
24048 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
24049#else
24050#define ID3D12Device9_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
24051 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
24052#endif
24053#if !defined(_WIN32)
24054
24055#define ID3D12Device9_GetCustomHeapProperties(This,nodeMask,heapType) \
24056 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
24057#else
24058#define ID3D12Device9_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
24059 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
24060#endif
24061
24062#define ID3D12Device9_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
24063 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
24064
24065#define ID3D12Device9_CreateHeap(This,pDesc,riid,ppvHeap) \
24066 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
24067
24068#define ID3D12Device9_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24069 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24070
24071#define ID3D12Device9_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24072 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24073
24074#define ID3D12Device9_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
24075 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
24076
24077#define ID3D12Device9_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
24078 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
24079
24080#define ID3D12Device9_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
24081 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
24082
24083#define ID3D12Device9_MakeResident(This,NumObjects,ppObjects) \
24084 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
24085
24086#define ID3D12Device9_Evict(This,NumObjects,ppObjects) \
24087 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
24088
24089#define ID3D12Device9_CreateFence(This,InitialValue,Flags,riid,ppFence) \
24090 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
24091
24092#define ID3D12Device9_GetDeviceRemovedReason(This) \
24093 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
24094
24095#define ID3D12Device9_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
24096 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
24097
24098#define ID3D12Device9_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
24099 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
24100
24101#define ID3D12Device9_SetStablePowerState(This,Enable) \
24102 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
24103
24104#define ID3D12Device9_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
24105 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
24106
24107#define ID3D12Device9_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
24108 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
24109#if !defined(_WIN32)
24110
24111#define ID3D12Device9_GetAdapterLuid(This) \
24112 ( (This)->lpVtbl -> GetAdapterLuid(This) )
24113#else
24114#define ID3D12Device9_GetAdapterLuid(This,RetVal) \
24115 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
24116#endif
24117
24118
24119#define ID3D12Device9_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
24120 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
24121
24122#define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
24123 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
24124
24125#define ID3D12Device9_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
24126 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
24127
24128
24129#define ID3D12Device9_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
24130 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
24131
24132
24133#define ID3D12Device9_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
24134 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
24135
24136#define ID3D12Device9_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
24137 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
24138
24139#define ID3D12Device9_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
24140 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
24141
24142
24143#define ID3D12Device9_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
24144 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
24145
24146#define ID3D12Device9_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
24147 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
24148
24149#define ID3D12Device9_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
24150 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
24151
24152#define ID3D12Device9_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
24153 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
24154
24155#define ID3D12Device9_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
24156 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
24157#if !defined(_WIN32)
24158
24159#define ID3D12Device9_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24160 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24161#else
24162#define ID3D12Device9_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24163 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24164#endif
24165
24166
24167#define ID3D12Device9_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
24168 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
24169
24170#define ID3D12Device9_RemoveDevice(This) \
24171 ( (This)->lpVtbl -> RemoveDevice(This) )
24172
24173#define ID3D12Device9_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
24174 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
24175
24176#define ID3D12Device9_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
24177 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
24178
24179#define ID3D12Device9_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
24180 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
24181
24182#define ID3D12Device9_CreateStateObject(This,pDesc,riid,ppStateObject) \
24183 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
24184
24185#define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
24186 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
24187
24188#define ID3D12Device9_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
24189 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
24190
24191
24192#define ID3D12Device9_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
24193 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
24194
24195
24196#define ID3D12Device9_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
24197 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
24198
24199#define ID3D12Device9_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
24200 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
24201
24202#if !defined(_WIN32)
24203
24204#define ID3D12Device9_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24205 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24206#else
24207#define ID3D12Device9_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24208 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24209#endif
24210
24211#define ID3D12Device9_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
24212 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
24213
24214#define ID3D12Device9_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24215 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24216
24217#define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
24218 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
24219
24220#define ID3D12Device9_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
24221 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
24222
24223
24224#define ID3D12Device9_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
24225 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
24226
24227#define ID3D12Device9_ShaderCacheControl(This,Kinds,Control) \
24228 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
24229
24230#define ID3D12Device9_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
24231 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
24232
24233#endif /* COBJMACROS */
24234
24235
24236#endif /* C style interface */
24237
24238
24239
24240
24241#endif /* __ID3D12Device9_INTERFACE_DEFINED__ */
24242
24243
24244#ifndef __ID3D12Device10_INTERFACE_DEFINED__
24245#define __ID3D12Device10_INTERFACE_DEFINED__
24246
24247/* interface ID3D12Device10 */
24248/* [unique][local][object][uuid] */
24249
24250
24251EXTERN_C const IID IID_ID3D12Device10;
24252
24253#if defined(__cplusplus) && !defined(CINTERFACE)
24254
24255 MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031")
24256 ID3D12Device10 : public ID3D12Device9
24257 {
24258 public:
24259 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3(
24260 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24261 D3D12_HEAP_FLAGS HeapFlags,
24262 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24263 D3D12_BARRIER_LAYOUT InitialLayout,
24264 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24265 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24266 UINT32 NumCastableFormats,
24267 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24268 REFIID riidResource,
24269 _COM_Outptr_opt_ void **ppvResource) = 0;
24270
24271 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2(
24272 _In_ ID3D12Heap *pHeap,
24273 UINT64 HeapOffset,
24274 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24275 D3D12_BARRIER_LAYOUT InitialLayout,
24276 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24277 UINT32 NumCastableFormats,
24278 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24279 REFIID riid,
24280 _COM_Outptr_opt_ void **ppvResource) = 0;
24281
24282 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2(
24283 _In_ const D3D12_RESOURCE_DESC *pDesc,
24284 D3D12_BARRIER_LAYOUT InitialLayout,
24285 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24286 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24287 UINT32 NumCastableFormats,
24288 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24289 REFIID riid,
24290 _COM_Outptr_opt_ void **ppvResource) = 0;
24291
24292 };
24293
24294
24295#else /* C style interface */
24296
24297 typedef struct ID3D12Device10Vtbl
24298 {
24299 BEGIN_INTERFACE
24300
24301 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
24302 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
24303 ID3D12Device10 * This,
24304 REFIID riid,
24305 _COM_Outptr_ void **ppvObject);
24306
24307 DECLSPEC_XFGVIRT(IUnknown, AddRef)
24308 ULONG ( STDMETHODCALLTYPE *AddRef )(
24309 ID3D12Device10 * This);
24310
24311 DECLSPEC_XFGVIRT(IUnknown, Release)
24312 ULONG ( STDMETHODCALLTYPE *Release )(
24313 ID3D12Device10 * This);
24314
24315 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
24316 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
24317 ID3D12Device10 * This,
24318 _In_ REFGUID guid,
24319 _Inout_ UINT *pDataSize,
24320 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
24321
24322 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
24323 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
24324 ID3D12Device10 * This,
24325 _In_ REFGUID guid,
24326 _In_ UINT DataSize,
24327 _In_reads_bytes_opt_( DataSize ) const void *pData);
24328
24329 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
24330 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
24331 ID3D12Device10 * This,
24332 _In_ REFGUID guid,
24333 _In_opt_ const IUnknown *pData);
24334
24335 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
24336 HRESULT ( STDMETHODCALLTYPE *SetName )(
24337 ID3D12Device10 * This,
24338 _In_z_ LPCWSTR Name);
24339
24340 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
24341 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
24342 ID3D12Device10 * This);
24343
24344 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
24345 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
24346 ID3D12Device10 * This,
24347 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
24348 REFIID riid,
24349 _COM_Outptr_ void **ppCommandQueue);
24350
24351 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
24352 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
24353 ID3D12Device10 * This,
24354 _In_ D3D12_COMMAND_LIST_TYPE type,
24355 REFIID riid,
24356 _COM_Outptr_ void **ppCommandAllocator);
24357
24358 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
24359 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
24360 ID3D12Device10 * This,
24361 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
24362 REFIID riid,
24363 _COM_Outptr_ void **ppPipelineState);
24364
24365 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
24366 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
24367 ID3D12Device10 * This,
24368 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
24369 REFIID riid,
24370 _COM_Outptr_ void **ppPipelineState);
24371
24372 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
24373 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
24374 ID3D12Device10 * This,
24375 _In_ UINT nodeMask,
24376 _In_ D3D12_COMMAND_LIST_TYPE type,
24377 _In_ ID3D12CommandAllocator *pCommandAllocator,
24378 _In_opt_ ID3D12PipelineState *pInitialState,
24379 REFIID riid,
24380 _COM_Outptr_ void **ppCommandList);
24381
24382 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
24383 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
24384 ID3D12Device10 * This,
24385 D3D12_FEATURE Feature,
24386 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
24387 UINT FeatureSupportDataSize);
24388
24389 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
24390 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
24391 ID3D12Device10 * This,
24392 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
24393 REFIID riid,
24394 _COM_Outptr_ void **ppvHeap);
24395
24396 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
24397 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
24398 ID3D12Device10 * This,
24399 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
24400
24401 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
24402 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
24403 ID3D12Device10 * This,
24404 _In_ UINT nodeMask,
24405 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
24406 _In_ SIZE_T blobLengthInBytes,
24407 REFIID riid,
24408 _COM_Outptr_ void **ppvRootSignature);
24409
24410 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
24411 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
24412 ID3D12Device10 * This,
24413 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
24414 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24415
24416 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
24417 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
24418 ID3D12Device10 * This,
24419 _In_opt_ ID3D12Resource *pResource,
24420 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
24421 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24422
24423 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
24424 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
24425 ID3D12Device10 * This,
24426 _In_opt_ ID3D12Resource *pResource,
24427 _In_opt_ ID3D12Resource *pCounterResource,
24428 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
24429 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24430
24431 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
24432 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
24433 ID3D12Device10 * This,
24434 _In_opt_ ID3D12Resource *pResource,
24435 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
24436 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24437
24438 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
24439 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
24440 ID3D12Device10 * This,
24441 _In_opt_ ID3D12Resource *pResource,
24442 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
24443 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24444
24445 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
24446 void ( STDMETHODCALLTYPE *CreateSampler )(
24447 ID3D12Device10 * This,
24448 _In_ const D3D12_SAMPLER_DESC *pDesc,
24449 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24450
24451 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
24452 void ( STDMETHODCALLTYPE *CopyDescriptors )(
24453 ID3D12Device10 * This,
24454 _In_ UINT NumDestDescriptorRanges,
24455 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
24456 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
24457 _In_ UINT NumSrcDescriptorRanges,
24458 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
24459 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
24460 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
24461
24462 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
24463 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
24464 ID3D12Device10 * This,
24465 _In_ UINT NumDescriptors,
24466 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
24467 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
24468 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
24469
24470 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
24471#if !defined(_WIN32)
24472 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
24473 ID3D12Device10 * This,
24474 _In_ UINT visibleMask,
24475 _In_ UINT numResourceDescs,
24476 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
24477
24478#else
24479 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
24480 ID3D12Device10 * This,
24481 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24482 _In_ UINT visibleMask,
24483 _In_ UINT numResourceDescs,
24484 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
24485
24486#endif
24487
24488 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
24489#if !defined(_WIN32)
24490 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
24491 ID3D12Device10 * This,
24492 _In_ UINT nodeMask,
24493 D3D12_HEAP_TYPE heapType);
24494
24495#else
24496 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
24497 ID3D12Device10 * This,
24498 D3D12_HEAP_PROPERTIES * RetVal,
24499 _In_ UINT nodeMask,
24500 D3D12_HEAP_TYPE heapType);
24501
24502#endif
24503
24504 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
24505 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
24506 ID3D12Device10 * This,
24507 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24508 D3D12_HEAP_FLAGS HeapFlags,
24509 _In_ const D3D12_RESOURCE_DESC *pDesc,
24510 D3D12_RESOURCE_STATES InitialResourceState,
24511 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24512 REFIID riidResource,
24513 _COM_Outptr_opt_ void **ppvResource);
24514
24515 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
24516 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
24517 ID3D12Device10 * This,
24518 _In_ const D3D12_HEAP_DESC *pDesc,
24519 REFIID riid,
24520 _COM_Outptr_opt_ void **ppvHeap);
24521
24522 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
24523 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
24524 ID3D12Device10 * This,
24525 _In_ ID3D12Heap *pHeap,
24526 UINT64 HeapOffset,
24527 _In_ const D3D12_RESOURCE_DESC *pDesc,
24528 D3D12_RESOURCE_STATES InitialState,
24529 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24530 REFIID riid,
24531 _COM_Outptr_opt_ void **ppvResource);
24532
24533 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
24534 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
24535 ID3D12Device10 * This,
24536 _In_ const D3D12_RESOURCE_DESC *pDesc,
24537 D3D12_RESOURCE_STATES InitialState,
24538 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24539 REFIID riid,
24540 _COM_Outptr_opt_ void **ppvResource);
24541
24542 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
24543 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
24544 ID3D12Device10 * This,
24545 _In_ ID3D12DeviceChild *pObject,
24546 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
24547 DWORD Access,
24548 _In_opt_ LPCWSTR Name,
24549 _Out_ HANDLE *pHandle);
24550
24551 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
24552 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
24553 ID3D12Device10 * This,
24554 _In_ HANDLE NTHandle,
24555 REFIID riid,
24556 _COM_Outptr_opt_ void **ppvObj);
24557
24558 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
24559 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
24560 ID3D12Device10 * This,
24561 _In_ LPCWSTR Name,
24562 DWORD Access,
24563 /* [annotation][out] */
24564 _Out_ HANDLE *pNTHandle);
24565
24566 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
24567 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
24568 ID3D12Device10 * This,
24569 UINT NumObjects,
24570 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
24571
24572 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
24573 HRESULT ( STDMETHODCALLTYPE *Evict )(
24574 ID3D12Device10 * This,
24575 UINT NumObjects,
24576 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
24577
24578 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
24579 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
24580 ID3D12Device10 * This,
24581 UINT64 InitialValue,
24582 D3D12_FENCE_FLAGS Flags,
24583 REFIID riid,
24584 _COM_Outptr_ void **ppFence);
24585
24586 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
24587 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
24588 ID3D12Device10 * This);
24589
24590 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
24591 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
24592 ID3D12Device10 * This,
24593 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
24594 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
24595 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
24596 UINT64 BaseOffset,
24597 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
24598 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
24599 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
24600 _Out_opt_ UINT64 *pTotalBytes);
24601
24602 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
24603 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
24604 ID3D12Device10 * This,
24605 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
24606 REFIID riid,
24607 _COM_Outptr_opt_ void **ppvHeap);
24608
24609 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
24610 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
24611 ID3D12Device10 * This,
24612 BOOL Enable);
24613
24614 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
24615 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
24616 ID3D12Device10 * This,
24617 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
24618 _In_opt_ ID3D12RootSignature *pRootSignature,
24619 REFIID riid,
24620 _COM_Outptr_opt_ void **ppvCommandSignature);
24621
24622 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
24623 void ( STDMETHODCALLTYPE *GetResourceTiling )(
24624 ID3D12Device10 * This,
24625 _In_ ID3D12Resource *pTiledResource,
24626 _Out_opt_ UINT *pNumTilesForEntireResource,
24627 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
24628 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
24629 _Inout_opt_ UINT *pNumSubresourceTilings,
24630 _In_ UINT FirstSubresourceTilingToGet,
24631 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
24632
24633 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
24634#if !defined(_WIN32)
24635 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
24636 ID3D12Device10 * This);
24637
24638#else
24639 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
24640 ID3D12Device10 * This,
24641 LUID * RetVal);
24642
24643#endif
24644
24645 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
24646 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
24647 ID3D12Device10 * This,
24648 _In_reads_(BlobLength) const void *pLibraryBlob,
24649 SIZE_T BlobLength,
24650 REFIID riid,
24651 _COM_Outptr_ void **ppPipelineLibrary);
24652
24653 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
24654 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
24655 ID3D12Device10 * This,
24656 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
24657 _In_reads_(NumFences) const UINT64 *pFenceValues,
24658 UINT NumFences,
24659 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
24660 HANDLE hEvent);
24661
24662 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
24663 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
24664 ID3D12Device10 * This,
24665 UINT NumObjects,
24666 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
24667 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
24668
24669 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
24670 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
24671 ID3D12Device10 * This,
24672 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
24673 REFIID riid,
24674 _COM_Outptr_ void **ppPipelineState);
24675
24676 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
24677 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
24678 ID3D12Device10 * This,
24679 _In_ const void *pAddress,
24680 REFIID riid,
24681 _COM_Outptr_ void **ppvHeap);
24682
24683 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
24684 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
24685 ID3D12Device10 * This,
24686 _In_ HANDLE hFileMapping,
24687 REFIID riid,
24688 _COM_Outptr_ void **ppvHeap);
24689
24690 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
24691 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
24692 ID3D12Device10 * This,
24693 D3D12_RESIDENCY_FLAGS Flags,
24694 UINT NumObjects,
24695 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
24696 _In_ ID3D12Fence *pFenceToSignal,
24697 UINT64 FenceValueToSignal);
24698
24699 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
24700 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
24701 ID3D12Device10 * This,
24702 _In_ UINT nodeMask,
24703 _In_ D3D12_COMMAND_LIST_TYPE type,
24704 _In_ D3D12_COMMAND_LIST_FLAGS flags,
24705 REFIID riid,
24706 _COM_Outptr_ void **ppCommandList);
24707
24708 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
24709 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
24710 ID3D12Device10 * This,
24711 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
24712 _In_ REFIID riid,
24713 _COM_Outptr_ void **ppSession);
24714
24715 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
24716 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
24717 ID3D12Device10 * This,
24718 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24719 D3D12_HEAP_FLAGS HeapFlags,
24720 _In_ const D3D12_RESOURCE_DESC *pDesc,
24721 D3D12_RESOURCE_STATES InitialResourceState,
24722 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24723 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24724 REFIID riidResource,
24725 _COM_Outptr_opt_ void **ppvResource);
24726
24727 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
24728 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
24729 ID3D12Device10 * This,
24730 _In_ const D3D12_HEAP_DESC *pDesc,
24731 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24732 REFIID riid,
24733 _COM_Outptr_opt_ void **ppvHeap);
24734
24735 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
24736 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
24737 ID3D12Device10 * This,
24738 _In_ const D3D12_RESOURCE_DESC *pDesc,
24739 D3D12_RESOURCE_STATES InitialState,
24740 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24741 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24742 REFIID riid,
24743 _COM_Outptr_opt_ void **ppvResource);
24744
24745 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
24746#if !defined(_WIN32)
24747 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
24748 ID3D12Device10 * This,
24749 UINT visibleMask,
24750 UINT numResourceDescs,
24751 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
24752 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24753
24754#else
24755 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
24756 ID3D12Device10 * This,
24757 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24758 UINT visibleMask,
24759 UINT numResourceDescs,
24760 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
24761 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24762
24763#endif
24764
24765 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
24766 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
24767 ID3D12Device10 * This,
24768 _In_ ID3D12LifetimeOwner *pOwner,
24769 REFIID riid,
24770 _COM_Outptr_ void **ppvTracker);
24771
24772 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
24773 void ( STDMETHODCALLTYPE *RemoveDevice )(
24774 ID3D12Device10 * This);
24775
24776 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
24777 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
24778 ID3D12Device10 * This,
24779 _Inout_ UINT *pNumMetaCommands,
24780 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
24781
24782 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
24783 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
24784 ID3D12Device10 * This,
24785 _In_ REFGUID CommandId,
24786 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
24787 _Out_opt_ UINT *pTotalStructureSizeInBytes,
24788 _Inout_ UINT *pParameterCount,
24789 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
24790
24791 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
24792 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
24793 ID3D12Device10 * This,
24794 _In_ REFGUID CommandId,
24795 _In_ UINT NodeMask,
24796 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
24797 _In_ SIZE_T CreationParametersDataSizeInBytes,
24798 REFIID riid,
24799 _COM_Outptr_ void **ppMetaCommand);
24800
24801 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
24802 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
24803 ID3D12Device10 * This,
24804 const D3D12_STATE_OBJECT_DESC *pDesc,
24805 REFIID riid,
24806 _COM_Outptr_ void **ppStateObject);
24807
24808 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
24809 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
24810 ID3D12Device10 * This,
24811 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
24812 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
24813
24814 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
24815 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
24816 ID3D12Device10 * This,
24817 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
24818 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
24819
24820 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
24821 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
24822 ID3D12Device10 * This,
24823 D3D12_BACKGROUND_PROCESSING_MODE Mode,
24824 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
24825 _In_opt_ HANDLE hEventToSignalUponCompletion,
24826 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
24827
24828 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
24829 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
24830 ID3D12Device10 * This,
24831 const D3D12_STATE_OBJECT_DESC *pAddition,
24832 ID3D12StateObject *pStateObjectToGrowFrom,
24833 REFIID riid,
24834 _COM_Outptr_ void **ppNewStateObject);
24835
24836 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
24837 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
24838 ID3D12Device10 * This,
24839 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
24840 _In_ REFIID riid,
24841 _COM_Outptr_ void **ppSession);
24842
24843 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
24844#if !defined(_WIN32)
24845 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
24846 ID3D12Device10 * This,
24847 UINT visibleMask,
24848 UINT numResourceDescs,
24849 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
24850 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24851
24852#else
24853 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
24854 ID3D12Device10 * This,
24855 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24856 UINT visibleMask,
24857 UINT numResourceDescs,
24858 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
24859 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24860
24861#endif
24862
24863 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
24864 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
24865 ID3D12Device10 * This,
24866 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24867 D3D12_HEAP_FLAGS HeapFlags,
24868 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24869 D3D12_RESOURCE_STATES InitialResourceState,
24870 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24871 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24872 REFIID riidResource,
24873 _COM_Outptr_opt_ void **ppvResource);
24874
24875 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
24876 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
24877 ID3D12Device10 * This,
24878 _In_ ID3D12Heap *pHeap,
24879 UINT64 HeapOffset,
24880 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24881 D3D12_RESOURCE_STATES InitialState,
24882 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24883 REFIID riid,
24884 _COM_Outptr_opt_ void **ppvResource);
24885
24886 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
24887 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
24888 ID3D12Device10 * This,
24889 _In_opt_ ID3D12Resource *pTargetedResource,
24890 _In_opt_ ID3D12Resource *pFeedbackResource,
24891 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24892
24893 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
24894 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
24895 ID3D12Device10 * This,
24896 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
24897 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
24898 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
24899 UINT64 BaseOffset,
24900 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
24901 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
24902 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
24903 _Out_opt_ UINT64 *pTotalBytes);
24904
24905 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
24906 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
24907 ID3D12Device10 * This,
24908 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
24909 REFIID riid,
24910 _COM_Outptr_opt_ void **ppvSession);
24911
24912 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
24913 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
24914 ID3D12Device10 * This,
24915 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
24916 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
24917
24918 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
24919 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
24920 ID3D12Device10 * This,
24921 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
24922 REFIID CreatorID,
24923 REFIID riid,
24924 _COM_Outptr_ void **ppCommandQueue);
24925
24926 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
24927 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
24928 ID3D12Device10 * This,
24929 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24930 D3D12_HEAP_FLAGS HeapFlags,
24931 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24932 D3D12_BARRIER_LAYOUT InitialLayout,
24933 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24934 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24935 UINT32 NumCastableFormats,
24936 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24937 REFIID riidResource,
24938 _COM_Outptr_opt_ void **ppvResource);
24939
24940 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
24941 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
24942 ID3D12Device10 * This,
24943 _In_ ID3D12Heap *pHeap,
24944 UINT64 HeapOffset,
24945 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24946 D3D12_BARRIER_LAYOUT InitialLayout,
24947 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24948 UINT32 NumCastableFormats,
24949 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24950 REFIID riid,
24951 _COM_Outptr_opt_ void **ppvResource);
24952
24953 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
24954 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
24955 ID3D12Device10 * This,
24956 _In_ const D3D12_RESOURCE_DESC *pDesc,
24957 D3D12_BARRIER_LAYOUT InitialLayout,
24958 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24959 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24960 UINT32 NumCastableFormats,
24961 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24962 REFIID riid,
24963 _COM_Outptr_opt_ void **ppvResource);
24964
24965 END_INTERFACE
24966 } ID3D12Device10Vtbl;
24967
24968 interface ID3D12Device10
24969 {
24970 CONST_VTBL struct ID3D12Device10Vtbl *lpVtbl;
24971 };
24972
24973
24974
24975#ifdef COBJMACROS
24976
24977
24978#define ID3D12Device10_QueryInterface(This,riid,ppvObject) \
24979 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
24980
24981#define ID3D12Device10_AddRef(This) \
24982 ( (This)->lpVtbl -> AddRef(This) )
24983
24984#define ID3D12Device10_Release(This) \
24985 ( (This)->lpVtbl -> Release(This) )
24986
24987
24988#define ID3D12Device10_GetPrivateData(This,guid,pDataSize,pData) \
24989 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
24990
24991#define ID3D12Device10_SetPrivateData(This,guid,DataSize,pData) \
24992 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
24993
24994#define ID3D12Device10_SetPrivateDataInterface(This,guid,pData) \
24995 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
24996
24997#define ID3D12Device10_SetName(This,Name) \
24998 ( (This)->lpVtbl -> SetName(This,Name) )
24999
25000
25001#define ID3D12Device10_GetNodeCount(This) \
25002 ( (This)->lpVtbl -> GetNodeCount(This) )
25003
25004#define ID3D12Device10_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
25005 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
25006
25007#define ID3D12Device10_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
25008 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
25009
25010#define ID3D12Device10_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
25011 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
25012
25013#define ID3D12Device10_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
25014 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
25015
25016#define ID3D12Device10_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
25017 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
25018
25019#define ID3D12Device10_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
25020 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
25021
25022#define ID3D12Device10_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
25023 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
25024
25025#define ID3D12Device10_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
25026 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
25027
25028#define ID3D12Device10_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
25029 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
25030
25031#define ID3D12Device10_CreateConstantBufferView(This,pDesc,DestDescriptor) \
25032 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
25033
25034#define ID3D12Device10_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
25035 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
25036
25037#define ID3D12Device10_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
25038 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
25039
25040#define ID3D12Device10_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
25041 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
25042
25043#define ID3D12Device10_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
25044 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
25045
25046#define ID3D12Device10_CreateSampler(This,pDesc,DestDescriptor) \
25047 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
25048
25049#define ID3D12Device10_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
25050 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
25051
25052#define ID3D12Device10_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
25053 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
25054#if !defined(_WIN32)
25055
25056#define ID3D12Device10_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
25057 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
25058#else
25059#define ID3D12Device10_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
25060 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
25061#endif
25062#if !defined(_WIN32)
25063
25064#define ID3D12Device10_GetCustomHeapProperties(This,nodeMask,heapType) \
25065 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
25066#else
25067#define ID3D12Device10_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
25068 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
25069#endif
25070
25071#define ID3D12Device10_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
25072 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
25073
25074#define ID3D12Device10_CreateHeap(This,pDesc,riid,ppvHeap) \
25075 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
25076
25077#define ID3D12Device10_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25078 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25079
25080#define ID3D12Device10_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25081 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25082
25083#define ID3D12Device10_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
25084 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
25085
25086#define ID3D12Device10_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
25087 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
25088
25089#define ID3D12Device10_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
25090 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
25091
25092#define ID3D12Device10_MakeResident(This,NumObjects,ppObjects) \
25093 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
25094
25095#define ID3D12Device10_Evict(This,NumObjects,ppObjects) \
25096 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
25097
25098#define ID3D12Device10_CreateFence(This,InitialValue,Flags,riid,ppFence) \
25099 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
25100
25101#define ID3D12Device10_GetDeviceRemovedReason(This) \
25102 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
25103
25104#define ID3D12Device10_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
25105 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
25106
25107#define ID3D12Device10_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
25108 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
25109
25110#define ID3D12Device10_SetStablePowerState(This,Enable) \
25111 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
25112
25113#define ID3D12Device10_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
25114 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
25115
25116#define ID3D12Device10_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
25117 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
25118#if !defined(_WIN32)
25119
25120#define ID3D12Device10_GetAdapterLuid(This) \
25121 ( (This)->lpVtbl -> GetAdapterLuid(This) )
25122#else
25123#define ID3D12Device10_GetAdapterLuid(This,RetVal) \
25124 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
25125#endif
25126
25127
25128#define ID3D12Device10_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
25129 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
25130
25131#define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
25132 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
25133
25134#define ID3D12Device10_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
25135 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
25136
25137
25138#define ID3D12Device10_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
25139 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
25140
25141
25142#define ID3D12Device10_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
25143 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
25144
25145#define ID3D12Device10_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
25146 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
25147
25148#define ID3D12Device10_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
25149 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
25150
25151
25152#define ID3D12Device10_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
25153 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
25154
25155#define ID3D12Device10_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
25156 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
25157
25158#define ID3D12Device10_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
25159 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
25160
25161#define ID3D12Device10_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
25162 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
25163
25164#define ID3D12Device10_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
25165 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
25166#if !defined(_WIN32)
25167
25168#define ID3D12Device10_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25169 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25170#else
25171#define ID3D12Device10_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25172 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25173#endif
25174
25175
25176#define ID3D12Device10_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
25177 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
25178
25179#define ID3D12Device10_RemoveDevice(This) \
25180 ( (This)->lpVtbl -> RemoveDevice(This) )
25181
25182#define ID3D12Device10_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
25183 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
25184
25185#define ID3D12Device10_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
25186 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
25187
25188#define ID3D12Device10_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
25189 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
25190
25191#define ID3D12Device10_CreateStateObject(This,pDesc,riid,ppStateObject) \
25192 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
25193
25194#define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
25195 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
25196
25197#define ID3D12Device10_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
25198 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
25199
25200
25201#define ID3D12Device10_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
25202 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
25203
25204
25205#define ID3D12Device10_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
25206 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
25207
25208#define ID3D12Device10_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
25209 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
25210
25211#if !defined(_WIN32)
25212
25213#define ID3D12Device10_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25214 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25215#else
25216#define ID3D12Device10_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25217 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25218#endif
25219
25220#define ID3D12Device10_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
25221 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
25222
25223#define ID3D12Device10_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25224 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25225
25226#define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
25227 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
25228
25229#define ID3D12Device10_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
25230 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
25231
25232
25233#define ID3D12Device10_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
25234 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
25235
25236#define ID3D12Device10_ShaderCacheControl(This,Kinds,Control) \
25237 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
25238
25239#define ID3D12Device10_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
25240 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
25241
25242
25243#define ID3D12Device10_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
25244 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
25245
25246#define ID3D12Device10_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
25247 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
25248
25249#define ID3D12Device10_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
25250 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
25251
25252#endif /* COBJMACROS */
25253
25254
25255#endif /* C style interface */
25256
25257
25258
25259
25260#endif /* __ID3D12Device10_INTERFACE_DEFINED__ */
25261
25262
25263#ifndef __ID3D12Device11_INTERFACE_DEFINED__
25264#define __ID3D12Device11_INTERFACE_DEFINED__
25265
25266/* interface ID3D12Device11 */
25267/* [unique][local][object][uuid] */
25268
25269
25270EXTERN_C const IID IID_ID3D12Device11;
25271
25272#if defined(__cplusplus) && !defined(CINTERFACE)
25273
25274 MIDL_INTERFACE("5405c344-d457-444e-b4dd-2366e45aee39")
25275 ID3D12Device11 : public ID3D12Device10
25276 {
25277 public:
25278 virtual void STDMETHODCALLTYPE CreateSampler2(
25279 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
25280 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
25281
25282 };
25283
25284
25285#else /* C style interface */
25286
25287 typedef struct ID3D12Device11Vtbl
25288 {
25289 BEGIN_INTERFACE
25290
25291 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
25292 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
25293 ID3D12Device11 * This,
25294 REFIID riid,
25295 _COM_Outptr_ void **ppvObject);
25296
25297 DECLSPEC_XFGVIRT(IUnknown, AddRef)
25298 ULONG ( STDMETHODCALLTYPE *AddRef )(
25299 ID3D12Device11 * This);
25300
25301 DECLSPEC_XFGVIRT(IUnknown, Release)
25302 ULONG ( STDMETHODCALLTYPE *Release )(
25303 ID3D12Device11 * This);
25304
25305 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
25306 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
25307 ID3D12Device11 * This,
25308 _In_ REFGUID guid,
25309 _Inout_ UINT *pDataSize,
25310 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
25311
25312 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
25313 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
25314 ID3D12Device11 * This,
25315 _In_ REFGUID guid,
25316 _In_ UINT DataSize,
25317 _In_reads_bytes_opt_( DataSize ) const void *pData);
25318
25319 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
25320 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
25321 ID3D12Device11 * This,
25322 _In_ REFGUID guid,
25323 _In_opt_ const IUnknown *pData);
25324
25325 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
25326 HRESULT ( STDMETHODCALLTYPE *SetName )(
25327 ID3D12Device11 * This,
25328 _In_z_ LPCWSTR Name);
25329
25330 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
25331 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
25332 ID3D12Device11 * This);
25333
25334 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
25335 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
25336 ID3D12Device11 * This,
25337 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
25338 REFIID riid,
25339 _COM_Outptr_ void **ppCommandQueue);
25340
25341 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
25342 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
25343 ID3D12Device11 * This,
25344 _In_ D3D12_COMMAND_LIST_TYPE type,
25345 REFIID riid,
25346 _COM_Outptr_ void **ppCommandAllocator);
25347
25348 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
25349 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
25350 ID3D12Device11 * This,
25351 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
25352 REFIID riid,
25353 _COM_Outptr_ void **ppPipelineState);
25354
25355 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
25356 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
25357 ID3D12Device11 * This,
25358 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
25359 REFIID riid,
25360 _COM_Outptr_ void **ppPipelineState);
25361
25362 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
25363 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
25364 ID3D12Device11 * This,
25365 _In_ UINT nodeMask,
25366 _In_ D3D12_COMMAND_LIST_TYPE type,
25367 _In_ ID3D12CommandAllocator *pCommandAllocator,
25368 _In_opt_ ID3D12PipelineState *pInitialState,
25369 REFIID riid,
25370 _COM_Outptr_ void **ppCommandList);
25371
25372 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
25373 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
25374 ID3D12Device11 * This,
25375 D3D12_FEATURE Feature,
25376 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
25377 UINT FeatureSupportDataSize);
25378
25379 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
25380 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
25381 ID3D12Device11 * This,
25382 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
25383 REFIID riid,
25384 _COM_Outptr_ void **ppvHeap);
25385
25386 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
25387 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
25388 ID3D12Device11 * This,
25389 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
25390
25391 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
25392 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
25393 ID3D12Device11 * This,
25394 _In_ UINT nodeMask,
25395 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
25396 _In_ SIZE_T blobLengthInBytes,
25397 REFIID riid,
25398 _COM_Outptr_ void **ppvRootSignature);
25399
25400 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
25401 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
25402 ID3D12Device11 * This,
25403 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
25404 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25405
25406 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
25407 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
25408 ID3D12Device11 * This,
25409 _In_opt_ ID3D12Resource *pResource,
25410 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
25411 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25412
25413 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
25414 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
25415 ID3D12Device11 * This,
25416 _In_opt_ ID3D12Resource *pResource,
25417 _In_opt_ ID3D12Resource *pCounterResource,
25418 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
25419 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25420
25421 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
25422 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
25423 ID3D12Device11 * This,
25424 _In_opt_ ID3D12Resource *pResource,
25425 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
25426 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25427
25428 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
25429 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
25430 ID3D12Device11 * This,
25431 _In_opt_ ID3D12Resource *pResource,
25432 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
25433 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25434
25435 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
25436 void ( STDMETHODCALLTYPE *CreateSampler )(
25437 ID3D12Device11 * This,
25438 _In_ const D3D12_SAMPLER_DESC *pDesc,
25439 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25440
25441 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
25442 void ( STDMETHODCALLTYPE *CopyDescriptors )(
25443 ID3D12Device11 * This,
25444 _In_ UINT NumDestDescriptorRanges,
25445 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
25446 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
25447 _In_ UINT NumSrcDescriptorRanges,
25448 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
25449 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
25450 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
25451
25452 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
25453 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
25454 ID3D12Device11 * This,
25455 _In_ UINT NumDescriptors,
25456 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
25457 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
25458 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
25459
25460 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
25461#if !defined(_WIN32)
25462 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
25463 ID3D12Device11 * This,
25464 _In_ UINT visibleMask,
25465 _In_ UINT numResourceDescs,
25466 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
25467
25468#else
25469 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
25470 ID3D12Device11 * This,
25471 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25472 _In_ UINT visibleMask,
25473 _In_ UINT numResourceDescs,
25474 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
25475
25476#endif
25477
25478 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
25479#if !defined(_WIN32)
25480 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
25481 ID3D12Device11 * This,
25482 _In_ UINT nodeMask,
25483 D3D12_HEAP_TYPE heapType);
25484
25485#else
25486 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
25487 ID3D12Device11 * This,
25488 D3D12_HEAP_PROPERTIES * RetVal,
25489 _In_ UINT nodeMask,
25490 D3D12_HEAP_TYPE heapType);
25491
25492#endif
25493
25494 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
25495 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
25496 ID3D12Device11 * This,
25497 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25498 D3D12_HEAP_FLAGS HeapFlags,
25499 _In_ const D3D12_RESOURCE_DESC *pDesc,
25500 D3D12_RESOURCE_STATES InitialResourceState,
25501 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25502 REFIID riidResource,
25503 _COM_Outptr_opt_ void **ppvResource);
25504
25505 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
25506 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
25507 ID3D12Device11 * This,
25508 _In_ const D3D12_HEAP_DESC *pDesc,
25509 REFIID riid,
25510 _COM_Outptr_opt_ void **ppvHeap);
25511
25512 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
25513 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
25514 ID3D12Device11 * This,
25515 _In_ ID3D12Heap *pHeap,
25516 UINT64 HeapOffset,
25517 _In_ const D3D12_RESOURCE_DESC *pDesc,
25518 D3D12_RESOURCE_STATES InitialState,
25519 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25520 REFIID riid,
25521 _COM_Outptr_opt_ void **ppvResource);
25522
25523 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
25524 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
25525 ID3D12Device11 * This,
25526 _In_ const D3D12_RESOURCE_DESC *pDesc,
25527 D3D12_RESOURCE_STATES InitialState,
25528 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25529 REFIID riid,
25530 _COM_Outptr_opt_ void **ppvResource);
25531
25532 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
25533 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
25534 ID3D12Device11 * This,
25535 _In_ ID3D12DeviceChild *pObject,
25536 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
25537 DWORD Access,
25538 _In_opt_ LPCWSTR Name,
25539 _Out_ HANDLE *pHandle);
25540
25541 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
25542 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
25543 ID3D12Device11 * This,
25544 _In_ HANDLE NTHandle,
25545 REFIID riid,
25546 _COM_Outptr_opt_ void **ppvObj);
25547
25548 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
25549 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
25550 ID3D12Device11 * This,
25551 _In_ LPCWSTR Name,
25552 DWORD Access,
25553 /* [annotation][out] */
25554 _Out_ HANDLE *pNTHandle);
25555
25556 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
25557 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
25558 ID3D12Device11 * This,
25559 UINT NumObjects,
25560 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
25561
25562 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
25563 HRESULT ( STDMETHODCALLTYPE *Evict )(
25564 ID3D12Device11 * This,
25565 UINT NumObjects,
25566 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
25567
25568 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
25569 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
25570 ID3D12Device11 * This,
25571 UINT64 InitialValue,
25572 D3D12_FENCE_FLAGS Flags,
25573 REFIID riid,
25574 _COM_Outptr_ void **ppFence);
25575
25576 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
25577 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
25578 ID3D12Device11 * This);
25579
25580 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
25581 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
25582 ID3D12Device11 * This,
25583 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
25584 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
25585 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
25586 UINT64 BaseOffset,
25587 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
25588 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
25589 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
25590 _Out_opt_ UINT64 *pTotalBytes);
25591
25592 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
25593 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
25594 ID3D12Device11 * This,
25595 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
25596 REFIID riid,
25597 _COM_Outptr_opt_ void **ppvHeap);
25598
25599 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
25600 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
25601 ID3D12Device11 * This,
25602 BOOL Enable);
25603
25604 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
25605 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
25606 ID3D12Device11 * This,
25607 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
25608 _In_opt_ ID3D12RootSignature *pRootSignature,
25609 REFIID riid,
25610 _COM_Outptr_opt_ void **ppvCommandSignature);
25611
25612 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
25613 void ( STDMETHODCALLTYPE *GetResourceTiling )(
25614 ID3D12Device11 * This,
25615 _In_ ID3D12Resource *pTiledResource,
25616 _Out_opt_ UINT *pNumTilesForEntireResource,
25617 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
25618 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
25619 _Inout_opt_ UINT *pNumSubresourceTilings,
25620 _In_ UINT FirstSubresourceTilingToGet,
25621 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
25622
25623 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
25624#if !defined(_WIN32)
25625 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
25626 ID3D12Device11 * This);
25627
25628#else
25629 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
25630 ID3D12Device11 * This,
25631 LUID * RetVal);
25632
25633#endif
25634
25635 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
25636 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
25637 ID3D12Device11 * This,
25638 _In_reads_(BlobLength) const void *pLibraryBlob,
25639 SIZE_T BlobLength,
25640 REFIID riid,
25641 _COM_Outptr_ void **ppPipelineLibrary);
25642
25643 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
25644 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
25645 ID3D12Device11 * This,
25646 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
25647 _In_reads_(NumFences) const UINT64 *pFenceValues,
25648 UINT NumFences,
25649 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
25650 HANDLE hEvent);
25651
25652 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
25653 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
25654 ID3D12Device11 * This,
25655 UINT NumObjects,
25656 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
25657 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
25658
25659 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
25660 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
25661 ID3D12Device11 * This,
25662 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
25663 REFIID riid,
25664 _COM_Outptr_ void **ppPipelineState);
25665
25666 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
25667 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
25668 ID3D12Device11 * This,
25669 _In_ const void *pAddress,
25670 REFIID riid,
25671 _COM_Outptr_ void **ppvHeap);
25672
25673 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
25674 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
25675 ID3D12Device11 * This,
25676 _In_ HANDLE hFileMapping,
25677 REFIID riid,
25678 _COM_Outptr_ void **ppvHeap);
25679
25680 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
25681 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
25682 ID3D12Device11 * This,
25683 D3D12_RESIDENCY_FLAGS Flags,
25684 UINT NumObjects,
25685 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
25686 _In_ ID3D12Fence *pFenceToSignal,
25687 UINT64 FenceValueToSignal);
25688
25689 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
25690 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
25691 ID3D12Device11 * This,
25692 _In_ UINT nodeMask,
25693 _In_ D3D12_COMMAND_LIST_TYPE type,
25694 _In_ D3D12_COMMAND_LIST_FLAGS flags,
25695 REFIID riid,
25696 _COM_Outptr_ void **ppCommandList);
25697
25698 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
25699 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
25700 ID3D12Device11 * This,
25701 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
25702 _In_ REFIID riid,
25703 _COM_Outptr_ void **ppSession);
25704
25705 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
25706 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
25707 ID3D12Device11 * This,
25708 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25709 D3D12_HEAP_FLAGS HeapFlags,
25710 _In_ const D3D12_RESOURCE_DESC *pDesc,
25711 D3D12_RESOURCE_STATES InitialResourceState,
25712 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25713 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25714 REFIID riidResource,
25715 _COM_Outptr_opt_ void **ppvResource);
25716
25717 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
25718 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
25719 ID3D12Device11 * This,
25720 _In_ const D3D12_HEAP_DESC *pDesc,
25721 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25722 REFIID riid,
25723 _COM_Outptr_opt_ void **ppvHeap);
25724
25725 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
25726 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
25727 ID3D12Device11 * This,
25728 _In_ const D3D12_RESOURCE_DESC *pDesc,
25729 D3D12_RESOURCE_STATES InitialState,
25730 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25731 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25732 REFIID riid,
25733 _COM_Outptr_opt_ void **ppvResource);
25734
25735 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
25736#if !defined(_WIN32)
25737 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
25738 ID3D12Device11 * This,
25739 UINT visibleMask,
25740 UINT numResourceDescs,
25741 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
25742 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25743
25744#else
25745 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
25746 ID3D12Device11 * This,
25747 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25748 UINT visibleMask,
25749 UINT numResourceDescs,
25750 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
25751 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25752
25753#endif
25754
25755 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
25756 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
25757 ID3D12Device11 * This,
25758 _In_ ID3D12LifetimeOwner *pOwner,
25759 REFIID riid,
25760 _COM_Outptr_ void **ppvTracker);
25761
25762 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
25763 void ( STDMETHODCALLTYPE *RemoveDevice )(
25764 ID3D12Device11 * This);
25765
25766 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
25767 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
25768 ID3D12Device11 * This,
25769 _Inout_ UINT *pNumMetaCommands,
25770 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
25771
25772 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
25773 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
25774 ID3D12Device11 * This,
25775 _In_ REFGUID CommandId,
25776 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
25777 _Out_opt_ UINT *pTotalStructureSizeInBytes,
25778 _Inout_ UINT *pParameterCount,
25779 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
25780
25781 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
25782 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
25783 ID3D12Device11 * This,
25784 _In_ REFGUID CommandId,
25785 _In_ UINT NodeMask,
25786 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
25787 _In_ SIZE_T CreationParametersDataSizeInBytes,
25788 REFIID riid,
25789 _COM_Outptr_ void **ppMetaCommand);
25790
25791 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
25792 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
25793 ID3D12Device11 * This,
25794 const D3D12_STATE_OBJECT_DESC *pDesc,
25795 REFIID riid,
25796 _COM_Outptr_ void **ppStateObject);
25797
25798 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
25799 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
25800 ID3D12Device11 * This,
25801 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
25802 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
25803
25804 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
25805 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
25806 ID3D12Device11 * This,
25807 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
25808 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
25809
25810 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
25811 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
25812 ID3D12Device11 * This,
25813 D3D12_BACKGROUND_PROCESSING_MODE Mode,
25814 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
25815 _In_opt_ HANDLE hEventToSignalUponCompletion,
25816 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
25817
25818 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
25819 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
25820 ID3D12Device11 * This,
25821 const D3D12_STATE_OBJECT_DESC *pAddition,
25822 ID3D12StateObject *pStateObjectToGrowFrom,
25823 REFIID riid,
25824 _COM_Outptr_ void **ppNewStateObject);
25825
25826 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
25827 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
25828 ID3D12Device11 * This,
25829 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
25830 _In_ REFIID riid,
25831 _COM_Outptr_ void **ppSession);
25832
25833 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
25834#if !defined(_WIN32)
25835 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
25836 ID3D12Device11 * This,
25837 UINT visibleMask,
25838 UINT numResourceDescs,
25839 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
25840 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25841
25842#else
25843 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
25844 ID3D12Device11 * This,
25845 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25846 UINT visibleMask,
25847 UINT numResourceDescs,
25848 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
25849 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25850
25851#endif
25852
25853 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
25854 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
25855 ID3D12Device11 * This,
25856 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25857 D3D12_HEAP_FLAGS HeapFlags,
25858 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25859 D3D12_RESOURCE_STATES InitialResourceState,
25860 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25861 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25862 REFIID riidResource,
25863 _COM_Outptr_opt_ void **ppvResource);
25864
25865 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
25866 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
25867 ID3D12Device11 * This,
25868 _In_ ID3D12Heap *pHeap,
25869 UINT64 HeapOffset,
25870 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25871 D3D12_RESOURCE_STATES InitialState,
25872 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25873 REFIID riid,
25874 _COM_Outptr_opt_ void **ppvResource);
25875
25876 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
25877 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
25878 ID3D12Device11 * This,
25879 _In_opt_ ID3D12Resource *pTargetedResource,
25880 _In_opt_ ID3D12Resource *pFeedbackResource,
25881 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25882
25883 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
25884 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
25885 ID3D12Device11 * This,
25886 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
25887 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
25888 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
25889 UINT64 BaseOffset,
25890 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
25891 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
25892 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
25893 _Out_opt_ UINT64 *pTotalBytes);
25894
25895 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
25896 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
25897 ID3D12Device11 * This,
25898 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
25899 REFIID riid,
25900 _COM_Outptr_opt_ void **ppvSession);
25901
25902 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
25903 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
25904 ID3D12Device11 * This,
25905 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
25906 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
25907
25908 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
25909 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
25910 ID3D12Device11 * This,
25911 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
25912 REFIID CreatorID,
25913 REFIID riid,
25914 _COM_Outptr_ void **ppCommandQueue);
25915
25916 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
25917 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
25918 ID3D12Device11 * This,
25919 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25920 D3D12_HEAP_FLAGS HeapFlags,
25921 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25922 D3D12_BARRIER_LAYOUT InitialLayout,
25923 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25924 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25925 UINT32 NumCastableFormats,
25926 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
25927 REFIID riidResource,
25928 _COM_Outptr_opt_ void **ppvResource);
25929
25930 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
25931 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
25932 ID3D12Device11 * This,
25933 _In_ ID3D12Heap *pHeap,
25934 UINT64 HeapOffset,
25935 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25936 D3D12_BARRIER_LAYOUT InitialLayout,
25937 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25938 UINT32 NumCastableFormats,
25939 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
25940 REFIID riid,
25941 _COM_Outptr_opt_ void **ppvResource);
25942
25943 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
25944 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
25945 ID3D12Device11 * This,
25946 _In_ const D3D12_RESOURCE_DESC *pDesc,
25947 D3D12_BARRIER_LAYOUT InitialLayout,
25948 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25949 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25950 UINT32 NumCastableFormats,
25951 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
25952 REFIID riid,
25953 _COM_Outptr_opt_ void **ppvResource);
25954
25955 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
25956 void ( STDMETHODCALLTYPE *CreateSampler2 )(
25957 ID3D12Device11 * This,
25958 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
25959 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25960
25961 END_INTERFACE
25962 } ID3D12Device11Vtbl;
25963
25964 interface ID3D12Device11
25965 {
25966 CONST_VTBL struct ID3D12Device11Vtbl *lpVtbl;
25967 };
25968
25969
25970
25971#ifdef COBJMACROS
25972
25973
25974#define ID3D12Device11_QueryInterface(This,riid,ppvObject) \
25975 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
25976
25977#define ID3D12Device11_AddRef(This) \
25978 ( (This)->lpVtbl -> AddRef(This) )
25979
25980#define ID3D12Device11_Release(This) \
25981 ( (This)->lpVtbl -> Release(This) )
25982
25983
25984#define ID3D12Device11_GetPrivateData(This,guid,pDataSize,pData) \
25985 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
25986
25987#define ID3D12Device11_SetPrivateData(This,guid,DataSize,pData) \
25988 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
25989
25990#define ID3D12Device11_SetPrivateDataInterface(This,guid,pData) \
25991 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
25992
25993#define ID3D12Device11_SetName(This,Name) \
25994 ( (This)->lpVtbl -> SetName(This,Name) )
25995
25996
25997#define ID3D12Device11_GetNodeCount(This) \
25998 ( (This)->lpVtbl -> GetNodeCount(This) )
25999
26000#define ID3D12Device11_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
26001 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
26002
26003#define ID3D12Device11_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
26004 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
26005
26006#define ID3D12Device11_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
26007 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
26008
26009#define ID3D12Device11_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
26010 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
26011
26012#define ID3D12Device11_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
26013 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
26014
26015#define ID3D12Device11_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
26016 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
26017
26018#define ID3D12Device11_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
26019 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
26020
26021#define ID3D12Device11_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
26022 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
26023
26024#define ID3D12Device11_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
26025 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
26026
26027#define ID3D12Device11_CreateConstantBufferView(This,pDesc,DestDescriptor) \
26028 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
26029
26030#define ID3D12Device11_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
26031 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
26032
26033#define ID3D12Device11_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
26034 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
26035
26036#define ID3D12Device11_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
26037 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
26038
26039#define ID3D12Device11_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
26040 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
26041
26042#define ID3D12Device11_CreateSampler(This,pDesc,DestDescriptor) \
26043 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
26044
26045#define ID3D12Device11_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
26046 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
26047
26048#define ID3D12Device11_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
26049 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
26050#if !defined(_WIN32)
26051
26052#define ID3D12Device11_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
26053 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
26054#else
26055#define ID3D12Device11_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
26056 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
26057#endif
26058#if !defined(_WIN32)
26059
26060#define ID3D12Device11_GetCustomHeapProperties(This,nodeMask,heapType) \
26061 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
26062#else
26063#define ID3D12Device11_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
26064 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
26065#endif
26066
26067#define ID3D12Device11_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
26068 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
26069
26070#define ID3D12Device11_CreateHeap(This,pDesc,riid,ppvHeap) \
26071 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
26072
26073#define ID3D12Device11_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26074 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26075
26076#define ID3D12Device11_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26077 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26078
26079#define ID3D12Device11_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
26080 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
26081
26082#define ID3D12Device11_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
26083 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
26084
26085#define ID3D12Device11_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
26086 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
26087
26088#define ID3D12Device11_MakeResident(This,NumObjects,ppObjects) \
26089 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
26090
26091#define ID3D12Device11_Evict(This,NumObjects,ppObjects) \
26092 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
26093
26094#define ID3D12Device11_CreateFence(This,InitialValue,Flags,riid,ppFence) \
26095 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
26096
26097#define ID3D12Device11_GetDeviceRemovedReason(This) \
26098 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
26099
26100#define ID3D12Device11_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
26101 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
26102
26103#define ID3D12Device11_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
26104 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
26105
26106#define ID3D12Device11_SetStablePowerState(This,Enable) \
26107 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
26108
26109#define ID3D12Device11_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
26110 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
26111
26112#define ID3D12Device11_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
26113 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
26114#if !defined(_WIN32)
26115
26116#define ID3D12Device11_GetAdapterLuid(This) \
26117 ( (This)->lpVtbl -> GetAdapterLuid(This) )
26118#else
26119#define ID3D12Device11_GetAdapterLuid(This,RetVal) \
26120 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
26121#endif
26122
26123
26124#define ID3D12Device11_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
26125 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
26126
26127#define ID3D12Device11_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
26128 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
26129
26130#define ID3D12Device11_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
26131 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
26132
26133
26134#define ID3D12Device11_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
26135 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
26136
26137
26138#define ID3D12Device11_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
26139 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
26140
26141#define ID3D12Device11_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
26142 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
26143
26144#define ID3D12Device11_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
26145 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
26146
26147
26148#define ID3D12Device11_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
26149 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
26150
26151#define ID3D12Device11_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
26152 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
26153
26154#define ID3D12Device11_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
26155 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
26156
26157#define ID3D12Device11_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
26158 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
26159
26160#define ID3D12Device11_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
26161 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
26162#if !defined(_WIN32)
26163
26164#define ID3D12Device11_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26165 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26166#else
26167#define ID3D12Device11_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26168 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26169#endif
26170
26171
26172#define ID3D12Device11_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
26173 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
26174
26175#define ID3D12Device11_RemoveDevice(This) \
26176 ( (This)->lpVtbl -> RemoveDevice(This) )
26177
26178#define ID3D12Device11_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
26179 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
26180
26181#define ID3D12Device11_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
26182 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
26183
26184#define ID3D12Device11_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
26185 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
26186
26187#define ID3D12Device11_CreateStateObject(This,pDesc,riid,ppStateObject) \
26188 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
26189
26190#define ID3D12Device11_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
26191 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
26192
26193#define ID3D12Device11_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
26194 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
26195
26196
26197#define ID3D12Device11_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
26198 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
26199
26200
26201#define ID3D12Device11_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
26202 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
26203
26204#define ID3D12Device11_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
26205 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
26206
26207#if !defined(_WIN32)
26208
26209#define ID3D12Device11_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26210 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26211#else
26212#define ID3D12Device11_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26213 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26214#endif
26215
26216#define ID3D12Device11_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
26217 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
26218
26219#define ID3D12Device11_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26220 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26221
26222#define ID3D12Device11_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
26223 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
26224
26225#define ID3D12Device11_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
26226 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
26227
26228
26229#define ID3D12Device11_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
26230 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
26231
26232#define ID3D12Device11_ShaderCacheControl(This,Kinds,Control) \
26233 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
26234
26235#define ID3D12Device11_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
26236 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
26237
26238
26239#define ID3D12Device11_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
26240 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
26241
26242#define ID3D12Device11_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
26243 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
26244
26245#define ID3D12Device11_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
26246 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
26247
26248
26249#define ID3D12Device11_CreateSampler2(This,pDesc,DestDescriptor) \
26250 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
26251
26252#endif /* COBJMACROS */
26253
26254
26255#endif /* C style interface */
26256
26257
26258
26259
26260#endif /* __ID3D12Device11_INTERFACE_DEFINED__ */
26261
26262
26263#ifndef __ID3D12Device12_INTERFACE_DEFINED__
26264#define __ID3D12Device12_INTERFACE_DEFINED__
26265
26266/* interface ID3D12Device12 */
26267/* [unique][local][object][uuid] */
26268
26269
26270EXTERN_C const IID IID_ID3D12Device12;
26271
26272#if defined(__cplusplus) && !defined(CINTERFACE)
26273
26274 MIDL_INTERFACE("5af5c532-4c91-4cd0-b541-15a405395fc5")
26275 ID3D12Device12 : public ID3D12Device11
26276 {
26277 public:
26278#if defined(_MSC_VER) || !defined(_WIN32)
26279 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo3(
26280 UINT visibleMask,
26281 UINT numResourceDescs,
26282 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26283 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26284 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26285 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
26286#else
26287 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo3(
26288 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26289 UINT visibleMask,
26290 UINT numResourceDescs,
26291 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26292 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26293 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26294 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
26295#endif
26296
26297 };
26298
26299
26300#else /* C style interface */
26301
26302 typedef struct ID3D12Device12Vtbl
26303 {
26304 BEGIN_INTERFACE
26305
26306 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
26307 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
26308 ID3D12Device12 * This,
26309 REFIID riid,
26310 _COM_Outptr_ void **ppvObject);
26311
26312 DECLSPEC_XFGVIRT(IUnknown, AddRef)
26313 ULONG ( STDMETHODCALLTYPE *AddRef )(
26314 ID3D12Device12 * This);
26315
26316 DECLSPEC_XFGVIRT(IUnknown, Release)
26317 ULONG ( STDMETHODCALLTYPE *Release )(
26318 ID3D12Device12 * This);
26319
26320 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
26321 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
26322 ID3D12Device12 * This,
26323 _In_ REFGUID guid,
26324 _Inout_ UINT *pDataSize,
26325 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
26326
26327 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
26328 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
26329 ID3D12Device12 * This,
26330 _In_ REFGUID guid,
26331 _In_ UINT DataSize,
26332 _In_reads_bytes_opt_( DataSize ) const void *pData);
26333
26334 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
26335 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
26336 ID3D12Device12 * This,
26337 _In_ REFGUID guid,
26338 _In_opt_ const IUnknown *pData);
26339
26340 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
26341 HRESULT ( STDMETHODCALLTYPE *SetName )(
26342 ID3D12Device12 * This,
26343 _In_z_ LPCWSTR Name);
26344
26345 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
26346 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
26347 ID3D12Device12 * This);
26348
26349 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
26350 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
26351 ID3D12Device12 * This,
26352 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
26353 REFIID riid,
26354 _COM_Outptr_ void **ppCommandQueue);
26355
26356 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
26357 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
26358 ID3D12Device12 * This,
26359 _In_ D3D12_COMMAND_LIST_TYPE type,
26360 REFIID riid,
26361 _COM_Outptr_ void **ppCommandAllocator);
26362
26363 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
26364 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
26365 ID3D12Device12 * This,
26366 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
26367 REFIID riid,
26368 _COM_Outptr_ void **ppPipelineState);
26369
26370 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
26371 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
26372 ID3D12Device12 * This,
26373 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
26374 REFIID riid,
26375 _COM_Outptr_ void **ppPipelineState);
26376
26377 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
26378 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
26379 ID3D12Device12 * This,
26380 _In_ UINT nodeMask,
26381 _In_ D3D12_COMMAND_LIST_TYPE type,
26382 _In_ ID3D12CommandAllocator *pCommandAllocator,
26383 _In_opt_ ID3D12PipelineState *pInitialState,
26384 REFIID riid,
26385 _COM_Outptr_ void **ppCommandList);
26386
26387 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
26388 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
26389 ID3D12Device12 * This,
26390 D3D12_FEATURE Feature,
26391 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
26392 UINT FeatureSupportDataSize);
26393
26394 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
26395 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
26396 ID3D12Device12 * This,
26397 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
26398 REFIID riid,
26399 _COM_Outptr_ void **ppvHeap);
26400
26401 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
26402 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
26403 ID3D12Device12 * This,
26404 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
26405
26406 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
26407 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
26408 ID3D12Device12 * This,
26409 _In_ UINT nodeMask,
26410 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
26411 _In_ SIZE_T blobLengthInBytes,
26412 REFIID riid,
26413 _COM_Outptr_ void **ppvRootSignature);
26414
26415 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
26416 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
26417 ID3D12Device12 * This,
26418 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
26419 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26420
26421 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
26422 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
26423 ID3D12Device12 * This,
26424 _In_opt_ ID3D12Resource *pResource,
26425 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
26426 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26427
26428 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
26429 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
26430 ID3D12Device12 * This,
26431 _In_opt_ ID3D12Resource *pResource,
26432 _In_opt_ ID3D12Resource *pCounterResource,
26433 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
26434 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26435
26436 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
26437 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
26438 ID3D12Device12 * This,
26439 _In_opt_ ID3D12Resource *pResource,
26440 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
26441 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26442
26443 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
26444 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
26445 ID3D12Device12 * This,
26446 _In_opt_ ID3D12Resource *pResource,
26447 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
26448 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26449
26450 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
26451 void ( STDMETHODCALLTYPE *CreateSampler )(
26452 ID3D12Device12 * This,
26453 _In_ const D3D12_SAMPLER_DESC *pDesc,
26454 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26455
26456 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
26457 void ( STDMETHODCALLTYPE *CopyDescriptors )(
26458 ID3D12Device12 * This,
26459 _In_ UINT NumDestDescriptorRanges,
26460 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
26461 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
26462 _In_ UINT NumSrcDescriptorRanges,
26463 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
26464 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
26465 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
26466
26467 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
26468 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
26469 ID3D12Device12 * This,
26470 _In_ UINT NumDescriptors,
26471 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
26472 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
26473 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
26474
26475 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
26476#if !defined(_WIN32)
26477 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
26478 ID3D12Device12 * This,
26479 _In_ UINT visibleMask,
26480 _In_ UINT numResourceDescs,
26481 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
26482
26483#else
26484 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
26485 ID3D12Device12 * This,
26486 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26487 _In_ UINT visibleMask,
26488 _In_ UINT numResourceDescs,
26489 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
26490
26491#endif
26492
26493 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
26494#if !defined(_WIN32)
26495 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
26496 ID3D12Device12 * This,
26497 _In_ UINT nodeMask,
26498 D3D12_HEAP_TYPE heapType);
26499
26500#else
26501 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
26502 ID3D12Device12 * This,
26503 D3D12_HEAP_PROPERTIES * RetVal,
26504 _In_ UINT nodeMask,
26505 D3D12_HEAP_TYPE heapType);
26506
26507#endif
26508
26509 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
26510 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
26511 ID3D12Device12 * This,
26512 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26513 D3D12_HEAP_FLAGS HeapFlags,
26514 _In_ const D3D12_RESOURCE_DESC *pDesc,
26515 D3D12_RESOURCE_STATES InitialResourceState,
26516 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26517 REFIID riidResource,
26518 _COM_Outptr_opt_ void **ppvResource);
26519
26520 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
26521 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
26522 ID3D12Device12 * This,
26523 _In_ const D3D12_HEAP_DESC *pDesc,
26524 REFIID riid,
26525 _COM_Outptr_opt_ void **ppvHeap);
26526
26527 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
26528 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
26529 ID3D12Device12 * This,
26530 _In_ ID3D12Heap *pHeap,
26531 UINT64 HeapOffset,
26532 _In_ const D3D12_RESOURCE_DESC *pDesc,
26533 D3D12_RESOURCE_STATES InitialState,
26534 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26535 REFIID riid,
26536 _COM_Outptr_opt_ void **ppvResource);
26537
26538 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
26539 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
26540 ID3D12Device12 * This,
26541 _In_ const D3D12_RESOURCE_DESC *pDesc,
26542 D3D12_RESOURCE_STATES InitialState,
26543 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26544 REFIID riid,
26545 _COM_Outptr_opt_ void **ppvResource);
26546
26547 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
26548 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
26549 ID3D12Device12 * This,
26550 _In_ ID3D12DeviceChild *pObject,
26551 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
26552 DWORD Access,
26553 _In_opt_ LPCWSTR Name,
26554 _Out_ HANDLE *pHandle);
26555
26556 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
26557 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
26558 ID3D12Device12 * This,
26559 _In_ HANDLE NTHandle,
26560 REFIID riid,
26561 _COM_Outptr_opt_ void **ppvObj);
26562
26563 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
26564 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
26565 ID3D12Device12 * This,
26566 _In_ LPCWSTR Name,
26567 DWORD Access,
26568 /* [annotation][out] */
26569 _Out_ HANDLE *pNTHandle);
26570
26571 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
26572 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
26573 ID3D12Device12 * This,
26574 UINT NumObjects,
26575 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
26576
26577 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
26578 HRESULT ( STDMETHODCALLTYPE *Evict )(
26579 ID3D12Device12 * This,
26580 UINT NumObjects,
26581 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
26582
26583 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
26584 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
26585 ID3D12Device12 * This,
26586 UINT64 InitialValue,
26587 D3D12_FENCE_FLAGS Flags,
26588 REFIID riid,
26589 _COM_Outptr_ void **ppFence);
26590
26591 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
26592 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
26593 ID3D12Device12 * This);
26594
26595 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
26596 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
26597 ID3D12Device12 * This,
26598 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
26599 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
26600 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
26601 UINT64 BaseOffset,
26602 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
26603 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
26604 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
26605 _Out_opt_ UINT64 *pTotalBytes);
26606
26607 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
26608 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
26609 ID3D12Device12 * This,
26610 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
26611 REFIID riid,
26612 _COM_Outptr_opt_ void **ppvHeap);
26613
26614 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
26615 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
26616 ID3D12Device12 * This,
26617 BOOL Enable);
26618
26619 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
26620 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
26621 ID3D12Device12 * This,
26622 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
26623 _In_opt_ ID3D12RootSignature *pRootSignature,
26624 REFIID riid,
26625 _COM_Outptr_opt_ void **ppvCommandSignature);
26626
26627 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
26628 void ( STDMETHODCALLTYPE *GetResourceTiling )(
26629 ID3D12Device12 * This,
26630 _In_ ID3D12Resource *pTiledResource,
26631 _Out_opt_ UINT *pNumTilesForEntireResource,
26632 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
26633 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
26634 _Inout_opt_ UINT *pNumSubresourceTilings,
26635 _In_ UINT FirstSubresourceTilingToGet,
26636 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
26637
26638 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
26639#if !defined(_WIN32)
26640 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
26641 ID3D12Device12 * This);
26642
26643#else
26644 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
26645 ID3D12Device12 * This,
26646 LUID * RetVal);
26647
26648#endif
26649
26650 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
26651 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
26652 ID3D12Device12 * This,
26653 _In_reads_(BlobLength) const void *pLibraryBlob,
26654 SIZE_T BlobLength,
26655 REFIID riid,
26656 _COM_Outptr_ void **ppPipelineLibrary);
26657
26658 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
26659 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
26660 ID3D12Device12 * This,
26661 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
26662 _In_reads_(NumFences) const UINT64 *pFenceValues,
26663 UINT NumFences,
26664 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
26665 HANDLE hEvent);
26666
26667 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
26668 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
26669 ID3D12Device12 * This,
26670 UINT NumObjects,
26671 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
26672 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
26673
26674 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
26675 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
26676 ID3D12Device12 * This,
26677 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
26678 REFIID riid,
26679 _COM_Outptr_ void **ppPipelineState);
26680
26681 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
26682 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
26683 ID3D12Device12 * This,
26684 _In_ const void *pAddress,
26685 REFIID riid,
26686 _COM_Outptr_ void **ppvHeap);
26687
26688 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
26689 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
26690 ID3D12Device12 * This,
26691 _In_ HANDLE hFileMapping,
26692 REFIID riid,
26693 _COM_Outptr_ void **ppvHeap);
26694
26695 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
26696 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
26697 ID3D12Device12 * This,
26698 D3D12_RESIDENCY_FLAGS Flags,
26699 UINT NumObjects,
26700 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
26701 _In_ ID3D12Fence *pFenceToSignal,
26702 UINT64 FenceValueToSignal);
26703
26704 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
26705 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
26706 ID3D12Device12 * This,
26707 _In_ UINT nodeMask,
26708 _In_ D3D12_COMMAND_LIST_TYPE type,
26709 _In_ D3D12_COMMAND_LIST_FLAGS flags,
26710 REFIID riid,
26711 _COM_Outptr_ void **ppCommandList);
26712
26713 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
26714 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
26715 ID3D12Device12 * This,
26716 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
26717 _In_ REFIID riid,
26718 _COM_Outptr_ void **ppSession);
26719
26720 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
26721 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
26722 ID3D12Device12 * This,
26723 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26724 D3D12_HEAP_FLAGS HeapFlags,
26725 _In_ const D3D12_RESOURCE_DESC *pDesc,
26726 D3D12_RESOURCE_STATES InitialResourceState,
26727 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26728 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26729 REFIID riidResource,
26730 _COM_Outptr_opt_ void **ppvResource);
26731
26732 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
26733 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
26734 ID3D12Device12 * This,
26735 _In_ const D3D12_HEAP_DESC *pDesc,
26736 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26737 REFIID riid,
26738 _COM_Outptr_opt_ void **ppvHeap);
26739
26740 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
26741 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
26742 ID3D12Device12 * This,
26743 _In_ const D3D12_RESOURCE_DESC *pDesc,
26744 D3D12_RESOURCE_STATES InitialState,
26745 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26746 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26747 REFIID riid,
26748 _COM_Outptr_opt_ void **ppvResource);
26749
26750 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
26751#if !defined(_WIN32)
26752 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
26753 ID3D12Device12 * This,
26754 UINT visibleMask,
26755 UINT numResourceDescs,
26756 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
26757 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26758
26759#else
26760 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
26761 ID3D12Device12 * This,
26762 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26763 UINT visibleMask,
26764 UINT numResourceDescs,
26765 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
26766 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26767
26768#endif
26769
26770 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
26771 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
26772 ID3D12Device12 * This,
26773 _In_ ID3D12LifetimeOwner *pOwner,
26774 REFIID riid,
26775 _COM_Outptr_ void **ppvTracker);
26776
26777 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
26778 void ( STDMETHODCALLTYPE *RemoveDevice )(
26779 ID3D12Device12 * This);
26780
26781 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
26782 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
26783 ID3D12Device12 * This,
26784 _Inout_ UINT *pNumMetaCommands,
26785 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
26786
26787 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
26788 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
26789 ID3D12Device12 * This,
26790 _In_ REFGUID CommandId,
26791 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
26792 _Out_opt_ UINT *pTotalStructureSizeInBytes,
26793 _Inout_ UINT *pParameterCount,
26794 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
26795
26796 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
26797 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
26798 ID3D12Device12 * This,
26799 _In_ REFGUID CommandId,
26800 _In_ UINT NodeMask,
26801 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
26802 _In_ SIZE_T CreationParametersDataSizeInBytes,
26803 REFIID riid,
26804 _COM_Outptr_ void **ppMetaCommand);
26805
26806 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
26807 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
26808 ID3D12Device12 * This,
26809 const D3D12_STATE_OBJECT_DESC *pDesc,
26810 REFIID riid,
26811 _COM_Outptr_ void **ppStateObject);
26812
26813 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
26814 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
26815 ID3D12Device12 * This,
26816 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
26817 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
26818
26819 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
26820 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
26821 ID3D12Device12 * This,
26822 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
26823 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
26824
26825 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
26826 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
26827 ID3D12Device12 * This,
26828 D3D12_BACKGROUND_PROCESSING_MODE Mode,
26829 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
26830 _In_opt_ HANDLE hEventToSignalUponCompletion,
26831 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
26832
26833 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
26834 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
26835 ID3D12Device12 * This,
26836 const D3D12_STATE_OBJECT_DESC *pAddition,
26837 ID3D12StateObject *pStateObjectToGrowFrom,
26838 REFIID riid,
26839 _COM_Outptr_ void **ppNewStateObject);
26840
26841 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
26842 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
26843 ID3D12Device12 * This,
26844 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
26845 _In_ REFIID riid,
26846 _COM_Outptr_ void **ppSession);
26847
26848 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
26849#if !defined(_WIN32)
26850 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
26851 ID3D12Device12 * This,
26852 UINT visibleMask,
26853 UINT numResourceDescs,
26854 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26855 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26856
26857#else
26858 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
26859 ID3D12Device12 * This,
26860 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26861 UINT visibleMask,
26862 UINT numResourceDescs,
26863 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26864 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26865
26866#endif
26867
26868 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
26869 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
26870 ID3D12Device12 * This,
26871 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26872 D3D12_HEAP_FLAGS HeapFlags,
26873 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26874 D3D12_RESOURCE_STATES InitialResourceState,
26875 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26876 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26877 REFIID riidResource,
26878 _COM_Outptr_opt_ void **ppvResource);
26879
26880 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
26881 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
26882 ID3D12Device12 * This,
26883 _In_ ID3D12Heap *pHeap,
26884 UINT64 HeapOffset,
26885 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26886 D3D12_RESOURCE_STATES InitialState,
26887 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26888 REFIID riid,
26889 _COM_Outptr_opt_ void **ppvResource);
26890
26891 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
26892 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
26893 ID3D12Device12 * This,
26894 _In_opt_ ID3D12Resource *pTargetedResource,
26895 _In_opt_ ID3D12Resource *pFeedbackResource,
26896 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26897
26898 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
26899 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
26900 ID3D12Device12 * This,
26901 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
26902 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
26903 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
26904 UINT64 BaseOffset,
26905 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
26906 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
26907 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
26908 _Out_opt_ UINT64 *pTotalBytes);
26909
26910 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
26911 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
26912 ID3D12Device12 * This,
26913 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
26914 REFIID riid,
26915 _COM_Outptr_opt_ void **ppvSession);
26916
26917 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
26918 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
26919 ID3D12Device12 * This,
26920 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
26921 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
26922
26923 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
26924 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
26925 ID3D12Device12 * This,
26926 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
26927 REFIID CreatorID,
26928 REFIID riid,
26929 _COM_Outptr_ void **ppCommandQueue);
26930
26931 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
26932 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
26933 ID3D12Device12 * This,
26934 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26935 D3D12_HEAP_FLAGS HeapFlags,
26936 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26937 D3D12_BARRIER_LAYOUT InitialLayout,
26938 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26939 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26940 UINT32 NumCastableFormats,
26941 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
26942 REFIID riidResource,
26943 _COM_Outptr_opt_ void **ppvResource);
26944
26945 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
26946 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
26947 ID3D12Device12 * This,
26948 _In_ ID3D12Heap *pHeap,
26949 UINT64 HeapOffset,
26950 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26951 D3D12_BARRIER_LAYOUT InitialLayout,
26952 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26953 UINT32 NumCastableFormats,
26954 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
26955 REFIID riid,
26956 _COM_Outptr_opt_ void **ppvResource);
26957
26958 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
26959 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
26960 ID3D12Device12 * This,
26961 _In_ const D3D12_RESOURCE_DESC *pDesc,
26962 D3D12_BARRIER_LAYOUT InitialLayout,
26963 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26964 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26965 UINT32 NumCastableFormats,
26966 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
26967 REFIID riid,
26968 _COM_Outptr_opt_ void **ppvResource);
26969
26970 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
26971 void ( STDMETHODCALLTYPE *CreateSampler2 )(
26972 ID3D12Device12 * This,
26973 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
26974 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26975
26976 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
26977#if !defined(_WIN32)
26978 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
26979 ID3D12Device12 * This,
26980 UINT visibleMask,
26981 UINT numResourceDescs,
26982 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26983 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26984 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26985 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26986
26987#else
26988 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
26989 ID3D12Device12 * This,
26990 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26991 UINT visibleMask,
26992 UINT numResourceDescs,
26993 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26994 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26995 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26996 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26997
26998#endif
26999
27000 END_INTERFACE
27001 } ID3D12Device12Vtbl;
27002
27003 interface ID3D12Device12
27004 {
27005 CONST_VTBL struct ID3D12Device12Vtbl *lpVtbl;
27006 };
27007
27008
27009
27010#ifdef COBJMACROS
27011
27012
27013#define ID3D12Device12_QueryInterface(This,riid,ppvObject) \
27014 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
27015
27016#define ID3D12Device12_AddRef(This) \
27017 ( (This)->lpVtbl -> AddRef(This) )
27018
27019#define ID3D12Device12_Release(This) \
27020 ( (This)->lpVtbl -> Release(This) )
27021
27022
27023#define ID3D12Device12_GetPrivateData(This,guid,pDataSize,pData) \
27024 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
27025
27026#define ID3D12Device12_SetPrivateData(This,guid,DataSize,pData) \
27027 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
27028
27029#define ID3D12Device12_SetPrivateDataInterface(This,guid,pData) \
27030 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
27031
27032#define ID3D12Device12_SetName(This,Name) \
27033 ( (This)->lpVtbl -> SetName(This,Name) )
27034
27035
27036#define ID3D12Device12_GetNodeCount(This) \
27037 ( (This)->lpVtbl -> GetNodeCount(This) )
27038
27039#define ID3D12Device12_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
27040 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
27041
27042#define ID3D12Device12_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
27043 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
27044
27045#define ID3D12Device12_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
27046 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
27047
27048#define ID3D12Device12_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
27049 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
27050
27051#define ID3D12Device12_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
27052 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
27053
27054#define ID3D12Device12_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
27055 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
27056
27057#define ID3D12Device12_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
27058 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
27059
27060#define ID3D12Device12_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
27061 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
27062
27063#define ID3D12Device12_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
27064 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
27065
27066#define ID3D12Device12_CreateConstantBufferView(This,pDesc,DestDescriptor) \
27067 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
27068
27069#define ID3D12Device12_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
27070 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
27071
27072#define ID3D12Device12_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
27073 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
27074
27075#define ID3D12Device12_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
27076 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
27077
27078#define ID3D12Device12_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
27079 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
27080
27081#define ID3D12Device12_CreateSampler(This,pDesc,DestDescriptor) \
27082 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
27083
27084#define ID3D12Device12_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
27085 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
27086
27087#define ID3D12Device12_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
27088 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
27089#if !defined(_WIN32)
27090
27091#define ID3D12Device12_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
27092 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
27093#else
27094#define ID3D12Device12_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
27095 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
27096#endif
27097#if !defined(_WIN32)
27098
27099#define ID3D12Device12_GetCustomHeapProperties(This,nodeMask,heapType) \
27100 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
27101#else
27102#define ID3D12Device12_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
27103 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
27104#endif
27105
27106#define ID3D12Device12_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
27107 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
27108
27109#define ID3D12Device12_CreateHeap(This,pDesc,riid,ppvHeap) \
27110 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
27111
27112#define ID3D12Device12_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27113 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27114
27115#define ID3D12Device12_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27116 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27117
27118#define ID3D12Device12_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
27119 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
27120
27121#define ID3D12Device12_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
27122 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
27123
27124#define ID3D12Device12_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
27125 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
27126
27127#define ID3D12Device12_MakeResident(This,NumObjects,ppObjects) \
27128 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
27129
27130#define ID3D12Device12_Evict(This,NumObjects,ppObjects) \
27131 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
27132
27133#define ID3D12Device12_CreateFence(This,InitialValue,Flags,riid,ppFence) \
27134 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
27135
27136#define ID3D12Device12_GetDeviceRemovedReason(This) \
27137 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
27138
27139#define ID3D12Device12_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
27140 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
27141
27142#define ID3D12Device12_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
27143 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
27144
27145#define ID3D12Device12_SetStablePowerState(This,Enable) \
27146 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
27147
27148#define ID3D12Device12_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
27149 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
27150
27151#define ID3D12Device12_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
27152 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
27153#if !defined(_WIN32)
27154
27155#define ID3D12Device12_GetAdapterLuid(This) \
27156 ( (This)->lpVtbl -> GetAdapterLuid(This) )
27157#else
27158#define ID3D12Device12_GetAdapterLuid(This,RetVal) \
27159 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
27160#endif
27161
27162
27163#define ID3D12Device12_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
27164 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
27165
27166#define ID3D12Device12_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
27167 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
27168
27169#define ID3D12Device12_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
27170 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
27171
27172
27173#define ID3D12Device12_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
27174 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
27175
27176
27177#define ID3D12Device12_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
27178 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
27179
27180#define ID3D12Device12_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
27181 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
27182
27183#define ID3D12Device12_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
27184 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
27185
27186
27187#define ID3D12Device12_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
27188 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
27189
27190#define ID3D12Device12_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
27191 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
27192
27193#define ID3D12Device12_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
27194 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
27195
27196#define ID3D12Device12_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
27197 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
27198
27199#define ID3D12Device12_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
27200 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
27201#if !defined(_WIN32)
27202
27203#define ID3D12Device12_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27204 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27205#else
27206#define ID3D12Device12_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27207 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27208#endif
27209
27210
27211#define ID3D12Device12_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
27212 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
27213
27214#define ID3D12Device12_RemoveDevice(This) \
27215 ( (This)->lpVtbl -> RemoveDevice(This) )
27216
27217#define ID3D12Device12_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
27218 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
27219
27220#define ID3D12Device12_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
27221 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
27222
27223#define ID3D12Device12_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
27224 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
27225
27226#define ID3D12Device12_CreateStateObject(This,pDesc,riid,ppStateObject) \
27227 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
27228
27229#define ID3D12Device12_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
27230 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
27231
27232#define ID3D12Device12_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
27233 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
27234
27235
27236#define ID3D12Device12_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
27237 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
27238
27239
27240#define ID3D12Device12_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
27241 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
27242
27243#define ID3D12Device12_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
27244 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
27245
27246#if !defined(_WIN32)
27247
27248#define ID3D12Device12_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27249 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27250#else
27251#define ID3D12Device12_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27252 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27253#endif
27254
27255#define ID3D12Device12_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
27256 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
27257
27258#define ID3D12Device12_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27259 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27260
27261#define ID3D12Device12_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
27262 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
27263
27264#define ID3D12Device12_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
27265 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
27266
27267
27268#define ID3D12Device12_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
27269 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
27270
27271#define ID3D12Device12_ShaderCacheControl(This,Kinds,Control) \
27272 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
27273
27274#define ID3D12Device12_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
27275 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
27276
27277
27278#define ID3D12Device12_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
27279 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
27280
27281#define ID3D12Device12_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
27282 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
27283
27284#define ID3D12Device12_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
27285 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
27286
27287
27288#define ID3D12Device12_CreateSampler2(This,pDesc,DestDescriptor) \
27289 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
27290
27291#if !defined(_WIN32)
27292
27293#define ID3D12Device12_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
27294 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
27295#else
27296#define ID3D12Device12_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
27297 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
27298#endif
27299
27300#endif /* COBJMACROS */
27301
27302
27303#endif /* C style interface */
27304
27305
27306
27307
27308#endif /* __ID3D12Device12_INTERFACE_DEFINED__ */
27309
27310
27311#ifndef __ID3D12Device13_INTERFACE_DEFINED__
27312#define __ID3D12Device13_INTERFACE_DEFINED__
27313
27314/* interface ID3D12Device13 */
27315/* [unique][local][object][uuid] */
27316
27317
27318EXTERN_C const IID IID_ID3D12Device13;
27319
27320#if defined(__cplusplus) && !defined(CINTERFACE)
27321
27322 MIDL_INTERFACE("14eecffc-4df8-40f7-a118-5c816f45695e")
27323 ID3D12Device13 : public ID3D12Device12
27324 {
27325 public:
27326 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress1(
27327 _In_ const void *pAddress,
27328 SIZE_T size,
27329 REFIID riid,
27330 _COM_Outptr_ void **ppvHeap) = 0;
27331
27332 };
27333
27334
27335#else /* C style interface */
27336
27337 typedef struct ID3D12Device13Vtbl
27338 {
27339 BEGIN_INTERFACE
27340
27341 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
27342 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
27343 ID3D12Device13 * This,
27344 REFIID riid,
27345 _COM_Outptr_ void **ppvObject);
27346
27347 DECLSPEC_XFGVIRT(IUnknown, AddRef)
27348 ULONG ( STDMETHODCALLTYPE *AddRef )(
27349 ID3D12Device13 * This);
27350
27351 DECLSPEC_XFGVIRT(IUnknown, Release)
27352 ULONG ( STDMETHODCALLTYPE *Release )(
27353 ID3D12Device13 * This);
27354
27355 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
27356 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
27357 ID3D12Device13 * This,
27358 _In_ REFGUID guid,
27359 _Inout_ UINT *pDataSize,
27360 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
27361
27362 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
27363 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
27364 ID3D12Device13 * This,
27365 _In_ REFGUID guid,
27366 _In_ UINT DataSize,
27367 _In_reads_bytes_opt_( DataSize ) const void *pData);
27368
27369 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
27370 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
27371 ID3D12Device13 * This,
27372 _In_ REFGUID guid,
27373 _In_opt_ const IUnknown *pData);
27374
27375 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
27376 HRESULT ( STDMETHODCALLTYPE *SetName )(
27377 ID3D12Device13 * This,
27378 _In_z_ LPCWSTR Name);
27379
27380 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
27381 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
27382 ID3D12Device13 * This);
27383
27384 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
27385 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
27386 ID3D12Device13 * This,
27387 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
27388 REFIID riid,
27389 _COM_Outptr_ void **ppCommandQueue);
27390
27391 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
27392 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
27393 ID3D12Device13 * This,
27394 _In_ D3D12_COMMAND_LIST_TYPE type,
27395 REFIID riid,
27396 _COM_Outptr_ void **ppCommandAllocator);
27397
27398 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
27399 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
27400 ID3D12Device13 * This,
27401 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
27402 REFIID riid,
27403 _COM_Outptr_ void **ppPipelineState);
27404
27405 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
27406 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
27407 ID3D12Device13 * This,
27408 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
27409 REFIID riid,
27410 _COM_Outptr_ void **ppPipelineState);
27411
27412 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
27413 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
27414 ID3D12Device13 * This,
27415 _In_ UINT nodeMask,
27416 _In_ D3D12_COMMAND_LIST_TYPE type,
27417 _In_ ID3D12CommandAllocator *pCommandAllocator,
27418 _In_opt_ ID3D12PipelineState *pInitialState,
27419 REFIID riid,
27420 _COM_Outptr_ void **ppCommandList);
27421
27422 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
27423 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
27424 ID3D12Device13 * This,
27425 D3D12_FEATURE Feature,
27426 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
27427 UINT FeatureSupportDataSize);
27428
27429 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
27430 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
27431 ID3D12Device13 * This,
27432 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
27433 REFIID riid,
27434 _COM_Outptr_ void **ppvHeap);
27435
27436 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
27437 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
27438 ID3D12Device13 * This,
27439 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
27440
27441 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
27442 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
27443 ID3D12Device13 * This,
27444 _In_ UINT nodeMask,
27445 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
27446 _In_ SIZE_T blobLengthInBytes,
27447 REFIID riid,
27448 _COM_Outptr_ void **ppvRootSignature);
27449
27450 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
27451 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
27452 ID3D12Device13 * This,
27453 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
27454 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27455
27456 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
27457 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
27458 ID3D12Device13 * This,
27459 _In_opt_ ID3D12Resource *pResource,
27460 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
27461 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27462
27463 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
27464 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
27465 ID3D12Device13 * This,
27466 _In_opt_ ID3D12Resource *pResource,
27467 _In_opt_ ID3D12Resource *pCounterResource,
27468 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
27469 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27470
27471 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
27472 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
27473 ID3D12Device13 * This,
27474 _In_opt_ ID3D12Resource *pResource,
27475 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
27476 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27477
27478 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
27479 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
27480 ID3D12Device13 * This,
27481 _In_opt_ ID3D12Resource *pResource,
27482 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
27483 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27484
27485 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
27486 void ( STDMETHODCALLTYPE *CreateSampler )(
27487 ID3D12Device13 * This,
27488 _In_ const D3D12_SAMPLER_DESC *pDesc,
27489 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27490
27491 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
27492 void ( STDMETHODCALLTYPE *CopyDescriptors )(
27493 ID3D12Device13 * This,
27494 _In_ UINT NumDestDescriptorRanges,
27495 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
27496 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
27497 _In_ UINT NumSrcDescriptorRanges,
27498 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
27499 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
27500 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
27501
27502 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
27503 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
27504 ID3D12Device13 * This,
27505 _In_ UINT NumDescriptors,
27506 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
27507 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
27508 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
27509
27510 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
27511#if !defined(_WIN32)
27512 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
27513 ID3D12Device13 * This,
27514 _In_ UINT visibleMask,
27515 _In_ UINT numResourceDescs,
27516 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
27517
27518#else
27519 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
27520 ID3D12Device13 * This,
27521 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27522 _In_ UINT visibleMask,
27523 _In_ UINT numResourceDescs,
27524 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
27525
27526#endif
27527
27528 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
27529#if !defined(_WIN32)
27530 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
27531 ID3D12Device13 * This,
27532 _In_ UINT nodeMask,
27533 D3D12_HEAP_TYPE heapType);
27534
27535#else
27536 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
27537 ID3D12Device13 * This,
27538 D3D12_HEAP_PROPERTIES * RetVal,
27539 _In_ UINT nodeMask,
27540 D3D12_HEAP_TYPE heapType);
27541
27542#endif
27543
27544 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
27545 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
27546 ID3D12Device13 * This,
27547 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27548 D3D12_HEAP_FLAGS HeapFlags,
27549 _In_ const D3D12_RESOURCE_DESC *pDesc,
27550 D3D12_RESOURCE_STATES InitialResourceState,
27551 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27552 REFIID riidResource,
27553 _COM_Outptr_opt_ void **ppvResource);
27554
27555 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
27556 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
27557 ID3D12Device13 * This,
27558 _In_ const D3D12_HEAP_DESC *pDesc,
27559 REFIID riid,
27560 _COM_Outptr_opt_ void **ppvHeap);
27561
27562 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
27563 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
27564 ID3D12Device13 * This,
27565 _In_ ID3D12Heap *pHeap,
27566 UINT64 HeapOffset,
27567 _In_ const D3D12_RESOURCE_DESC *pDesc,
27568 D3D12_RESOURCE_STATES InitialState,
27569 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27570 REFIID riid,
27571 _COM_Outptr_opt_ void **ppvResource);
27572
27573 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
27574 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
27575 ID3D12Device13 * This,
27576 _In_ const D3D12_RESOURCE_DESC *pDesc,
27577 D3D12_RESOURCE_STATES InitialState,
27578 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27579 REFIID riid,
27580 _COM_Outptr_opt_ void **ppvResource);
27581
27582 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
27583 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
27584 ID3D12Device13 * This,
27585 _In_ ID3D12DeviceChild *pObject,
27586 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
27587 DWORD Access,
27588 _In_opt_ LPCWSTR Name,
27589 _Out_ HANDLE *pHandle);
27590
27591 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
27592 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
27593 ID3D12Device13 * This,
27594 _In_ HANDLE NTHandle,
27595 REFIID riid,
27596 _COM_Outptr_opt_ void **ppvObj);
27597
27598 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
27599 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
27600 ID3D12Device13 * This,
27601 _In_ LPCWSTR Name,
27602 DWORD Access,
27603 /* [annotation][out] */
27604 _Out_ HANDLE *pNTHandle);
27605
27606 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
27607 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
27608 ID3D12Device13 * This,
27609 UINT NumObjects,
27610 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
27611
27612 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
27613 HRESULT ( STDMETHODCALLTYPE *Evict )(
27614 ID3D12Device13 * This,
27615 UINT NumObjects,
27616 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
27617
27618 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
27619 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
27620 ID3D12Device13 * This,
27621 UINT64 InitialValue,
27622 D3D12_FENCE_FLAGS Flags,
27623 REFIID riid,
27624 _COM_Outptr_ void **ppFence);
27625
27626 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
27627 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
27628 ID3D12Device13 * This);
27629
27630 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
27631 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
27632 ID3D12Device13 * This,
27633 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
27634 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
27635 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
27636 UINT64 BaseOffset,
27637 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
27638 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
27639 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
27640 _Out_opt_ UINT64 *pTotalBytes);
27641
27642 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
27643 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
27644 ID3D12Device13 * This,
27645 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
27646 REFIID riid,
27647 _COM_Outptr_opt_ void **ppvHeap);
27648
27649 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
27650 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
27651 ID3D12Device13 * This,
27652 BOOL Enable);
27653
27654 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
27655 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
27656 ID3D12Device13 * This,
27657 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
27658 _In_opt_ ID3D12RootSignature *pRootSignature,
27659 REFIID riid,
27660 _COM_Outptr_opt_ void **ppvCommandSignature);
27661
27662 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
27663 void ( STDMETHODCALLTYPE *GetResourceTiling )(
27664 ID3D12Device13 * This,
27665 _In_ ID3D12Resource *pTiledResource,
27666 _Out_opt_ UINT *pNumTilesForEntireResource,
27667 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
27668 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
27669 _Inout_opt_ UINT *pNumSubresourceTilings,
27670 _In_ UINT FirstSubresourceTilingToGet,
27671 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
27672
27673 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
27674#if !defined(_WIN32)
27675 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
27676 ID3D12Device13 * This);
27677
27678#else
27679 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
27680 ID3D12Device13 * This,
27681 LUID * RetVal);
27682
27683#endif
27684
27685 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
27686 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
27687 ID3D12Device13 * This,
27688 _In_reads_(BlobLength) const void *pLibraryBlob,
27689 SIZE_T BlobLength,
27690 REFIID riid,
27691 _COM_Outptr_ void **ppPipelineLibrary);
27692
27693 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
27694 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
27695 ID3D12Device13 * This,
27696 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
27697 _In_reads_(NumFences) const UINT64 *pFenceValues,
27698 UINT NumFences,
27699 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
27700 HANDLE hEvent);
27701
27702 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
27703 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
27704 ID3D12Device13 * This,
27705 UINT NumObjects,
27706 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
27707 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
27708
27709 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
27710 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
27711 ID3D12Device13 * This,
27712 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
27713 REFIID riid,
27714 _COM_Outptr_ void **ppPipelineState);
27715
27716 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
27717 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
27718 ID3D12Device13 * This,
27719 _In_ const void *pAddress,
27720 REFIID riid,
27721 _COM_Outptr_ void **ppvHeap);
27722
27723 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
27724 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
27725 ID3D12Device13 * This,
27726 _In_ HANDLE hFileMapping,
27727 REFIID riid,
27728 _COM_Outptr_ void **ppvHeap);
27729
27730 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
27731 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
27732 ID3D12Device13 * This,
27733 D3D12_RESIDENCY_FLAGS Flags,
27734 UINT NumObjects,
27735 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
27736 _In_ ID3D12Fence *pFenceToSignal,
27737 UINT64 FenceValueToSignal);
27738
27739 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
27740 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
27741 ID3D12Device13 * This,
27742 _In_ UINT nodeMask,
27743 _In_ D3D12_COMMAND_LIST_TYPE type,
27744 _In_ D3D12_COMMAND_LIST_FLAGS flags,
27745 REFIID riid,
27746 _COM_Outptr_ void **ppCommandList);
27747
27748 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
27749 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
27750 ID3D12Device13 * This,
27751 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
27752 _In_ REFIID riid,
27753 _COM_Outptr_ void **ppSession);
27754
27755 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
27756 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
27757 ID3D12Device13 * This,
27758 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27759 D3D12_HEAP_FLAGS HeapFlags,
27760 _In_ const D3D12_RESOURCE_DESC *pDesc,
27761 D3D12_RESOURCE_STATES InitialResourceState,
27762 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27763 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27764 REFIID riidResource,
27765 _COM_Outptr_opt_ void **ppvResource);
27766
27767 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
27768 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
27769 ID3D12Device13 * This,
27770 _In_ const D3D12_HEAP_DESC *pDesc,
27771 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27772 REFIID riid,
27773 _COM_Outptr_opt_ void **ppvHeap);
27774
27775 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
27776 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
27777 ID3D12Device13 * This,
27778 _In_ const D3D12_RESOURCE_DESC *pDesc,
27779 D3D12_RESOURCE_STATES InitialState,
27780 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27781 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27782 REFIID riid,
27783 _COM_Outptr_opt_ void **ppvResource);
27784
27785 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
27786#if !defined(_WIN32)
27787 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
27788 ID3D12Device13 * This,
27789 UINT visibleMask,
27790 UINT numResourceDescs,
27791 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
27792 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27793
27794#else
27795 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
27796 ID3D12Device13 * This,
27797 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27798 UINT visibleMask,
27799 UINT numResourceDescs,
27800 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
27801 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27802
27803#endif
27804
27805 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
27806 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
27807 ID3D12Device13 * This,
27808 _In_ ID3D12LifetimeOwner *pOwner,
27809 REFIID riid,
27810 _COM_Outptr_ void **ppvTracker);
27811
27812 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
27813 void ( STDMETHODCALLTYPE *RemoveDevice )(
27814 ID3D12Device13 * This);
27815
27816 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
27817 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
27818 ID3D12Device13 * This,
27819 _Inout_ UINT *pNumMetaCommands,
27820 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
27821
27822 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
27823 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
27824 ID3D12Device13 * This,
27825 _In_ REFGUID CommandId,
27826 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
27827 _Out_opt_ UINT *pTotalStructureSizeInBytes,
27828 _Inout_ UINT *pParameterCount,
27829 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
27830
27831 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
27832 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
27833 ID3D12Device13 * This,
27834 _In_ REFGUID CommandId,
27835 _In_ UINT NodeMask,
27836 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
27837 _In_ SIZE_T CreationParametersDataSizeInBytes,
27838 REFIID riid,
27839 _COM_Outptr_ void **ppMetaCommand);
27840
27841 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
27842 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
27843 ID3D12Device13 * This,
27844 const D3D12_STATE_OBJECT_DESC *pDesc,
27845 REFIID riid,
27846 _COM_Outptr_ void **ppStateObject);
27847
27848 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
27849 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
27850 ID3D12Device13 * This,
27851 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
27852 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
27853
27854 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
27855 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
27856 ID3D12Device13 * This,
27857 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
27858 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
27859
27860 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
27861 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
27862 ID3D12Device13 * This,
27863 D3D12_BACKGROUND_PROCESSING_MODE Mode,
27864 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
27865 _In_opt_ HANDLE hEventToSignalUponCompletion,
27866 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
27867
27868 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
27869 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
27870 ID3D12Device13 * This,
27871 const D3D12_STATE_OBJECT_DESC *pAddition,
27872 ID3D12StateObject *pStateObjectToGrowFrom,
27873 REFIID riid,
27874 _COM_Outptr_ void **ppNewStateObject);
27875
27876 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
27877 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
27878 ID3D12Device13 * This,
27879 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
27880 _In_ REFIID riid,
27881 _COM_Outptr_ void **ppSession);
27882
27883 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
27884#if !defined(_WIN32)
27885 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
27886 ID3D12Device13 * This,
27887 UINT visibleMask,
27888 UINT numResourceDescs,
27889 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
27890 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27891
27892#else
27893 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
27894 ID3D12Device13 * This,
27895 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27896 UINT visibleMask,
27897 UINT numResourceDescs,
27898 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
27899 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27900
27901#endif
27902
27903 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
27904 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
27905 ID3D12Device13 * This,
27906 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27907 D3D12_HEAP_FLAGS HeapFlags,
27908 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27909 D3D12_RESOURCE_STATES InitialResourceState,
27910 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27911 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27912 REFIID riidResource,
27913 _COM_Outptr_opt_ void **ppvResource);
27914
27915 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
27916 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
27917 ID3D12Device13 * This,
27918 _In_ ID3D12Heap *pHeap,
27919 UINT64 HeapOffset,
27920 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27921 D3D12_RESOURCE_STATES InitialState,
27922 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27923 REFIID riid,
27924 _COM_Outptr_opt_ void **ppvResource);
27925
27926 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
27927 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
27928 ID3D12Device13 * This,
27929 _In_opt_ ID3D12Resource *pTargetedResource,
27930 _In_opt_ ID3D12Resource *pFeedbackResource,
27931 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27932
27933 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
27934 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
27935 ID3D12Device13 * This,
27936 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
27937 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
27938 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
27939 UINT64 BaseOffset,
27940 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
27941 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
27942 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
27943 _Out_opt_ UINT64 *pTotalBytes);
27944
27945 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
27946 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
27947 ID3D12Device13 * This,
27948 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
27949 REFIID riid,
27950 _COM_Outptr_opt_ void **ppvSession);
27951
27952 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
27953 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
27954 ID3D12Device13 * This,
27955 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
27956 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
27957
27958 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
27959 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
27960 ID3D12Device13 * This,
27961 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
27962 REFIID CreatorID,
27963 REFIID riid,
27964 _COM_Outptr_ void **ppCommandQueue);
27965
27966 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
27967 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
27968 ID3D12Device13 * This,
27969 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27970 D3D12_HEAP_FLAGS HeapFlags,
27971 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27972 D3D12_BARRIER_LAYOUT InitialLayout,
27973 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27974 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27975 UINT32 NumCastableFormats,
27976 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
27977 REFIID riidResource,
27978 _COM_Outptr_opt_ void **ppvResource);
27979
27980 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
27981 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
27982 ID3D12Device13 * This,
27983 _In_ ID3D12Heap *pHeap,
27984 UINT64 HeapOffset,
27985 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27986 D3D12_BARRIER_LAYOUT InitialLayout,
27987 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27988 UINT32 NumCastableFormats,
27989 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
27990 REFIID riid,
27991 _COM_Outptr_opt_ void **ppvResource);
27992
27993 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
27994 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
27995 ID3D12Device13 * This,
27996 _In_ const D3D12_RESOURCE_DESC *pDesc,
27997 D3D12_BARRIER_LAYOUT InitialLayout,
27998 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27999 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28000 UINT32 NumCastableFormats,
28001 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
28002 REFIID riid,
28003 _COM_Outptr_opt_ void **ppvResource);
28004
28005 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
28006 void ( STDMETHODCALLTYPE *CreateSampler2 )(
28007 ID3D12Device13 * This,
28008 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
28009 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28010
28011 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
28012#if !defined(_WIN32)
28013 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
28014 ID3D12Device13 * This,
28015 UINT visibleMask,
28016 UINT numResourceDescs,
28017 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28018 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
28019 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
28020 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28021
28022#else
28023 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
28024 ID3D12Device13 * This,
28025 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28026 UINT visibleMask,
28027 UINT numResourceDescs,
28028 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28029 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
28030 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
28031 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28032
28033#endif
28034
28035 DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1)
28036 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )(
28037 ID3D12Device13 * This,
28038 _In_ const void *pAddress,
28039 SIZE_T size,
28040 REFIID riid,
28041 _COM_Outptr_ void **ppvHeap);
28042
28043 END_INTERFACE
28044 } ID3D12Device13Vtbl;
28045
28046 interface ID3D12Device13
28047 {
28048 CONST_VTBL struct ID3D12Device13Vtbl *lpVtbl;
28049 };
28050
28051
28052
28053#ifdef COBJMACROS
28054
28055
28056#define ID3D12Device13_QueryInterface(This,riid,ppvObject) \
28057 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
28058
28059#define ID3D12Device13_AddRef(This) \
28060 ( (This)->lpVtbl -> AddRef(This) )
28061
28062#define ID3D12Device13_Release(This) \
28063 ( (This)->lpVtbl -> Release(This) )
28064
28065
28066#define ID3D12Device13_GetPrivateData(This,guid,pDataSize,pData) \
28067 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
28068
28069#define ID3D12Device13_SetPrivateData(This,guid,DataSize,pData) \
28070 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
28071
28072#define ID3D12Device13_SetPrivateDataInterface(This,guid,pData) \
28073 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
28074
28075#define ID3D12Device13_SetName(This,Name) \
28076 ( (This)->lpVtbl -> SetName(This,Name) )
28077
28078
28079#define ID3D12Device13_GetNodeCount(This) \
28080 ( (This)->lpVtbl -> GetNodeCount(This) )
28081
28082#define ID3D12Device13_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
28083 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
28084
28085#define ID3D12Device13_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
28086 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
28087
28088#define ID3D12Device13_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
28089 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
28090
28091#define ID3D12Device13_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
28092 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
28093
28094#define ID3D12Device13_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
28095 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
28096
28097#define ID3D12Device13_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
28098 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
28099
28100#define ID3D12Device13_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
28101 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
28102
28103#define ID3D12Device13_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
28104 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
28105
28106#define ID3D12Device13_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
28107 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
28108
28109#define ID3D12Device13_CreateConstantBufferView(This,pDesc,DestDescriptor) \
28110 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
28111
28112#define ID3D12Device13_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
28113 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
28114
28115#define ID3D12Device13_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
28116 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
28117
28118#define ID3D12Device13_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
28119 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
28120
28121#define ID3D12Device13_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
28122 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
28123
28124#define ID3D12Device13_CreateSampler(This,pDesc,DestDescriptor) \
28125 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
28126
28127#define ID3D12Device13_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
28128 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
28129
28130#define ID3D12Device13_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
28131 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
28132#if !defined(_WIN32)
28133
28134#define ID3D12Device13_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
28135 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
28136#else
28137#define ID3D12Device13_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
28138 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
28139#endif
28140#if !defined(_WIN32)
28141
28142#define ID3D12Device13_GetCustomHeapProperties(This,nodeMask,heapType) \
28143 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
28144#else
28145#define ID3D12Device13_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
28146 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
28147#endif
28148
28149#define ID3D12Device13_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
28150 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
28151
28152#define ID3D12Device13_CreateHeap(This,pDesc,riid,ppvHeap) \
28153 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
28154
28155#define ID3D12Device13_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28156 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28157
28158#define ID3D12Device13_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28159 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28160
28161#define ID3D12Device13_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
28162 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
28163
28164#define ID3D12Device13_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
28165 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
28166
28167#define ID3D12Device13_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
28168 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
28169
28170#define ID3D12Device13_MakeResident(This,NumObjects,ppObjects) \
28171 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
28172
28173#define ID3D12Device13_Evict(This,NumObjects,ppObjects) \
28174 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
28175
28176#define ID3D12Device13_CreateFence(This,InitialValue,Flags,riid,ppFence) \
28177 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
28178
28179#define ID3D12Device13_GetDeviceRemovedReason(This) \
28180 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
28181
28182#define ID3D12Device13_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
28183 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
28184
28185#define ID3D12Device13_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
28186 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
28187
28188#define ID3D12Device13_SetStablePowerState(This,Enable) \
28189 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
28190
28191#define ID3D12Device13_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
28192 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
28193
28194#define ID3D12Device13_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
28195 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
28196#if !defined(_WIN32)
28197
28198#define ID3D12Device13_GetAdapterLuid(This) \
28199 ( (This)->lpVtbl -> GetAdapterLuid(This) )
28200#else
28201#define ID3D12Device13_GetAdapterLuid(This,RetVal) \
28202 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
28203#endif
28204
28205
28206#define ID3D12Device13_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
28207 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
28208
28209#define ID3D12Device13_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
28210 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
28211
28212#define ID3D12Device13_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
28213 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
28214
28215
28216#define ID3D12Device13_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
28217 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
28218
28219
28220#define ID3D12Device13_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
28221 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
28222
28223#define ID3D12Device13_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
28224 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
28225
28226#define ID3D12Device13_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
28227 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
28228
28229
28230#define ID3D12Device13_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
28231 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
28232
28233#define ID3D12Device13_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
28234 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
28235
28236#define ID3D12Device13_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
28237 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
28238
28239#define ID3D12Device13_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
28240 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
28241
28242#define ID3D12Device13_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
28243 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
28244#if !defined(_WIN32)
28245
28246#define ID3D12Device13_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28247 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28248#else
28249#define ID3D12Device13_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28250 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28251#endif
28252
28253
28254#define ID3D12Device13_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
28255 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
28256
28257#define ID3D12Device13_RemoveDevice(This) \
28258 ( (This)->lpVtbl -> RemoveDevice(This) )
28259
28260#define ID3D12Device13_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
28261 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
28262
28263#define ID3D12Device13_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
28264 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
28265
28266#define ID3D12Device13_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
28267 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
28268
28269#define ID3D12Device13_CreateStateObject(This,pDesc,riid,ppStateObject) \
28270 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
28271
28272#define ID3D12Device13_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
28273 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
28274
28275#define ID3D12Device13_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
28276 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
28277
28278
28279#define ID3D12Device13_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
28280 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
28281
28282
28283#define ID3D12Device13_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
28284 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
28285
28286#define ID3D12Device13_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
28287 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
28288
28289#if !defined(_WIN32)
28290
28291#define ID3D12Device13_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28292 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28293#else
28294#define ID3D12Device13_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28295 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28296#endif
28297
28298#define ID3D12Device13_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
28299 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
28300
28301#define ID3D12Device13_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28302 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28303
28304#define ID3D12Device13_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
28305 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
28306
28307#define ID3D12Device13_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
28308 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
28309
28310
28311#define ID3D12Device13_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
28312 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
28313
28314#define ID3D12Device13_ShaderCacheControl(This,Kinds,Control) \
28315 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
28316
28317#define ID3D12Device13_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
28318 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
28319
28320
28321#define ID3D12Device13_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
28322 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
28323
28324#define ID3D12Device13_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
28325 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
28326
28327#define ID3D12Device13_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
28328 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
28329
28330
28331#define ID3D12Device13_CreateSampler2(This,pDesc,DestDescriptor) \
28332 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
28333
28334#if !defined(_WIN32)
28335
28336#define ID3D12Device13_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
28337 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
28338#else
28339#define ID3D12Device13_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
28340 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
28341#endif
28342
28343
28344#define ID3D12Device13_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \
28345 ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) )
28346
28347#endif /* COBJMACROS */
28348
28349
28350#endif /* C style interface */
28351
28352
28353
28354
28355#endif /* __ID3D12Device13_INTERFACE_DEFINED__ */
28356
28357
28358#ifndef __ID3D12Device14_INTERFACE_DEFINED__
28359#define __ID3D12Device14_INTERFACE_DEFINED__
28360
28361/* interface ID3D12Device14 */
28362/* [unique][local][object][uuid] */
28363
28364
28365EXTERN_C const IID IID_ID3D12Device14;
28366
28367#if defined(__cplusplus) && !defined(CINTERFACE)
28368
28369 MIDL_INTERFACE("5f6e592d-d895-44c2-8e4a-88ad4926d323")
28370 ID3D12Device14 : public ID3D12Device13
28371 {
28372 public:
28373 virtual HRESULT STDMETHODCALLTYPE CreateRootSignatureFromSubobjectInLibrary(
28374 _In_ UINT nodeMask,
28375 _In_reads_(blobLengthInBytes) const void *pLibraryBlob,
28376 _In_ SIZE_T blobLengthInBytes,
28377 _In_opt_ LPCWSTR subobjectName,
28378 REFIID riid,
28379 _COM_Outptr_ void **ppvRootSignature) = 0;
28380
28381 };
28382
28383
28384#else /* C style interface */
28385
28386 typedef struct ID3D12Device14Vtbl
28387 {
28388 BEGIN_INTERFACE
28389
28390 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
28391 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
28392 ID3D12Device14 * This,
28393 REFIID riid,
28394 _COM_Outptr_ void **ppvObject);
28395
28396 DECLSPEC_XFGVIRT(IUnknown, AddRef)
28397 ULONG ( STDMETHODCALLTYPE *AddRef )(
28398 ID3D12Device14 * This);
28399
28400 DECLSPEC_XFGVIRT(IUnknown, Release)
28401 ULONG ( STDMETHODCALLTYPE *Release )(
28402 ID3D12Device14 * This);
28403
28404 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
28405 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
28406 ID3D12Device14 * This,
28407 _In_ REFGUID guid,
28408 _Inout_ UINT *pDataSize,
28409 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
28410
28411 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
28412 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
28413 ID3D12Device14 * This,
28414 _In_ REFGUID guid,
28415 _In_ UINT DataSize,
28416 _In_reads_bytes_opt_( DataSize ) const void *pData);
28417
28418 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
28419 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
28420 ID3D12Device14 * This,
28421 _In_ REFGUID guid,
28422 _In_opt_ const IUnknown *pData);
28423
28424 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
28425 HRESULT ( STDMETHODCALLTYPE *SetName )(
28426 ID3D12Device14 * This,
28427 _In_z_ LPCWSTR Name);
28428
28429 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
28430 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
28431 ID3D12Device14 * This);
28432
28433 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
28434 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
28435 ID3D12Device14 * This,
28436 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
28437 REFIID riid,
28438 _COM_Outptr_ void **ppCommandQueue);
28439
28440 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
28441 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
28442 ID3D12Device14 * This,
28443 _In_ D3D12_COMMAND_LIST_TYPE type,
28444 REFIID riid,
28445 _COM_Outptr_ void **ppCommandAllocator);
28446
28447 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
28448 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
28449 ID3D12Device14 * This,
28450 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
28451 REFIID riid,
28452 _COM_Outptr_ void **ppPipelineState);
28453
28454 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
28455 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
28456 ID3D12Device14 * This,
28457 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
28458 REFIID riid,
28459 _COM_Outptr_ void **ppPipelineState);
28460
28461 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
28462 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
28463 ID3D12Device14 * This,
28464 _In_ UINT nodeMask,
28465 _In_ D3D12_COMMAND_LIST_TYPE type,
28466 _In_ ID3D12CommandAllocator *pCommandAllocator,
28467 _In_opt_ ID3D12PipelineState *pInitialState,
28468 REFIID riid,
28469 _COM_Outptr_ void **ppCommandList);
28470
28471 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
28472 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
28473 ID3D12Device14 * This,
28474 D3D12_FEATURE Feature,
28475 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
28476 UINT FeatureSupportDataSize);
28477
28478 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
28479 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
28480 ID3D12Device14 * This,
28481 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
28482 REFIID riid,
28483 _COM_Outptr_ void **ppvHeap);
28484
28485 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
28486 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
28487 ID3D12Device14 * This,
28488 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
28489
28490 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
28491 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
28492 ID3D12Device14 * This,
28493 _In_ UINT nodeMask,
28494 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
28495 _In_ SIZE_T blobLengthInBytes,
28496 REFIID riid,
28497 _COM_Outptr_ void **ppvRootSignature);
28498
28499 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
28500 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
28501 ID3D12Device14 * This,
28502 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
28503 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28504
28505 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
28506 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
28507 ID3D12Device14 * This,
28508 _In_opt_ ID3D12Resource *pResource,
28509 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
28510 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28511
28512 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
28513 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
28514 ID3D12Device14 * This,
28515 _In_opt_ ID3D12Resource *pResource,
28516 _In_opt_ ID3D12Resource *pCounterResource,
28517 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
28518 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28519
28520 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
28521 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
28522 ID3D12Device14 * This,
28523 _In_opt_ ID3D12Resource *pResource,
28524 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
28525 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28526
28527 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
28528 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
28529 ID3D12Device14 * This,
28530 _In_opt_ ID3D12Resource *pResource,
28531 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
28532 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28533
28534 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
28535 void ( STDMETHODCALLTYPE *CreateSampler )(
28536 ID3D12Device14 * This,
28537 _In_ const D3D12_SAMPLER_DESC *pDesc,
28538 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28539
28540 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
28541 void ( STDMETHODCALLTYPE *CopyDescriptors )(
28542 ID3D12Device14 * This,
28543 _In_ UINT NumDestDescriptorRanges,
28544 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
28545 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
28546 _In_ UINT NumSrcDescriptorRanges,
28547 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
28548 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
28549 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
28550
28551 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
28552 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
28553 ID3D12Device14 * This,
28554 _In_ UINT NumDescriptors,
28555 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
28556 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
28557 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
28558
28559 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
28560#if !defined(_WIN32)
28561 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
28562 ID3D12Device14 * This,
28563 _In_ UINT visibleMask,
28564 _In_ UINT numResourceDescs,
28565 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
28566
28567#else
28568 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
28569 ID3D12Device14 * This,
28570 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28571 _In_ UINT visibleMask,
28572 _In_ UINT numResourceDescs,
28573 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
28574
28575#endif
28576
28577 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
28578#if !defined(_WIN32)
28579 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
28580 ID3D12Device14 * This,
28581 _In_ UINT nodeMask,
28582 D3D12_HEAP_TYPE heapType);
28583
28584#else
28585 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
28586 ID3D12Device14 * This,
28587 D3D12_HEAP_PROPERTIES * RetVal,
28588 _In_ UINT nodeMask,
28589 D3D12_HEAP_TYPE heapType);
28590
28591#endif
28592
28593 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
28594 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
28595 ID3D12Device14 * This,
28596 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
28597 D3D12_HEAP_FLAGS HeapFlags,
28598 _In_ const D3D12_RESOURCE_DESC *pDesc,
28599 D3D12_RESOURCE_STATES InitialResourceState,
28600 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28601 REFIID riidResource,
28602 _COM_Outptr_opt_ void **ppvResource);
28603
28604 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
28605 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
28606 ID3D12Device14 * This,
28607 _In_ const D3D12_HEAP_DESC *pDesc,
28608 REFIID riid,
28609 _COM_Outptr_opt_ void **ppvHeap);
28610
28611 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
28612 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
28613 ID3D12Device14 * This,
28614 _In_ ID3D12Heap *pHeap,
28615 UINT64 HeapOffset,
28616 _In_ const D3D12_RESOURCE_DESC *pDesc,
28617 D3D12_RESOURCE_STATES InitialState,
28618 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28619 REFIID riid,
28620 _COM_Outptr_opt_ void **ppvResource);
28621
28622 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
28623 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
28624 ID3D12Device14 * This,
28625 _In_ const D3D12_RESOURCE_DESC *pDesc,
28626 D3D12_RESOURCE_STATES InitialState,
28627 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28628 REFIID riid,
28629 _COM_Outptr_opt_ void **ppvResource);
28630
28631 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
28632 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
28633 ID3D12Device14 * This,
28634 _In_ ID3D12DeviceChild *pObject,
28635 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
28636 DWORD Access,
28637 _In_opt_ LPCWSTR Name,
28638 _Out_ HANDLE *pHandle);
28639
28640 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
28641 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
28642 ID3D12Device14 * This,
28643 _In_ HANDLE NTHandle,
28644 REFIID riid,
28645 _COM_Outptr_opt_ void **ppvObj);
28646
28647 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
28648 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
28649 ID3D12Device14 * This,
28650 _In_ LPCWSTR Name,
28651 DWORD Access,
28652 /* [annotation][out] */
28653 _Out_ HANDLE *pNTHandle);
28654
28655 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
28656 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
28657 ID3D12Device14 * This,
28658 UINT NumObjects,
28659 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
28660
28661 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
28662 HRESULT ( STDMETHODCALLTYPE *Evict )(
28663 ID3D12Device14 * This,
28664 UINT NumObjects,
28665 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
28666
28667 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
28668 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
28669 ID3D12Device14 * This,
28670 UINT64 InitialValue,
28671 D3D12_FENCE_FLAGS Flags,
28672 REFIID riid,
28673 _COM_Outptr_ void **ppFence);
28674
28675 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
28676 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
28677 ID3D12Device14 * This);
28678
28679 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
28680 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
28681 ID3D12Device14 * This,
28682 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
28683 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
28684 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
28685 UINT64 BaseOffset,
28686 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
28687 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
28688 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
28689 _Out_opt_ UINT64 *pTotalBytes);
28690
28691 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
28692 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
28693 ID3D12Device14 * This,
28694 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
28695 REFIID riid,
28696 _COM_Outptr_opt_ void **ppvHeap);
28697
28698 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
28699 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
28700 ID3D12Device14 * This,
28701 BOOL Enable);
28702
28703 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
28704 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
28705 ID3D12Device14 * This,
28706 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
28707 _In_opt_ ID3D12RootSignature *pRootSignature,
28708 REFIID riid,
28709 _COM_Outptr_opt_ void **ppvCommandSignature);
28710
28711 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
28712 void ( STDMETHODCALLTYPE *GetResourceTiling )(
28713 ID3D12Device14 * This,
28714 _In_ ID3D12Resource *pTiledResource,
28715 _Out_opt_ UINT *pNumTilesForEntireResource,
28716 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
28717 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
28718 _Inout_opt_ UINT *pNumSubresourceTilings,
28719 _In_ UINT FirstSubresourceTilingToGet,
28720 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
28721
28722 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
28723#if !defined(_WIN32)
28724 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
28725 ID3D12Device14 * This);
28726
28727#else
28728 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
28729 ID3D12Device14 * This,
28730 LUID * RetVal);
28731
28732#endif
28733
28734 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
28735 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
28736 ID3D12Device14 * This,
28737 _In_reads_(BlobLength) const void *pLibraryBlob,
28738 SIZE_T BlobLength,
28739 REFIID riid,
28740 _COM_Outptr_ void **ppPipelineLibrary);
28741
28742 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
28743 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
28744 ID3D12Device14 * This,
28745 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
28746 _In_reads_(NumFences) const UINT64 *pFenceValues,
28747 UINT NumFences,
28748 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
28749 HANDLE hEvent);
28750
28751 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
28752 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
28753 ID3D12Device14 * This,
28754 UINT NumObjects,
28755 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
28756 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
28757
28758 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
28759 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
28760 ID3D12Device14 * This,
28761 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
28762 REFIID riid,
28763 _COM_Outptr_ void **ppPipelineState);
28764
28765 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
28766 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
28767 ID3D12Device14 * This,
28768 _In_ const void *pAddress,
28769 REFIID riid,
28770 _COM_Outptr_ void **ppvHeap);
28771
28772 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
28773 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
28774 ID3D12Device14 * This,
28775 _In_ HANDLE hFileMapping,
28776 REFIID riid,
28777 _COM_Outptr_ void **ppvHeap);
28778
28779 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
28780 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
28781 ID3D12Device14 * This,
28782 D3D12_RESIDENCY_FLAGS Flags,
28783 UINT NumObjects,
28784 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
28785 _In_ ID3D12Fence *pFenceToSignal,
28786 UINT64 FenceValueToSignal);
28787
28788 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
28789 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
28790 ID3D12Device14 * This,
28791 _In_ UINT nodeMask,
28792 _In_ D3D12_COMMAND_LIST_TYPE type,
28793 _In_ D3D12_COMMAND_LIST_FLAGS flags,
28794 REFIID riid,
28795 _COM_Outptr_ void **ppCommandList);
28796
28797 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
28798 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
28799 ID3D12Device14 * This,
28800 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
28801 _In_ REFIID riid,
28802 _COM_Outptr_ void **ppSession);
28803
28804 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
28805 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
28806 ID3D12Device14 * This,
28807 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
28808 D3D12_HEAP_FLAGS HeapFlags,
28809 _In_ const D3D12_RESOURCE_DESC *pDesc,
28810 D3D12_RESOURCE_STATES InitialResourceState,
28811 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28812 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28813 REFIID riidResource,
28814 _COM_Outptr_opt_ void **ppvResource);
28815
28816 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
28817 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
28818 ID3D12Device14 * This,
28819 _In_ const D3D12_HEAP_DESC *pDesc,
28820 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28821 REFIID riid,
28822 _COM_Outptr_opt_ void **ppvHeap);
28823
28824 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
28825 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
28826 ID3D12Device14 * This,
28827 _In_ const D3D12_RESOURCE_DESC *pDesc,
28828 D3D12_RESOURCE_STATES InitialState,
28829 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28830 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28831 REFIID riid,
28832 _COM_Outptr_opt_ void **ppvResource);
28833
28834 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
28835#if !defined(_WIN32)
28836 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
28837 ID3D12Device14 * This,
28838 UINT visibleMask,
28839 UINT numResourceDescs,
28840 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
28841 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28842
28843#else
28844 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
28845 ID3D12Device14 * This,
28846 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28847 UINT visibleMask,
28848 UINT numResourceDescs,
28849 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
28850 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28851
28852#endif
28853
28854 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
28855 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
28856 ID3D12Device14 * This,
28857 _In_ ID3D12LifetimeOwner *pOwner,
28858 REFIID riid,
28859 _COM_Outptr_ void **ppvTracker);
28860
28861 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
28862 void ( STDMETHODCALLTYPE *RemoveDevice )(
28863 ID3D12Device14 * This);
28864
28865 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
28866 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
28867 ID3D12Device14 * This,
28868 _Inout_ UINT *pNumMetaCommands,
28869 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
28870
28871 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
28872 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
28873 ID3D12Device14 * This,
28874 _In_ REFGUID CommandId,
28875 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
28876 _Out_opt_ UINT *pTotalStructureSizeInBytes,
28877 _Inout_ UINT *pParameterCount,
28878 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
28879
28880 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
28881 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
28882 ID3D12Device14 * This,
28883 _In_ REFGUID CommandId,
28884 _In_ UINT NodeMask,
28885 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
28886 _In_ SIZE_T CreationParametersDataSizeInBytes,
28887 REFIID riid,
28888 _COM_Outptr_ void **ppMetaCommand);
28889
28890 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
28891 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
28892 ID3D12Device14 * This,
28893 const D3D12_STATE_OBJECT_DESC *pDesc,
28894 REFIID riid,
28895 _COM_Outptr_ void **ppStateObject);
28896
28897 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
28898 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
28899 ID3D12Device14 * This,
28900 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
28901 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
28902
28903 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
28904 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
28905 ID3D12Device14 * This,
28906 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
28907 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
28908
28909 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
28910 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
28911 ID3D12Device14 * This,
28912 D3D12_BACKGROUND_PROCESSING_MODE Mode,
28913 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
28914 _In_opt_ HANDLE hEventToSignalUponCompletion,
28915 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
28916
28917 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
28918 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
28919 ID3D12Device14 * This,
28920 const D3D12_STATE_OBJECT_DESC *pAddition,
28921 ID3D12StateObject *pStateObjectToGrowFrom,
28922 REFIID riid,
28923 _COM_Outptr_ void **ppNewStateObject);
28924
28925 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
28926 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
28927 ID3D12Device14 * This,
28928 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
28929 _In_ REFIID riid,
28930 _COM_Outptr_ void **ppSession);
28931
28932 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
28933#if !defined(_WIN32)
28934 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
28935 ID3D12Device14 * This,
28936 UINT visibleMask,
28937 UINT numResourceDescs,
28938 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28939 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28940
28941#else
28942 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
28943 ID3D12Device14 * This,
28944 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28945 UINT visibleMask,
28946 UINT numResourceDescs,
28947 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28948 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28949
28950#endif
28951
28952 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
28953 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
28954 ID3D12Device14 * This,
28955 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
28956 D3D12_HEAP_FLAGS HeapFlags,
28957 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
28958 D3D12_RESOURCE_STATES InitialResourceState,
28959 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28960 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28961 REFIID riidResource,
28962 _COM_Outptr_opt_ void **ppvResource);
28963
28964 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
28965 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
28966 ID3D12Device14 * This,
28967 _In_ ID3D12Heap *pHeap,
28968 UINT64 HeapOffset,
28969 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
28970 D3D12_RESOURCE_STATES InitialState,
28971 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28972 REFIID riid,
28973 _COM_Outptr_opt_ void **ppvResource);
28974
28975 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
28976 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
28977 ID3D12Device14 * This,
28978 _In_opt_ ID3D12Resource *pTargetedResource,
28979 _In_opt_ ID3D12Resource *pFeedbackResource,
28980 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28981
28982 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
28983 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
28984 ID3D12Device14 * This,
28985 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
28986 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
28987 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
28988 UINT64 BaseOffset,
28989 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
28990 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
28991 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
28992 _Out_opt_ UINT64 *pTotalBytes);
28993
28994 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
28995 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
28996 ID3D12Device14 * This,
28997 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
28998 REFIID riid,
28999 _COM_Outptr_opt_ void **ppvSession);
29000
29001 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
29002 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
29003 ID3D12Device14 * This,
29004 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
29005 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
29006
29007 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
29008 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
29009 ID3D12Device14 * This,
29010 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
29011 REFIID CreatorID,
29012 REFIID riid,
29013 _COM_Outptr_ void **ppCommandQueue);
29014
29015 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
29016 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
29017 ID3D12Device14 * This,
29018 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
29019 D3D12_HEAP_FLAGS HeapFlags,
29020 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
29021 D3D12_BARRIER_LAYOUT InitialLayout,
29022 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
29023 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
29024 UINT32 NumCastableFormats,
29025 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
29026 REFIID riidResource,
29027 _COM_Outptr_opt_ void **ppvResource);
29028
29029 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
29030 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
29031 ID3D12Device14 * This,
29032 _In_ ID3D12Heap *pHeap,
29033 UINT64 HeapOffset,
29034 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
29035 D3D12_BARRIER_LAYOUT InitialLayout,
29036 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
29037 UINT32 NumCastableFormats,
29038 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
29039 REFIID riid,
29040 _COM_Outptr_opt_ void **ppvResource);
29041
29042 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
29043 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
29044 ID3D12Device14 * This,
29045 _In_ const D3D12_RESOURCE_DESC *pDesc,
29046 D3D12_BARRIER_LAYOUT InitialLayout,
29047 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
29048 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
29049 UINT32 NumCastableFormats,
29050 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
29051 REFIID riid,
29052 _COM_Outptr_opt_ void **ppvResource);
29053
29054 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
29055 void ( STDMETHODCALLTYPE *CreateSampler2 )(
29056 ID3D12Device14 * This,
29057 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
29058 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
29059
29060 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
29061#if !defined(_WIN32)
29062 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
29063 ID3D12Device14 * This,
29064 UINT visibleMask,
29065 UINT numResourceDescs,
29066 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
29067 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
29068 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
29069 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
29070
29071#else
29072 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
29073 ID3D12Device14 * This,
29074 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
29075 UINT visibleMask,
29076 UINT numResourceDescs,
29077 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
29078 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
29079 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
29080 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
29081
29082#endif
29083
29084 DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1)
29085 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )(
29086 ID3D12Device14 * This,
29087 _In_ const void *pAddress,
29088 SIZE_T size,
29089 REFIID riid,
29090 _COM_Outptr_ void **ppvHeap);
29091
29092 DECLSPEC_XFGVIRT(ID3D12Device14, CreateRootSignatureFromSubobjectInLibrary)
29093 HRESULT ( STDMETHODCALLTYPE *CreateRootSignatureFromSubobjectInLibrary )(
29094 ID3D12Device14 * This,
29095 _In_ UINT nodeMask,
29096 _In_reads_(blobLengthInBytes) const void *pLibraryBlob,
29097 _In_ SIZE_T blobLengthInBytes,
29098 _In_opt_ LPCWSTR subobjectName,
29099 REFIID riid,
29100 _COM_Outptr_ void **ppvRootSignature);
29101
29102 END_INTERFACE
29103 } ID3D12Device14Vtbl;
29104
29105 interface ID3D12Device14
29106 {
29107 CONST_VTBL struct ID3D12Device14Vtbl *lpVtbl;
29108 };
29109
29110
29111
29112#ifdef COBJMACROS
29113
29114
29115#define ID3D12Device14_QueryInterface(This,riid,ppvObject) \
29116 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29117
29118#define ID3D12Device14_AddRef(This) \
29119 ( (This)->lpVtbl -> AddRef(This) )
29120
29121#define ID3D12Device14_Release(This) \
29122 ( (This)->lpVtbl -> Release(This) )
29123
29124
29125#define ID3D12Device14_GetPrivateData(This,guid,pDataSize,pData) \
29126 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
29127
29128#define ID3D12Device14_SetPrivateData(This,guid,DataSize,pData) \
29129 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
29130
29131#define ID3D12Device14_SetPrivateDataInterface(This,guid,pData) \
29132 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
29133
29134#define ID3D12Device14_SetName(This,Name) \
29135 ( (This)->lpVtbl -> SetName(This,Name) )
29136
29137
29138#define ID3D12Device14_GetNodeCount(This) \
29139 ( (This)->lpVtbl -> GetNodeCount(This) )
29140
29141#define ID3D12Device14_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
29142 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
29143
29144#define ID3D12Device14_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
29145 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
29146
29147#define ID3D12Device14_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
29148 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
29149
29150#define ID3D12Device14_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
29151 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
29152
29153#define ID3D12Device14_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
29154 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
29155
29156#define ID3D12Device14_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
29157 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
29158
29159#define ID3D12Device14_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
29160 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
29161
29162#define ID3D12Device14_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
29163 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
29164
29165#define ID3D12Device14_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
29166 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
29167
29168#define ID3D12Device14_CreateConstantBufferView(This,pDesc,DestDescriptor) \
29169 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
29170
29171#define ID3D12Device14_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
29172 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
29173
29174#define ID3D12Device14_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
29175 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
29176
29177#define ID3D12Device14_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
29178 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
29179
29180#define ID3D12Device14_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
29181 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
29182
29183#define ID3D12Device14_CreateSampler(This,pDesc,DestDescriptor) \
29184 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
29185
29186#define ID3D12Device14_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
29187 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
29188
29189#define ID3D12Device14_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
29190 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
29191#if !defined(_WIN32)
29192
29193#define ID3D12Device14_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
29194 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
29195#else
29196#define ID3D12Device14_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
29197 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
29198#endif
29199#if !defined(_WIN32)
29200
29201#define ID3D12Device14_GetCustomHeapProperties(This,nodeMask,heapType) \
29202 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
29203#else
29204#define ID3D12Device14_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
29205 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
29206#endif
29207
29208#define ID3D12Device14_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
29209 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
29210
29211#define ID3D12Device14_CreateHeap(This,pDesc,riid,ppvHeap) \
29212 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
29213
29214#define ID3D12Device14_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
29215 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
29216
29217#define ID3D12Device14_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
29218 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
29219
29220#define ID3D12Device14_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
29221 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
29222
29223#define ID3D12Device14_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
29224 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
29225
29226#define ID3D12Device14_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
29227 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
29228
29229#define ID3D12Device14_MakeResident(This,NumObjects,ppObjects) \
29230 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
29231
29232#define ID3D12Device14_Evict(This,NumObjects,ppObjects) \
29233 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
29234
29235#define ID3D12Device14_CreateFence(This,InitialValue,Flags,riid,ppFence) \
29236 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
29237
29238#define ID3D12Device14_GetDeviceRemovedReason(This) \
29239 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
29240
29241#define ID3D12Device14_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
29242 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
29243
29244#define ID3D12Device14_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
29245 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
29246
29247#define ID3D12Device14_SetStablePowerState(This,Enable) \
29248 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
29249
29250#define ID3D12Device14_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
29251 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
29252
29253#define ID3D12Device14_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
29254 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
29255#if !defined(_WIN32)
29256
29257#define ID3D12Device14_GetAdapterLuid(This) \
29258 ( (This)->lpVtbl -> GetAdapterLuid(This) )
29259#else
29260#define ID3D12Device14_GetAdapterLuid(This,RetVal) \
29261 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
29262#endif
29263
29264
29265#define ID3D12Device14_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
29266 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
29267
29268#define ID3D12Device14_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
29269 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
29270
29271#define ID3D12Device14_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
29272 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
29273
29274
29275#define ID3D12Device14_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
29276 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
29277
29278
29279#define ID3D12Device14_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
29280 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
29281
29282#define ID3D12Device14_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
29283 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
29284
29285#define ID3D12Device14_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
29286 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
29287
29288
29289#define ID3D12Device14_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
29290 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
29291
29292#define ID3D12Device14_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
29293 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
29294
29295#define ID3D12Device14_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
29296 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
29297
29298#define ID3D12Device14_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
29299 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
29300
29301#define ID3D12Device14_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
29302 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
29303#if !defined(_WIN32)
29304
29305#define ID3D12Device14_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
29306 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
29307#else
29308#define ID3D12Device14_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
29309 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
29310#endif
29311
29312
29313#define ID3D12Device14_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
29314 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
29315
29316#define ID3D12Device14_RemoveDevice(This) \
29317 ( (This)->lpVtbl -> RemoveDevice(This) )
29318
29319#define ID3D12Device14_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
29320 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
29321
29322#define ID3D12Device14_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
29323 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
29324
29325#define ID3D12Device14_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
29326 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
29327
29328#define ID3D12Device14_CreateStateObject(This,pDesc,riid,ppStateObject) \
29329 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
29330
29331#define ID3D12Device14_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
29332 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
29333
29334#define ID3D12Device14_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
29335 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
29336
29337
29338#define ID3D12Device14_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
29339 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
29340
29341
29342#define ID3D12Device14_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
29343 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
29344
29345#define ID3D12Device14_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
29346 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
29347
29348#if !defined(_WIN32)
29349
29350#define ID3D12Device14_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
29351 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
29352#else
29353#define ID3D12Device14_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
29354 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
29355#endif
29356
29357#define ID3D12Device14_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
29358 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
29359
29360#define ID3D12Device14_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
29361 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
29362
29363#define ID3D12Device14_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
29364 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
29365
29366#define ID3D12Device14_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
29367 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
29368
29369
29370#define ID3D12Device14_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
29371 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
29372
29373#define ID3D12Device14_ShaderCacheControl(This,Kinds,Control) \
29374 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
29375
29376#define ID3D12Device14_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
29377 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
29378
29379
29380#define ID3D12Device14_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
29381 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
29382
29383#define ID3D12Device14_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
29384 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
29385
29386#define ID3D12Device14_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
29387 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
29388
29389
29390#define ID3D12Device14_CreateSampler2(This,pDesc,DestDescriptor) \
29391 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
29392
29393#if !defined(_WIN32)
29394
29395#define ID3D12Device14_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
29396 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
29397#else
29398#define ID3D12Device14_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
29399 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
29400#endif
29401
29402
29403#define ID3D12Device14_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \
29404 ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) )
29405
29406
29407#define ID3D12Device14_CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) \
29408 ( (This)->lpVtbl -> CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) )
29409
29410#endif /* COBJMACROS */
29411
29412
29413#endif /* C style interface */
29414
29415
29416
29417
29418#endif /* __ID3D12Device14_INTERFACE_DEFINED__ */
29419
29420
29421/* interface __MIDL_itf_d3d12_0000_0063 */
29422/* [local] */
29423
29424typedef union D3D12_VERSION_NUMBER
29425 {
29426 UINT64 Version;
29427 UINT16 VersionParts[ 4 ];
29428 } D3D12_VERSION_NUMBER;
29429
29430typedef struct D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT
29431 {
29432 WCHAR szAdapterFamily[ 128 ];
29433 UINT64 MinimumABISupportVersion;
29434 UINT64 MaximumABISupportVersion;
29435 D3D12_VERSION_NUMBER CompilerVersion;
29436 D3D12_VERSION_NUMBER ApplicationProfileVersion;
29437 } D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT;
29438
29439typedef void ( __stdcall *D3D12PipelineStateFunc )(
29440 _In_reads_bytes_(KeySize) const void *pKey,
29441 UINT KeySize,
29442 UINT Version,
29443 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
29444 _Inout_opt_ void *pContext);
29445
29446typedef void ( __stdcall *D3D12StateObjectFunc )(
29447 _In_reads_bytes_(KeySize) const void *pKey,
29448 UINT KeySize,
29449 UINT Version,
29450 const D3D12_STATE_OBJECT_DESC *pDesc,
29451 _In_reads_bytes_(ParentKeySize) const void *pParentKey,
29452 UINT ParentKeySize,
29453 _Inout_opt_ void *pContext);
29454
29455typedef struct D3D12_APPLICATION_DESC
29456 {
29457 LPCWSTR pExeFilename;
29458 LPCWSTR pName;
29459 D3D12_VERSION_NUMBER Version;
29460 LPCWSTR pEngineName;
29461 D3D12_VERSION_NUMBER EngineVersion;
29462 } D3D12_APPLICATION_DESC;
29463
29464typedef void ( __stdcall *D3D12ApplicationDescFunc )(
29465 _In_ const D3D12_APPLICATION_DESC *pApplicationDesc,
29466 _Inout_opt_ void *pContext);
29467
29468typedef struct D3D12_EXISTING_COLLECTION_BY_KEY_DESC
29469 {
29470 _Field_size_bytes_full_(KeySize) const void *pKey;
29471 UINT KeySize;
29472 UINT NumExports;
29473 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
29474 } D3D12_EXISTING_COLLECTION_BY_KEY_DESC;
29475
29476
29477
29478extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_c_ifspec;
29479extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_s_ifspec;
29480
29481#ifndef __ID3D12StateObjectDatabase_INTERFACE_DEFINED__
29482#define __ID3D12StateObjectDatabase_INTERFACE_DEFINED__
29483
29484/* interface ID3D12StateObjectDatabase */
29485/* [unique][local][object][uuid] */
29486
29487
29488EXTERN_C const IID IID_ID3D12StateObjectDatabase;
29489
29490#if defined(__cplusplus) && !defined(CINTERFACE)
29491
29492 MIDL_INTERFACE("c56060b7-b5fc-4135-98e0-a1e9997eace0")
29493 ID3D12StateObjectDatabase : public IUnknown
29494 {
29495 public:
29496 virtual HRESULT STDMETHODCALLTYPE SetApplicationDesc(
29497 _In_ const D3D12_APPLICATION_DESC *pApplicationDesc) = 0;
29498
29499 virtual HRESULT STDMETHODCALLTYPE GetApplicationDesc(
29500 _In_ D3D12ApplicationDescFunc CallbackFunc,
29501 _Inout_opt_ void *pContext) = 0;
29502
29503 virtual HRESULT STDMETHODCALLTYPE StorePipelineStateDesc(
29504 _In_reads_(KeySize) const void *pKey,
29505 UINT KeySize,
29506 UINT Version,
29507 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc) = 0;
29508
29509 virtual HRESULT STDMETHODCALLTYPE FindPipelineStateDesc(
29510 _In_reads_(KeySize) const void *pKey,
29511 UINT KeySize,
29512 _In_ D3D12PipelineStateFunc CallbackFunc,
29513 _Inout_opt_ void *pContext) = 0;
29514
29515 virtual HRESULT STDMETHODCALLTYPE StoreStateObjectDesc(
29516 _In_reads_(KeySize) const void *pKey,
29517 UINT KeySize,
29518 UINT Version,
29519 _In_ const D3D12_STATE_OBJECT_DESC *pDesc,
29520 _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey,
29521 UINT StateObjectToGrowFromKeySize) = 0;
29522
29523 virtual HRESULT STDMETHODCALLTYPE FindStateObjectDesc(
29524 _In_reads_(keySize) const void *pKey,
29525 UINT KeySize,
29526 D3D12StateObjectFunc CallbackFunc,
29527 _Inout_opt_ void *pContext) = 0;
29528
29529 virtual HRESULT STDMETHODCALLTYPE FindObjectVersion(
29530 _In_reads_(keySize) const void *pKey,
29531 UINT KeySize,
29532 _Out_ UINT *pVersion) = 0;
29533
29534 };
29535
29536
29537#else /* C style interface */
29538
29539 typedef struct ID3D12StateObjectDatabaseVtbl
29540 {
29541 BEGIN_INTERFACE
29542
29543 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29544 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29545 ID3D12StateObjectDatabase * This,
29546 REFIID riid,
29547 _COM_Outptr_ void **ppvObject);
29548
29549 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29550 ULONG ( STDMETHODCALLTYPE *AddRef )(
29551 ID3D12StateObjectDatabase * This);
29552
29553 DECLSPEC_XFGVIRT(IUnknown, Release)
29554 ULONG ( STDMETHODCALLTYPE *Release )(
29555 ID3D12StateObjectDatabase * This);
29556
29557 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, SetApplicationDesc)
29558 HRESULT ( STDMETHODCALLTYPE *SetApplicationDesc )(
29559 ID3D12StateObjectDatabase * This,
29560 _In_ const D3D12_APPLICATION_DESC *pApplicationDesc);
29561
29562 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, GetApplicationDesc)
29563 HRESULT ( STDMETHODCALLTYPE *GetApplicationDesc )(
29564 ID3D12StateObjectDatabase * This,
29565 _In_ D3D12ApplicationDescFunc CallbackFunc,
29566 _Inout_opt_ void *pContext);
29567
29568 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StorePipelineStateDesc)
29569 HRESULT ( STDMETHODCALLTYPE *StorePipelineStateDesc )(
29570 ID3D12StateObjectDatabase * This,
29571 _In_reads_(KeySize) const void *pKey,
29572 UINT KeySize,
29573 UINT Version,
29574 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc);
29575
29576 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindPipelineStateDesc)
29577 HRESULT ( STDMETHODCALLTYPE *FindPipelineStateDesc )(
29578 ID3D12StateObjectDatabase * This,
29579 _In_reads_(KeySize) const void *pKey,
29580 UINT KeySize,
29581 _In_ D3D12PipelineStateFunc CallbackFunc,
29582 _Inout_opt_ void *pContext);
29583
29584 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StoreStateObjectDesc)
29585 HRESULT ( STDMETHODCALLTYPE *StoreStateObjectDesc )(
29586 ID3D12StateObjectDatabase * This,
29587 _In_reads_(KeySize) const void *pKey,
29588 UINT KeySize,
29589 UINT Version,
29590 _In_ const D3D12_STATE_OBJECT_DESC *pDesc,
29591 _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey,
29592 UINT StateObjectToGrowFromKeySize);
29593
29594 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindStateObjectDesc)
29595 HRESULT ( STDMETHODCALLTYPE *FindStateObjectDesc )(
29596 ID3D12StateObjectDatabase * This,
29597 _In_reads_(keySize) const void *pKey,
29598 UINT KeySize,
29599 D3D12StateObjectFunc CallbackFunc,
29600 _Inout_opt_ void *pContext);
29601
29602 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindObjectVersion)
29603 HRESULT ( STDMETHODCALLTYPE *FindObjectVersion )(
29604 ID3D12StateObjectDatabase * This,
29605 _In_reads_(keySize) const void *pKey,
29606 UINT KeySize,
29607 _Out_ UINT *pVersion);
29608
29609 END_INTERFACE
29610 } ID3D12StateObjectDatabaseVtbl;
29611
29612 interface ID3D12StateObjectDatabase
29613 {
29614 CONST_VTBL struct ID3D12StateObjectDatabaseVtbl *lpVtbl;
29615 };
29616
29617
29618
29619#ifdef COBJMACROS
29620
29621
29622#define ID3D12StateObjectDatabase_QueryInterface(This,riid,ppvObject) \
29623 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29624
29625#define ID3D12StateObjectDatabase_AddRef(This) \
29626 ( (This)->lpVtbl -> AddRef(This) )
29627
29628#define ID3D12StateObjectDatabase_Release(This) \
29629 ( (This)->lpVtbl -> Release(This) )
29630
29631
29632#define ID3D12StateObjectDatabase_SetApplicationDesc(This,pApplicationDesc) \
29633 ( (This)->lpVtbl -> SetApplicationDesc(This,pApplicationDesc) )
29634
29635#define ID3D12StateObjectDatabase_GetApplicationDesc(This,CallbackFunc,pContext) \
29636 ( (This)->lpVtbl -> GetApplicationDesc(This,CallbackFunc,pContext) )
29637
29638#define ID3D12StateObjectDatabase_StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) \
29639 ( (This)->lpVtbl -> StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) )
29640
29641#define ID3D12StateObjectDatabase_FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) \
29642 ( (This)->lpVtbl -> FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) )
29643
29644#define ID3D12StateObjectDatabase_StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) \
29645 ( (This)->lpVtbl -> StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) )
29646
29647#define ID3D12StateObjectDatabase_FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) \
29648 ( (This)->lpVtbl -> FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) )
29649
29650#define ID3D12StateObjectDatabase_FindObjectVersion(This,pKey,KeySize,pVersion) \
29651 ( (This)->lpVtbl -> FindObjectVersion(This,pKey,KeySize,pVersion) )
29652
29653#endif /* COBJMACROS */
29654
29655
29656#endif /* C style interface */
29657
29658
29659
29660
29661#endif /* __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ */
29662
29663
29664#ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
29665#define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
29666
29667/* interface ID3D12VirtualizationGuestDevice */
29668/* [unique][local][object][uuid] */
29669
29670
29671EXTERN_C const IID IID_ID3D12VirtualizationGuestDevice;
29672
29673#if defined(__cplusplus) && !defined(CINTERFACE)
29674
29675 MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476")
29676 ID3D12VirtualizationGuestDevice : public IUnknown
29677 {
29678 public:
29679 virtual HRESULT STDMETHODCALLTYPE ShareWithHost(
29680 _In_ ID3D12DeviceChild *pObject,
29681 _Out_ HANDLE *pHandle) = 0;
29682
29683 virtual HRESULT STDMETHODCALLTYPE CreateFenceFd(
29684 _In_ ID3D12Fence *pFence,
29685 UINT64 FenceValue,
29686 _Out_ int *pFenceFd) = 0;
29687
29688 };
29689
29690
29691#else /* C style interface */
29692
29693 typedef struct ID3D12VirtualizationGuestDeviceVtbl
29694 {
29695 BEGIN_INTERFACE
29696
29697 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29698 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29699 ID3D12VirtualizationGuestDevice * This,
29700 REFIID riid,
29701 _COM_Outptr_ void **ppvObject);
29702
29703 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29704 ULONG ( STDMETHODCALLTYPE *AddRef )(
29705 ID3D12VirtualizationGuestDevice * This);
29706
29707 DECLSPEC_XFGVIRT(IUnknown, Release)
29708 ULONG ( STDMETHODCALLTYPE *Release )(
29709 ID3D12VirtualizationGuestDevice * This);
29710
29711 DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, ShareWithHost)
29712 HRESULT ( STDMETHODCALLTYPE *ShareWithHost )(
29713 ID3D12VirtualizationGuestDevice * This,
29714 _In_ ID3D12DeviceChild *pObject,
29715 _Out_ HANDLE *pHandle);
29716
29717 DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, CreateFenceFd)
29718 HRESULT ( STDMETHODCALLTYPE *CreateFenceFd )(
29719 ID3D12VirtualizationGuestDevice * This,
29720 _In_ ID3D12Fence *pFence,
29721 UINT64 FenceValue,
29722 _Out_ int *pFenceFd);
29723
29724 END_INTERFACE
29725 } ID3D12VirtualizationGuestDeviceVtbl;
29726
29727 interface ID3D12VirtualizationGuestDevice
29728 {
29729 CONST_VTBL struct ID3D12VirtualizationGuestDeviceVtbl *lpVtbl;
29730 };
29731
29732
29733
29734#ifdef COBJMACROS
29735
29736
29737#define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) \
29738 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29739
29740#define ID3D12VirtualizationGuestDevice_AddRef(This) \
29741 ( (This)->lpVtbl -> AddRef(This) )
29742
29743#define ID3D12VirtualizationGuestDevice_Release(This) \
29744 ( (This)->lpVtbl -> Release(This) )
29745
29746
29747#define ID3D12VirtualizationGuestDevice_ShareWithHost(This,pObject,pHandle) \
29748 ( (This)->lpVtbl -> ShareWithHost(This,pObject,pHandle) )
29749
29750#define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,pFence,FenceValue,pFenceFd) \
29751 ( (This)->lpVtbl -> CreateFenceFd(This,pFence,FenceValue,pFenceFd) )
29752
29753#endif /* COBJMACROS */
29754
29755
29756#endif /* C style interface */
29757
29758
29759
29760
29761#endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */
29762
29763
29764#ifndef __ID3D12Tools_INTERFACE_DEFINED__
29765#define __ID3D12Tools_INTERFACE_DEFINED__
29766
29767/* interface ID3D12Tools */
29768/* [unique][local][object][uuid] */
29769
29770
29771EXTERN_C const IID IID_ID3D12Tools;
29772
29773#if defined(__cplusplus) && !defined(CINTERFACE)
29774
29775 MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5")
29776 ID3D12Tools : public IUnknown
29777 {
29778 public:
29779 virtual void STDMETHODCALLTYPE EnableShaderInstrumentation(
29780 BOOL bEnable) = 0;
29781
29782 virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0;
29783
29784 };
29785
29786
29787#else /* C style interface */
29788
29789 typedef struct ID3D12ToolsVtbl
29790 {
29791 BEGIN_INTERFACE
29792
29793 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29794 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29795 ID3D12Tools * This,
29796 REFIID riid,
29797 _COM_Outptr_ void **ppvObject);
29798
29799 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29800 ULONG ( STDMETHODCALLTYPE *AddRef )(
29801 ID3D12Tools * This);
29802
29803 DECLSPEC_XFGVIRT(IUnknown, Release)
29804 ULONG ( STDMETHODCALLTYPE *Release )(
29805 ID3D12Tools * This);
29806
29807 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
29808 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
29809 ID3D12Tools * This,
29810 BOOL bEnable);
29811
29812 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
29813 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
29814 ID3D12Tools * This);
29815
29816 END_INTERFACE
29817 } ID3D12ToolsVtbl;
29818
29819 interface ID3D12Tools
29820 {
29821 CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl;
29822 };
29823
29824
29825
29826#ifdef COBJMACROS
29827
29828
29829#define ID3D12Tools_QueryInterface(This,riid,ppvObject) \
29830 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29831
29832#define ID3D12Tools_AddRef(This) \
29833 ( (This)->lpVtbl -> AddRef(This) )
29834
29835#define ID3D12Tools_Release(This) \
29836 ( (This)->lpVtbl -> Release(This) )
29837
29838
29839#define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \
29840 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
29841
29842#define ID3D12Tools_ShaderInstrumentationEnabled(This) \
29843 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
29844
29845#endif /* COBJMACROS */
29846
29847
29848#endif /* C style interface */
29849
29850
29851
29852
29853#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */
29854
29855
29856#ifndef __ID3D12Tools1_INTERFACE_DEFINED__
29857#define __ID3D12Tools1_INTERFACE_DEFINED__
29858
29859/* interface ID3D12Tools1 */
29860/* [unique][local][object][uuid] */
29861
29862
29863EXTERN_C const IID IID_ID3D12Tools1;
29864
29865#if defined(__cplusplus) && !defined(CINTERFACE)
29866
29867 MIDL_INTERFACE("e4fbc019-dd3c-43e1-8f32-7f649575f0a0")
29868 ID3D12Tools1 : public ID3D12Tools
29869 {
29870 public:
29871 virtual HRESULT STDMETHODCALLTYPE ReserveGPUVARangesAtCreate(
29872 _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
29873 _In_ UINT uiNumRanges) = 0;
29874
29875 virtual void STDMETHODCALLTYPE ClearReservedGPUVARangesList( void) = 0;
29876
29877 };
29878
29879
29880#else /* C style interface */
29881
29882 typedef struct ID3D12Tools1Vtbl
29883 {
29884 BEGIN_INTERFACE
29885
29886 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29887 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29888 ID3D12Tools1 * This,
29889 REFIID riid,
29890 _COM_Outptr_ void **ppvObject);
29891
29892 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29893 ULONG ( STDMETHODCALLTYPE *AddRef )(
29894 ID3D12Tools1 * This);
29895
29896 DECLSPEC_XFGVIRT(IUnknown, Release)
29897 ULONG ( STDMETHODCALLTYPE *Release )(
29898 ID3D12Tools1 * This);
29899
29900 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
29901 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
29902 ID3D12Tools1 * This,
29903 BOOL bEnable);
29904
29905 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
29906 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
29907 ID3D12Tools1 * This);
29908
29909 DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate)
29910 HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )(
29911 ID3D12Tools1 * This,
29912 _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
29913 _In_ UINT uiNumRanges);
29914
29915 DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList)
29916 void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )(
29917 ID3D12Tools1 * This);
29918
29919 END_INTERFACE
29920 } ID3D12Tools1Vtbl;
29921
29922 interface ID3D12Tools1
29923 {
29924 CONST_VTBL struct ID3D12Tools1Vtbl *lpVtbl;
29925 };
29926
29927
29928
29929#ifdef COBJMACROS
29930
29931
29932#define ID3D12Tools1_QueryInterface(This,riid,ppvObject) \
29933 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29934
29935#define ID3D12Tools1_AddRef(This) \
29936 ( (This)->lpVtbl -> AddRef(This) )
29937
29938#define ID3D12Tools1_Release(This) \
29939 ( (This)->lpVtbl -> Release(This) )
29940
29941
29942#define ID3D12Tools1_EnableShaderInstrumentation(This,bEnable) \
29943 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
29944
29945#define ID3D12Tools1_ShaderInstrumentationEnabled(This) \
29946 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
29947
29948
29949#define ID3D12Tools1_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \
29950 ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) )
29951
29952#define ID3D12Tools1_ClearReservedGPUVARangesList(This) \
29953 ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) )
29954
29955#endif /* COBJMACROS */
29956
29957
29958#endif /* C style interface */
29959
29960
29961
29962
29963#endif /* __ID3D12Tools1_INTERFACE_DEFINED__ */
29964
29965
29966#ifndef __ID3D12Tools2_INTERFACE_DEFINED__
29967#define __ID3D12Tools2_INTERFACE_DEFINED__
29968
29969/* interface ID3D12Tools2 */
29970/* [unique][local][object][uuid] */
29971
29972
29973EXTERN_C const IID IID_ID3D12Tools2;
29974
29975#if defined(__cplusplus) && !defined(CINTERFACE)
29976
29977 MIDL_INTERFACE("01d393c5-c9b0-42a1-958c-c26b02d4d097")
29978 ID3D12Tools2 : public ID3D12Tools1
29979 {
29980 public:
29981 virtual HRESULT STDMETHODCALLTYPE SetApplicationSpecificDriverState(
29982 _In_ IUnknown *pAdapter,
29983 _In_opt_ ID3DBlob *pBlob) = 0;
29984
29985 };
29986
29987
29988#else /* C style interface */
29989
29990 typedef struct ID3D12Tools2Vtbl
29991 {
29992 BEGIN_INTERFACE
29993
29994 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29995 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29996 ID3D12Tools2 * This,
29997 REFIID riid,
29998 _COM_Outptr_ void **ppvObject);
29999
30000 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30001 ULONG ( STDMETHODCALLTYPE *AddRef )(
30002 ID3D12Tools2 * This);
30003
30004 DECLSPEC_XFGVIRT(IUnknown, Release)
30005 ULONG ( STDMETHODCALLTYPE *Release )(
30006 ID3D12Tools2 * This);
30007
30008 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
30009 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
30010 ID3D12Tools2 * This,
30011 BOOL bEnable);
30012
30013 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
30014 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
30015 ID3D12Tools2 * This);
30016
30017 DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate)
30018 HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )(
30019 ID3D12Tools2 * This,
30020 _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
30021 _In_ UINT uiNumRanges);
30022
30023 DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList)
30024 void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )(
30025 ID3D12Tools2 * This);
30026
30027 DECLSPEC_XFGVIRT(ID3D12Tools2, SetApplicationSpecificDriverState)
30028 HRESULT ( STDMETHODCALLTYPE *SetApplicationSpecificDriverState )(
30029 ID3D12Tools2 * This,
30030 _In_ IUnknown *pAdapter,
30031 _In_opt_ ID3DBlob *pBlob);
30032
30033 END_INTERFACE
30034 } ID3D12Tools2Vtbl;
30035
30036 interface ID3D12Tools2
30037 {
30038 CONST_VTBL struct ID3D12Tools2Vtbl *lpVtbl;
30039 };
30040
30041
30042
30043#ifdef COBJMACROS
30044
30045
30046#define ID3D12Tools2_QueryInterface(This,riid,ppvObject) \
30047 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30048
30049#define ID3D12Tools2_AddRef(This) \
30050 ( (This)->lpVtbl -> AddRef(This) )
30051
30052#define ID3D12Tools2_Release(This) \
30053 ( (This)->lpVtbl -> Release(This) )
30054
30055
30056#define ID3D12Tools2_EnableShaderInstrumentation(This,bEnable) \
30057 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
30058
30059#define ID3D12Tools2_ShaderInstrumentationEnabled(This) \
30060 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
30061
30062
30063#define ID3D12Tools2_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \
30064 ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) )
30065
30066#define ID3D12Tools2_ClearReservedGPUVARangesList(This) \
30067 ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) )
30068
30069
30070#define ID3D12Tools2_SetApplicationSpecificDriverState(This,pAdapter,pBlob) \
30071 ( (This)->lpVtbl -> SetApplicationSpecificDriverState(This,pAdapter,pBlob) )
30072
30073#endif /* COBJMACROS */
30074
30075
30076#endif /* C style interface */
30077
30078
30079
30080
30081#endif /* __ID3D12Tools2_INTERFACE_DEFINED__ */
30082
30083
30084#ifndef __ID3D12PageableTools_INTERFACE_DEFINED__
30085#define __ID3D12PageableTools_INTERFACE_DEFINED__
30086
30087/* interface ID3D12PageableTools */
30088/* [unique][local][object][uuid] */
30089
30090
30091EXTERN_C const IID IID_ID3D12PageableTools;
30092
30093#if defined(__cplusplus) && !defined(CINTERFACE)
30094
30095 MIDL_INTERFACE("8f1359db-d8d1-42f9-b5cf-79f4cbad0d3d")
30096 ID3D12PageableTools : public IUnknown
30097 {
30098 public:
30099 virtual HRESULT STDMETHODCALLTYPE GetAllocation(
30100 _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation) = 0;
30101
30102 };
30103
30104
30105#else /* C style interface */
30106
30107 typedef struct ID3D12PageableToolsVtbl
30108 {
30109 BEGIN_INTERFACE
30110
30111 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30112 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30113 ID3D12PageableTools * This,
30114 REFIID riid,
30115 _COM_Outptr_ void **ppvObject);
30116
30117 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30118 ULONG ( STDMETHODCALLTYPE *AddRef )(
30119 ID3D12PageableTools * This);
30120
30121 DECLSPEC_XFGVIRT(IUnknown, Release)
30122 ULONG ( STDMETHODCALLTYPE *Release )(
30123 ID3D12PageableTools * This);
30124
30125 DECLSPEC_XFGVIRT(ID3D12PageableTools, GetAllocation)
30126 HRESULT ( STDMETHODCALLTYPE *GetAllocation )(
30127 ID3D12PageableTools * This,
30128 _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation);
30129
30130 END_INTERFACE
30131 } ID3D12PageableToolsVtbl;
30132
30133 interface ID3D12PageableTools
30134 {
30135 CONST_VTBL struct ID3D12PageableToolsVtbl *lpVtbl;
30136 };
30137
30138
30139
30140#ifdef COBJMACROS
30141
30142
30143#define ID3D12PageableTools_QueryInterface(This,riid,ppvObject) \
30144 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30145
30146#define ID3D12PageableTools_AddRef(This) \
30147 ( (This)->lpVtbl -> AddRef(This) )
30148
30149#define ID3D12PageableTools_Release(This) \
30150 ( (This)->lpVtbl -> Release(This) )
30151
30152
30153#define ID3D12PageableTools_GetAllocation(This,pAllocation) \
30154 ( (This)->lpVtbl -> GetAllocation(This,pAllocation) )
30155
30156#endif /* COBJMACROS */
30157
30158
30159#endif /* C style interface */
30160
30161
30162
30163
30164#endif /* __ID3D12PageableTools_INTERFACE_DEFINED__ */
30165
30166
30167#ifndef __ID3D12DeviceTools_INTERFACE_DEFINED__
30168#define __ID3D12DeviceTools_INTERFACE_DEFINED__
30169
30170/* interface ID3D12DeviceTools */
30171/* [unique][local][object][uuid] */
30172
30173
30174EXTERN_C const IID IID_ID3D12DeviceTools;
30175
30176#if defined(__cplusplus) && !defined(CINTERFACE)
30177
30178 MIDL_INTERFACE("2ea68e9c-19c3-4e47-a109-6cdadff0aca9")
30179 ID3D12DeviceTools : public IUnknown
30180 {
30181 public:
30182 virtual void STDMETHODCALLTYPE SetNextAllocationAddress(
30183 _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress) = 0;
30184
30185 };
30186
30187
30188#else /* C style interface */
30189
30190 typedef struct ID3D12DeviceToolsVtbl
30191 {
30192 BEGIN_INTERFACE
30193
30194 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30195 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30196 ID3D12DeviceTools * This,
30197 REFIID riid,
30198 _COM_Outptr_ void **ppvObject);
30199
30200 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30201 ULONG ( STDMETHODCALLTYPE *AddRef )(
30202 ID3D12DeviceTools * This);
30203
30204 DECLSPEC_XFGVIRT(IUnknown, Release)
30205 ULONG ( STDMETHODCALLTYPE *Release )(
30206 ID3D12DeviceTools * This);
30207
30208 DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress)
30209 void ( STDMETHODCALLTYPE *SetNextAllocationAddress )(
30210 ID3D12DeviceTools * This,
30211 _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress);
30212
30213 END_INTERFACE
30214 } ID3D12DeviceToolsVtbl;
30215
30216 interface ID3D12DeviceTools
30217 {
30218 CONST_VTBL struct ID3D12DeviceToolsVtbl *lpVtbl;
30219 };
30220
30221
30222
30223#ifdef COBJMACROS
30224
30225
30226#define ID3D12DeviceTools_QueryInterface(This,riid,ppvObject) \
30227 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30228
30229#define ID3D12DeviceTools_AddRef(This) \
30230 ( (This)->lpVtbl -> AddRef(This) )
30231
30232#define ID3D12DeviceTools_Release(This) \
30233 ( (This)->lpVtbl -> Release(This) )
30234
30235
30236#define ID3D12DeviceTools_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \
30237 ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) )
30238
30239#endif /* COBJMACROS */
30240
30241
30242#endif /* C style interface */
30243
30244
30245
30246
30247#endif /* __ID3D12DeviceTools_INTERFACE_DEFINED__ */
30248
30249
30250/* interface __MIDL_itf_d3d12_0000_0070 */
30251/* [local] */
30252
30253typedef
30254enum D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS
30255 {
30256 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_UNKNOWN = 1,
30257 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_USED = 2,
30258 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_IGNORED = 3,
30259 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_NOT_SPECIFIED = 4
30260 } D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS;
30261
30262
30263
30264extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec;
30265extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec;
30266
30267#ifndef __ID3D12DeviceTools1_INTERFACE_DEFINED__
30268#define __ID3D12DeviceTools1_INTERFACE_DEFINED__
30269
30270/* interface ID3D12DeviceTools1 */
30271/* [unique][local][object][uuid] */
30272
30273
30274EXTERN_C const IID IID_ID3D12DeviceTools1;
30275
30276#if defined(__cplusplus) && !defined(CINTERFACE)
30277
30278 MIDL_INTERFACE("e30e9fc7-e641-4d6e-8a81-9dd9206ec47a")
30279 ID3D12DeviceTools1 : public ID3D12DeviceTools
30280 {
30281 public:
30282 virtual HRESULT STDMETHODCALLTYPE GetApplicationSpecificDriverState(
30283 _COM_Outptr_ ID3DBlob **ppBlob) = 0;
30284
30285 virtual D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS STDMETHODCALLTYPE GetApplicationSpecificDriverBlobStatus( void) = 0;
30286
30287 };
30288
30289
30290#else /* C style interface */
30291
30292 typedef struct ID3D12DeviceTools1Vtbl
30293 {
30294 BEGIN_INTERFACE
30295
30296 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30297 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30298 ID3D12DeviceTools1 * This,
30299 REFIID riid,
30300 _COM_Outptr_ void **ppvObject);
30301
30302 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30303 ULONG ( STDMETHODCALLTYPE *AddRef )(
30304 ID3D12DeviceTools1 * This);
30305
30306 DECLSPEC_XFGVIRT(IUnknown, Release)
30307 ULONG ( STDMETHODCALLTYPE *Release )(
30308 ID3D12DeviceTools1 * This);
30309
30310 DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress)
30311 void ( STDMETHODCALLTYPE *SetNextAllocationAddress )(
30312 ID3D12DeviceTools1 * This,
30313 _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress);
30314
30315 DECLSPEC_XFGVIRT(ID3D12DeviceTools1, GetApplicationSpecificDriverState)
30316 HRESULT ( STDMETHODCALLTYPE *GetApplicationSpecificDriverState )(
30317 ID3D12DeviceTools1 * This,
30318 _COM_Outptr_ ID3DBlob **ppBlob);
30319
30320 DECLSPEC_XFGVIRT(ID3D12DeviceTools1, GetApplicationSpecificDriverBlobStatus)
30321 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS ( STDMETHODCALLTYPE *GetApplicationSpecificDriverBlobStatus )(
30322 ID3D12DeviceTools1 * This);
30323
30324 END_INTERFACE
30325 } ID3D12DeviceTools1Vtbl;
30326
30327 interface ID3D12DeviceTools1
30328 {
30329 CONST_VTBL struct ID3D12DeviceTools1Vtbl *lpVtbl;
30330 };
30331
30332
30333
30334#ifdef COBJMACROS
30335
30336
30337#define ID3D12DeviceTools1_QueryInterface(This,riid,ppvObject) \
30338 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30339
30340#define ID3D12DeviceTools1_AddRef(This) \
30341 ( (This)->lpVtbl -> AddRef(This) )
30342
30343#define ID3D12DeviceTools1_Release(This) \
30344 ( (This)->lpVtbl -> Release(This) )
30345
30346
30347#define ID3D12DeviceTools1_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \
30348 ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) )
30349
30350
30351#define ID3D12DeviceTools1_GetApplicationSpecificDriverState(This,ppBlob) \
30352 ( (This)->lpVtbl -> GetApplicationSpecificDriverState(This,ppBlob) )
30353
30354#define ID3D12DeviceTools1_GetApplicationSpecificDriverBlobStatus(This) \
30355 ( (This)->lpVtbl -> GetApplicationSpecificDriverBlobStatus(This) )
30356
30357#endif /* COBJMACROS */
30358
30359
30360#endif /* C style interface */
30361
30362
30363
30364
30365#endif /* __ID3D12DeviceTools1_INTERFACE_DEFINED__ */
30366
30367
30368/* interface __MIDL_itf_d3d12_0000_0071 */
30369/* [local] */
30370
30371typedef struct D3D12_SUBRESOURCE_DATA
30372 {
30373 const void *pData;
30374 LONG_PTR RowPitch;
30375 LONG_PTR SlicePitch;
30376 } D3D12_SUBRESOURCE_DATA;
30377
30378typedef struct D3D12_MEMCPY_DEST
30379 {
30380 void *pData;
30381 SIZE_T RowPitch;
30382 SIZE_T SlicePitch;
30383 } D3D12_MEMCPY_DEST;
30384
30385#if !defined( D3D12_IGNORE_SDK_LAYERS )
30386#include "d3d12sdklayers.h"
30387#endif
30388
30389///////////////////////////////////////////////////////////////////////////
30390// D3D12CreateDevice
30391// ------------------
30392//
30393// pAdapter
30394// If NULL, D3D12CreateDevice will choose the primary adapter.
30395// If non-NULL, D3D12CreateDevice will use the provided adapter.
30396// MinimumFeatureLevel
30397// The minimum feature level required for successful device creation.
30398// riid
30399// The interface IID of the device to be returned. Expected: ID3D12Device.
30400// ppDevice
30401// Pointer to returned interface. May be NULL.
30402//
30403// Return Values
30404// Any of those documented for
30405// CreateDXGIFactory1
30406// IDXGIFactory::EnumAdapters
30407// D3D12CreateDevice
30408//
30409///////////////////////////////////////////////////////////////////////////
30410typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*,
30411 D3D_FEATURE_LEVEL,
30412 _In_ REFIID, _COM_Outptr_opt_ void** );
30413
30414HRESULT WINAPI D3D12CreateDevice(
30415 _In_opt_ IUnknown* pAdapter,
30416 D3D_FEATURE_LEVEL MinimumFeatureLevel,
30417 _In_ REFIID riid, // Expected: ID3D12Device
30418 _COM_Outptr_opt_ void** ppDevice );
30419
30420
30421typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** );
30422
30423HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
30424
30425// --------------------------------------------------------------------------------------------------------------------------------
30426// D3D12EnableExperimentalFeatures
30427//
30428// Pass in a list of feature GUIDs to be enabled together.
30429//
30430// If a particular feature requires some configuration information on enablement, it will have
30431// a configuration struct that can be passed alongside the GUID.
30432//
30433// Some features might use an interface IID as the GUID. For these, once the feature is enabled via
30434// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface
30435// for manipulating the feature. This allows for control that might not cleanly be expressed by just
30436// the configuration struct that D3D12EnableExperimentalFeatures provides.
30437//
30438// If this method is called and a change to existing feature enablement is made,
30439// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one
30440// singleton device for a process. Removing the devices when configuration changes prevents
30441// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view.
30442//
30443// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on.
30444// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed
30445// in are known to be incompatible with each other, or other errors.
30446// Returns S_OK otherwise.
30447//
30448// --------------------------------------------------------------------------------------------------------------------------------
30449HRESULT WINAPI D3D12EnableExperimentalFeatures(
30450 UINT NumFeatures,
30451 _In_count_(NumFeatures) const IID* pIIDs,
30452 _In_opt_count_(NumFeatures) void* pConfigurationStructs,
30453 _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes);
30454
30455// --------------------------------------------------------------------------------------------------------------------------------
30456// Experimental Feature: D3D12ExperimentalShaderModels
30457//
30458// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,
30459// meaning shader models that haven't been finalized for use in retail.
30460//
30461// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.
30462//
30463// --------------------------------------------------------------------------------------------------------------------------------
30464static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */
30465 0x76f5573e,
30466 0xf13a,
30467 0x40f5,
30468 { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
30469};
30470// --------------------------------------------------------------------------------------------------------------------------------
30471// Experimental Feature: D3D12TiledResourceTier4
30472//
30473// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,
30474// meaning texture tile data-inheritance is allowed.
30475//
30476// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.
30477//
30478// --------------------------------------------------------------------------------------------------------------------------------
30479static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */
30480 0xc9c4725f,
30481 0xa81a,
30482 0x4f56,
30483 { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }
30484};
30485// --------------------------------------------------------------------------------------------------------------------------------
30486// Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS
30487//
30488// Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS,
30489// driver support is still required for this feature.
30490//
30491// Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array.
30492//
30493// --------------------------------------------------------------------------------------------------------------------------------
30494static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */
30495 0x45dc51f3,
30496 0x767f,
30497 0x4588,
30498 { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae }
30499};
30500// --------------------------------------------------------------------------------------------------------------------------------
30501// D3D12GetInterface
30502//
30503// Retrieve Global D3D12 Interface.
30504//
30505
30506DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);
30507DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);
30508DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);
30509DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);
30510DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55);
30511DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28);
30512DEFINE_GUID(CLSID_D3D12StateObjectFactory, 0x54e1c9f3, 0x1303, 0x4112, 0xbf, 0x8e, 0x7b, 0xf2, 0xbb, 0x60, 0x6a, 0x73);
30513
30514typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );
30515
30516HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
30517
30518
30519
30520extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_c_ifspec;
30521extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_s_ifspec;
30522
30523#ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__
30524#define __ID3D12SDKConfiguration_INTERFACE_DEFINED__
30525
30526/* interface ID3D12SDKConfiguration */
30527/* [unique][local][object][uuid] */
30528
30529
30530EXTERN_C const IID IID_ID3D12SDKConfiguration;
30531
30532#if defined(__cplusplus) && !defined(CINTERFACE)
30533
30534 MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7")
30535 ID3D12SDKConfiguration : public IUnknown
30536 {
30537 public:
30538 virtual HRESULT STDMETHODCALLTYPE SetSDKVersion(
30539 UINT SDKVersion,
30540 _In_z_ LPCSTR SDKPath) = 0;
30541
30542 };
30543
30544
30545#else /* C style interface */
30546
30547 typedef struct ID3D12SDKConfigurationVtbl
30548 {
30549 BEGIN_INTERFACE
30550
30551 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30552 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30553 ID3D12SDKConfiguration * This,
30554 REFIID riid,
30555 _COM_Outptr_ void **ppvObject);
30556
30557 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30558 ULONG ( STDMETHODCALLTYPE *AddRef )(
30559 ID3D12SDKConfiguration * This);
30560
30561 DECLSPEC_XFGVIRT(IUnknown, Release)
30562 ULONG ( STDMETHODCALLTYPE *Release )(
30563 ID3D12SDKConfiguration * This);
30564
30565 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
30566 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
30567 ID3D12SDKConfiguration * This,
30568 UINT SDKVersion,
30569 _In_z_ LPCSTR SDKPath);
30570
30571 END_INTERFACE
30572 } ID3D12SDKConfigurationVtbl;
30573
30574 interface ID3D12SDKConfiguration
30575 {
30576 CONST_VTBL struct ID3D12SDKConfigurationVtbl *lpVtbl;
30577 };
30578
30579
30580
30581#ifdef COBJMACROS
30582
30583
30584#define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) \
30585 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30586
30587#define ID3D12SDKConfiguration_AddRef(This) \
30588 ( (This)->lpVtbl -> AddRef(This) )
30589
30590#define ID3D12SDKConfiguration_Release(This) \
30591 ( (This)->lpVtbl -> Release(This) )
30592
30593
30594#define ID3D12SDKConfiguration_SetSDKVersion(This,SDKVersion,SDKPath) \
30595 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
30596
30597#endif /* COBJMACROS */
30598
30599
30600#endif /* C style interface */
30601
30602
30603
30604
30605#endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */
30606
30607
30608#ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
30609#define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
30610
30611/* interface ID3D12SDKConfiguration1 */
30612/* [unique][local][object][uuid] */
30613
30614
30615EXTERN_C const IID IID_ID3D12SDKConfiguration1;
30616
30617#if defined(__cplusplus) && !defined(CINTERFACE)
30618
30619 MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f")
30620 ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration
30621 {
30622 public:
30623 virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory(
30624 UINT SDKVersion,
30625 _In_ LPCSTR SDKPath,
30626 REFIID riid,
30627 _COM_Outptr_ void **ppvFactory) = 0;
30628
30629 virtual void STDMETHODCALLTYPE FreeUnusedSDKs( void) = 0;
30630
30631 };
30632
30633
30634#else /* C style interface */
30635
30636 typedef struct ID3D12SDKConfiguration1Vtbl
30637 {
30638 BEGIN_INTERFACE
30639
30640 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30641 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30642 ID3D12SDKConfiguration1 * This,
30643 REFIID riid,
30644 _COM_Outptr_ void **ppvObject);
30645
30646 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30647 ULONG ( STDMETHODCALLTYPE *AddRef )(
30648 ID3D12SDKConfiguration1 * This);
30649
30650 DECLSPEC_XFGVIRT(IUnknown, Release)
30651 ULONG ( STDMETHODCALLTYPE *Release )(
30652 ID3D12SDKConfiguration1 * This);
30653
30654 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
30655 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
30656 ID3D12SDKConfiguration1 * This,
30657 UINT SDKVersion,
30658 _In_z_ LPCSTR SDKPath);
30659
30660 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, CreateDeviceFactory)
30661 HRESULT ( STDMETHODCALLTYPE *CreateDeviceFactory )(
30662 ID3D12SDKConfiguration1 * This,
30663 UINT SDKVersion,
30664 _In_ LPCSTR SDKPath,
30665 REFIID riid,
30666 _COM_Outptr_ void **ppvFactory);
30667
30668 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, FreeUnusedSDKs)
30669 void ( STDMETHODCALLTYPE *FreeUnusedSDKs )(
30670 ID3D12SDKConfiguration1 * This);
30671
30672 END_INTERFACE
30673 } ID3D12SDKConfiguration1Vtbl;
30674
30675 interface ID3D12SDKConfiguration1
30676 {
30677 CONST_VTBL struct ID3D12SDKConfiguration1Vtbl *lpVtbl;
30678 };
30679
30680
30681
30682#ifdef COBJMACROS
30683
30684
30685#define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) \
30686 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30687
30688#define ID3D12SDKConfiguration1_AddRef(This) \
30689 ( (This)->lpVtbl -> AddRef(This) )
30690
30691#define ID3D12SDKConfiguration1_Release(This) \
30692 ( (This)->lpVtbl -> Release(This) )
30693
30694
30695#define ID3D12SDKConfiguration1_SetSDKVersion(This,SDKVersion,SDKPath) \
30696 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
30697
30698
30699#define ID3D12SDKConfiguration1_CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) \
30700 ( (This)->lpVtbl -> CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) )
30701
30702#define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) \
30703 ( (This)->lpVtbl -> FreeUnusedSDKs(This) )
30704
30705#endif /* COBJMACROS */
30706
30707
30708#endif /* C style interface */
30709
30710
30711
30712
30713#endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */
30714
30715
30716/* interface __MIDL_itf_d3d12_0000_0073 */
30717/* [local] */
30718
30719typedef
30720enum D3D12_DEVICE_FACTORY_FLAGS
30721 {
30722 D3D12_DEVICE_FACTORY_FLAG_NONE = 0,
30723 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1,
30724 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2,
30725 D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4
30726 } D3D12_DEVICE_FACTORY_FLAGS;
30727
30728DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS )
30729
30730
30731extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec;
30732extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec;
30733
30734#ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__
30735#define __ID3D12DeviceFactory_INTERFACE_DEFINED__
30736
30737/* interface ID3D12DeviceFactory */
30738/* [unique][local][object][uuid] */
30739
30740
30741EXTERN_C const IID IID_ID3D12DeviceFactory;
30742
30743#if defined(__cplusplus) && !defined(CINTERFACE)
30744
30745 MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb")
30746 ID3D12DeviceFactory : public IUnknown
30747 {
30748 public:
30749 virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState( void) = 0;
30750
30751 virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState( void) = 0;
30752
30753 virtual HRESULT STDMETHODCALLTYPE SetFlags(
30754 D3D12_DEVICE_FACTORY_FLAGS flags) = 0;
30755
30756 virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags( void) = 0;
30757
30758 virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface(
30759 REFCLSID clsid,
30760 REFIID iid,
30761 _COM_Outptr_ void **ppv) = 0;
30762
30763 virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures(
30764 UINT NumFeatures,
30765 _In_reads_(NumFeatures) const IID *pIIDs,
30766 _In_reads_opt_(NumFeatures) void *pConfigurationStructs,
30767 _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes) = 0;
30768
30769 virtual HRESULT STDMETHODCALLTYPE CreateDevice(
30770 _In_opt_ IUnknown *adapter,
30771 D3D_FEATURE_LEVEL FeatureLevel,
30772 REFIID riid,
30773 _COM_Outptr_opt_ void **ppvDevice) = 0;
30774
30775 };
30776
30777
30778#else /* C style interface */
30779
30780 typedef struct ID3D12DeviceFactoryVtbl
30781 {
30782 BEGIN_INTERFACE
30783
30784 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30785 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30786 ID3D12DeviceFactory * This,
30787 REFIID riid,
30788 _COM_Outptr_ void **ppvObject);
30789
30790 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30791 ULONG ( STDMETHODCALLTYPE *AddRef )(
30792 ID3D12DeviceFactory * This);
30793
30794 DECLSPEC_XFGVIRT(IUnknown, Release)
30795 ULONG ( STDMETHODCALLTYPE *Release )(
30796 ID3D12DeviceFactory * This);
30797
30798 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, InitializeFromGlobalState)
30799 HRESULT ( STDMETHODCALLTYPE *InitializeFromGlobalState )(
30800 ID3D12DeviceFactory * This);
30801
30802 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, ApplyToGlobalState)
30803 HRESULT ( STDMETHODCALLTYPE *ApplyToGlobalState )(
30804 ID3D12DeviceFactory * This);
30805
30806 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, SetFlags)
30807 HRESULT ( STDMETHODCALLTYPE *SetFlags )(
30808 ID3D12DeviceFactory * This,
30809 D3D12_DEVICE_FACTORY_FLAGS flags);
30810
30811 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetFlags)
30812 D3D12_DEVICE_FACTORY_FLAGS ( STDMETHODCALLTYPE *GetFlags )(
30813 ID3D12DeviceFactory * This);
30814
30815 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetConfigurationInterface)
30816 HRESULT ( STDMETHODCALLTYPE *GetConfigurationInterface )(
30817 ID3D12DeviceFactory * This,
30818 REFCLSID clsid,
30819 REFIID iid,
30820 _COM_Outptr_ void **ppv);
30821
30822 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, EnableExperimentalFeatures)
30823 HRESULT ( STDMETHODCALLTYPE *EnableExperimentalFeatures )(
30824 ID3D12DeviceFactory * This,
30825 UINT NumFeatures,
30826 _In_reads_(NumFeatures) const IID *pIIDs,
30827 _In_reads_opt_(NumFeatures) void *pConfigurationStructs,
30828 _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes);
30829
30830 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, CreateDevice)
30831 HRESULT ( STDMETHODCALLTYPE *CreateDevice )(
30832 ID3D12DeviceFactory * This,
30833 _In_opt_ IUnknown *adapter,
30834 D3D_FEATURE_LEVEL FeatureLevel,
30835 REFIID riid,
30836 _COM_Outptr_opt_ void **ppvDevice);
30837
30838 END_INTERFACE
30839 } ID3D12DeviceFactoryVtbl;
30840
30841 interface ID3D12DeviceFactory
30842 {
30843 CONST_VTBL struct ID3D12DeviceFactoryVtbl *lpVtbl;
30844 };
30845
30846
30847
30848#ifdef COBJMACROS
30849
30850
30851#define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) \
30852 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30853
30854#define ID3D12DeviceFactory_AddRef(This) \
30855 ( (This)->lpVtbl -> AddRef(This) )
30856
30857#define ID3D12DeviceFactory_Release(This) \
30858 ( (This)->lpVtbl -> Release(This) )
30859
30860
30861#define ID3D12DeviceFactory_InitializeFromGlobalState(This) \
30862 ( (This)->lpVtbl -> InitializeFromGlobalState(This) )
30863
30864#define ID3D12DeviceFactory_ApplyToGlobalState(This) \
30865 ( (This)->lpVtbl -> ApplyToGlobalState(This) )
30866
30867#define ID3D12DeviceFactory_SetFlags(This,flags) \
30868 ( (This)->lpVtbl -> SetFlags(This,flags) )
30869
30870#define ID3D12DeviceFactory_GetFlags(This) \
30871 ( (This)->lpVtbl -> GetFlags(This) )
30872
30873#define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) \
30874 ( (This)->lpVtbl -> GetConfigurationInterface(This,clsid,iid,ppv) )
30875
30876#define ID3D12DeviceFactory_EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) \
30877 ( (This)->lpVtbl -> EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) )
30878
30879#define ID3D12DeviceFactory_CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) \
30880 ( (This)->lpVtbl -> CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) )
30881
30882#endif /* COBJMACROS */
30883
30884
30885#endif /* C style interface */
30886
30887
30888
30889
30890#endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */
30891
30892
30893/* interface __MIDL_itf_d3d12_0000_0074 */
30894/* [local] */
30895
30896typedef
30897enum D3D12_DEVICE_FLAGS
30898 {
30899 D3D12_DEVICE_FLAG_NONE = 0,
30900 D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1,
30901 D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2,
30902 D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4,
30903 D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8,
30904 D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10,
30905 D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20,
30906 D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40,
30907 D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80,
30908 D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100,
30909 D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200,
30910 D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400
30911 } D3D12_DEVICE_FLAGS;
30912
30913DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS )
30914typedef struct D3D12_DEVICE_CONFIGURATION_DESC
30915 {
30916 D3D12_DEVICE_FLAGS Flags;
30917 UINT GpuBasedValidationFlags;
30918 UINT SDKVersion;
30919 UINT NumEnabledExperimentalFeatures;
30920 } D3D12_DEVICE_CONFIGURATION_DESC;
30921
30922
30923
30924extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec;
30925extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec;
30926
30927#ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
30928#define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
30929
30930/* interface ID3D12DeviceConfiguration */
30931/* [unique][local][object][uuid] */
30932
30933
30934EXTERN_C const IID IID_ID3D12DeviceConfiguration;
30935
30936#if defined(__cplusplus) && !defined(CINTERFACE)
30937
30938 MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad")
30939 ID3D12DeviceConfiguration : public IUnknown
30940 {
30941 public:
30942#if defined(_MSC_VER) || !defined(_WIN32)
30943 virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
30944#else
30945 virtual D3D12_DEVICE_CONFIGURATION_DESC *STDMETHODCALLTYPE GetDesc(
30946 D3D12_DEVICE_CONFIGURATION_DESC * RetVal) = 0;
30947#endif
30948
30949 virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures(
30950 _Out_writes_(NumGuids) GUID *pGuids,
30951 UINT NumGuids) = 0;
30952
30953 virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature(
30954 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
30955 _COM_Outptr_ ID3DBlob **ppResult,
30956 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError) = 0;
30957
30958 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer(
30959 _In_reads_bytes_(Size) const void *pBlob,
30960 SIZE_T Size,
30961 REFIID riid,
30962 _COM_Outptr_ void **ppvDeserializer) = 0;
30963
30964 };
30965
30966
30967#else /* C style interface */
30968
30969 typedef struct ID3D12DeviceConfigurationVtbl
30970 {
30971 BEGIN_INTERFACE
30972
30973 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30974 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30975 ID3D12DeviceConfiguration * This,
30976 REFIID riid,
30977 _COM_Outptr_ void **ppvObject);
30978
30979 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30980 ULONG ( STDMETHODCALLTYPE *AddRef )(
30981 ID3D12DeviceConfiguration * This);
30982
30983 DECLSPEC_XFGVIRT(IUnknown, Release)
30984 ULONG ( STDMETHODCALLTYPE *Release )(
30985 ID3D12DeviceConfiguration * This);
30986
30987 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc)
30988#if !defined(_WIN32)
30989 D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )(
30990 ID3D12DeviceConfiguration * This);
30991
30992#else
30993 D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )(
30994 ID3D12DeviceConfiguration * This,
30995 D3D12_DEVICE_CONFIGURATION_DESC * RetVal);
30996
30997#endif
30998
30999 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures)
31000 HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )(
31001 ID3D12DeviceConfiguration * This,
31002 _Out_writes_(NumGuids) GUID *pGuids,
31003 UINT NumGuids);
31004
31005 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature)
31006 HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )(
31007 ID3D12DeviceConfiguration * This,
31008 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
31009 _COM_Outptr_ ID3DBlob **ppResult,
31010 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError);
31011
31012 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer)
31013 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )(
31014 ID3D12DeviceConfiguration * This,
31015 _In_reads_bytes_(Size) const void *pBlob,
31016 SIZE_T Size,
31017 REFIID riid,
31018 _COM_Outptr_ void **ppvDeserializer);
31019
31020 END_INTERFACE
31021 } ID3D12DeviceConfigurationVtbl;
31022
31023 interface ID3D12DeviceConfiguration
31024 {
31025 CONST_VTBL struct ID3D12DeviceConfigurationVtbl *lpVtbl;
31026 };
31027
31028
31029
31030#ifdef COBJMACROS
31031
31032
31033#define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) \
31034 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31035
31036#define ID3D12DeviceConfiguration_AddRef(This) \
31037 ( (This)->lpVtbl -> AddRef(This) )
31038
31039#define ID3D12DeviceConfiguration_Release(This) \
31040 ( (This)->lpVtbl -> Release(This) )
31041
31042#if !defined(_WIN32)
31043
31044#define ID3D12DeviceConfiguration_GetDesc(This) \
31045 ( (This)->lpVtbl -> GetDesc(This) )
31046#else
31047#define ID3D12DeviceConfiguration_GetDesc(This,RetVal) \
31048 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
31049#endif
31050
31051#define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \
31052 ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) )
31053
31054#define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \
31055 ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) )
31056
31057#define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \
31058 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) )
31059
31060#endif /* COBJMACROS */
31061
31062
31063#endif /* C style interface */
31064
31065
31066
31067
31068#endif /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */
31069
31070
31071#ifndef __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__
31072#define __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__
31073
31074/* interface ID3D12DeviceConfiguration1 */
31075/* [unique][local][object][uuid] */
31076
31077
31078EXTERN_C const IID IID_ID3D12DeviceConfiguration1;
31079
31080#if defined(__cplusplus) && !defined(CINTERFACE)
31081
31082 MIDL_INTERFACE("ed342442-6343-4e16-bb82-a3a577874e56")
31083 ID3D12DeviceConfiguration1 : public ID3D12DeviceConfiguration
31084 {
31085 public:
31086 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(
31087 _In_reads_bytes_(Size) const void *pLibraryBlob,
31088 SIZE_T Size,
31089 LPCWSTR RootSignatureSubobjectName,
31090 REFIID riid,
31091 _COM_Outptr_ void **ppvDeserializer) = 0;
31092
31093 };
31094
31095
31096#else /* C style interface */
31097
31098 typedef struct ID3D12DeviceConfiguration1Vtbl
31099 {
31100 BEGIN_INTERFACE
31101
31102 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
31103 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
31104 ID3D12DeviceConfiguration1 * This,
31105 REFIID riid,
31106 _COM_Outptr_ void **ppvObject);
31107
31108 DECLSPEC_XFGVIRT(IUnknown, AddRef)
31109 ULONG ( STDMETHODCALLTYPE *AddRef )(
31110 ID3D12DeviceConfiguration1 * This);
31111
31112 DECLSPEC_XFGVIRT(IUnknown, Release)
31113 ULONG ( STDMETHODCALLTYPE *Release )(
31114 ID3D12DeviceConfiguration1 * This);
31115
31116 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc)
31117#if !defined(_WIN32)
31118 D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )(
31119 ID3D12DeviceConfiguration1 * This);
31120
31121#else
31122 D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )(
31123 ID3D12DeviceConfiguration1 * This,
31124 D3D12_DEVICE_CONFIGURATION_DESC * RetVal);
31125
31126#endif
31127
31128 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures)
31129 HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )(
31130 ID3D12DeviceConfiguration1 * This,
31131 _Out_writes_(NumGuids) GUID *pGuids,
31132 UINT NumGuids);
31133
31134 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature)
31135 HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )(
31136 ID3D12DeviceConfiguration1 * This,
31137 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
31138 _COM_Outptr_ ID3DBlob **ppResult,
31139 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError);
31140
31141 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer)
31142 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )(
31143 ID3D12DeviceConfiguration1 * This,
31144 _In_reads_bytes_(Size) const void *pBlob,
31145 SIZE_T Size,
31146 REFIID riid,
31147 _COM_Outptr_ void **ppvDeserializer);
31148
31149 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration1, CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary)
31150 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary )(
31151 ID3D12DeviceConfiguration1 * This,
31152 _In_reads_bytes_(Size) const void *pLibraryBlob,
31153 SIZE_T Size,
31154 LPCWSTR RootSignatureSubobjectName,
31155 REFIID riid,
31156 _COM_Outptr_ void **ppvDeserializer);
31157
31158 END_INTERFACE
31159 } ID3D12DeviceConfiguration1Vtbl;
31160
31161 interface ID3D12DeviceConfiguration1
31162 {
31163 CONST_VTBL struct ID3D12DeviceConfiguration1Vtbl *lpVtbl;
31164 };
31165
31166
31167
31168#ifdef COBJMACROS
31169
31170
31171#define ID3D12DeviceConfiguration1_QueryInterface(This,riid,ppvObject) \
31172 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31173
31174#define ID3D12DeviceConfiguration1_AddRef(This) \
31175 ( (This)->lpVtbl -> AddRef(This) )
31176
31177#define ID3D12DeviceConfiguration1_Release(This) \
31178 ( (This)->lpVtbl -> Release(This) )
31179
31180#if !defined(_WIN32)
31181
31182#define ID3D12DeviceConfiguration1_GetDesc(This) \
31183 ( (This)->lpVtbl -> GetDesc(This) )
31184#else
31185#define ID3D12DeviceConfiguration1_GetDesc(This,RetVal) \
31186 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
31187#endif
31188
31189#define ID3D12DeviceConfiguration1_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \
31190 ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) )
31191
31192#define ID3D12DeviceConfiguration1_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \
31193 ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) )
31194
31195#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \
31196 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) )
31197
31198
31199#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) \
31200 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) )
31201
31202#endif /* COBJMACROS */
31203
31204
31205#endif /* C style interface */
31206
31207
31208
31209
31210#endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */
31211
31212
31213/* interface __MIDL_itf_d3d12_0000_0076 */
31214/* [local] */
31215
31216typedef
31217enum D3D12_STATE_OBJECT_DATABASE_FLAGS
31218 {
31219 D3D12_STATE_OBJECT_DATABASE_FLAG_NONE = 0,
31220 D3D12_STATE_OBJECT_DATABASE_FLAG_READ_ONLY = 0x1
31221 } D3D12_STATE_OBJECT_DATABASE_FLAGS;
31222
31223DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_DATABASE_FLAGS )
31224
31225
31226extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_c_ifspec;
31227extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_s_ifspec;
31228
31229#ifndef __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__
31230#define __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__
31231
31232/* interface ID3D12StateObjectDatabaseFactory */
31233/* [unique][local][object][uuid] */
31234
31235
31236EXTERN_C const IID IID_ID3D12StateObjectDatabaseFactory;
31237
31238#if defined(__cplusplus) && !defined(CINTERFACE)
31239
31240 MIDL_INTERFACE("f5b066f0-648a-4611-bd41-27fd0948b9eb")
31241 ID3D12StateObjectDatabaseFactory : public IUnknown
31242 {
31243 public:
31244 virtual HRESULT STDMETHODCALLTYPE CreateStateObjectDatabaseFromFile(
31245 LPCWSTR pDatabaseFile,
31246 D3D12_STATE_OBJECT_DATABASE_FLAGS flags,
31247 REFIID riid,
31248 _COM_Outptr_ void **ppvStateObjectDatabase) = 0;
31249
31250 };
31251
31252
31253#else /* C style interface */
31254
31255 typedef struct ID3D12StateObjectDatabaseFactoryVtbl
31256 {
31257 BEGIN_INTERFACE
31258
31259 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
31260 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
31261 ID3D12StateObjectDatabaseFactory * This,
31262 REFIID riid,
31263 _COM_Outptr_ void **ppvObject);
31264
31265 DECLSPEC_XFGVIRT(IUnknown, AddRef)
31266 ULONG ( STDMETHODCALLTYPE *AddRef )(
31267 ID3D12StateObjectDatabaseFactory * This);
31268
31269 DECLSPEC_XFGVIRT(IUnknown, Release)
31270 ULONG ( STDMETHODCALLTYPE *Release )(
31271 ID3D12StateObjectDatabaseFactory * This);
31272
31273 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabaseFactory, CreateStateObjectDatabaseFromFile)
31274 HRESULT ( STDMETHODCALLTYPE *CreateStateObjectDatabaseFromFile )(
31275 ID3D12StateObjectDatabaseFactory * This,
31276 LPCWSTR pDatabaseFile,
31277 D3D12_STATE_OBJECT_DATABASE_FLAGS flags,
31278 REFIID riid,
31279 _COM_Outptr_ void **ppvStateObjectDatabase);
31280
31281 END_INTERFACE
31282 } ID3D12StateObjectDatabaseFactoryVtbl;
31283
31284 interface ID3D12StateObjectDatabaseFactory
31285 {
31286 CONST_VTBL struct ID3D12StateObjectDatabaseFactoryVtbl *lpVtbl;
31287 };
31288
31289
31290
31291#ifdef COBJMACROS
31292
31293
31294#define ID3D12StateObjectDatabaseFactory_QueryInterface(This,riid,ppvObject) \
31295 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31296
31297#define ID3D12StateObjectDatabaseFactory_AddRef(This) \
31298 ( (This)->lpVtbl -> AddRef(This) )
31299
31300#define ID3D12StateObjectDatabaseFactory_Release(This) \
31301 ( (This)->lpVtbl -> Release(This) )
31302
31303
31304#define ID3D12StateObjectDatabaseFactory_CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) \
31305 ( (This)->lpVtbl -> CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) )
31306
31307#endif /* COBJMACROS */
31308
31309
31310#endif /* C style interface */
31311
31312
31313
31314
31315#endif /* __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ */
31316
31317
31318/* interface __MIDL_itf_d3d12_0000_0077 */
31319/* [local] */
31320
31321typedef
31322enum D3D12_AXIS_SHADING_RATE
31323 {
31324 D3D12_AXIS_SHADING_RATE_1X = 0,
31325 D3D12_AXIS_SHADING_RATE_2X = 0x1,
31326 D3D12_AXIS_SHADING_RATE_4X = 0x2
31327 } D3D12_AXIS_SHADING_RATE;
31328
31329#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2
31330#define D3D12_SHADING_RATE_VALID_MASK 3
31331#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))
31332#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)
31333#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK)
31334typedef
31335enum D3D12_SHADING_RATE
31336 {
31337 D3D12_SHADING_RATE_1X1 = 0,
31338 D3D12_SHADING_RATE_1X2 = 0x1,
31339 D3D12_SHADING_RATE_2X1 = 0x4,
31340 D3D12_SHADING_RATE_2X2 = 0x5,
31341 D3D12_SHADING_RATE_2X4 = 0x6,
31342 D3D12_SHADING_RATE_4X2 = 0x9,
31343 D3D12_SHADING_RATE_4X4 = 0xa
31344 } D3D12_SHADING_RATE;
31345
31346typedef
31347enum D3D12_SHADING_RATE_COMBINER
31348 {
31349 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0,
31350 D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1,
31351 D3D12_SHADING_RATE_COMBINER_MIN = 2,
31352 D3D12_SHADING_RATE_COMBINER_MAX = 3,
31353 D3D12_SHADING_RATE_COMBINER_SUM = 4
31354 } D3D12_SHADING_RATE_COMBINER;
31355
31356
31357
31358extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_c_ifspec;
31359extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_s_ifspec;
31360
31361#ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
31362#define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
31363
31364/* interface ID3D12GraphicsCommandList5 */
31365/* [unique][local][object][uuid] */
31366
31367
31368EXTERN_C const IID IID_ID3D12GraphicsCommandList5;
31369
31370#if defined(__cplusplus) && !defined(CINTERFACE)
31371
31372 MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea")
31373 ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4
31374 {
31375 public:
31376 virtual void STDMETHODCALLTYPE RSSetShadingRate(
31377 _In_ D3D12_SHADING_RATE baseShadingRate,
31378 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners) = 0;
31379
31380 virtual void STDMETHODCALLTYPE RSSetShadingRateImage(
31381 _In_opt_ ID3D12Resource *shadingRateImage) = 0;
31382
31383 };
31384
31385
31386#else /* C style interface */
31387
31388 typedef struct ID3D12GraphicsCommandList5Vtbl
31389 {
31390 BEGIN_INTERFACE
31391
31392 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
31393 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
31394 ID3D12GraphicsCommandList5 * This,
31395 REFIID riid,
31396 _COM_Outptr_ void **ppvObject);
31397
31398 DECLSPEC_XFGVIRT(IUnknown, AddRef)
31399 ULONG ( STDMETHODCALLTYPE *AddRef )(
31400 ID3D12GraphicsCommandList5 * This);
31401
31402 DECLSPEC_XFGVIRT(IUnknown, Release)
31403 ULONG ( STDMETHODCALLTYPE *Release )(
31404 ID3D12GraphicsCommandList5 * This);
31405
31406 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
31407 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
31408 ID3D12GraphicsCommandList5 * This,
31409 _In_ REFGUID guid,
31410 _Inout_ UINT *pDataSize,
31411 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
31412
31413 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
31414 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
31415 ID3D12GraphicsCommandList5 * This,
31416 _In_ REFGUID guid,
31417 _In_ UINT DataSize,
31418 _In_reads_bytes_opt_( DataSize ) const void *pData);
31419
31420 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
31421 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
31422 ID3D12GraphicsCommandList5 * This,
31423 _In_ REFGUID guid,
31424 _In_opt_ const IUnknown *pData);
31425
31426 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
31427 HRESULT ( STDMETHODCALLTYPE *SetName )(
31428 ID3D12GraphicsCommandList5 * This,
31429 _In_z_ LPCWSTR Name);
31430
31431 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
31432 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
31433 ID3D12GraphicsCommandList5 * This,
31434 REFIID riid,
31435 _COM_Outptr_opt_ void **ppvDevice);
31436
31437 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
31438 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
31439 ID3D12GraphicsCommandList5 * This);
31440
31441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
31442 HRESULT ( STDMETHODCALLTYPE *Close )(
31443 ID3D12GraphicsCommandList5 * This);
31444
31445 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
31446 HRESULT ( STDMETHODCALLTYPE *Reset )(
31447 ID3D12GraphicsCommandList5 * This,
31448 _In_ ID3D12CommandAllocator *pAllocator,
31449 _In_opt_ ID3D12PipelineState *pInitialState);
31450
31451 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
31452 void ( STDMETHODCALLTYPE *ClearState )(
31453 ID3D12GraphicsCommandList5 * This,
31454 _In_opt_ ID3D12PipelineState *pPipelineState);
31455
31456 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
31457 void ( STDMETHODCALLTYPE *DrawInstanced )(
31458 ID3D12GraphicsCommandList5 * This,
31459 _In_ UINT VertexCountPerInstance,
31460 _In_ UINT InstanceCount,
31461 _In_ UINT StartVertexLocation,
31462 _In_ UINT StartInstanceLocation);
31463
31464 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
31465 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
31466 ID3D12GraphicsCommandList5 * This,
31467 _In_ UINT IndexCountPerInstance,
31468 _In_ UINT InstanceCount,
31469 _In_ UINT StartIndexLocation,
31470 _In_ INT BaseVertexLocation,
31471 _In_ UINT StartInstanceLocation);
31472
31473 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
31474 void ( STDMETHODCALLTYPE *Dispatch )(
31475 ID3D12GraphicsCommandList5 * This,
31476 _In_ UINT ThreadGroupCountX,
31477 _In_ UINT ThreadGroupCountY,
31478 _In_ UINT ThreadGroupCountZ);
31479
31480 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
31481 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
31482 ID3D12GraphicsCommandList5 * This,
31483 _In_ ID3D12Resource *pDstBuffer,
31484 UINT64 DstOffset,
31485 _In_ ID3D12Resource *pSrcBuffer,
31486 UINT64 SrcOffset,
31487 UINT64 NumBytes);
31488
31489 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
31490 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
31491 ID3D12GraphicsCommandList5 * This,
31492 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
31493 UINT DstX,
31494 UINT DstY,
31495 UINT DstZ,
31496 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
31497 _In_opt_ const D3D12_BOX *pSrcBox);
31498
31499 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
31500 void ( STDMETHODCALLTYPE *CopyResource )(
31501 ID3D12GraphicsCommandList5 * This,
31502 _In_ ID3D12Resource *pDstResource,
31503 _In_ ID3D12Resource *pSrcResource);
31504
31505 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
31506 void ( STDMETHODCALLTYPE *CopyTiles )(
31507 ID3D12GraphicsCommandList5 * This,
31508 _In_ ID3D12Resource *pTiledResource,
31509 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
31510 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
31511 _In_ ID3D12Resource *pBuffer,
31512 UINT64 BufferStartOffsetInBytes,
31513 D3D12_TILE_COPY_FLAGS Flags);
31514
31515 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
31516 void ( STDMETHODCALLTYPE *ResolveSubresource )(
31517 ID3D12GraphicsCommandList5 * This,
31518 _In_ ID3D12Resource *pDstResource,
31519 _In_ UINT DstSubresource,
31520 _In_ ID3D12Resource *pSrcResource,
31521 _In_ UINT SrcSubresource,
31522 _In_ DXGI_FORMAT Format);
31523
31524 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
31525 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
31526 ID3D12GraphicsCommandList5 * This,
31527 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
31528
31529 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
31530 void ( STDMETHODCALLTYPE *RSSetViewports )(
31531 ID3D12GraphicsCommandList5 * This,
31532 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
31533 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
31534
31535 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
31536 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
31537 ID3D12GraphicsCommandList5 * This,
31538 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
31539 _In_reads_( NumRects) const D3D12_RECT *pRects);
31540
31541 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
31542 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
31543 ID3D12GraphicsCommandList5 * This,
31544 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
31545
31546 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
31547 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
31548 ID3D12GraphicsCommandList5 * This,
31549 _In_ UINT StencilRef);
31550
31551 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
31552 void ( STDMETHODCALLTYPE *SetPipelineState )(
31553 ID3D12GraphicsCommandList5 * This,
31554 _In_ ID3D12PipelineState *pPipelineState);
31555
31556 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
31557 void ( STDMETHODCALLTYPE *ResourceBarrier )(
31558 ID3D12GraphicsCommandList5 * This,
31559 _In_ UINT NumBarriers,
31560 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
31561
31562 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
31563 void ( STDMETHODCALLTYPE *ExecuteBundle )(
31564 ID3D12GraphicsCommandList5 * This,
31565 _In_ ID3D12GraphicsCommandList *pCommandList);
31566
31567 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
31568 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
31569 ID3D12GraphicsCommandList5 * This,
31570 _In_ UINT NumDescriptorHeaps,
31571 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
31572
31573 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
31574 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
31575 ID3D12GraphicsCommandList5 * This,
31576 _In_opt_ ID3D12RootSignature *pRootSignature);
31577
31578 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
31579 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
31580 ID3D12GraphicsCommandList5 * This,
31581 _In_opt_ ID3D12RootSignature *pRootSignature);
31582
31583 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
31584 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
31585 ID3D12GraphicsCommandList5 * This,
31586 _In_ UINT RootParameterIndex,
31587 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
31588
31589 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
31590 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
31591 ID3D12GraphicsCommandList5 * This,
31592 _In_ UINT RootParameterIndex,
31593 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
31594
31595 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
31596 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
31597 ID3D12GraphicsCommandList5 * This,
31598 _In_ UINT RootParameterIndex,
31599 _In_ UINT SrcData,
31600 _In_ UINT DestOffsetIn32BitValues);
31601
31602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
31603 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
31604 ID3D12GraphicsCommandList5 * This,
31605 _In_ UINT RootParameterIndex,
31606 _In_ UINT SrcData,
31607 _In_ UINT DestOffsetIn32BitValues);
31608
31609 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
31610 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
31611 ID3D12GraphicsCommandList5 * This,
31612 _In_ UINT RootParameterIndex,
31613 _In_ UINT Num32BitValuesToSet,
31614 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
31615 _In_ UINT DestOffsetIn32BitValues);
31616
31617 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
31618 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
31619 ID3D12GraphicsCommandList5 * This,
31620 _In_ UINT RootParameterIndex,
31621 _In_ UINT Num32BitValuesToSet,
31622 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
31623 _In_ UINT DestOffsetIn32BitValues);
31624
31625 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
31626 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
31627 ID3D12GraphicsCommandList5 * This,
31628 _In_ UINT RootParameterIndex,
31629 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31630
31631 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
31632 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
31633 ID3D12GraphicsCommandList5 * This,
31634 _In_ UINT RootParameterIndex,
31635 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31636
31637 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
31638 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
31639 ID3D12GraphicsCommandList5 * This,
31640 _In_ UINT RootParameterIndex,
31641 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31642
31643 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
31644 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
31645 ID3D12GraphicsCommandList5 * This,
31646 _In_ UINT RootParameterIndex,
31647 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31648
31649 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
31650 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
31651 ID3D12GraphicsCommandList5 * This,
31652 _In_ UINT RootParameterIndex,
31653 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31654
31655 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
31656 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
31657 ID3D12GraphicsCommandList5 * This,
31658 _In_ UINT RootParameterIndex,
31659 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31660
31661 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
31662 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
31663 ID3D12GraphicsCommandList5 * This,
31664 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
31665
31666 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
31667 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
31668 ID3D12GraphicsCommandList5 * This,
31669 _In_ UINT StartSlot,
31670 _In_ UINT NumViews,
31671 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
31672
31673 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
31674 void ( STDMETHODCALLTYPE *SOSetTargets )(
31675 ID3D12GraphicsCommandList5 * This,
31676 _In_ UINT StartSlot,
31677 _In_ UINT NumViews,
31678 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
31679
31680 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
31681 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
31682 ID3D12GraphicsCommandList5 * This,
31683 _In_ UINT NumRenderTargetDescriptors,
31684 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
31685 _In_ BOOL RTsSingleHandleToDescriptorRange,
31686 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
31687
31688 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
31689 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
31690 ID3D12GraphicsCommandList5 * This,
31691 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
31692 _In_ D3D12_CLEAR_FLAGS ClearFlags,
31693 _In_ FLOAT Depth,
31694 _In_ UINT8 Stencil,
31695 _In_ UINT NumRects,
31696 _In_reads_(NumRects) const D3D12_RECT *pRects);
31697
31698 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
31699 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
31700 ID3D12GraphicsCommandList5 * This,
31701 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
31702 _In_ const FLOAT ColorRGBA[ 4 ],
31703 _In_ UINT NumRects,
31704 _In_reads_(NumRects) const D3D12_RECT *pRects);
31705
31706 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
31707 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
31708 ID3D12GraphicsCommandList5 * This,
31709 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
31710 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
31711 _In_ ID3D12Resource *pResource,
31712 _In_ const UINT Values[ 4 ],
31713 _In_ UINT NumRects,
31714 _In_reads_(NumRects) const D3D12_RECT *pRects);
31715
31716 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
31717 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
31718 ID3D12GraphicsCommandList5 * This,
31719 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
31720 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
31721 _In_ ID3D12Resource *pResource,
31722 _In_ const FLOAT Values[ 4 ],
31723 _In_ UINT NumRects,
31724 _In_reads_(NumRects) const D3D12_RECT *pRects);
31725
31726 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
31727 void ( STDMETHODCALLTYPE *DiscardResource )(
31728 ID3D12GraphicsCommandList5 * This,
31729 _In_ ID3D12Resource *pResource,
31730 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
31731
31732 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
31733 void ( STDMETHODCALLTYPE *BeginQuery )(
31734 ID3D12GraphicsCommandList5 * This,
31735 _In_ ID3D12QueryHeap *pQueryHeap,
31736 _In_ D3D12_QUERY_TYPE Type,
31737 _In_ UINT Index);
31738
31739 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
31740 void ( STDMETHODCALLTYPE *EndQuery )(
31741 ID3D12GraphicsCommandList5 * This,
31742 _In_ ID3D12QueryHeap *pQueryHeap,
31743 _In_ D3D12_QUERY_TYPE Type,
31744 _In_ UINT Index);
31745
31746 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
31747 void ( STDMETHODCALLTYPE *ResolveQueryData )(
31748 ID3D12GraphicsCommandList5 * This,
31749 _In_ ID3D12QueryHeap *pQueryHeap,
31750 _In_ D3D12_QUERY_TYPE Type,
31751 _In_ UINT StartIndex,
31752 _In_ UINT NumQueries,
31753 _In_ ID3D12Resource *pDestinationBuffer,
31754 _In_ UINT64 AlignedDestinationBufferOffset);
31755
31756 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
31757 void ( STDMETHODCALLTYPE *SetPredication )(
31758 ID3D12GraphicsCommandList5 * This,
31759 _In_opt_ ID3D12Resource *pBuffer,
31760 _In_ UINT64 AlignedBufferOffset,
31761 _In_ D3D12_PREDICATION_OP Operation);
31762
31763 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
31764 void ( STDMETHODCALLTYPE *SetMarker )(
31765 ID3D12GraphicsCommandList5 * This,
31766 UINT Metadata,
31767 _In_reads_bytes_opt_(Size) const void *pData,
31768 UINT Size);
31769
31770 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
31771 void ( STDMETHODCALLTYPE *BeginEvent )(
31772 ID3D12GraphicsCommandList5 * This,
31773 UINT Metadata,
31774 _In_reads_bytes_opt_(Size) const void *pData,
31775 UINT Size);
31776
31777 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
31778 void ( STDMETHODCALLTYPE *EndEvent )(
31779 ID3D12GraphicsCommandList5 * This);
31780
31781 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
31782 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
31783 ID3D12GraphicsCommandList5 * This,
31784 _In_ ID3D12CommandSignature *pCommandSignature,
31785 _In_ UINT MaxCommandCount,
31786 _In_ ID3D12Resource *pArgumentBuffer,
31787 _In_ UINT64 ArgumentBufferOffset,
31788 _In_opt_ ID3D12Resource *pCountBuffer,
31789 _In_ UINT64 CountBufferOffset);
31790
31791 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
31792 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
31793 ID3D12GraphicsCommandList5 * This,
31794 _In_ ID3D12Resource *pDstBuffer,
31795 UINT64 DstOffset,
31796 _In_ ID3D12Resource *pSrcBuffer,
31797 UINT64 SrcOffset,
31798 UINT Dependencies,
31799 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
31800 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
31801
31802 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
31803 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
31804 ID3D12GraphicsCommandList5 * This,
31805 _In_ ID3D12Resource *pDstBuffer,
31806 UINT64 DstOffset,
31807 _In_ ID3D12Resource *pSrcBuffer,
31808 UINT64 SrcOffset,
31809 UINT Dependencies,
31810 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
31811 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
31812
31813 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
31814 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
31815 ID3D12GraphicsCommandList5 * This,
31816 _In_ FLOAT Min,
31817 _In_ FLOAT Max);
31818
31819 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
31820 void ( STDMETHODCALLTYPE *SetSamplePositions )(
31821 ID3D12GraphicsCommandList5 * This,
31822 _In_ UINT NumSamplesPerPixel,
31823 _In_ UINT NumPixels,
31824 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
31825
31826 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
31827 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
31828 ID3D12GraphicsCommandList5 * This,
31829 _In_ ID3D12Resource *pDstResource,
31830 _In_ UINT DstSubresource,
31831 _In_ UINT DstX,
31832 _In_ UINT DstY,
31833 _In_ ID3D12Resource *pSrcResource,
31834 _In_ UINT SrcSubresource,
31835 _In_opt_ D3D12_RECT *pSrcRect,
31836 _In_ DXGI_FORMAT Format,
31837 _In_ D3D12_RESOLVE_MODE ResolveMode);
31838
31839 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
31840 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
31841 ID3D12GraphicsCommandList5 * This,
31842 _In_ UINT Mask);
31843
31844 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
31845 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
31846 ID3D12GraphicsCommandList5 * This,
31847 UINT Count,
31848 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
31849 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
31850
31851 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
31852 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
31853 ID3D12GraphicsCommandList5 * This,
31854 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
31855
31856 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
31857 void ( STDMETHODCALLTYPE *BeginRenderPass )(
31858 ID3D12GraphicsCommandList5 * This,
31859 _In_ UINT NumRenderTargets,
31860 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
31861 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
31862 D3D12_RENDER_PASS_FLAGS Flags);
31863
31864 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
31865 void ( STDMETHODCALLTYPE *EndRenderPass )(
31866 ID3D12GraphicsCommandList5 * This);
31867
31868 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
31869 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
31870 ID3D12GraphicsCommandList5 * This,
31871 _In_ ID3D12MetaCommand *pMetaCommand,
31872 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
31873 _In_ SIZE_T InitializationParametersDataSizeInBytes);
31874
31875 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
31876 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
31877 ID3D12GraphicsCommandList5 * This,
31878 _In_ ID3D12MetaCommand *pMetaCommand,
31879 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
31880 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
31881
31882 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
31883 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
31884 ID3D12GraphicsCommandList5 * This,
31885 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
31886 _In_ UINT NumPostbuildInfoDescs,
31887 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
31888
31889 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
31890 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
31891 ID3D12GraphicsCommandList5 * This,
31892 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
31893 _In_ UINT NumSourceAccelerationStructures,
31894 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
31895
31896 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
31897 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
31898 ID3D12GraphicsCommandList5 * This,
31899 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
31900 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
31901 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
31902
31903 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
31904 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
31905 ID3D12GraphicsCommandList5 * This,
31906 _In_ ID3D12StateObject *pStateObject);
31907
31908 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
31909 void ( STDMETHODCALLTYPE *DispatchRays )(
31910 ID3D12GraphicsCommandList5 * This,
31911 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
31912
31913 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
31914 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
31915 ID3D12GraphicsCommandList5 * This,
31916 _In_ D3D12_SHADING_RATE baseShadingRate,
31917 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
31918
31919 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
31920 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
31921 ID3D12GraphicsCommandList5 * This,
31922 _In_opt_ ID3D12Resource *shadingRateImage);
31923
31924 END_INTERFACE
31925 } ID3D12GraphicsCommandList5Vtbl;
31926
31927 interface ID3D12GraphicsCommandList5
31928 {
31929 CONST_VTBL struct ID3D12GraphicsCommandList5Vtbl *lpVtbl;
31930 };
31931
31932
31933
31934#ifdef COBJMACROS
31935
31936
31937#define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) \
31938 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31939
31940#define ID3D12GraphicsCommandList5_AddRef(This) \
31941 ( (This)->lpVtbl -> AddRef(This) )
31942
31943#define ID3D12GraphicsCommandList5_Release(This) \
31944 ( (This)->lpVtbl -> Release(This) )
31945
31946
31947#define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,pDataSize,pData) \
31948 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
31949
31950#define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,DataSize,pData) \
31951 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
31952
31953#define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,pData) \
31954 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
31955
31956#define ID3D12GraphicsCommandList5_SetName(This,Name) \
31957 ( (This)->lpVtbl -> SetName(This,Name) )
31958
31959
31960#define ID3D12GraphicsCommandList5_GetDevice(This,riid,ppvDevice) \
31961 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
31962
31963
31964#define ID3D12GraphicsCommandList5_GetType(This) \
31965 ( (This)->lpVtbl -> GetType(This) )
31966
31967
31968#define ID3D12GraphicsCommandList5_Close(This) \
31969 ( (This)->lpVtbl -> Close(This) )
31970
31971#define ID3D12GraphicsCommandList5_Reset(This,pAllocator,pInitialState) \
31972 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
31973
31974#define ID3D12GraphicsCommandList5_ClearState(This,pPipelineState) \
31975 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
31976
31977#define ID3D12GraphicsCommandList5_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
31978 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
31979
31980#define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
31981 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
31982
31983#define ID3D12GraphicsCommandList5_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
31984 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
31985
31986#define ID3D12GraphicsCommandList5_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
31987 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
31988
31989#define ID3D12GraphicsCommandList5_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
31990 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
31991
31992#define ID3D12GraphicsCommandList5_CopyResource(This,pDstResource,pSrcResource) \
31993 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
31994
31995#define ID3D12GraphicsCommandList5_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
31996 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
31997
31998#define ID3D12GraphicsCommandList5_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
31999 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
32000
32001#define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,PrimitiveTopology) \
32002 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
32003
32004#define ID3D12GraphicsCommandList5_RSSetViewports(This,NumViewports,pViewports) \
32005 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
32006
32007#define ID3D12GraphicsCommandList5_RSSetScissorRects(This,NumRects,pRects) \
32008 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
32009
32010#define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,BlendFactor) \
32011 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
32012
32013#define ID3D12GraphicsCommandList5_OMSetStencilRef(This,StencilRef) \
32014 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
32015
32016#define ID3D12GraphicsCommandList5_SetPipelineState(This,pPipelineState) \
32017 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
32018
32019#define ID3D12GraphicsCommandList5_ResourceBarrier(This,NumBarriers,pBarriers) \
32020 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
32021
32022#define ID3D12GraphicsCommandList5_ExecuteBundle(This,pCommandList) \
32023 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
32024
32025#define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
32026 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
32027
32028#define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,pRootSignature) \
32029 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
32030
32031#define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,pRootSignature) \
32032 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
32033
32034#define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32035 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32036
32037#define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32038 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32039
32040#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32041 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32042
32043#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32044 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32045
32046#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32047 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32048
32049#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32050 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32051
32052#define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32053 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32054
32055#define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32056 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32057
32058#define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32059 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32060
32061#define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32062 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32063
32064#define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32065 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32066
32067#define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32068 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32069
32070#define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,pView) \
32071 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
32072
32073#define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
32074 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
32075
32076#define ID3D12GraphicsCommandList5_SOSetTargets(This,StartSlot,NumViews,pViews) \
32077 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
32078
32079#define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
32080 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
32081
32082#define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
32083 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
32084
32085#define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
32086 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
32087
32088#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32089 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32090
32091#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32092 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32093
32094#define ID3D12GraphicsCommandList5_DiscardResource(This,pResource,pRegion) \
32095 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
32096
32097#define ID3D12GraphicsCommandList5_BeginQuery(This,pQueryHeap,Type,Index) \
32098 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
32099
32100#define ID3D12GraphicsCommandList5_EndQuery(This,pQueryHeap,Type,Index) \
32101 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
32102
32103#define ID3D12GraphicsCommandList5_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
32104 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
32105
32106#define ID3D12GraphicsCommandList5_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
32107 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
32108
32109#define ID3D12GraphicsCommandList5_SetMarker(This,Metadata,pData,Size) \
32110 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
32111
32112#define ID3D12GraphicsCommandList5_BeginEvent(This,Metadata,pData,Size) \
32113 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
32114
32115#define ID3D12GraphicsCommandList5_EndEvent(This) \
32116 ( (This)->lpVtbl -> EndEvent(This) )
32117
32118#define ID3D12GraphicsCommandList5_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
32119 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
32120
32121
32122#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32123 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32124
32125#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32126 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32127
32128#define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,Min,Max) \
32129 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
32130
32131#define ID3D12GraphicsCommandList5_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
32132 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
32133
32134#define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
32135 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
32136
32137#define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,Mask) \
32138 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
32139
32140
32141#define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,Count,pParams,pModes) \
32142 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
32143
32144
32145#define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,pProtectedResourceSession) \
32146 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
32147
32148
32149#define ID3D12GraphicsCommandList5_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
32150 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
32151
32152#define ID3D12GraphicsCommandList5_EndRenderPass(This) \
32153 ( (This)->lpVtbl -> EndRenderPass(This) )
32154
32155#define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
32156 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
32157
32158#define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
32159 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
32160
32161#define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
32162 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
32163
32164#define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
32165 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
32166
32167#define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
32168 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
32169
32170#define ID3D12GraphicsCommandList5_SetPipelineState1(This,pStateObject) \
32171 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
32172
32173#define ID3D12GraphicsCommandList5_DispatchRays(This,pDesc) \
32174 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
32175
32176
32177#define ID3D12GraphicsCommandList5_RSSetShadingRate(This,baseShadingRate,combiners) \
32178 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
32179
32180#define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shadingRateImage) \
32181 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
32182
32183#endif /* COBJMACROS */
32184
32185
32186#endif /* C style interface */
32187
32188
32189
32190
32191#endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */
32192
32193
32194/* interface __MIDL_itf_d3d12_0000_0078 */
32195/* [local] */
32196
32197typedef struct D3D12_DISPATCH_MESH_ARGUMENTS
32198 {
32199 UINT ThreadGroupCountX;
32200 UINT ThreadGroupCountY;
32201 UINT ThreadGroupCountZ;
32202 } D3D12_DISPATCH_MESH_ARGUMENTS;
32203
32204
32205
32206extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_c_ifspec;
32207extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_s_ifspec;
32208
32209#ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
32210#define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
32211
32212/* interface ID3D12GraphicsCommandList6 */
32213/* [unique][local][object][uuid] */
32214
32215
32216EXTERN_C const IID IID_ID3D12GraphicsCommandList6;
32217
32218#if defined(__cplusplus) && !defined(CINTERFACE)
32219
32220 MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80")
32221 ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5
32222 {
32223 public:
32224 virtual void STDMETHODCALLTYPE DispatchMesh(
32225 _In_ UINT ThreadGroupCountX,
32226 _In_ UINT ThreadGroupCountY,
32227 _In_ UINT ThreadGroupCountZ) = 0;
32228
32229 };
32230
32231
32232#else /* C style interface */
32233
32234 typedef struct ID3D12GraphicsCommandList6Vtbl
32235 {
32236 BEGIN_INTERFACE
32237
32238 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
32239 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
32240 ID3D12GraphicsCommandList6 * This,
32241 REFIID riid,
32242 _COM_Outptr_ void **ppvObject);
32243
32244 DECLSPEC_XFGVIRT(IUnknown, AddRef)
32245 ULONG ( STDMETHODCALLTYPE *AddRef )(
32246 ID3D12GraphicsCommandList6 * This);
32247
32248 DECLSPEC_XFGVIRT(IUnknown, Release)
32249 ULONG ( STDMETHODCALLTYPE *Release )(
32250 ID3D12GraphicsCommandList6 * This);
32251
32252 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
32253 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
32254 ID3D12GraphicsCommandList6 * This,
32255 _In_ REFGUID guid,
32256 _Inout_ UINT *pDataSize,
32257 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
32258
32259 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
32260 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
32261 ID3D12GraphicsCommandList6 * This,
32262 _In_ REFGUID guid,
32263 _In_ UINT DataSize,
32264 _In_reads_bytes_opt_( DataSize ) const void *pData);
32265
32266 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
32267 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
32268 ID3D12GraphicsCommandList6 * This,
32269 _In_ REFGUID guid,
32270 _In_opt_ const IUnknown *pData);
32271
32272 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
32273 HRESULT ( STDMETHODCALLTYPE *SetName )(
32274 ID3D12GraphicsCommandList6 * This,
32275 _In_z_ LPCWSTR Name);
32276
32277 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
32278 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
32279 ID3D12GraphicsCommandList6 * This,
32280 REFIID riid,
32281 _COM_Outptr_opt_ void **ppvDevice);
32282
32283 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
32284 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
32285 ID3D12GraphicsCommandList6 * This);
32286
32287 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
32288 HRESULT ( STDMETHODCALLTYPE *Close )(
32289 ID3D12GraphicsCommandList6 * This);
32290
32291 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
32292 HRESULT ( STDMETHODCALLTYPE *Reset )(
32293 ID3D12GraphicsCommandList6 * This,
32294 _In_ ID3D12CommandAllocator *pAllocator,
32295 _In_opt_ ID3D12PipelineState *pInitialState);
32296
32297 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
32298 void ( STDMETHODCALLTYPE *ClearState )(
32299 ID3D12GraphicsCommandList6 * This,
32300 _In_opt_ ID3D12PipelineState *pPipelineState);
32301
32302 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
32303 void ( STDMETHODCALLTYPE *DrawInstanced )(
32304 ID3D12GraphicsCommandList6 * This,
32305 _In_ UINT VertexCountPerInstance,
32306 _In_ UINT InstanceCount,
32307 _In_ UINT StartVertexLocation,
32308 _In_ UINT StartInstanceLocation);
32309
32310 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
32311 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
32312 ID3D12GraphicsCommandList6 * This,
32313 _In_ UINT IndexCountPerInstance,
32314 _In_ UINT InstanceCount,
32315 _In_ UINT StartIndexLocation,
32316 _In_ INT BaseVertexLocation,
32317 _In_ UINT StartInstanceLocation);
32318
32319 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
32320 void ( STDMETHODCALLTYPE *Dispatch )(
32321 ID3D12GraphicsCommandList6 * This,
32322 _In_ UINT ThreadGroupCountX,
32323 _In_ UINT ThreadGroupCountY,
32324 _In_ UINT ThreadGroupCountZ);
32325
32326 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
32327 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
32328 ID3D12GraphicsCommandList6 * This,
32329 _In_ ID3D12Resource *pDstBuffer,
32330 UINT64 DstOffset,
32331 _In_ ID3D12Resource *pSrcBuffer,
32332 UINT64 SrcOffset,
32333 UINT64 NumBytes);
32334
32335 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
32336 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
32337 ID3D12GraphicsCommandList6 * This,
32338 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
32339 UINT DstX,
32340 UINT DstY,
32341 UINT DstZ,
32342 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
32343 _In_opt_ const D3D12_BOX *pSrcBox);
32344
32345 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
32346 void ( STDMETHODCALLTYPE *CopyResource )(
32347 ID3D12GraphicsCommandList6 * This,
32348 _In_ ID3D12Resource *pDstResource,
32349 _In_ ID3D12Resource *pSrcResource);
32350
32351 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
32352 void ( STDMETHODCALLTYPE *CopyTiles )(
32353 ID3D12GraphicsCommandList6 * This,
32354 _In_ ID3D12Resource *pTiledResource,
32355 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
32356 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
32357 _In_ ID3D12Resource *pBuffer,
32358 UINT64 BufferStartOffsetInBytes,
32359 D3D12_TILE_COPY_FLAGS Flags);
32360
32361 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
32362 void ( STDMETHODCALLTYPE *ResolveSubresource )(
32363 ID3D12GraphicsCommandList6 * This,
32364 _In_ ID3D12Resource *pDstResource,
32365 _In_ UINT DstSubresource,
32366 _In_ ID3D12Resource *pSrcResource,
32367 _In_ UINT SrcSubresource,
32368 _In_ DXGI_FORMAT Format);
32369
32370 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
32371 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
32372 ID3D12GraphicsCommandList6 * This,
32373 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
32374
32375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
32376 void ( STDMETHODCALLTYPE *RSSetViewports )(
32377 ID3D12GraphicsCommandList6 * This,
32378 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
32379 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
32380
32381 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
32382 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
32383 ID3D12GraphicsCommandList6 * This,
32384 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
32385 _In_reads_( NumRects) const D3D12_RECT *pRects);
32386
32387 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
32388 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
32389 ID3D12GraphicsCommandList6 * This,
32390 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
32391
32392 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
32393 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
32394 ID3D12GraphicsCommandList6 * This,
32395 _In_ UINT StencilRef);
32396
32397 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
32398 void ( STDMETHODCALLTYPE *SetPipelineState )(
32399 ID3D12GraphicsCommandList6 * This,
32400 _In_ ID3D12PipelineState *pPipelineState);
32401
32402 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
32403 void ( STDMETHODCALLTYPE *ResourceBarrier )(
32404 ID3D12GraphicsCommandList6 * This,
32405 _In_ UINT NumBarriers,
32406 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
32407
32408 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
32409 void ( STDMETHODCALLTYPE *ExecuteBundle )(
32410 ID3D12GraphicsCommandList6 * This,
32411 _In_ ID3D12GraphicsCommandList *pCommandList);
32412
32413 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
32414 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
32415 ID3D12GraphicsCommandList6 * This,
32416 _In_ UINT NumDescriptorHeaps,
32417 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
32418
32419 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
32420 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
32421 ID3D12GraphicsCommandList6 * This,
32422 _In_opt_ ID3D12RootSignature *pRootSignature);
32423
32424 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
32425 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
32426 ID3D12GraphicsCommandList6 * This,
32427 _In_opt_ ID3D12RootSignature *pRootSignature);
32428
32429 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
32430 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
32431 ID3D12GraphicsCommandList6 * This,
32432 _In_ UINT RootParameterIndex,
32433 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
32434
32435 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
32436 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
32437 ID3D12GraphicsCommandList6 * This,
32438 _In_ UINT RootParameterIndex,
32439 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
32440
32441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
32442 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
32443 ID3D12GraphicsCommandList6 * This,
32444 _In_ UINT RootParameterIndex,
32445 _In_ UINT SrcData,
32446 _In_ UINT DestOffsetIn32BitValues);
32447
32448 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
32449 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
32450 ID3D12GraphicsCommandList6 * This,
32451 _In_ UINT RootParameterIndex,
32452 _In_ UINT SrcData,
32453 _In_ UINT DestOffsetIn32BitValues);
32454
32455 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
32456 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
32457 ID3D12GraphicsCommandList6 * This,
32458 _In_ UINT RootParameterIndex,
32459 _In_ UINT Num32BitValuesToSet,
32460 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
32461 _In_ UINT DestOffsetIn32BitValues);
32462
32463 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
32464 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
32465 ID3D12GraphicsCommandList6 * This,
32466 _In_ UINT RootParameterIndex,
32467 _In_ UINT Num32BitValuesToSet,
32468 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
32469 _In_ UINT DestOffsetIn32BitValues);
32470
32471 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
32472 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
32473 ID3D12GraphicsCommandList6 * This,
32474 _In_ UINT RootParameterIndex,
32475 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32476
32477 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
32478 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
32479 ID3D12GraphicsCommandList6 * This,
32480 _In_ UINT RootParameterIndex,
32481 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32482
32483 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
32484 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
32485 ID3D12GraphicsCommandList6 * This,
32486 _In_ UINT RootParameterIndex,
32487 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32488
32489 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
32490 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
32491 ID3D12GraphicsCommandList6 * This,
32492 _In_ UINT RootParameterIndex,
32493 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32494
32495 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
32496 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
32497 ID3D12GraphicsCommandList6 * This,
32498 _In_ UINT RootParameterIndex,
32499 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32500
32501 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
32502 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
32503 ID3D12GraphicsCommandList6 * This,
32504 _In_ UINT RootParameterIndex,
32505 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32506
32507 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
32508 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
32509 ID3D12GraphicsCommandList6 * This,
32510 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
32511
32512 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
32513 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
32514 ID3D12GraphicsCommandList6 * This,
32515 _In_ UINT StartSlot,
32516 _In_ UINT NumViews,
32517 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
32518
32519 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
32520 void ( STDMETHODCALLTYPE *SOSetTargets )(
32521 ID3D12GraphicsCommandList6 * This,
32522 _In_ UINT StartSlot,
32523 _In_ UINT NumViews,
32524 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
32525
32526 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
32527 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
32528 ID3D12GraphicsCommandList6 * This,
32529 _In_ UINT NumRenderTargetDescriptors,
32530 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
32531 _In_ BOOL RTsSingleHandleToDescriptorRange,
32532 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
32533
32534 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
32535 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
32536 ID3D12GraphicsCommandList6 * This,
32537 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
32538 _In_ D3D12_CLEAR_FLAGS ClearFlags,
32539 _In_ FLOAT Depth,
32540 _In_ UINT8 Stencil,
32541 _In_ UINT NumRects,
32542 _In_reads_(NumRects) const D3D12_RECT *pRects);
32543
32544 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
32545 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
32546 ID3D12GraphicsCommandList6 * This,
32547 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
32548 _In_ const FLOAT ColorRGBA[ 4 ],
32549 _In_ UINT NumRects,
32550 _In_reads_(NumRects) const D3D12_RECT *pRects);
32551
32552 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
32553 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
32554 ID3D12GraphicsCommandList6 * This,
32555 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
32556 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
32557 _In_ ID3D12Resource *pResource,
32558 _In_ const UINT Values[ 4 ],
32559 _In_ UINT NumRects,
32560 _In_reads_(NumRects) const D3D12_RECT *pRects);
32561
32562 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
32563 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
32564 ID3D12GraphicsCommandList6 * This,
32565 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
32566 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
32567 _In_ ID3D12Resource *pResource,
32568 _In_ const FLOAT Values[ 4 ],
32569 _In_ UINT NumRects,
32570 _In_reads_(NumRects) const D3D12_RECT *pRects);
32571
32572 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
32573 void ( STDMETHODCALLTYPE *DiscardResource )(
32574 ID3D12GraphicsCommandList6 * This,
32575 _In_ ID3D12Resource *pResource,
32576 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
32577
32578 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
32579 void ( STDMETHODCALLTYPE *BeginQuery )(
32580 ID3D12GraphicsCommandList6 * This,
32581 _In_ ID3D12QueryHeap *pQueryHeap,
32582 _In_ D3D12_QUERY_TYPE Type,
32583 _In_ UINT Index);
32584
32585 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
32586 void ( STDMETHODCALLTYPE *EndQuery )(
32587 ID3D12GraphicsCommandList6 * This,
32588 _In_ ID3D12QueryHeap *pQueryHeap,
32589 _In_ D3D12_QUERY_TYPE Type,
32590 _In_ UINT Index);
32591
32592 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
32593 void ( STDMETHODCALLTYPE *ResolveQueryData )(
32594 ID3D12GraphicsCommandList6 * This,
32595 _In_ ID3D12QueryHeap *pQueryHeap,
32596 _In_ D3D12_QUERY_TYPE Type,
32597 _In_ UINT StartIndex,
32598 _In_ UINT NumQueries,
32599 _In_ ID3D12Resource *pDestinationBuffer,
32600 _In_ UINT64 AlignedDestinationBufferOffset);
32601
32602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
32603 void ( STDMETHODCALLTYPE *SetPredication )(
32604 ID3D12GraphicsCommandList6 * This,
32605 _In_opt_ ID3D12Resource *pBuffer,
32606 _In_ UINT64 AlignedBufferOffset,
32607 _In_ D3D12_PREDICATION_OP Operation);
32608
32609 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
32610 void ( STDMETHODCALLTYPE *SetMarker )(
32611 ID3D12GraphicsCommandList6 * This,
32612 UINT Metadata,
32613 _In_reads_bytes_opt_(Size) const void *pData,
32614 UINT Size);
32615
32616 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
32617 void ( STDMETHODCALLTYPE *BeginEvent )(
32618 ID3D12GraphicsCommandList6 * This,
32619 UINT Metadata,
32620 _In_reads_bytes_opt_(Size) const void *pData,
32621 UINT Size);
32622
32623 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
32624 void ( STDMETHODCALLTYPE *EndEvent )(
32625 ID3D12GraphicsCommandList6 * This);
32626
32627 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
32628 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
32629 ID3D12GraphicsCommandList6 * This,
32630 _In_ ID3D12CommandSignature *pCommandSignature,
32631 _In_ UINT MaxCommandCount,
32632 _In_ ID3D12Resource *pArgumentBuffer,
32633 _In_ UINT64 ArgumentBufferOffset,
32634 _In_opt_ ID3D12Resource *pCountBuffer,
32635 _In_ UINT64 CountBufferOffset);
32636
32637 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
32638 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
32639 ID3D12GraphicsCommandList6 * This,
32640 _In_ ID3D12Resource *pDstBuffer,
32641 UINT64 DstOffset,
32642 _In_ ID3D12Resource *pSrcBuffer,
32643 UINT64 SrcOffset,
32644 UINT Dependencies,
32645 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
32646 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
32647
32648 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
32649 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
32650 ID3D12GraphicsCommandList6 * This,
32651 _In_ ID3D12Resource *pDstBuffer,
32652 UINT64 DstOffset,
32653 _In_ ID3D12Resource *pSrcBuffer,
32654 UINT64 SrcOffset,
32655 UINT Dependencies,
32656 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
32657 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
32658
32659 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
32660 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
32661 ID3D12GraphicsCommandList6 * This,
32662 _In_ FLOAT Min,
32663 _In_ FLOAT Max);
32664
32665 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
32666 void ( STDMETHODCALLTYPE *SetSamplePositions )(
32667 ID3D12GraphicsCommandList6 * This,
32668 _In_ UINT NumSamplesPerPixel,
32669 _In_ UINT NumPixels,
32670 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
32671
32672 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
32673 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
32674 ID3D12GraphicsCommandList6 * This,
32675 _In_ ID3D12Resource *pDstResource,
32676 _In_ UINT DstSubresource,
32677 _In_ UINT DstX,
32678 _In_ UINT DstY,
32679 _In_ ID3D12Resource *pSrcResource,
32680 _In_ UINT SrcSubresource,
32681 _In_opt_ D3D12_RECT *pSrcRect,
32682 _In_ DXGI_FORMAT Format,
32683 _In_ D3D12_RESOLVE_MODE ResolveMode);
32684
32685 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
32686 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
32687 ID3D12GraphicsCommandList6 * This,
32688 _In_ UINT Mask);
32689
32690 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
32691 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
32692 ID3D12GraphicsCommandList6 * This,
32693 UINT Count,
32694 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
32695 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
32696
32697 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
32698 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
32699 ID3D12GraphicsCommandList6 * This,
32700 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
32701
32702 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
32703 void ( STDMETHODCALLTYPE *BeginRenderPass )(
32704 ID3D12GraphicsCommandList6 * This,
32705 _In_ UINT NumRenderTargets,
32706 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
32707 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
32708 D3D12_RENDER_PASS_FLAGS Flags);
32709
32710 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
32711 void ( STDMETHODCALLTYPE *EndRenderPass )(
32712 ID3D12GraphicsCommandList6 * This);
32713
32714 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
32715 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
32716 ID3D12GraphicsCommandList6 * This,
32717 _In_ ID3D12MetaCommand *pMetaCommand,
32718 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
32719 _In_ SIZE_T InitializationParametersDataSizeInBytes);
32720
32721 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
32722 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
32723 ID3D12GraphicsCommandList6 * This,
32724 _In_ ID3D12MetaCommand *pMetaCommand,
32725 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
32726 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
32727
32728 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
32729 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
32730 ID3D12GraphicsCommandList6 * This,
32731 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
32732 _In_ UINT NumPostbuildInfoDescs,
32733 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
32734
32735 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
32736 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
32737 ID3D12GraphicsCommandList6 * This,
32738 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
32739 _In_ UINT NumSourceAccelerationStructures,
32740 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
32741
32742 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
32743 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
32744 ID3D12GraphicsCommandList6 * This,
32745 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
32746 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
32747 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
32748
32749 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
32750 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
32751 ID3D12GraphicsCommandList6 * This,
32752 _In_ ID3D12StateObject *pStateObject);
32753
32754 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
32755 void ( STDMETHODCALLTYPE *DispatchRays )(
32756 ID3D12GraphicsCommandList6 * This,
32757 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
32758
32759 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
32760 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
32761 ID3D12GraphicsCommandList6 * This,
32762 _In_ D3D12_SHADING_RATE baseShadingRate,
32763 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
32764
32765 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
32766 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
32767 ID3D12GraphicsCommandList6 * This,
32768 _In_opt_ ID3D12Resource *shadingRateImage);
32769
32770 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
32771 void ( STDMETHODCALLTYPE *DispatchMesh )(
32772 ID3D12GraphicsCommandList6 * This,
32773 _In_ UINT ThreadGroupCountX,
32774 _In_ UINT ThreadGroupCountY,
32775 _In_ UINT ThreadGroupCountZ);
32776
32777 END_INTERFACE
32778 } ID3D12GraphicsCommandList6Vtbl;
32779
32780 interface ID3D12GraphicsCommandList6
32781 {
32782 CONST_VTBL struct ID3D12GraphicsCommandList6Vtbl *lpVtbl;
32783 };
32784
32785
32786
32787#ifdef COBJMACROS
32788
32789
32790#define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) \
32791 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
32792
32793#define ID3D12GraphicsCommandList6_AddRef(This) \
32794 ( (This)->lpVtbl -> AddRef(This) )
32795
32796#define ID3D12GraphicsCommandList6_Release(This) \
32797 ( (This)->lpVtbl -> Release(This) )
32798
32799
32800#define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,pDataSize,pData) \
32801 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
32802
32803#define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,DataSize,pData) \
32804 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
32805
32806#define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,pData) \
32807 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
32808
32809#define ID3D12GraphicsCommandList6_SetName(This,Name) \
32810 ( (This)->lpVtbl -> SetName(This,Name) )
32811
32812
32813#define ID3D12GraphicsCommandList6_GetDevice(This,riid,ppvDevice) \
32814 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
32815
32816
32817#define ID3D12GraphicsCommandList6_GetType(This) \
32818 ( (This)->lpVtbl -> GetType(This) )
32819
32820
32821#define ID3D12GraphicsCommandList6_Close(This) \
32822 ( (This)->lpVtbl -> Close(This) )
32823
32824#define ID3D12GraphicsCommandList6_Reset(This,pAllocator,pInitialState) \
32825 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
32826
32827#define ID3D12GraphicsCommandList6_ClearState(This,pPipelineState) \
32828 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
32829
32830#define ID3D12GraphicsCommandList6_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
32831 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
32832
32833#define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
32834 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
32835
32836#define ID3D12GraphicsCommandList6_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
32837 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
32838
32839#define ID3D12GraphicsCommandList6_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
32840 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
32841
32842#define ID3D12GraphicsCommandList6_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
32843 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
32844
32845#define ID3D12GraphicsCommandList6_CopyResource(This,pDstResource,pSrcResource) \
32846 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
32847
32848#define ID3D12GraphicsCommandList6_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
32849 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
32850
32851#define ID3D12GraphicsCommandList6_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
32852 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
32853
32854#define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,PrimitiveTopology) \
32855 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
32856
32857#define ID3D12GraphicsCommandList6_RSSetViewports(This,NumViewports,pViewports) \
32858 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
32859
32860#define ID3D12GraphicsCommandList6_RSSetScissorRects(This,NumRects,pRects) \
32861 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
32862
32863#define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,BlendFactor) \
32864 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
32865
32866#define ID3D12GraphicsCommandList6_OMSetStencilRef(This,StencilRef) \
32867 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
32868
32869#define ID3D12GraphicsCommandList6_SetPipelineState(This,pPipelineState) \
32870 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
32871
32872#define ID3D12GraphicsCommandList6_ResourceBarrier(This,NumBarriers,pBarriers) \
32873 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
32874
32875#define ID3D12GraphicsCommandList6_ExecuteBundle(This,pCommandList) \
32876 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
32877
32878#define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
32879 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
32880
32881#define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,pRootSignature) \
32882 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
32883
32884#define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,pRootSignature) \
32885 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
32886
32887#define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32888 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32889
32890#define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32891 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32892
32893#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32894 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32895
32896#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32897 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32898
32899#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32900 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32901
32902#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32903 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32904
32905#define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32906 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32907
32908#define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32909 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32910
32911#define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32912 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32913
32914#define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32915 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32916
32917#define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32918 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32919
32920#define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32921 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32922
32923#define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,pView) \
32924 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
32925
32926#define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
32927 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
32928
32929#define ID3D12GraphicsCommandList6_SOSetTargets(This,StartSlot,NumViews,pViews) \
32930 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
32931
32932#define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
32933 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
32934
32935#define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
32936 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
32937
32938#define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
32939 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
32940
32941#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32942 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32943
32944#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32945 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32946
32947#define ID3D12GraphicsCommandList6_DiscardResource(This,pResource,pRegion) \
32948 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
32949
32950#define ID3D12GraphicsCommandList6_BeginQuery(This,pQueryHeap,Type,Index) \
32951 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
32952
32953#define ID3D12GraphicsCommandList6_EndQuery(This,pQueryHeap,Type,Index) \
32954 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
32955
32956#define ID3D12GraphicsCommandList6_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
32957 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
32958
32959#define ID3D12GraphicsCommandList6_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
32960 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
32961
32962#define ID3D12GraphicsCommandList6_SetMarker(This,Metadata,pData,Size) \
32963 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
32964
32965#define ID3D12GraphicsCommandList6_BeginEvent(This,Metadata,pData,Size) \
32966 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
32967
32968#define ID3D12GraphicsCommandList6_EndEvent(This) \
32969 ( (This)->lpVtbl -> EndEvent(This) )
32970
32971#define ID3D12GraphicsCommandList6_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
32972 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
32973
32974
32975#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32976 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32977
32978#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32979 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32980
32981#define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,Min,Max) \
32982 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
32983
32984#define ID3D12GraphicsCommandList6_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
32985 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
32986
32987#define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
32988 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
32989
32990#define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,Mask) \
32991 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
32992
32993
32994#define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,Count,pParams,pModes) \
32995 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
32996
32997
32998#define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,pProtectedResourceSession) \
32999 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
33000
33001
33002#define ID3D12GraphicsCommandList6_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
33003 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
33004
33005#define ID3D12GraphicsCommandList6_EndRenderPass(This) \
33006 ( (This)->lpVtbl -> EndRenderPass(This) )
33007
33008#define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
33009 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
33010
33011#define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
33012 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
33013
33014#define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
33015 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
33016
33017#define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
33018 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
33019
33020#define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
33021 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
33022
33023#define ID3D12GraphicsCommandList6_SetPipelineState1(This,pStateObject) \
33024 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
33025
33026#define ID3D12GraphicsCommandList6_DispatchRays(This,pDesc) \
33027 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
33028
33029
33030#define ID3D12GraphicsCommandList6_RSSetShadingRate(This,baseShadingRate,combiners) \
33031 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
33032
33033#define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shadingRateImage) \
33034 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
33035
33036
33037#define ID3D12GraphicsCommandList6_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
33038 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
33039
33040#endif /* COBJMACROS */
33041
33042
33043#endif /* C style interface */
33044
33045
33046
33047
33048#endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */
33049
33050
33051#ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
33052#define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
33053
33054/* interface ID3D12GraphicsCommandList7 */
33055/* [unique][local][object][uuid] */
33056
33057
33058EXTERN_C const IID IID_ID3D12GraphicsCommandList7;
33059
33060#if defined(__cplusplus) && !defined(CINTERFACE)
33061
33062 MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1")
33063 ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6
33064 {
33065 public:
33066 virtual void STDMETHODCALLTYPE Barrier(
33067 UINT32 NumBarrierGroups,
33068 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;
33069
33070 };
33071
33072
33073#else /* C style interface */
33074
33075 typedef struct ID3D12GraphicsCommandList7Vtbl
33076 {
33077 BEGIN_INTERFACE
33078
33079 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
33080 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
33081 ID3D12GraphicsCommandList7 * This,
33082 REFIID riid,
33083 _COM_Outptr_ void **ppvObject);
33084
33085 DECLSPEC_XFGVIRT(IUnknown, AddRef)
33086 ULONG ( STDMETHODCALLTYPE *AddRef )(
33087 ID3D12GraphicsCommandList7 * This);
33088
33089 DECLSPEC_XFGVIRT(IUnknown, Release)
33090 ULONG ( STDMETHODCALLTYPE *Release )(
33091 ID3D12GraphicsCommandList7 * This);
33092
33093 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
33094 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
33095 ID3D12GraphicsCommandList7 * This,
33096 _In_ REFGUID guid,
33097 _Inout_ UINT *pDataSize,
33098 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
33099
33100 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
33101 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
33102 ID3D12GraphicsCommandList7 * This,
33103 _In_ REFGUID guid,
33104 _In_ UINT DataSize,
33105 _In_reads_bytes_opt_( DataSize ) const void *pData);
33106
33107 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
33108 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
33109 ID3D12GraphicsCommandList7 * This,
33110 _In_ REFGUID guid,
33111 _In_opt_ const IUnknown *pData);
33112
33113 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
33114 HRESULT ( STDMETHODCALLTYPE *SetName )(
33115 ID3D12GraphicsCommandList7 * This,
33116 _In_z_ LPCWSTR Name);
33117
33118 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
33119 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
33120 ID3D12GraphicsCommandList7 * This,
33121 REFIID riid,
33122 _COM_Outptr_opt_ void **ppvDevice);
33123
33124 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
33125 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
33126 ID3D12GraphicsCommandList7 * This);
33127
33128 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
33129 HRESULT ( STDMETHODCALLTYPE *Close )(
33130 ID3D12GraphicsCommandList7 * This);
33131
33132 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
33133 HRESULT ( STDMETHODCALLTYPE *Reset )(
33134 ID3D12GraphicsCommandList7 * This,
33135 _In_ ID3D12CommandAllocator *pAllocator,
33136 _In_opt_ ID3D12PipelineState *pInitialState);
33137
33138 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
33139 void ( STDMETHODCALLTYPE *ClearState )(
33140 ID3D12GraphicsCommandList7 * This,
33141 _In_opt_ ID3D12PipelineState *pPipelineState);
33142
33143 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
33144 void ( STDMETHODCALLTYPE *DrawInstanced )(
33145 ID3D12GraphicsCommandList7 * This,
33146 _In_ UINT VertexCountPerInstance,
33147 _In_ UINT InstanceCount,
33148 _In_ UINT StartVertexLocation,
33149 _In_ UINT StartInstanceLocation);
33150
33151 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
33152 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
33153 ID3D12GraphicsCommandList7 * This,
33154 _In_ UINT IndexCountPerInstance,
33155 _In_ UINT InstanceCount,
33156 _In_ UINT StartIndexLocation,
33157 _In_ INT BaseVertexLocation,
33158 _In_ UINT StartInstanceLocation);
33159
33160 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
33161 void ( STDMETHODCALLTYPE *Dispatch )(
33162 ID3D12GraphicsCommandList7 * This,
33163 _In_ UINT ThreadGroupCountX,
33164 _In_ UINT ThreadGroupCountY,
33165 _In_ UINT ThreadGroupCountZ);
33166
33167 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
33168 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
33169 ID3D12GraphicsCommandList7 * This,
33170 _In_ ID3D12Resource *pDstBuffer,
33171 UINT64 DstOffset,
33172 _In_ ID3D12Resource *pSrcBuffer,
33173 UINT64 SrcOffset,
33174 UINT64 NumBytes);
33175
33176 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
33177 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
33178 ID3D12GraphicsCommandList7 * This,
33179 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
33180 UINT DstX,
33181 UINT DstY,
33182 UINT DstZ,
33183 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
33184 _In_opt_ const D3D12_BOX *pSrcBox);
33185
33186 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
33187 void ( STDMETHODCALLTYPE *CopyResource )(
33188 ID3D12GraphicsCommandList7 * This,
33189 _In_ ID3D12Resource *pDstResource,
33190 _In_ ID3D12Resource *pSrcResource);
33191
33192 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
33193 void ( STDMETHODCALLTYPE *CopyTiles )(
33194 ID3D12GraphicsCommandList7 * This,
33195 _In_ ID3D12Resource *pTiledResource,
33196 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
33197 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
33198 _In_ ID3D12Resource *pBuffer,
33199 UINT64 BufferStartOffsetInBytes,
33200 D3D12_TILE_COPY_FLAGS Flags);
33201
33202 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
33203 void ( STDMETHODCALLTYPE *ResolveSubresource )(
33204 ID3D12GraphicsCommandList7 * This,
33205 _In_ ID3D12Resource *pDstResource,
33206 _In_ UINT DstSubresource,
33207 _In_ ID3D12Resource *pSrcResource,
33208 _In_ UINT SrcSubresource,
33209 _In_ DXGI_FORMAT Format);
33210
33211 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
33212 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
33213 ID3D12GraphicsCommandList7 * This,
33214 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
33215
33216 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
33217 void ( STDMETHODCALLTYPE *RSSetViewports )(
33218 ID3D12GraphicsCommandList7 * This,
33219 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
33220 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
33221
33222 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
33223 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
33224 ID3D12GraphicsCommandList7 * This,
33225 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
33226 _In_reads_( NumRects) const D3D12_RECT *pRects);
33227
33228 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
33229 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
33230 ID3D12GraphicsCommandList7 * This,
33231 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
33232
33233 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
33234 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
33235 ID3D12GraphicsCommandList7 * This,
33236 _In_ UINT StencilRef);
33237
33238 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
33239 void ( STDMETHODCALLTYPE *SetPipelineState )(
33240 ID3D12GraphicsCommandList7 * This,
33241 _In_ ID3D12PipelineState *pPipelineState);
33242
33243 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
33244 void ( STDMETHODCALLTYPE *ResourceBarrier )(
33245 ID3D12GraphicsCommandList7 * This,
33246 _In_ UINT NumBarriers,
33247 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
33248
33249 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
33250 void ( STDMETHODCALLTYPE *ExecuteBundle )(
33251 ID3D12GraphicsCommandList7 * This,
33252 _In_ ID3D12GraphicsCommandList *pCommandList);
33253
33254 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
33255 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
33256 ID3D12GraphicsCommandList7 * This,
33257 _In_ UINT NumDescriptorHeaps,
33258 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
33259
33260 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
33261 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
33262 ID3D12GraphicsCommandList7 * This,
33263 _In_opt_ ID3D12RootSignature *pRootSignature);
33264
33265 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
33266 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
33267 ID3D12GraphicsCommandList7 * This,
33268 _In_opt_ ID3D12RootSignature *pRootSignature);
33269
33270 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
33271 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
33272 ID3D12GraphicsCommandList7 * This,
33273 _In_ UINT RootParameterIndex,
33274 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
33275
33276 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
33277 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
33278 ID3D12GraphicsCommandList7 * This,
33279 _In_ UINT RootParameterIndex,
33280 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
33281
33282 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
33283 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
33284 ID3D12GraphicsCommandList7 * This,
33285 _In_ UINT RootParameterIndex,
33286 _In_ UINT SrcData,
33287 _In_ UINT DestOffsetIn32BitValues);
33288
33289 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
33290 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
33291 ID3D12GraphicsCommandList7 * This,
33292 _In_ UINT RootParameterIndex,
33293 _In_ UINT SrcData,
33294 _In_ UINT DestOffsetIn32BitValues);
33295
33296 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
33297 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
33298 ID3D12GraphicsCommandList7 * This,
33299 _In_ UINT RootParameterIndex,
33300 _In_ UINT Num32BitValuesToSet,
33301 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
33302 _In_ UINT DestOffsetIn32BitValues);
33303
33304 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
33305 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
33306 ID3D12GraphicsCommandList7 * This,
33307 _In_ UINT RootParameterIndex,
33308 _In_ UINT Num32BitValuesToSet,
33309 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
33310 _In_ UINT DestOffsetIn32BitValues);
33311
33312 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
33313 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
33314 ID3D12GraphicsCommandList7 * This,
33315 _In_ UINT RootParameterIndex,
33316 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33317
33318 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
33319 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
33320 ID3D12GraphicsCommandList7 * This,
33321 _In_ UINT RootParameterIndex,
33322 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33323
33324 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
33325 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
33326 ID3D12GraphicsCommandList7 * This,
33327 _In_ UINT RootParameterIndex,
33328 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33329
33330 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
33331 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
33332 ID3D12GraphicsCommandList7 * This,
33333 _In_ UINT RootParameterIndex,
33334 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33335
33336 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
33337 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
33338 ID3D12GraphicsCommandList7 * This,
33339 _In_ UINT RootParameterIndex,
33340 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33341
33342 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
33343 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
33344 ID3D12GraphicsCommandList7 * This,
33345 _In_ UINT RootParameterIndex,
33346 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33347
33348 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
33349 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
33350 ID3D12GraphicsCommandList7 * This,
33351 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
33352
33353 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
33354 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
33355 ID3D12GraphicsCommandList7 * This,
33356 _In_ UINT StartSlot,
33357 _In_ UINT NumViews,
33358 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
33359
33360 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
33361 void ( STDMETHODCALLTYPE *SOSetTargets )(
33362 ID3D12GraphicsCommandList7 * This,
33363 _In_ UINT StartSlot,
33364 _In_ UINT NumViews,
33365 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
33366
33367 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
33368 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
33369 ID3D12GraphicsCommandList7 * This,
33370 _In_ UINT NumRenderTargetDescriptors,
33371 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
33372 _In_ BOOL RTsSingleHandleToDescriptorRange,
33373 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
33374
33375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
33376 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
33377 ID3D12GraphicsCommandList7 * This,
33378 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
33379 _In_ D3D12_CLEAR_FLAGS ClearFlags,
33380 _In_ FLOAT Depth,
33381 _In_ UINT8 Stencil,
33382 _In_ UINT NumRects,
33383 _In_reads_(NumRects) const D3D12_RECT *pRects);
33384
33385 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
33386 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
33387 ID3D12GraphicsCommandList7 * This,
33388 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
33389 _In_ const FLOAT ColorRGBA[ 4 ],
33390 _In_ UINT NumRects,
33391 _In_reads_(NumRects) const D3D12_RECT *pRects);
33392
33393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
33394 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
33395 ID3D12GraphicsCommandList7 * This,
33396 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
33397 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
33398 _In_ ID3D12Resource *pResource,
33399 _In_ const UINT Values[ 4 ],
33400 _In_ UINT NumRects,
33401 _In_reads_(NumRects) const D3D12_RECT *pRects);
33402
33403 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
33404 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
33405 ID3D12GraphicsCommandList7 * This,
33406 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
33407 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
33408 _In_ ID3D12Resource *pResource,
33409 _In_ const FLOAT Values[ 4 ],
33410 _In_ UINT NumRects,
33411 _In_reads_(NumRects) const D3D12_RECT *pRects);
33412
33413 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
33414 void ( STDMETHODCALLTYPE *DiscardResource )(
33415 ID3D12GraphicsCommandList7 * This,
33416 _In_ ID3D12Resource *pResource,
33417 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
33418
33419 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
33420 void ( STDMETHODCALLTYPE *BeginQuery )(
33421 ID3D12GraphicsCommandList7 * This,
33422 _In_ ID3D12QueryHeap *pQueryHeap,
33423 _In_ D3D12_QUERY_TYPE Type,
33424 _In_ UINT Index);
33425
33426 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
33427 void ( STDMETHODCALLTYPE *EndQuery )(
33428 ID3D12GraphicsCommandList7 * This,
33429 _In_ ID3D12QueryHeap *pQueryHeap,
33430 _In_ D3D12_QUERY_TYPE Type,
33431 _In_ UINT Index);
33432
33433 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
33434 void ( STDMETHODCALLTYPE *ResolveQueryData )(
33435 ID3D12GraphicsCommandList7 * This,
33436 _In_ ID3D12QueryHeap *pQueryHeap,
33437 _In_ D3D12_QUERY_TYPE Type,
33438 _In_ UINT StartIndex,
33439 _In_ UINT NumQueries,
33440 _In_ ID3D12Resource *pDestinationBuffer,
33441 _In_ UINT64 AlignedDestinationBufferOffset);
33442
33443 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
33444 void ( STDMETHODCALLTYPE *SetPredication )(
33445 ID3D12GraphicsCommandList7 * This,
33446 _In_opt_ ID3D12Resource *pBuffer,
33447 _In_ UINT64 AlignedBufferOffset,
33448 _In_ D3D12_PREDICATION_OP Operation);
33449
33450 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
33451 void ( STDMETHODCALLTYPE *SetMarker )(
33452 ID3D12GraphicsCommandList7 * This,
33453 UINT Metadata,
33454 _In_reads_bytes_opt_(Size) const void *pData,
33455 UINT Size);
33456
33457 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
33458 void ( STDMETHODCALLTYPE *BeginEvent )(
33459 ID3D12GraphicsCommandList7 * This,
33460 UINT Metadata,
33461 _In_reads_bytes_opt_(Size) const void *pData,
33462 UINT Size);
33463
33464 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
33465 void ( STDMETHODCALLTYPE *EndEvent )(
33466 ID3D12GraphicsCommandList7 * This);
33467
33468 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
33469 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
33470 ID3D12GraphicsCommandList7 * This,
33471 _In_ ID3D12CommandSignature *pCommandSignature,
33472 _In_ UINT MaxCommandCount,
33473 _In_ ID3D12Resource *pArgumentBuffer,
33474 _In_ UINT64 ArgumentBufferOffset,
33475 _In_opt_ ID3D12Resource *pCountBuffer,
33476 _In_ UINT64 CountBufferOffset);
33477
33478 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
33479 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
33480 ID3D12GraphicsCommandList7 * This,
33481 _In_ ID3D12Resource *pDstBuffer,
33482 UINT64 DstOffset,
33483 _In_ ID3D12Resource *pSrcBuffer,
33484 UINT64 SrcOffset,
33485 UINT Dependencies,
33486 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
33487 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
33488
33489 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
33490 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
33491 ID3D12GraphicsCommandList7 * This,
33492 _In_ ID3D12Resource *pDstBuffer,
33493 UINT64 DstOffset,
33494 _In_ ID3D12Resource *pSrcBuffer,
33495 UINT64 SrcOffset,
33496 UINT Dependencies,
33497 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
33498 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
33499
33500 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
33501 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
33502 ID3D12GraphicsCommandList7 * This,
33503 _In_ FLOAT Min,
33504 _In_ FLOAT Max);
33505
33506 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
33507 void ( STDMETHODCALLTYPE *SetSamplePositions )(
33508 ID3D12GraphicsCommandList7 * This,
33509 _In_ UINT NumSamplesPerPixel,
33510 _In_ UINT NumPixels,
33511 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
33512
33513 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
33514 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
33515 ID3D12GraphicsCommandList7 * This,
33516 _In_ ID3D12Resource *pDstResource,
33517 _In_ UINT DstSubresource,
33518 _In_ UINT DstX,
33519 _In_ UINT DstY,
33520 _In_ ID3D12Resource *pSrcResource,
33521 _In_ UINT SrcSubresource,
33522 _In_opt_ D3D12_RECT *pSrcRect,
33523 _In_ DXGI_FORMAT Format,
33524 _In_ D3D12_RESOLVE_MODE ResolveMode);
33525
33526 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
33527 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
33528 ID3D12GraphicsCommandList7 * This,
33529 _In_ UINT Mask);
33530
33531 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
33532 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
33533 ID3D12GraphicsCommandList7 * This,
33534 UINT Count,
33535 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
33536 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
33537
33538 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
33539 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
33540 ID3D12GraphicsCommandList7 * This,
33541 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
33542
33543 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
33544 void ( STDMETHODCALLTYPE *BeginRenderPass )(
33545 ID3D12GraphicsCommandList7 * This,
33546 _In_ UINT NumRenderTargets,
33547 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
33548 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
33549 D3D12_RENDER_PASS_FLAGS Flags);
33550
33551 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
33552 void ( STDMETHODCALLTYPE *EndRenderPass )(
33553 ID3D12GraphicsCommandList7 * This);
33554
33555 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
33556 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
33557 ID3D12GraphicsCommandList7 * This,
33558 _In_ ID3D12MetaCommand *pMetaCommand,
33559 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
33560 _In_ SIZE_T InitializationParametersDataSizeInBytes);
33561
33562 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
33563 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
33564 ID3D12GraphicsCommandList7 * This,
33565 _In_ ID3D12MetaCommand *pMetaCommand,
33566 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
33567 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
33568
33569 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
33570 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
33571 ID3D12GraphicsCommandList7 * This,
33572 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
33573 _In_ UINT NumPostbuildInfoDescs,
33574 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
33575
33576 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
33577 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
33578 ID3D12GraphicsCommandList7 * This,
33579 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
33580 _In_ UINT NumSourceAccelerationStructures,
33581 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
33582
33583 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
33584 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
33585 ID3D12GraphicsCommandList7 * This,
33586 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
33587 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
33588 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
33589
33590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
33591 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
33592 ID3D12GraphicsCommandList7 * This,
33593 _In_ ID3D12StateObject *pStateObject);
33594
33595 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
33596 void ( STDMETHODCALLTYPE *DispatchRays )(
33597 ID3D12GraphicsCommandList7 * This,
33598 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
33599
33600 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
33601 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
33602 ID3D12GraphicsCommandList7 * This,
33603 _In_ D3D12_SHADING_RATE baseShadingRate,
33604 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
33605
33606 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
33607 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
33608 ID3D12GraphicsCommandList7 * This,
33609 _In_opt_ ID3D12Resource *shadingRateImage);
33610
33611 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
33612 void ( STDMETHODCALLTYPE *DispatchMesh )(
33613 ID3D12GraphicsCommandList7 * This,
33614 _In_ UINT ThreadGroupCountX,
33615 _In_ UINT ThreadGroupCountY,
33616 _In_ UINT ThreadGroupCountZ);
33617
33618 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
33619 void ( STDMETHODCALLTYPE *Barrier )(
33620 ID3D12GraphicsCommandList7 * This,
33621 UINT32 NumBarrierGroups,
33622 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
33623
33624 END_INTERFACE
33625 } ID3D12GraphicsCommandList7Vtbl;
33626
33627 interface ID3D12GraphicsCommandList7
33628 {
33629 CONST_VTBL struct ID3D12GraphicsCommandList7Vtbl *lpVtbl;
33630 };
33631
33632
33633
33634#ifdef COBJMACROS
33635
33636
33637#define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) \
33638 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
33639
33640#define ID3D12GraphicsCommandList7_AddRef(This) \
33641 ( (This)->lpVtbl -> AddRef(This) )
33642
33643#define ID3D12GraphicsCommandList7_Release(This) \
33644 ( (This)->lpVtbl -> Release(This) )
33645
33646
33647#define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,pDataSize,pData) \
33648 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
33649
33650#define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,DataSize,pData) \
33651 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
33652
33653#define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,pData) \
33654 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
33655
33656#define ID3D12GraphicsCommandList7_SetName(This,Name) \
33657 ( (This)->lpVtbl -> SetName(This,Name) )
33658
33659
33660#define ID3D12GraphicsCommandList7_GetDevice(This,riid,ppvDevice) \
33661 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
33662
33663
33664#define ID3D12GraphicsCommandList7_GetType(This) \
33665 ( (This)->lpVtbl -> GetType(This) )
33666
33667
33668#define ID3D12GraphicsCommandList7_Close(This) \
33669 ( (This)->lpVtbl -> Close(This) )
33670
33671#define ID3D12GraphicsCommandList7_Reset(This,pAllocator,pInitialState) \
33672 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
33673
33674#define ID3D12GraphicsCommandList7_ClearState(This,pPipelineState) \
33675 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
33676
33677#define ID3D12GraphicsCommandList7_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
33678 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
33679
33680#define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
33681 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
33682
33683#define ID3D12GraphicsCommandList7_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
33684 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
33685
33686#define ID3D12GraphicsCommandList7_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
33687 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
33688
33689#define ID3D12GraphicsCommandList7_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
33690 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
33691
33692#define ID3D12GraphicsCommandList7_CopyResource(This,pDstResource,pSrcResource) \
33693 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
33694
33695#define ID3D12GraphicsCommandList7_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
33696 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
33697
33698#define ID3D12GraphicsCommandList7_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
33699 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
33700
33701#define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,PrimitiveTopology) \
33702 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
33703
33704#define ID3D12GraphicsCommandList7_RSSetViewports(This,NumViewports,pViewports) \
33705 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
33706
33707#define ID3D12GraphicsCommandList7_RSSetScissorRects(This,NumRects,pRects) \
33708 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
33709
33710#define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,BlendFactor) \
33711 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
33712
33713#define ID3D12GraphicsCommandList7_OMSetStencilRef(This,StencilRef) \
33714 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
33715
33716#define ID3D12GraphicsCommandList7_SetPipelineState(This,pPipelineState) \
33717 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
33718
33719#define ID3D12GraphicsCommandList7_ResourceBarrier(This,NumBarriers,pBarriers) \
33720 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
33721
33722#define ID3D12GraphicsCommandList7_ExecuteBundle(This,pCommandList) \
33723 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
33724
33725#define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
33726 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
33727
33728#define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,pRootSignature) \
33729 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
33730
33731#define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,pRootSignature) \
33732 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
33733
33734#define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
33735 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
33736
33737#define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
33738 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
33739
33740#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
33741 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
33742
33743#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
33744 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
33745
33746#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
33747 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
33748
33749#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
33750 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
33751
33752#define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
33753 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
33754
33755#define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
33756 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
33757
33758#define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
33759 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
33760
33761#define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
33762 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
33763
33764#define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
33765 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
33766
33767#define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
33768 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
33769
33770#define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,pView) \
33771 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
33772
33773#define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
33774 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
33775
33776#define ID3D12GraphicsCommandList7_SOSetTargets(This,StartSlot,NumViews,pViews) \
33777 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
33778
33779#define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
33780 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
33781
33782#define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
33783 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
33784
33785#define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
33786 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
33787
33788#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
33789 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
33790
33791#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
33792 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
33793
33794#define ID3D12GraphicsCommandList7_DiscardResource(This,pResource,pRegion) \
33795 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
33796
33797#define ID3D12GraphicsCommandList7_BeginQuery(This,pQueryHeap,Type,Index) \
33798 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
33799
33800#define ID3D12GraphicsCommandList7_EndQuery(This,pQueryHeap,Type,Index) \
33801 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
33802
33803#define ID3D12GraphicsCommandList7_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
33804 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
33805
33806#define ID3D12GraphicsCommandList7_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
33807 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
33808
33809#define ID3D12GraphicsCommandList7_SetMarker(This,Metadata,pData,Size) \
33810 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
33811
33812#define ID3D12GraphicsCommandList7_BeginEvent(This,Metadata,pData,Size) \
33813 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
33814
33815#define ID3D12GraphicsCommandList7_EndEvent(This) \
33816 ( (This)->lpVtbl -> EndEvent(This) )
33817
33818#define ID3D12GraphicsCommandList7_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
33819 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
33820
33821
33822#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
33823 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
33824
33825#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
33826 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
33827
33828#define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,Min,Max) \
33829 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
33830
33831#define ID3D12GraphicsCommandList7_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
33832 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
33833
33834#define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
33835 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
33836
33837#define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,Mask) \
33838 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
33839
33840
33841#define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,Count,pParams,pModes) \
33842 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
33843
33844
33845#define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,pProtectedResourceSession) \
33846 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
33847
33848
33849#define ID3D12GraphicsCommandList7_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
33850 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
33851
33852#define ID3D12GraphicsCommandList7_EndRenderPass(This) \
33853 ( (This)->lpVtbl -> EndRenderPass(This) )
33854
33855#define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
33856 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
33857
33858#define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
33859 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
33860
33861#define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
33862 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
33863
33864#define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
33865 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
33866
33867#define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
33868 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
33869
33870#define ID3D12GraphicsCommandList7_SetPipelineState1(This,pStateObject) \
33871 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
33872
33873#define ID3D12GraphicsCommandList7_DispatchRays(This,pDesc) \
33874 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
33875
33876
33877#define ID3D12GraphicsCommandList7_RSSetShadingRate(This,baseShadingRate,combiners) \
33878 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
33879
33880#define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shadingRateImage) \
33881 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
33882
33883
33884#define ID3D12GraphicsCommandList7_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
33885 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
33886
33887
33888#define ID3D12GraphicsCommandList7_Barrier(This,NumBarrierGroups,pBarrierGroups) \
33889 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
33890
33891#endif /* COBJMACROS */
33892
33893
33894#endif /* C style interface */
33895
33896
33897
33898
33899#endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */
33900
33901
33902#ifndef __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__
33903#define __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__
33904
33905/* interface ID3D12GraphicsCommandList8 */
33906/* [unique][local][object][uuid] */
33907
33908
33909EXTERN_C const IID IID_ID3D12GraphicsCommandList8;
33910
33911#if defined(__cplusplus) && !defined(CINTERFACE)
33912
33913 MIDL_INTERFACE("ee936ef9-599d-4d28-938e-23c4ad05ce51")
33914 ID3D12GraphicsCommandList8 : public ID3D12GraphicsCommandList7
33915 {
33916 public:
33917 virtual void STDMETHODCALLTYPE OMSetFrontAndBackStencilRef(
33918 _In_ UINT FrontStencilRef,
33919 _In_ UINT BackStencilRef) = 0;
33920
33921 };
33922
33923
33924#else /* C style interface */
33925
33926 typedef struct ID3D12GraphicsCommandList8Vtbl
33927 {
33928 BEGIN_INTERFACE
33929
33930 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
33931 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
33932 ID3D12GraphicsCommandList8 * This,
33933 REFIID riid,
33934 _COM_Outptr_ void **ppvObject);
33935
33936 DECLSPEC_XFGVIRT(IUnknown, AddRef)
33937 ULONG ( STDMETHODCALLTYPE *AddRef )(
33938 ID3D12GraphicsCommandList8 * This);
33939
33940 DECLSPEC_XFGVIRT(IUnknown, Release)
33941 ULONG ( STDMETHODCALLTYPE *Release )(
33942 ID3D12GraphicsCommandList8 * This);
33943
33944 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
33945 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
33946 ID3D12GraphicsCommandList8 * This,
33947 _In_ REFGUID guid,
33948 _Inout_ UINT *pDataSize,
33949 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
33950
33951 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
33952 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
33953 ID3D12GraphicsCommandList8 * This,
33954 _In_ REFGUID guid,
33955 _In_ UINT DataSize,
33956 _In_reads_bytes_opt_( DataSize ) const void *pData);
33957
33958 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
33959 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
33960 ID3D12GraphicsCommandList8 * This,
33961 _In_ REFGUID guid,
33962 _In_opt_ const IUnknown *pData);
33963
33964 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
33965 HRESULT ( STDMETHODCALLTYPE *SetName )(
33966 ID3D12GraphicsCommandList8 * This,
33967 _In_z_ LPCWSTR Name);
33968
33969 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
33970 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
33971 ID3D12GraphicsCommandList8 * This,
33972 REFIID riid,
33973 _COM_Outptr_opt_ void **ppvDevice);
33974
33975 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
33976 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
33977 ID3D12GraphicsCommandList8 * This);
33978
33979 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
33980 HRESULT ( STDMETHODCALLTYPE *Close )(
33981 ID3D12GraphicsCommandList8 * This);
33982
33983 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
33984 HRESULT ( STDMETHODCALLTYPE *Reset )(
33985 ID3D12GraphicsCommandList8 * This,
33986 _In_ ID3D12CommandAllocator *pAllocator,
33987 _In_opt_ ID3D12PipelineState *pInitialState);
33988
33989 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
33990 void ( STDMETHODCALLTYPE *ClearState )(
33991 ID3D12GraphicsCommandList8 * This,
33992 _In_opt_ ID3D12PipelineState *pPipelineState);
33993
33994 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
33995 void ( STDMETHODCALLTYPE *DrawInstanced )(
33996 ID3D12GraphicsCommandList8 * This,
33997 _In_ UINT VertexCountPerInstance,
33998 _In_ UINT InstanceCount,
33999 _In_ UINT StartVertexLocation,
34000 _In_ UINT StartInstanceLocation);
34001
34002 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
34003 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
34004 ID3D12GraphicsCommandList8 * This,
34005 _In_ UINT IndexCountPerInstance,
34006 _In_ UINT InstanceCount,
34007 _In_ UINT StartIndexLocation,
34008 _In_ INT BaseVertexLocation,
34009 _In_ UINT StartInstanceLocation);
34010
34011 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
34012 void ( STDMETHODCALLTYPE *Dispatch )(
34013 ID3D12GraphicsCommandList8 * This,
34014 _In_ UINT ThreadGroupCountX,
34015 _In_ UINT ThreadGroupCountY,
34016 _In_ UINT ThreadGroupCountZ);
34017
34018 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
34019 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
34020 ID3D12GraphicsCommandList8 * This,
34021 _In_ ID3D12Resource *pDstBuffer,
34022 UINT64 DstOffset,
34023 _In_ ID3D12Resource *pSrcBuffer,
34024 UINT64 SrcOffset,
34025 UINT64 NumBytes);
34026
34027 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
34028 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
34029 ID3D12GraphicsCommandList8 * This,
34030 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
34031 UINT DstX,
34032 UINT DstY,
34033 UINT DstZ,
34034 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
34035 _In_opt_ const D3D12_BOX *pSrcBox);
34036
34037 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
34038 void ( STDMETHODCALLTYPE *CopyResource )(
34039 ID3D12GraphicsCommandList8 * This,
34040 _In_ ID3D12Resource *pDstResource,
34041 _In_ ID3D12Resource *pSrcResource);
34042
34043 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
34044 void ( STDMETHODCALLTYPE *CopyTiles )(
34045 ID3D12GraphicsCommandList8 * This,
34046 _In_ ID3D12Resource *pTiledResource,
34047 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
34048 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
34049 _In_ ID3D12Resource *pBuffer,
34050 UINT64 BufferStartOffsetInBytes,
34051 D3D12_TILE_COPY_FLAGS Flags);
34052
34053 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
34054 void ( STDMETHODCALLTYPE *ResolveSubresource )(
34055 ID3D12GraphicsCommandList8 * This,
34056 _In_ ID3D12Resource *pDstResource,
34057 _In_ UINT DstSubresource,
34058 _In_ ID3D12Resource *pSrcResource,
34059 _In_ UINT SrcSubresource,
34060 _In_ DXGI_FORMAT Format);
34061
34062 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
34063 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
34064 ID3D12GraphicsCommandList8 * This,
34065 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
34066
34067 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
34068 void ( STDMETHODCALLTYPE *RSSetViewports )(
34069 ID3D12GraphicsCommandList8 * This,
34070 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
34071 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
34072
34073 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
34074 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
34075 ID3D12GraphicsCommandList8 * This,
34076 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
34077 _In_reads_( NumRects) const D3D12_RECT *pRects);
34078
34079 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
34080 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
34081 ID3D12GraphicsCommandList8 * This,
34082 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
34083
34084 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
34085 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
34086 ID3D12GraphicsCommandList8 * This,
34087 _In_ UINT StencilRef);
34088
34089 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
34090 void ( STDMETHODCALLTYPE *SetPipelineState )(
34091 ID3D12GraphicsCommandList8 * This,
34092 _In_ ID3D12PipelineState *pPipelineState);
34093
34094 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
34095 void ( STDMETHODCALLTYPE *ResourceBarrier )(
34096 ID3D12GraphicsCommandList8 * This,
34097 _In_ UINT NumBarriers,
34098 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
34099
34100 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
34101 void ( STDMETHODCALLTYPE *ExecuteBundle )(
34102 ID3D12GraphicsCommandList8 * This,
34103 _In_ ID3D12GraphicsCommandList *pCommandList);
34104
34105 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
34106 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
34107 ID3D12GraphicsCommandList8 * This,
34108 _In_ UINT NumDescriptorHeaps,
34109 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
34110
34111 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
34112 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
34113 ID3D12GraphicsCommandList8 * This,
34114 _In_opt_ ID3D12RootSignature *pRootSignature);
34115
34116 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
34117 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
34118 ID3D12GraphicsCommandList8 * This,
34119 _In_opt_ ID3D12RootSignature *pRootSignature);
34120
34121 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
34122 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
34123 ID3D12GraphicsCommandList8 * This,
34124 _In_ UINT RootParameterIndex,
34125 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34126
34127 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
34128 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
34129 ID3D12GraphicsCommandList8 * This,
34130 _In_ UINT RootParameterIndex,
34131 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34132
34133 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
34134 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
34135 ID3D12GraphicsCommandList8 * This,
34136 _In_ UINT RootParameterIndex,
34137 _In_ UINT SrcData,
34138 _In_ UINT DestOffsetIn32BitValues);
34139
34140 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
34141 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
34142 ID3D12GraphicsCommandList8 * This,
34143 _In_ UINT RootParameterIndex,
34144 _In_ UINT SrcData,
34145 _In_ UINT DestOffsetIn32BitValues);
34146
34147 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
34148 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
34149 ID3D12GraphicsCommandList8 * This,
34150 _In_ UINT RootParameterIndex,
34151 _In_ UINT Num32BitValuesToSet,
34152 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
34153 _In_ UINT DestOffsetIn32BitValues);
34154
34155 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
34156 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
34157 ID3D12GraphicsCommandList8 * This,
34158 _In_ UINT RootParameterIndex,
34159 _In_ UINT Num32BitValuesToSet,
34160 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
34161 _In_ UINT DestOffsetIn32BitValues);
34162
34163 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
34164 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
34165 ID3D12GraphicsCommandList8 * This,
34166 _In_ UINT RootParameterIndex,
34167 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34168
34169 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
34170 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
34171 ID3D12GraphicsCommandList8 * This,
34172 _In_ UINT RootParameterIndex,
34173 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34174
34175 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
34176 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
34177 ID3D12GraphicsCommandList8 * This,
34178 _In_ UINT RootParameterIndex,
34179 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34180
34181 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
34182 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
34183 ID3D12GraphicsCommandList8 * This,
34184 _In_ UINT RootParameterIndex,
34185 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34186
34187 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
34188 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
34189 ID3D12GraphicsCommandList8 * This,
34190 _In_ UINT RootParameterIndex,
34191 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34192
34193 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
34194 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
34195 ID3D12GraphicsCommandList8 * This,
34196 _In_ UINT RootParameterIndex,
34197 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34198
34199 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
34200 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
34201 ID3D12GraphicsCommandList8 * This,
34202 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
34203
34204 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
34205 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
34206 ID3D12GraphicsCommandList8 * This,
34207 _In_ UINT StartSlot,
34208 _In_ UINT NumViews,
34209 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
34210
34211 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
34212 void ( STDMETHODCALLTYPE *SOSetTargets )(
34213 ID3D12GraphicsCommandList8 * This,
34214 _In_ UINT StartSlot,
34215 _In_ UINT NumViews,
34216 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
34217
34218 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
34219 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
34220 ID3D12GraphicsCommandList8 * This,
34221 _In_ UINT NumRenderTargetDescriptors,
34222 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
34223 _In_ BOOL RTsSingleHandleToDescriptorRange,
34224 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
34225
34226 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
34227 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
34228 ID3D12GraphicsCommandList8 * This,
34229 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
34230 _In_ D3D12_CLEAR_FLAGS ClearFlags,
34231 _In_ FLOAT Depth,
34232 _In_ UINT8 Stencil,
34233 _In_ UINT NumRects,
34234 _In_reads_(NumRects) const D3D12_RECT *pRects);
34235
34236 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
34237 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
34238 ID3D12GraphicsCommandList8 * This,
34239 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
34240 _In_ const FLOAT ColorRGBA[ 4 ],
34241 _In_ UINT NumRects,
34242 _In_reads_(NumRects) const D3D12_RECT *pRects);
34243
34244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
34245 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
34246 ID3D12GraphicsCommandList8 * This,
34247 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
34248 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
34249 _In_ ID3D12Resource *pResource,
34250 _In_ const UINT Values[ 4 ],
34251 _In_ UINT NumRects,
34252 _In_reads_(NumRects) const D3D12_RECT *pRects);
34253
34254 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
34255 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
34256 ID3D12GraphicsCommandList8 * This,
34257 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
34258 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
34259 _In_ ID3D12Resource *pResource,
34260 _In_ const FLOAT Values[ 4 ],
34261 _In_ UINT NumRects,
34262 _In_reads_(NumRects) const D3D12_RECT *pRects);
34263
34264 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
34265 void ( STDMETHODCALLTYPE *DiscardResource )(
34266 ID3D12GraphicsCommandList8 * This,
34267 _In_ ID3D12Resource *pResource,
34268 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
34269
34270 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
34271 void ( STDMETHODCALLTYPE *BeginQuery )(
34272 ID3D12GraphicsCommandList8 * This,
34273 _In_ ID3D12QueryHeap *pQueryHeap,
34274 _In_ D3D12_QUERY_TYPE Type,
34275 _In_ UINT Index);
34276
34277 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
34278 void ( STDMETHODCALLTYPE *EndQuery )(
34279 ID3D12GraphicsCommandList8 * This,
34280 _In_ ID3D12QueryHeap *pQueryHeap,
34281 _In_ D3D12_QUERY_TYPE Type,
34282 _In_ UINT Index);
34283
34284 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
34285 void ( STDMETHODCALLTYPE *ResolveQueryData )(
34286 ID3D12GraphicsCommandList8 * This,
34287 _In_ ID3D12QueryHeap *pQueryHeap,
34288 _In_ D3D12_QUERY_TYPE Type,
34289 _In_ UINT StartIndex,
34290 _In_ UINT NumQueries,
34291 _In_ ID3D12Resource *pDestinationBuffer,
34292 _In_ UINT64 AlignedDestinationBufferOffset);
34293
34294 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
34295 void ( STDMETHODCALLTYPE *SetPredication )(
34296 ID3D12GraphicsCommandList8 * This,
34297 _In_opt_ ID3D12Resource *pBuffer,
34298 _In_ UINT64 AlignedBufferOffset,
34299 _In_ D3D12_PREDICATION_OP Operation);
34300
34301 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
34302 void ( STDMETHODCALLTYPE *SetMarker )(
34303 ID3D12GraphicsCommandList8 * This,
34304 UINT Metadata,
34305 _In_reads_bytes_opt_(Size) const void *pData,
34306 UINT Size);
34307
34308 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
34309 void ( STDMETHODCALLTYPE *BeginEvent )(
34310 ID3D12GraphicsCommandList8 * This,
34311 UINT Metadata,
34312 _In_reads_bytes_opt_(Size) const void *pData,
34313 UINT Size);
34314
34315 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
34316 void ( STDMETHODCALLTYPE *EndEvent )(
34317 ID3D12GraphicsCommandList8 * This);
34318
34319 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
34320 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
34321 ID3D12GraphicsCommandList8 * This,
34322 _In_ ID3D12CommandSignature *pCommandSignature,
34323 _In_ UINT MaxCommandCount,
34324 _In_ ID3D12Resource *pArgumentBuffer,
34325 _In_ UINT64 ArgumentBufferOffset,
34326 _In_opt_ ID3D12Resource *pCountBuffer,
34327 _In_ UINT64 CountBufferOffset);
34328
34329 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
34330 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
34331 ID3D12GraphicsCommandList8 * This,
34332 _In_ ID3D12Resource *pDstBuffer,
34333 UINT64 DstOffset,
34334 _In_ ID3D12Resource *pSrcBuffer,
34335 UINT64 SrcOffset,
34336 UINT Dependencies,
34337 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
34338 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
34339
34340 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
34341 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
34342 ID3D12GraphicsCommandList8 * This,
34343 _In_ ID3D12Resource *pDstBuffer,
34344 UINT64 DstOffset,
34345 _In_ ID3D12Resource *pSrcBuffer,
34346 UINT64 SrcOffset,
34347 UINT Dependencies,
34348 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
34349 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
34350
34351 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
34352 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
34353 ID3D12GraphicsCommandList8 * This,
34354 _In_ FLOAT Min,
34355 _In_ FLOAT Max);
34356
34357 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
34358 void ( STDMETHODCALLTYPE *SetSamplePositions )(
34359 ID3D12GraphicsCommandList8 * This,
34360 _In_ UINT NumSamplesPerPixel,
34361 _In_ UINT NumPixels,
34362 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
34363
34364 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
34365 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
34366 ID3D12GraphicsCommandList8 * This,
34367 _In_ ID3D12Resource *pDstResource,
34368 _In_ UINT DstSubresource,
34369 _In_ UINT DstX,
34370 _In_ UINT DstY,
34371 _In_ ID3D12Resource *pSrcResource,
34372 _In_ UINT SrcSubresource,
34373 _In_opt_ D3D12_RECT *pSrcRect,
34374 _In_ DXGI_FORMAT Format,
34375 _In_ D3D12_RESOLVE_MODE ResolveMode);
34376
34377 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
34378 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
34379 ID3D12GraphicsCommandList8 * This,
34380 _In_ UINT Mask);
34381
34382 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
34383 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
34384 ID3D12GraphicsCommandList8 * This,
34385 UINT Count,
34386 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
34387 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
34388
34389 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
34390 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
34391 ID3D12GraphicsCommandList8 * This,
34392 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
34393
34394 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
34395 void ( STDMETHODCALLTYPE *BeginRenderPass )(
34396 ID3D12GraphicsCommandList8 * This,
34397 _In_ UINT NumRenderTargets,
34398 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
34399 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
34400 D3D12_RENDER_PASS_FLAGS Flags);
34401
34402 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
34403 void ( STDMETHODCALLTYPE *EndRenderPass )(
34404 ID3D12GraphicsCommandList8 * This);
34405
34406 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
34407 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
34408 ID3D12GraphicsCommandList8 * This,
34409 _In_ ID3D12MetaCommand *pMetaCommand,
34410 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
34411 _In_ SIZE_T InitializationParametersDataSizeInBytes);
34412
34413 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
34414 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
34415 ID3D12GraphicsCommandList8 * This,
34416 _In_ ID3D12MetaCommand *pMetaCommand,
34417 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
34418 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
34419
34420 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
34421 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
34422 ID3D12GraphicsCommandList8 * This,
34423 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
34424 _In_ UINT NumPostbuildInfoDescs,
34425 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
34426
34427 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
34428 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
34429 ID3D12GraphicsCommandList8 * This,
34430 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
34431 _In_ UINT NumSourceAccelerationStructures,
34432 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
34433
34434 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
34435 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
34436 ID3D12GraphicsCommandList8 * This,
34437 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
34438 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
34439 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
34440
34441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
34442 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
34443 ID3D12GraphicsCommandList8 * This,
34444 _In_ ID3D12StateObject *pStateObject);
34445
34446 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
34447 void ( STDMETHODCALLTYPE *DispatchRays )(
34448 ID3D12GraphicsCommandList8 * This,
34449 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
34450
34451 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
34452 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
34453 ID3D12GraphicsCommandList8 * This,
34454 _In_ D3D12_SHADING_RATE baseShadingRate,
34455 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
34456
34457 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
34458 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
34459 ID3D12GraphicsCommandList8 * This,
34460 _In_opt_ ID3D12Resource *shadingRateImage);
34461
34462 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
34463 void ( STDMETHODCALLTYPE *DispatchMesh )(
34464 ID3D12GraphicsCommandList8 * This,
34465 _In_ UINT ThreadGroupCountX,
34466 _In_ UINT ThreadGroupCountY,
34467 _In_ UINT ThreadGroupCountZ);
34468
34469 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
34470 void ( STDMETHODCALLTYPE *Barrier )(
34471 ID3D12GraphicsCommandList8 * This,
34472 UINT32 NumBarrierGroups,
34473 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
34474
34475 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
34476 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
34477 ID3D12GraphicsCommandList8 * This,
34478 _In_ UINT FrontStencilRef,
34479 _In_ UINT BackStencilRef);
34480
34481 END_INTERFACE
34482 } ID3D12GraphicsCommandList8Vtbl;
34483
34484 interface ID3D12GraphicsCommandList8
34485 {
34486 CONST_VTBL struct ID3D12GraphicsCommandList8Vtbl *lpVtbl;
34487 };
34488
34489
34490
34491#ifdef COBJMACROS
34492
34493
34494#define ID3D12GraphicsCommandList8_QueryInterface(This,riid,ppvObject) \
34495 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
34496
34497#define ID3D12GraphicsCommandList8_AddRef(This) \
34498 ( (This)->lpVtbl -> AddRef(This) )
34499
34500#define ID3D12GraphicsCommandList8_Release(This) \
34501 ( (This)->lpVtbl -> Release(This) )
34502
34503
34504#define ID3D12GraphicsCommandList8_GetPrivateData(This,guid,pDataSize,pData) \
34505 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
34506
34507#define ID3D12GraphicsCommandList8_SetPrivateData(This,guid,DataSize,pData) \
34508 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
34509
34510#define ID3D12GraphicsCommandList8_SetPrivateDataInterface(This,guid,pData) \
34511 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
34512
34513#define ID3D12GraphicsCommandList8_SetName(This,Name) \
34514 ( (This)->lpVtbl -> SetName(This,Name) )
34515
34516
34517#define ID3D12GraphicsCommandList8_GetDevice(This,riid,ppvDevice) \
34518 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
34519
34520
34521#define ID3D12GraphicsCommandList8_GetType(This) \
34522 ( (This)->lpVtbl -> GetType(This) )
34523
34524
34525#define ID3D12GraphicsCommandList8_Close(This) \
34526 ( (This)->lpVtbl -> Close(This) )
34527
34528#define ID3D12GraphicsCommandList8_Reset(This,pAllocator,pInitialState) \
34529 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
34530
34531#define ID3D12GraphicsCommandList8_ClearState(This,pPipelineState) \
34532 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
34533
34534#define ID3D12GraphicsCommandList8_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
34535 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
34536
34537#define ID3D12GraphicsCommandList8_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
34538 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
34539
34540#define ID3D12GraphicsCommandList8_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
34541 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
34542
34543#define ID3D12GraphicsCommandList8_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
34544 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
34545
34546#define ID3D12GraphicsCommandList8_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
34547 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
34548
34549#define ID3D12GraphicsCommandList8_CopyResource(This,pDstResource,pSrcResource) \
34550 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
34551
34552#define ID3D12GraphicsCommandList8_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
34553 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
34554
34555#define ID3D12GraphicsCommandList8_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
34556 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
34557
34558#define ID3D12GraphicsCommandList8_IASetPrimitiveTopology(This,PrimitiveTopology) \
34559 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
34560
34561#define ID3D12GraphicsCommandList8_RSSetViewports(This,NumViewports,pViewports) \
34562 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
34563
34564#define ID3D12GraphicsCommandList8_RSSetScissorRects(This,NumRects,pRects) \
34565 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
34566
34567#define ID3D12GraphicsCommandList8_OMSetBlendFactor(This,BlendFactor) \
34568 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
34569
34570#define ID3D12GraphicsCommandList8_OMSetStencilRef(This,StencilRef) \
34571 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
34572
34573#define ID3D12GraphicsCommandList8_SetPipelineState(This,pPipelineState) \
34574 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
34575
34576#define ID3D12GraphicsCommandList8_ResourceBarrier(This,NumBarriers,pBarriers) \
34577 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
34578
34579#define ID3D12GraphicsCommandList8_ExecuteBundle(This,pCommandList) \
34580 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
34581
34582#define ID3D12GraphicsCommandList8_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
34583 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
34584
34585#define ID3D12GraphicsCommandList8_SetComputeRootSignature(This,pRootSignature) \
34586 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
34587
34588#define ID3D12GraphicsCommandList8_SetGraphicsRootSignature(This,pRootSignature) \
34589 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
34590
34591#define ID3D12GraphicsCommandList8_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
34592 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
34593
34594#define ID3D12GraphicsCommandList8_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
34595 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
34596
34597#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
34598 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
34599
34600#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
34601 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
34602
34603#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
34604 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
34605
34606#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
34607 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
34608
34609#define ID3D12GraphicsCommandList8_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
34610 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
34611
34612#define ID3D12GraphicsCommandList8_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
34613 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
34614
34615#define ID3D12GraphicsCommandList8_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
34616 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
34617
34618#define ID3D12GraphicsCommandList8_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
34619 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
34620
34621#define ID3D12GraphicsCommandList8_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
34622 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
34623
34624#define ID3D12GraphicsCommandList8_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
34625 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
34626
34627#define ID3D12GraphicsCommandList8_IASetIndexBuffer(This,pView) \
34628 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
34629
34630#define ID3D12GraphicsCommandList8_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
34631 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
34632
34633#define ID3D12GraphicsCommandList8_SOSetTargets(This,StartSlot,NumViews,pViews) \
34634 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
34635
34636#define ID3D12GraphicsCommandList8_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
34637 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
34638
34639#define ID3D12GraphicsCommandList8_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
34640 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
34641
34642#define ID3D12GraphicsCommandList8_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
34643 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
34644
34645#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
34646 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
34647
34648#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
34649 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
34650
34651#define ID3D12GraphicsCommandList8_DiscardResource(This,pResource,pRegion) \
34652 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
34653
34654#define ID3D12GraphicsCommandList8_BeginQuery(This,pQueryHeap,Type,Index) \
34655 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
34656
34657#define ID3D12GraphicsCommandList8_EndQuery(This,pQueryHeap,Type,Index) \
34658 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
34659
34660#define ID3D12GraphicsCommandList8_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
34661 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
34662
34663#define ID3D12GraphicsCommandList8_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
34664 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
34665
34666#define ID3D12GraphicsCommandList8_SetMarker(This,Metadata,pData,Size) \
34667 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
34668
34669#define ID3D12GraphicsCommandList8_BeginEvent(This,Metadata,pData,Size) \
34670 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
34671
34672#define ID3D12GraphicsCommandList8_EndEvent(This) \
34673 ( (This)->lpVtbl -> EndEvent(This) )
34674
34675#define ID3D12GraphicsCommandList8_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
34676 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
34677
34678
34679#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
34680 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
34681
34682#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
34683 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
34684
34685#define ID3D12GraphicsCommandList8_OMSetDepthBounds(This,Min,Max) \
34686 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
34687
34688#define ID3D12GraphicsCommandList8_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
34689 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
34690
34691#define ID3D12GraphicsCommandList8_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
34692 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
34693
34694#define ID3D12GraphicsCommandList8_SetViewInstanceMask(This,Mask) \
34695 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
34696
34697
34698#define ID3D12GraphicsCommandList8_WriteBufferImmediate(This,Count,pParams,pModes) \
34699 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
34700
34701
34702#define ID3D12GraphicsCommandList8_SetProtectedResourceSession(This,pProtectedResourceSession) \
34703 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
34704
34705
34706#define ID3D12GraphicsCommandList8_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
34707 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
34708
34709#define ID3D12GraphicsCommandList8_EndRenderPass(This) \
34710 ( (This)->lpVtbl -> EndRenderPass(This) )
34711
34712#define ID3D12GraphicsCommandList8_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
34713 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
34714
34715#define ID3D12GraphicsCommandList8_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
34716 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
34717
34718#define ID3D12GraphicsCommandList8_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
34719 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
34720
34721#define ID3D12GraphicsCommandList8_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
34722 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
34723
34724#define ID3D12GraphicsCommandList8_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
34725 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
34726
34727#define ID3D12GraphicsCommandList8_SetPipelineState1(This,pStateObject) \
34728 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
34729
34730#define ID3D12GraphicsCommandList8_DispatchRays(This,pDesc) \
34731 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
34732
34733
34734#define ID3D12GraphicsCommandList8_RSSetShadingRate(This,baseShadingRate,combiners) \
34735 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
34736
34737#define ID3D12GraphicsCommandList8_RSSetShadingRateImage(This,shadingRateImage) \
34738 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
34739
34740
34741#define ID3D12GraphicsCommandList8_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
34742 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
34743
34744
34745#define ID3D12GraphicsCommandList8_Barrier(This,NumBarrierGroups,pBarrierGroups) \
34746 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
34747
34748
34749#define ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
34750 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
34751
34752#endif /* COBJMACROS */
34753
34754
34755#endif /* C style interface */
34756
34757
34758
34759
34760#endif /* __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ */
34761
34762
34763#ifndef __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__
34764#define __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__
34765
34766/* interface ID3D12GraphicsCommandList9 */
34767/* [unique][local][object][uuid] */
34768
34769
34770EXTERN_C const IID IID_ID3D12GraphicsCommandList9;
34771
34772#if defined(__cplusplus) && !defined(CINTERFACE)
34773
34774 MIDL_INTERFACE("34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1")
34775 ID3D12GraphicsCommandList9 : public ID3D12GraphicsCommandList8
34776 {
34777 public:
34778 virtual void STDMETHODCALLTYPE RSSetDepthBias(
34779 _In_ FLOAT DepthBias,
34780 _In_ FLOAT DepthBiasClamp,
34781 _In_ FLOAT SlopeScaledDepthBias) = 0;
34782
34783 virtual void STDMETHODCALLTYPE IASetIndexBufferStripCutValue(
34784 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) = 0;
34785
34786 };
34787
34788
34789#else /* C style interface */
34790
34791 typedef struct ID3D12GraphicsCommandList9Vtbl
34792 {
34793 BEGIN_INTERFACE
34794
34795 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
34796 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
34797 ID3D12GraphicsCommandList9 * This,
34798 REFIID riid,
34799 _COM_Outptr_ void **ppvObject);
34800
34801 DECLSPEC_XFGVIRT(IUnknown, AddRef)
34802 ULONG ( STDMETHODCALLTYPE *AddRef )(
34803 ID3D12GraphicsCommandList9 * This);
34804
34805 DECLSPEC_XFGVIRT(IUnknown, Release)
34806 ULONG ( STDMETHODCALLTYPE *Release )(
34807 ID3D12GraphicsCommandList9 * This);
34808
34809 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
34810 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
34811 ID3D12GraphicsCommandList9 * This,
34812 _In_ REFGUID guid,
34813 _Inout_ UINT *pDataSize,
34814 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
34815
34816 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
34817 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
34818 ID3D12GraphicsCommandList9 * This,
34819 _In_ REFGUID guid,
34820 _In_ UINT DataSize,
34821 _In_reads_bytes_opt_( DataSize ) const void *pData);
34822
34823 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
34824 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
34825 ID3D12GraphicsCommandList9 * This,
34826 _In_ REFGUID guid,
34827 _In_opt_ const IUnknown *pData);
34828
34829 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
34830 HRESULT ( STDMETHODCALLTYPE *SetName )(
34831 ID3D12GraphicsCommandList9 * This,
34832 _In_z_ LPCWSTR Name);
34833
34834 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
34835 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
34836 ID3D12GraphicsCommandList9 * This,
34837 REFIID riid,
34838 _COM_Outptr_opt_ void **ppvDevice);
34839
34840 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
34841 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
34842 ID3D12GraphicsCommandList9 * This);
34843
34844 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
34845 HRESULT ( STDMETHODCALLTYPE *Close )(
34846 ID3D12GraphicsCommandList9 * This);
34847
34848 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
34849 HRESULT ( STDMETHODCALLTYPE *Reset )(
34850 ID3D12GraphicsCommandList9 * This,
34851 _In_ ID3D12CommandAllocator *pAllocator,
34852 _In_opt_ ID3D12PipelineState *pInitialState);
34853
34854 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
34855 void ( STDMETHODCALLTYPE *ClearState )(
34856 ID3D12GraphicsCommandList9 * This,
34857 _In_opt_ ID3D12PipelineState *pPipelineState);
34858
34859 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
34860 void ( STDMETHODCALLTYPE *DrawInstanced )(
34861 ID3D12GraphicsCommandList9 * This,
34862 _In_ UINT VertexCountPerInstance,
34863 _In_ UINT InstanceCount,
34864 _In_ UINT StartVertexLocation,
34865 _In_ UINT StartInstanceLocation);
34866
34867 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
34868 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
34869 ID3D12GraphicsCommandList9 * This,
34870 _In_ UINT IndexCountPerInstance,
34871 _In_ UINT InstanceCount,
34872 _In_ UINT StartIndexLocation,
34873 _In_ INT BaseVertexLocation,
34874 _In_ UINT StartInstanceLocation);
34875
34876 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
34877 void ( STDMETHODCALLTYPE *Dispatch )(
34878 ID3D12GraphicsCommandList9 * This,
34879 _In_ UINT ThreadGroupCountX,
34880 _In_ UINT ThreadGroupCountY,
34881 _In_ UINT ThreadGroupCountZ);
34882
34883 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
34884 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
34885 ID3D12GraphicsCommandList9 * This,
34886 _In_ ID3D12Resource *pDstBuffer,
34887 UINT64 DstOffset,
34888 _In_ ID3D12Resource *pSrcBuffer,
34889 UINT64 SrcOffset,
34890 UINT64 NumBytes);
34891
34892 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
34893 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
34894 ID3D12GraphicsCommandList9 * This,
34895 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
34896 UINT DstX,
34897 UINT DstY,
34898 UINT DstZ,
34899 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
34900 _In_opt_ const D3D12_BOX *pSrcBox);
34901
34902 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
34903 void ( STDMETHODCALLTYPE *CopyResource )(
34904 ID3D12GraphicsCommandList9 * This,
34905 _In_ ID3D12Resource *pDstResource,
34906 _In_ ID3D12Resource *pSrcResource);
34907
34908 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
34909 void ( STDMETHODCALLTYPE *CopyTiles )(
34910 ID3D12GraphicsCommandList9 * This,
34911 _In_ ID3D12Resource *pTiledResource,
34912 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
34913 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
34914 _In_ ID3D12Resource *pBuffer,
34915 UINT64 BufferStartOffsetInBytes,
34916 D3D12_TILE_COPY_FLAGS Flags);
34917
34918 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
34919 void ( STDMETHODCALLTYPE *ResolveSubresource )(
34920 ID3D12GraphicsCommandList9 * This,
34921 _In_ ID3D12Resource *pDstResource,
34922 _In_ UINT DstSubresource,
34923 _In_ ID3D12Resource *pSrcResource,
34924 _In_ UINT SrcSubresource,
34925 _In_ DXGI_FORMAT Format);
34926
34927 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
34928 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
34929 ID3D12GraphicsCommandList9 * This,
34930 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
34931
34932 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
34933 void ( STDMETHODCALLTYPE *RSSetViewports )(
34934 ID3D12GraphicsCommandList9 * This,
34935 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
34936 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
34937
34938 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
34939 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
34940 ID3D12GraphicsCommandList9 * This,
34941 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
34942 _In_reads_( NumRects) const D3D12_RECT *pRects);
34943
34944 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
34945 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
34946 ID3D12GraphicsCommandList9 * This,
34947 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
34948
34949 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
34950 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
34951 ID3D12GraphicsCommandList9 * This,
34952 _In_ UINT StencilRef);
34953
34954 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
34955 void ( STDMETHODCALLTYPE *SetPipelineState )(
34956 ID3D12GraphicsCommandList9 * This,
34957 _In_ ID3D12PipelineState *pPipelineState);
34958
34959 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
34960 void ( STDMETHODCALLTYPE *ResourceBarrier )(
34961 ID3D12GraphicsCommandList9 * This,
34962 _In_ UINT NumBarriers,
34963 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
34964
34965 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
34966 void ( STDMETHODCALLTYPE *ExecuteBundle )(
34967 ID3D12GraphicsCommandList9 * This,
34968 _In_ ID3D12GraphicsCommandList *pCommandList);
34969
34970 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
34971 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
34972 ID3D12GraphicsCommandList9 * This,
34973 _In_ UINT NumDescriptorHeaps,
34974 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
34975
34976 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
34977 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
34978 ID3D12GraphicsCommandList9 * This,
34979 _In_opt_ ID3D12RootSignature *pRootSignature);
34980
34981 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
34982 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
34983 ID3D12GraphicsCommandList9 * This,
34984 _In_opt_ ID3D12RootSignature *pRootSignature);
34985
34986 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
34987 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
34988 ID3D12GraphicsCommandList9 * This,
34989 _In_ UINT RootParameterIndex,
34990 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34991
34992 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
34993 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
34994 ID3D12GraphicsCommandList9 * This,
34995 _In_ UINT RootParameterIndex,
34996 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34997
34998 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
34999 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
35000 ID3D12GraphicsCommandList9 * This,
35001 _In_ UINT RootParameterIndex,
35002 _In_ UINT SrcData,
35003 _In_ UINT DestOffsetIn32BitValues);
35004
35005 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
35006 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
35007 ID3D12GraphicsCommandList9 * This,
35008 _In_ UINT RootParameterIndex,
35009 _In_ UINT SrcData,
35010 _In_ UINT DestOffsetIn32BitValues);
35011
35012 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
35013 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
35014 ID3D12GraphicsCommandList9 * This,
35015 _In_ UINT RootParameterIndex,
35016 _In_ UINT Num32BitValuesToSet,
35017 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
35018 _In_ UINT DestOffsetIn32BitValues);
35019
35020 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
35021 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
35022 ID3D12GraphicsCommandList9 * This,
35023 _In_ UINT RootParameterIndex,
35024 _In_ UINT Num32BitValuesToSet,
35025 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
35026 _In_ UINT DestOffsetIn32BitValues);
35027
35028 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
35029 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
35030 ID3D12GraphicsCommandList9 * This,
35031 _In_ UINT RootParameterIndex,
35032 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35033
35034 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
35035 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
35036 ID3D12GraphicsCommandList9 * This,
35037 _In_ UINT RootParameterIndex,
35038 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35039
35040 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
35041 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
35042 ID3D12GraphicsCommandList9 * This,
35043 _In_ UINT RootParameterIndex,
35044 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35045
35046 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
35047 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
35048 ID3D12GraphicsCommandList9 * This,
35049 _In_ UINT RootParameterIndex,
35050 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35051
35052 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
35053 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
35054 ID3D12GraphicsCommandList9 * This,
35055 _In_ UINT RootParameterIndex,
35056 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35057
35058 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
35059 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
35060 ID3D12GraphicsCommandList9 * This,
35061 _In_ UINT RootParameterIndex,
35062 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35063
35064 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
35065 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
35066 ID3D12GraphicsCommandList9 * This,
35067 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
35068
35069 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
35070 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
35071 ID3D12GraphicsCommandList9 * This,
35072 _In_ UINT StartSlot,
35073 _In_ UINT NumViews,
35074 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
35075
35076 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
35077 void ( STDMETHODCALLTYPE *SOSetTargets )(
35078 ID3D12GraphicsCommandList9 * This,
35079 _In_ UINT StartSlot,
35080 _In_ UINT NumViews,
35081 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
35082
35083 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
35084 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
35085 ID3D12GraphicsCommandList9 * This,
35086 _In_ UINT NumRenderTargetDescriptors,
35087 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
35088 _In_ BOOL RTsSingleHandleToDescriptorRange,
35089 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
35090
35091 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
35092 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
35093 ID3D12GraphicsCommandList9 * This,
35094 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
35095 _In_ D3D12_CLEAR_FLAGS ClearFlags,
35096 _In_ FLOAT Depth,
35097 _In_ UINT8 Stencil,
35098 _In_ UINT NumRects,
35099 _In_reads_(NumRects) const D3D12_RECT *pRects);
35100
35101 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
35102 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
35103 ID3D12GraphicsCommandList9 * This,
35104 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
35105 _In_ const FLOAT ColorRGBA[ 4 ],
35106 _In_ UINT NumRects,
35107 _In_reads_(NumRects) const D3D12_RECT *pRects);
35108
35109 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
35110 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
35111 ID3D12GraphicsCommandList9 * This,
35112 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
35113 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
35114 _In_ ID3D12Resource *pResource,
35115 _In_ const UINT Values[ 4 ],
35116 _In_ UINT NumRects,
35117 _In_reads_(NumRects) const D3D12_RECT *pRects);
35118
35119 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
35120 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
35121 ID3D12GraphicsCommandList9 * This,
35122 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
35123 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
35124 _In_ ID3D12Resource *pResource,
35125 _In_ const FLOAT Values[ 4 ],
35126 _In_ UINT NumRects,
35127 _In_reads_(NumRects) const D3D12_RECT *pRects);
35128
35129 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
35130 void ( STDMETHODCALLTYPE *DiscardResource )(
35131 ID3D12GraphicsCommandList9 * This,
35132 _In_ ID3D12Resource *pResource,
35133 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
35134
35135 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
35136 void ( STDMETHODCALLTYPE *BeginQuery )(
35137 ID3D12GraphicsCommandList9 * This,
35138 _In_ ID3D12QueryHeap *pQueryHeap,
35139 _In_ D3D12_QUERY_TYPE Type,
35140 _In_ UINT Index);
35141
35142 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
35143 void ( STDMETHODCALLTYPE *EndQuery )(
35144 ID3D12GraphicsCommandList9 * This,
35145 _In_ ID3D12QueryHeap *pQueryHeap,
35146 _In_ D3D12_QUERY_TYPE Type,
35147 _In_ UINT Index);
35148
35149 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
35150 void ( STDMETHODCALLTYPE *ResolveQueryData )(
35151 ID3D12GraphicsCommandList9 * This,
35152 _In_ ID3D12QueryHeap *pQueryHeap,
35153 _In_ D3D12_QUERY_TYPE Type,
35154 _In_ UINT StartIndex,
35155 _In_ UINT NumQueries,
35156 _In_ ID3D12Resource *pDestinationBuffer,
35157 _In_ UINT64 AlignedDestinationBufferOffset);
35158
35159 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
35160 void ( STDMETHODCALLTYPE *SetPredication )(
35161 ID3D12GraphicsCommandList9 * This,
35162 _In_opt_ ID3D12Resource *pBuffer,
35163 _In_ UINT64 AlignedBufferOffset,
35164 _In_ D3D12_PREDICATION_OP Operation);
35165
35166 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
35167 void ( STDMETHODCALLTYPE *SetMarker )(
35168 ID3D12GraphicsCommandList9 * This,
35169 UINT Metadata,
35170 _In_reads_bytes_opt_(Size) const void *pData,
35171 UINT Size);
35172
35173 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
35174 void ( STDMETHODCALLTYPE *BeginEvent )(
35175 ID3D12GraphicsCommandList9 * This,
35176 UINT Metadata,
35177 _In_reads_bytes_opt_(Size) const void *pData,
35178 UINT Size);
35179
35180 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
35181 void ( STDMETHODCALLTYPE *EndEvent )(
35182 ID3D12GraphicsCommandList9 * This);
35183
35184 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
35185 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
35186 ID3D12GraphicsCommandList9 * This,
35187 _In_ ID3D12CommandSignature *pCommandSignature,
35188 _In_ UINT MaxCommandCount,
35189 _In_ ID3D12Resource *pArgumentBuffer,
35190 _In_ UINT64 ArgumentBufferOffset,
35191 _In_opt_ ID3D12Resource *pCountBuffer,
35192 _In_ UINT64 CountBufferOffset);
35193
35194 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
35195 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
35196 ID3D12GraphicsCommandList9 * This,
35197 _In_ ID3D12Resource *pDstBuffer,
35198 UINT64 DstOffset,
35199 _In_ ID3D12Resource *pSrcBuffer,
35200 UINT64 SrcOffset,
35201 UINT Dependencies,
35202 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
35203 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
35204
35205 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
35206 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
35207 ID3D12GraphicsCommandList9 * This,
35208 _In_ ID3D12Resource *pDstBuffer,
35209 UINT64 DstOffset,
35210 _In_ ID3D12Resource *pSrcBuffer,
35211 UINT64 SrcOffset,
35212 UINT Dependencies,
35213 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
35214 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
35215
35216 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
35217 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
35218 ID3D12GraphicsCommandList9 * This,
35219 _In_ FLOAT Min,
35220 _In_ FLOAT Max);
35221
35222 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
35223 void ( STDMETHODCALLTYPE *SetSamplePositions )(
35224 ID3D12GraphicsCommandList9 * This,
35225 _In_ UINT NumSamplesPerPixel,
35226 _In_ UINT NumPixels,
35227 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
35228
35229 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
35230 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
35231 ID3D12GraphicsCommandList9 * This,
35232 _In_ ID3D12Resource *pDstResource,
35233 _In_ UINT DstSubresource,
35234 _In_ UINT DstX,
35235 _In_ UINT DstY,
35236 _In_ ID3D12Resource *pSrcResource,
35237 _In_ UINT SrcSubresource,
35238 _In_opt_ D3D12_RECT *pSrcRect,
35239 _In_ DXGI_FORMAT Format,
35240 _In_ D3D12_RESOLVE_MODE ResolveMode);
35241
35242 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
35243 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
35244 ID3D12GraphicsCommandList9 * This,
35245 _In_ UINT Mask);
35246
35247 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
35248 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
35249 ID3D12GraphicsCommandList9 * This,
35250 UINT Count,
35251 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
35252 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
35253
35254 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
35255 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
35256 ID3D12GraphicsCommandList9 * This,
35257 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
35258
35259 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
35260 void ( STDMETHODCALLTYPE *BeginRenderPass )(
35261 ID3D12GraphicsCommandList9 * This,
35262 _In_ UINT NumRenderTargets,
35263 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
35264 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
35265 D3D12_RENDER_PASS_FLAGS Flags);
35266
35267 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
35268 void ( STDMETHODCALLTYPE *EndRenderPass )(
35269 ID3D12GraphicsCommandList9 * This);
35270
35271 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
35272 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
35273 ID3D12GraphicsCommandList9 * This,
35274 _In_ ID3D12MetaCommand *pMetaCommand,
35275 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
35276 _In_ SIZE_T InitializationParametersDataSizeInBytes);
35277
35278 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
35279 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
35280 ID3D12GraphicsCommandList9 * This,
35281 _In_ ID3D12MetaCommand *pMetaCommand,
35282 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
35283 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
35284
35285 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
35286 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
35287 ID3D12GraphicsCommandList9 * This,
35288 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
35289 _In_ UINT NumPostbuildInfoDescs,
35290 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
35291
35292 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
35293 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
35294 ID3D12GraphicsCommandList9 * This,
35295 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
35296 _In_ UINT NumSourceAccelerationStructures,
35297 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
35298
35299 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
35300 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
35301 ID3D12GraphicsCommandList9 * This,
35302 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
35303 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
35304 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
35305
35306 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
35307 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
35308 ID3D12GraphicsCommandList9 * This,
35309 _In_ ID3D12StateObject *pStateObject);
35310
35311 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
35312 void ( STDMETHODCALLTYPE *DispatchRays )(
35313 ID3D12GraphicsCommandList9 * This,
35314 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
35315
35316 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
35317 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
35318 ID3D12GraphicsCommandList9 * This,
35319 _In_ D3D12_SHADING_RATE baseShadingRate,
35320 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
35321
35322 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
35323 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
35324 ID3D12GraphicsCommandList9 * This,
35325 _In_opt_ ID3D12Resource *shadingRateImage);
35326
35327 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
35328 void ( STDMETHODCALLTYPE *DispatchMesh )(
35329 ID3D12GraphicsCommandList9 * This,
35330 _In_ UINT ThreadGroupCountX,
35331 _In_ UINT ThreadGroupCountY,
35332 _In_ UINT ThreadGroupCountZ);
35333
35334 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
35335 void ( STDMETHODCALLTYPE *Barrier )(
35336 ID3D12GraphicsCommandList9 * This,
35337 UINT32 NumBarrierGroups,
35338 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
35339
35340 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
35341 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
35342 ID3D12GraphicsCommandList9 * This,
35343 _In_ UINT FrontStencilRef,
35344 _In_ UINT BackStencilRef);
35345
35346 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias)
35347 void ( STDMETHODCALLTYPE *RSSetDepthBias )(
35348 ID3D12GraphicsCommandList9 * This,
35349 _In_ FLOAT DepthBias,
35350 _In_ FLOAT DepthBiasClamp,
35351 _In_ FLOAT SlopeScaledDepthBias);
35352
35353 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue)
35354 void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )(
35355 ID3D12GraphicsCommandList9 * This,
35356 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue);
35357
35358 END_INTERFACE
35359 } ID3D12GraphicsCommandList9Vtbl;
35360
35361 interface ID3D12GraphicsCommandList9
35362 {
35363 CONST_VTBL struct ID3D12GraphicsCommandList9Vtbl *lpVtbl;
35364 };
35365
35366
35367
35368#ifdef COBJMACROS
35369
35370
35371#define ID3D12GraphicsCommandList9_QueryInterface(This,riid,ppvObject) \
35372 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
35373
35374#define ID3D12GraphicsCommandList9_AddRef(This) \
35375 ( (This)->lpVtbl -> AddRef(This) )
35376
35377#define ID3D12GraphicsCommandList9_Release(This) \
35378 ( (This)->lpVtbl -> Release(This) )
35379
35380
35381#define ID3D12GraphicsCommandList9_GetPrivateData(This,guid,pDataSize,pData) \
35382 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
35383
35384#define ID3D12GraphicsCommandList9_SetPrivateData(This,guid,DataSize,pData) \
35385 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
35386
35387#define ID3D12GraphicsCommandList9_SetPrivateDataInterface(This,guid,pData) \
35388 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
35389
35390#define ID3D12GraphicsCommandList9_SetName(This,Name) \
35391 ( (This)->lpVtbl -> SetName(This,Name) )
35392
35393
35394#define ID3D12GraphicsCommandList9_GetDevice(This,riid,ppvDevice) \
35395 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
35396
35397
35398#define ID3D12GraphicsCommandList9_GetType(This) \
35399 ( (This)->lpVtbl -> GetType(This) )
35400
35401
35402#define ID3D12GraphicsCommandList9_Close(This) \
35403 ( (This)->lpVtbl -> Close(This) )
35404
35405#define ID3D12GraphicsCommandList9_Reset(This,pAllocator,pInitialState) \
35406 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
35407
35408#define ID3D12GraphicsCommandList9_ClearState(This,pPipelineState) \
35409 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
35410
35411#define ID3D12GraphicsCommandList9_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
35412 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
35413
35414#define ID3D12GraphicsCommandList9_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
35415 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
35416
35417#define ID3D12GraphicsCommandList9_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
35418 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
35419
35420#define ID3D12GraphicsCommandList9_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
35421 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
35422
35423#define ID3D12GraphicsCommandList9_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
35424 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
35425
35426#define ID3D12GraphicsCommandList9_CopyResource(This,pDstResource,pSrcResource) \
35427 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
35428
35429#define ID3D12GraphicsCommandList9_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
35430 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
35431
35432#define ID3D12GraphicsCommandList9_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
35433 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
35434
35435#define ID3D12GraphicsCommandList9_IASetPrimitiveTopology(This,PrimitiveTopology) \
35436 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
35437
35438#define ID3D12GraphicsCommandList9_RSSetViewports(This,NumViewports,pViewports) \
35439 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
35440
35441#define ID3D12GraphicsCommandList9_RSSetScissorRects(This,NumRects,pRects) \
35442 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
35443
35444#define ID3D12GraphicsCommandList9_OMSetBlendFactor(This,BlendFactor) \
35445 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
35446
35447#define ID3D12GraphicsCommandList9_OMSetStencilRef(This,StencilRef) \
35448 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
35449
35450#define ID3D12GraphicsCommandList9_SetPipelineState(This,pPipelineState) \
35451 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
35452
35453#define ID3D12GraphicsCommandList9_ResourceBarrier(This,NumBarriers,pBarriers) \
35454 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
35455
35456#define ID3D12GraphicsCommandList9_ExecuteBundle(This,pCommandList) \
35457 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
35458
35459#define ID3D12GraphicsCommandList9_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
35460 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
35461
35462#define ID3D12GraphicsCommandList9_SetComputeRootSignature(This,pRootSignature) \
35463 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
35464
35465#define ID3D12GraphicsCommandList9_SetGraphicsRootSignature(This,pRootSignature) \
35466 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
35467
35468#define ID3D12GraphicsCommandList9_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
35469 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
35470
35471#define ID3D12GraphicsCommandList9_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
35472 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
35473
35474#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
35475 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
35476
35477#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
35478 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
35479
35480#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
35481 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
35482
35483#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
35484 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
35485
35486#define ID3D12GraphicsCommandList9_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
35487 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
35488
35489#define ID3D12GraphicsCommandList9_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
35490 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
35491
35492#define ID3D12GraphicsCommandList9_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
35493 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
35494
35495#define ID3D12GraphicsCommandList9_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
35496 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
35497
35498#define ID3D12GraphicsCommandList9_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
35499 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
35500
35501#define ID3D12GraphicsCommandList9_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
35502 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
35503
35504#define ID3D12GraphicsCommandList9_IASetIndexBuffer(This,pView) \
35505 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
35506
35507#define ID3D12GraphicsCommandList9_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
35508 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
35509
35510#define ID3D12GraphicsCommandList9_SOSetTargets(This,StartSlot,NumViews,pViews) \
35511 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
35512
35513#define ID3D12GraphicsCommandList9_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
35514 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
35515
35516#define ID3D12GraphicsCommandList9_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
35517 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
35518
35519#define ID3D12GraphicsCommandList9_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
35520 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
35521
35522#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
35523 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
35524
35525#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
35526 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
35527
35528#define ID3D12GraphicsCommandList9_DiscardResource(This,pResource,pRegion) \
35529 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
35530
35531#define ID3D12GraphicsCommandList9_BeginQuery(This,pQueryHeap,Type,Index) \
35532 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
35533
35534#define ID3D12GraphicsCommandList9_EndQuery(This,pQueryHeap,Type,Index) \
35535 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
35536
35537#define ID3D12GraphicsCommandList9_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
35538 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
35539
35540#define ID3D12GraphicsCommandList9_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
35541 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
35542
35543#define ID3D12GraphicsCommandList9_SetMarker(This,Metadata,pData,Size) \
35544 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
35545
35546#define ID3D12GraphicsCommandList9_BeginEvent(This,Metadata,pData,Size) \
35547 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
35548
35549#define ID3D12GraphicsCommandList9_EndEvent(This) \
35550 ( (This)->lpVtbl -> EndEvent(This) )
35551
35552#define ID3D12GraphicsCommandList9_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
35553 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
35554
35555
35556#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
35557 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
35558
35559#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
35560 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
35561
35562#define ID3D12GraphicsCommandList9_OMSetDepthBounds(This,Min,Max) \
35563 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
35564
35565#define ID3D12GraphicsCommandList9_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
35566 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
35567
35568#define ID3D12GraphicsCommandList9_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
35569 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
35570
35571#define ID3D12GraphicsCommandList9_SetViewInstanceMask(This,Mask) \
35572 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
35573
35574
35575#define ID3D12GraphicsCommandList9_WriteBufferImmediate(This,Count,pParams,pModes) \
35576 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
35577
35578
35579#define ID3D12GraphicsCommandList9_SetProtectedResourceSession(This,pProtectedResourceSession) \
35580 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
35581
35582
35583#define ID3D12GraphicsCommandList9_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
35584 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
35585
35586#define ID3D12GraphicsCommandList9_EndRenderPass(This) \
35587 ( (This)->lpVtbl -> EndRenderPass(This) )
35588
35589#define ID3D12GraphicsCommandList9_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
35590 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
35591
35592#define ID3D12GraphicsCommandList9_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
35593 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
35594
35595#define ID3D12GraphicsCommandList9_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
35596 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
35597
35598#define ID3D12GraphicsCommandList9_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
35599 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
35600
35601#define ID3D12GraphicsCommandList9_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
35602 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
35603
35604#define ID3D12GraphicsCommandList9_SetPipelineState1(This,pStateObject) \
35605 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
35606
35607#define ID3D12GraphicsCommandList9_DispatchRays(This,pDesc) \
35608 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
35609
35610
35611#define ID3D12GraphicsCommandList9_RSSetShadingRate(This,baseShadingRate,combiners) \
35612 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
35613
35614#define ID3D12GraphicsCommandList9_RSSetShadingRateImage(This,shadingRateImage) \
35615 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
35616
35617
35618#define ID3D12GraphicsCommandList9_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
35619 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
35620
35621
35622#define ID3D12GraphicsCommandList9_Barrier(This,NumBarrierGroups,pBarrierGroups) \
35623 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
35624
35625
35626#define ID3D12GraphicsCommandList9_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
35627 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
35628
35629
35630#define ID3D12GraphicsCommandList9_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \
35631 ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) )
35632
35633#define ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue(This,IBStripCutValue) \
35634 ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) )
35635
35636#endif /* COBJMACROS */
35637
35638
35639#endif /* C style interface */
35640
35641
35642
35643
35644#endif /* __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ */
35645
35646
35647#ifndef __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__
35648#define __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__
35649
35650/* interface ID3D12GraphicsCommandList10 */
35651/* [unique][local][object][uuid] */
35652
35653
35654EXTERN_C const IID IID_ID3D12GraphicsCommandList10;
35655
35656#if defined(__cplusplus) && !defined(CINTERFACE)
35657
35658 MIDL_INTERFACE("7013c015-d161-4b63-a08c-238552dd8acc")
35659 ID3D12GraphicsCommandList10 : public ID3D12GraphicsCommandList9
35660 {
35661 public:
35662 virtual void STDMETHODCALLTYPE SetProgram(
35663 _In_ const D3D12_SET_PROGRAM_DESC *pDesc) = 0;
35664
35665 virtual void STDMETHODCALLTYPE DispatchGraph(
35666 _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc) = 0;
35667
35668 };
35669
35670
35671#else /* C style interface */
35672
35673 typedef struct ID3D12GraphicsCommandList10Vtbl
35674 {
35675 BEGIN_INTERFACE
35676
35677 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
35678 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
35679 ID3D12GraphicsCommandList10 * This,
35680 REFIID riid,
35681 _COM_Outptr_ void **ppvObject);
35682
35683 DECLSPEC_XFGVIRT(IUnknown, AddRef)
35684 ULONG ( STDMETHODCALLTYPE *AddRef )(
35685 ID3D12GraphicsCommandList10 * This);
35686
35687 DECLSPEC_XFGVIRT(IUnknown, Release)
35688 ULONG ( STDMETHODCALLTYPE *Release )(
35689 ID3D12GraphicsCommandList10 * This);
35690
35691 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
35692 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
35693 ID3D12GraphicsCommandList10 * This,
35694 _In_ REFGUID guid,
35695 _Inout_ UINT *pDataSize,
35696 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
35697
35698 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
35699 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
35700 ID3D12GraphicsCommandList10 * This,
35701 _In_ REFGUID guid,
35702 _In_ UINT DataSize,
35703 _In_reads_bytes_opt_( DataSize ) const void *pData);
35704
35705 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
35706 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
35707 ID3D12GraphicsCommandList10 * This,
35708 _In_ REFGUID guid,
35709 _In_opt_ const IUnknown *pData);
35710
35711 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
35712 HRESULT ( STDMETHODCALLTYPE *SetName )(
35713 ID3D12GraphicsCommandList10 * This,
35714 _In_z_ LPCWSTR Name);
35715
35716 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
35717 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
35718 ID3D12GraphicsCommandList10 * This,
35719 REFIID riid,
35720 _COM_Outptr_opt_ void **ppvDevice);
35721
35722 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
35723 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
35724 ID3D12GraphicsCommandList10 * This);
35725
35726 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
35727 HRESULT ( STDMETHODCALLTYPE *Close )(
35728 ID3D12GraphicsCommandList10 * This);
35729
35730 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
35731 HRESULT ( STDMETHODCALLTYPE *Reset )(
35732 ID3D12GraphicsCommandList10 * This,
35733 _In_ ID3D12CommandAllocator *pAllocator,
35734 _In_opt_ ID3D12PipelineState *pInitialState);
35735
35736 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
35737 void ( STDMETHODCALLTYPE *ClearState )(
35738 ID3D12GraphicsCommandList10 * This,
35739 _In_opt_ ID3D12PipelineState *pPipelineState);
35740
35741 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
35742 void ( STDMETHODCALLTYPE *DrawInstanced )(
35743 ID3D12GraphicsCommandList10 * This,
35744 _In_ UINT VertexCountPerInstance,
35745 _In_ UINT InstanceCount,
35746 _In_ UINT StartVertexLocation,
35747 _In_ UINT StartInstanceLocation);
35748
35749 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
35750 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
35751 ID3D12GraphicsCommandList10 * This,
35752 _In_ UINT IndexCountPerInstance,
35753 _In_ UINT InstanceCount,
35754 _In_ UINT StartIndexLocation,
35755 _In_ INT BaseVertexLocation,
35756 _In_ UINT StartInstanceLocation);
35757
35758 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
35759 void ( STDMETHODCALLTYPE *Dispatch )(
35760 ID3D12GraphicsCommandList10 * This,
35761 _In_ UINT ThreadGroupCountX,
35762 _In_ UINT ThreadGroupCountY,
35763 _In_ UINT ThreadGroupCountZ);
35764
35765 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
35766 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
35767 ID3D12GraphicsCommandList10 * This,
35768 _In_ ID3D12Resource *pDstBuffer,
35769 UINT64 DstOffset,
35770 _In_ ID3D12Resource *pSrcBuffer,
35771 UINT64 SrcOffset,
35772 UINT64 NumBytes);
35773
35774 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
35775 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
35776 ID3D12GraphicsCommandList10 * This,
35777 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
35778 UINT DstX,
35779 UINT DstY,
35780 UINT DstZ,
35781 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
35782 _In_opt_ const D3D12_BOX *pSrcBox);
35783
35784 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
35785 void ( STDMETHODCALLTYPE *CopyResource )(
35786 ID3D12GraphicsCommandList10 * This,
35787 _In_ ID3D12Resource *pDstResource,
35788 _In_ ID3D12Resource *pSrcResource);
35789
35790 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
35791 void ( STDMETHODCALLTYPE *CopyTiles )(
35792 ID3D12GraphicsCommandList10 * This,
35793 _In_ ID3D12Resource *pTiledResource,
35794 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
35795 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
35796 _In_ ID3D12Resource *pBuffer,
35797 UINT64 BufferStartOffsetInBytes,
35798 D3D12_TILE_COPY_FLAGS Flags);
35799
35800 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
35801 void ( STDMETHODCALLTYPE *ResolveSubresource )(
35802 ID3D12GraphicsCommandList10 * This,
35803 _In_ ID3D12Resource *pDstResource,
35804 _In_ UINT DstSubresource,
35805 _In_ ID3D12Resource *pSrcResource,
35806 _In_ UINT SrcSubresource,
35807 _In_ DXGI_FORMAT Format);
35808
35809 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
35810 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
35811 ID3D12GraphicsCommandList10 * This,
35812 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
35813
35814 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
35815 void ( STDMETHODCALLTYPE *RSSetViewports )(
35816 ID3D12GraphicsCommandList10 * This,
35817 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
35818 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
35819
35820 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
35821 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
35822 ID3D12GraphicsCommandList10 * This,
35823 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
35824 _In_reads_( NumRects) const D3D12_RECT *pRects);
35825
35826 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
35827 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
35828 ID3D12GraphicsCommandList10 * This,
35829 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
35830
35831 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
35832 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
35833 ID3D12GraphicsCommandList10 * This,
35834 _In_ UINT StencilRef);
35835
35836 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
35837 void ( STDMETHODCALLTYPE *SetPipelineState )(
35838 ID3D12GraphicsCommandList10 * This,
35839 _In_ ID3D12PipelineState *pPipelineState);
35840
35841 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
35842 void ( STDMETHODCALLTYPE *ResourceBarrier )(
35843 ID3D12GraphicsCommandList10 * This,
35844 _In_ UINT NumBarriers,
35845 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
35846
35847 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
35848 void ( STDMETHODCALLTYPE *ExecuteBundle )(
35849 ID3D12GraphicsCommandList10 * This,
35850 _In_ ID3D12GraphicsCommandList *pCommandList);
35851
35852 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
35853 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
35854 ID3D12GraphicsCommandList10 * This,
35855 _In_ UINT NumDescriptorHeaps,
35856 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
35857
35858 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
35859 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
35860 ID3D12GraphicsCommandList10 * This,
35861 _In_opt_ ID3D12RootSignature *pRootSignature);
35862
35863 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
35864 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
35865 ID3D12GraphicsCommandList10 * This,
35866 _In_opt_ ID3D12RootSignature *pRootSignature);
35867
35868 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
35869 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
35870 ID3D12GraphicsCommandList10 * This,
35871 _In_ UINT RootParameterIndex,
35872 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
35873
35874 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
35875 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
35876 ID3D12GraphicsCommandList10 * This,
35877 _In_ UINT RootParameterIndex,
35878 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
35879
35880 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
35881 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
35882 ID3D12GraphicsCommandList10 * This,
35883 _In_ UINT RootParameterIndex,
35884 _In_ UINT SrcData,
35885 _In_ UINT DestOffsetIn32BitValues);
35886
35887 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
35888 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
35889 ID3D12GraphicsCommandList10 * This,
35890 _In_ UINT RootParameterIndex,
35891 _In_ UINT SrcData,
35892 _In_ UINT DestOffsetIn32BitValues);
35893
35894 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
35895 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
35896 ID3D12GraphicsCommandList10 * This,
35897 _In_ UINT RootParameterIndex,
35898 _In_ UINT Num32BitValuesToSet,
35899 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
35900 _In_ UINT DestOffsetIn32BitValues);
35901
35902 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
35903 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
35904 ID3D12GraphicsCommandList10 * This,
35905 _In_ UINT RootParameterIndex,
35906 _In_ UINT Num32BitValuesToSet,
35907 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
35908 _In_ UINT DestOffsetIn32BitValues);
35909
35910 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
35911 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
35912 ID3D12GraphicsCommandList10 * This,
35913 _In_ UINT RootParameterIndex,
35914 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35915
35916 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
35917 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
35918 ID3D12GraphicsCommandList10 * This,
35919 _In_ UINT RootParameterIndex,
35920 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35921
35922 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
35923 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
35924 ID3D12GraphicsCommandList10 * This,
35925 _In_ UINT RootParameterIndex,
35926 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35927
35928 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
35929 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
35930 ID3D12GraphicsCommandList10 * This,
35931 _In_ UINT RootParameterIndex,
35932 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35933
35934 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
35935 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
35936 ID3D12GraphicsCommandList10 * This,
35937 _In_ UINT RootParameterIndex,
35938 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35939
35940 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
35941 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
35942 ID3D12GraphicsCommandList10 * This,
35943 _In_ UINT RootParameterIndex,
35944 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35945
35946 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
35947 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
35948 ID3D12GraphicsCommandList10 * This,
35949 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
35950
35951 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
35952 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
35953 ID3D12GraphicsCommandList10 * This,
35954 _In_ UINT StartSlot,
35955 _In_ UINT NumViews,
35956 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
35957
35958 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
35959 void ( STDMETHODCALLTYPE *SOSetTargets )(
35960 ID3D12GraphicsCommandList10 * This,
35961 _In_ UINT StartSlot,
35962 _In_ UINT NumViews,
35963 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
35964
35965 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
35966 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
35967 ID3D12GraphicsCommandList10 * This,
35968 _In_ UINT NumRenderTargetDescriptors,
35969 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
35970 _In_ BOOL RTsSingleHandleToDescriptorRange,
35971 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
35972
35973 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
35974 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
35975 ID3D12GraphicsCommandList10 * This,
35976 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
35977 _In_ D3D12_CLEAR_FLAGS ClearFlags,
35978 _In_ FLOAT Depth,
35979 _In_ UINT8 Stencil,
35980 _In_ UINT NumRects,
35981 _In_reads_(NumRects) const D3D12_RECT *pRects);
35982
35983 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
35984 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
35985 ID3D12GraphicsCommandList10 * This,
35986 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
35987 _In_ const FLOAT ColorRGBA[ 4 ],
35988 _In_ UINT NumRects,
35989 _In_reads_(NumRects) const D3D12_RECT *pRects);
35990
35991 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
35992 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
35993 ID3D12GraphicsCommandList10 * This,
35994 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
35995 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
35996 _In_ ID3D12Resource *pResource,
35997 _In_ const UINT Values[ 4 ],
35998 _In_ UINT NumRects,
35999 _In_reads_(NumRects) const D3D12_RECT *pRects);
36000
36001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
36002 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
36003 ID3D12GraphicsCommandList10 * This,
36004 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
36005 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
36006 _In_ ID3D12Resource *pResource,
36007 _In_ const FLOAT Values[ 4 ],
36008 _In_ UINT NumRects,
36009 _In_reads_(NumRects) const D3D12_RECT *pRects);
36010
36011 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
36012 void ( STDMETHODCALLTYPE *DiscardResource )(
36013 ID3D12GraphicsCommandList10 * This,
36014 _In_ ID3D12Resource *pResource,
36015 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
36016
36017 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
36018 void ( STDMETHODCALLTYPE *BeginQuery )(
36019 ID3D12GraphicsCommandList10 * This,
36020 _In_ ID3D12QueryHeap *pQueryHeap,
36021 _In_ D3D12_QUERY_TYPE Type,
36022 _In_ UINT Index);
36023
36024 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
36025 void ( STDMETHODCALLTYPE *EndQuery )(
36026 ID3D12GraphicsCommandList10 * This,
36027 _In_ ID3D12QueryHeap *pQueryHeap,
36028 _In_ D3D12_QUERY_TYPE Type,
36029 _In_ UINT Index);
36030
36031 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
36032 void ( STDMETHODCALLTYPE *ResolveQueryData )(
36033 ID3D12GraphicsCommandList10 * This,
36034 _In_ ID3D12QueryHeap *pQueryHeap,
36035 _In_ D3D12_QUERY_TYPE Type,
36036 _In_ UINT StartIndex,
36037 _In_ UINT NumQueries,
36038 _In_ ID3D12Resource *pDestinationBuffer,
36039 _In_ UINT64 AlignedDestinationBufferOffset);
36040
36041 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
36042 void ( STDMETHODCALLTYPE *SetPredication )(
36043 ID3D12GraphicsCommandList10 * This,
36044 _In_opt_ ID3D12Resource *pBuffer,
36045 _In_ UINT64 AlignedBufferOffset,
36046 _In_ D3D12_PREDICATION_OP Operation);
36047
36048 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
36049 void ( STDMETHODCALLTYPE *SetMarker )(
36050 ID3D12GraphicsCommandList10 * This,
36051 UINT Metadata,
36052 _In_reads_bytes_opt_(Size) const void *pData,
36053 UINT Size);
36054
36055 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
36056 void ( STDMETHODCALLTYPE *BeginEvent )(
36057 ID3D12GraphicsCommandList10 * This,
36058 UINT Metadata,
36059 _In_reads_bytes_opt_(Size) const void *pData,
36060 UINT Size);
36061
36062 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
36063 void ( STDMETHODCALLTYPE *EndEvent )(
36064 ID3D12GraphicsCommandList10 * This);
36065
36066 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
36067 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
36068 ID3D12GraphicsCommandList10 * This,
36069 _In_ ID3D12CommandSignature *pCommandSignature,
36070 _In_ UINT MaxCommandCount,
36071 _In_ ID3D12Resource *pArgumentBuffer,
36072 _In_ UINT64 ArgumentBufferOffset,
36073 _In_opt_ ID3D12Resource *pCountBuffer,
36074 _In_ UINT64 CountBufferOffset);
36075
36076 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
36077 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
36078 ID3D12GraphicsCommandList10 * This,
36079 _In_ ID3D12Resource *pDstBuffer,
36080 UINT64 DstOffset,
36081 _In_ ID3D12Resource *pSrcBuffer,
36082 UINT64 SrcOffset,
36083 UINT Dependencies,
36084 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
36085 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
36086
36087 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
36088 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
36089 ID3D12GraphicsCommandList10 * This,
36090 _In_ ID3D12Resource *pDstBuffer,
36091 UINT64 DstOffset,
36092 _In_ ID3D12Resource *pSrcBuffer,
36093 UINT64 SrcOffset,
36094 UINT Dependencies,
36095 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
36096 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
36097
36098 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
36099 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
36100 ID3D12GraphicsCommandList10 * This,
36101 _In_ FLOAT Min,
36102 _In_ FLOAT Max);
36103
36104 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
36105 void ( STDMETHODCALLTYPE *SetSamplePositions )(
36106 ID3D12GraphicsCommandList10 * This,
36107 _In_ UINT NumSamplesPerPixel,
36108 _In_ UINT NumPixels,
36109 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
36110
36111 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
36112 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
36113 ID3D12GraphicsCommandList10 * This,
36114 _In_ ID3D12Resource *pDstResource,
36115 _In_ UINT DstSubresource,
36116 _In_ UINT DstX,
36117 _In_ UINT DstY,
36118 _In_ ID3D12Resource *pSrcResource,
36119 _In_ UINT SrcSubresource,
36120 _In_opt_ D3D12_RECT *pSrcRect,
36121 _In_ DXGI_FORMAT Format,
36122 _In_ D3D12_RESOLVE_MODE ResolveMode);
36123
36124 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
36125 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
36126 ID3D12GraphicsCommandList10 * This,
36127 _In_ UINT Mask);
36128
36129 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
36130 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
36131 ID3D12GraphicsCommandList10 * This,
36132 UINT Count,
36133 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
36134 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
36135
36136 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
36137 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
36138 ID3D12GraphicsCommandList10 * This,
36139 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
36140
36141 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
36142 void ( STDMETHODCALLTYPE *BeginRenderPass )(
36143 ID3D12GraphicsCommandList10 * This,
36144 _In_ UINT NumRenderTargets,
36145 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
36146 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
36147 D3D12_RENDER_PASS_FLAGS Flags);
36148
36149 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
36150 void ( STDMETHODCALLTYPE *EndRenderPass )(
36151 ID3D12GraphicsCommandList10 * This);
36152
36153 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
36154 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
36155 ID3D12GraphicsCommandList10 * This,
36156 _In_ ID3D12MetaCommand *pMetaCommand,
36157 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
36158 _In_ SIZE_T InitializationParametersDataSizeInBytes);
36159
36160 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
36161 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
36162 ID3D12GraphicsCommandList10 * This,
36163 _In_ ID3D12MetaCommand *pMetaCommand,
36164 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
36165 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
36166
36167 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
36168 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
36169 ID3D12GraphicsCommandList10 * This,
36170 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
36171 _In_ UINT NumPostbuildInfoDescs,
36172 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
36173
36174 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
36175 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
36176 ID3D12GraphicsCommandList10 * This,
36177 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
36178 _In_ UINT NumSourceAccelerationStructures,
36179 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
36180
36181 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
36182 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
36183 ID3D12GraphicsCommandList10 * This,
36184 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
36185 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
36186 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
36187
36188 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
36189 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
36190 ID3D12GraphicsCommandList10 * This,
36191 _In_ ID3D12StateObject *pStateObject);
36192
36193 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
36194 void ( STDMETHODCALLTYPE *DispatchRays )(
36195 ID3D12GraphicsCommandList10 * This,
36196 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
36197
36198 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
36199 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
36200 ID3D12GraphicsCommandList10 * This,
36201 _In_ D3D12_SHADING_RATE baseShadingRate,
36202 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
36203
36204 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
36205 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
36206 ID3D12GraphicsCommandList10 * This,
36207 _In_opt_ ID3D12Resource *shadingRateImage);
36208
36209 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
36210 void ( STDMETHODCALLTYPE *DispatchMesh )(
36211 ID3D12GraphicsCommandList10 * This,
36212 _In_ UINT ThreadGroupCountX,
36213 _In_ UINT ThreadGroupCountY,
36214 _In_ UINT ThreadGroupCountZ);
36215
36216 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
36217 void ( STDMETHODCALLTYPE *Barrier )(
36218 ID3D12GraphicsCommandList10 * This,
36219 UINT32 NumBarrierGroups,
36220 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
36221
36222 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
36223 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
36224 ID3D12GraphicsCommandList10 * This,
36225 _In_ UINT FrontStencilRef,
36226 _In_ UINT BackStencilRef);
36227
36228 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias)
36229 void ( STDMETHODCALLTYPE *RSSetDepthBias )(
36230 ID3D12GraphicsCommandList10 * This,
36231 _In_ FLOAT DepthBias,
36232 _In_ FLOAT DepthBiasClamp,
36233 _In_ FLOAT SlopeScaledDepthBias);
36234
36235 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue)
36236 void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )(
36237 ID3D12GraphicsCommandList10 * This,
36238 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue);
36239
36240 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, SetProgram)
36241 void ( STDMETHODCALLTYPE *SetProgram )(
36242 ID3D12GraphicsCommandList10 * This,
36243 _In_ const D3D12_SET_PROGRAM_DESC *pDesc);
36244
36245 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, DispatchGraph)
36246 void ( STDMETHODCALLTYPE *DispatchGraph )(
36247 ID3D12GraphicsCommandList10 * This,
36248 _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc);
36249
36250 END_INTERFACE
36251 } ID3D12GraphicsCommandList10Vtbl;
36252
36253 interface ID3D12GraphicsCommandList10
36254 {
36255 CONST_VTBL struct ID3D12GraphicsCommandList10Vtbl *lpVtbl;
36256 };
36257
36258
36259
36260#ifdef COBJMACROS
36261
36262
36263#define ID3D12GraphicsCommandList10_QueryInterface(This,riid,ppvObject) \
36264 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
36265
36266#define ID3D12GraphicsCommandList10_AddRef(This) \
36267 ( (This)->lpVtbl -> AddRef(This) )
36268
36269#define ID3D12GraphicsCommandList10_Release(This) \
36270 ( (This)->lpVtbl -> Release(This) )
36271
36272
36273#define ID3D12GraphicsCommandList10_GetPrivateData(This,guid,pDataSize,pData) \
36274 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
36275
36276#define ID3D12GraphicsCommandList10_SetPrivateData(This,guid,DataSize,pData) \
36277 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
36278
36279#define ID3D12GraphicsCommandList10_SetPrivateDataInterface(This,guid,pData) \
36280 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
36281
36282#define ID3D12GraphicsCommandList10_SetName(This,Name) \
36283 ( (This)->lpVtbl -> SetName(This,Name) )
36284
36285
36286#define ID3D12GraphicsCommandList10_GetDevice(This,riid,ppvDevice) \
36287 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
36288
36289
36290#define ID3D12GraphicsCommandList10_GetType(This) \
36291 ( (This)->lpVtbl -> GetType(This) )
36292
36293
36294#define ID3D12GraphicsCommandList10_Close(This) \
36295 ( (This)->lpVtbl -> Close(This) )
36296
36297#define ID3D12GraphicsCommandList10_Reset(This,pAllocator,pInitialState) \
36298 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
36299
36300#define ID3D12GraphicsCommandList10_ClearState(This,pPipelineState) \
36301 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
36302
36303#define ID3D12GraphicsCommandList10_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
36304 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
36305
36306#define ID3D12GraphicsCommandList10_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
36307 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
36308
36309#define ID3D12GraphicsCommandList10_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
36310 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
36311
36312#define ID3D12GraphicsCommandList10_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
36313 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
36314
36315#define ID3D12GraphicsCommandList10_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
36316 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
36317
36318#define ID3D12GraphicsCommandList10_CopyResource(This,pDstResource,pSrcResource) \
36319 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
36320
36321#define ID3D12GraphicsCommandList10_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
36322 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
36323
36324#define ID3D12GraphicsCommandList10_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
36325 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
36326
36327#define ID3D12GraphicsCommandList10_IASetPrimitiveTopology(This,PrimitiveTopology) \
36328 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
36329
36330#define ID3D12GraphicsCommandList10_RSSetViewports(This,NumViewports,pViewports) \
36331 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
36332
36333#define ID3D12GraphicsCommandList10_RSSetScissorRects(This,NumRects,pRects) \
36334 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
36335
36336#define ID3D12GraphicsCommandList10_OMSetBlendFactor(This,BlendFactor) \
36337 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
36338
36339#define ID3D12GraphicsCommandList10_OMSetStencilRef(This,StencilRef) \
36340 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
36341
36342#define ID3D12GraphicsCommandList10_SetPipelineState(This,pPipelineState) \
36343 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
36344
36345#define ID3D12GraphicsCommandList10_ResourceBarrier(This,NumBarriers,pBarriers) \
36346 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
36347
36348#define ID3D12GraphicsCommandList10_ExecuteBundle(This,pCommandList) \
36349 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
36350
36351#define ID3D12GraphicsCommandList10_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
36352 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
36353
36354#define ID3D12GraphicsCommandList10_SetComputeRootSignature(This,pRootSignature) \
36355 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
36356
36357#define ID3D12GraphicsCommandList10_SetGraphicsRootSignature(This,pRootSignature) \
36358 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
36359
36360#define ID3D12GraphicsCommandList10_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
36361 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
36362
36363#define ID3D12GraphicsCommandList10_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
36364 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
36365
36366#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
36367 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
36368
36369#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
36370 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
36371
36372#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
36373 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
36374
36375#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
36376 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
36377
36378#define ID3D12GraphicsCommandList10_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
36379 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
36380
36381#define ID3D12GraphicsCommandList10_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
36382 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
36383
36384#define ID3D12GraphicsCommandList10_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
36385 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
36386
36387#define ID3D12GraphicsCommandList10_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
36388 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
36389
36390#define ID3D12GraphicsCommandList10_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
36391 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
36392
36393#define ID3D12GraphicsCommandList10_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
36394 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
36395
36396#define ID3D12GraphicsCommandList10_IASetIndexBuffer(This,pView) \
36397 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
36398
36399#define ID3D12GraphicsCommandList10_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
36400 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
36401
36402#define ID3D12GraphicsCommandList10_SOSetTargets(This,StartSlot,NumViews,pViews) \
36403 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
36404
36405#define ID3D12GraphicsCommandList10_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
36406 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
36407
36408#define ID3D12GraphicsCommandList10_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
36409 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
36410
36411#define ID3D12GraphicsCommandList10_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
36412 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
36413
36414#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
36415 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
36416
36417#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
36418 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
36419
36420#define ID3D12GraphicsCommandList10_DiscardResource(This,pResource,pRegion) \
36421 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
36422
36423#define ID3D12GraphicsCommandList10_BeginQuery(This,pQueryHeap,Type,Index) \
36424 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
36425
36426#define ID3D12GraphicsCommandList10_EndQuery(This,pQueryHeap,Type,Index) \
36427 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
36428
36429#define ID3D12GraphicsCommandList10_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
36430 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
36431
36432#define ID3D12GraphicsCommandList10_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
36433 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
36434
36435#define ID3D12GraphicsCommandList10_SetMarker(This,Metadata,pData,Size) \
36436 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
36437
36438#define ID3D12GraphicsCommandList10_BeginEvent(This,Metadata,pData,Size) \
36439 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
36440
36441#define ID3D12GraphicsCommandList10_EndEvent(This) \
36442 ( (This)->lpVtbl -> EndEvent(This) )
36443
36444#define ID3D12GraphicsCommandList10_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
36445 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
36446
36447
36448#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
36449 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
36450
36451#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
36452 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
36453
36454#define ID3D12GraphicsCommandList10_OMSetDepthBounds(This,Min,Max) \
36455 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
36456
36457#define ID3D12GraphicsCommandList10_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
36458 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
36459
36460#define ID3D12GraphicsCommandList10_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
36461 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
36462
36463#define ID3D12GraphicsCommandList10_SetViewInstanceMask(This,Mask) \
36464 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
36465
36466
36467#define ID3D12GraphicsCommandList10_WriteBufferImmediate(This,Count,pParams,pModes) \
36468 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
36469
36470
36471#define ID3D12GraphicsCommandList10_SetProtectedResourceSession(This,pProtectedResourceSession) \
36472 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
36473
36474
36475#define ID3D12GraphicsCommandList10_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
36476 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
36477
36478#define ID3D12GraphicsCommandList10_EndRenderPass(This) \
36479 ( (This)->lpVtbl -> EndRenderPass(This) )
36480
36481#define ID3D12GraphicsCommandList10_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
36482 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
36483
36484#define ID3D12GraphicsCommandList10_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
36485 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
36486
36487#define ID3D12GraphicsCommandList10_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
36488 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
36489
36490#define ID3D12GraphicsCommandList10_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
36491 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
36492
36493#define ID3D12GraphicsCommandList10_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
36494 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
36495
36496#define ID3D12GraphicsCommandList10_SetPipelineState1(This,pStateObject) \
36497 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
36498
36499#define ID3D12GraphicsCommandList10_DispatchRays(This,pDesc) \
36500 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
36501
36502
36503#define ID3D12GraphicsCommandList10_RSSetShadingRate(This,baseShadingRate,combiners) \
36504 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
36505
36506#define ID3D12GraphicsCommandList10_RSSetShadingRateImage(This,shadingRateImage) \
36507 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
36508
36509
36510#define ID3D12GraphicsCommandList10_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
36511 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
36512
36513
36514#define ID3D12GraphicsCommandList10_Barrier(This,NumBarrierGroups,pBarrierGroups) \
36515 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
36516
36517
36518#define ID3D12GraphicsCommandList10_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
36519 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
36520
36521
36522#define ID3D12GraphicsCommandList10_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \
36523 ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) )
36524
36525#define ID3D12GraphicsCommandList10_IASetIndexBufferStripCutValue(This,IBStripCutValue) \
36526 ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) )
36527
36528
36529#define ID3D12GraphicsCommandList10_SetProgram(This,pDesc) \
36530 ( (This)->lpVtbl -> SetProgram(This,pDesc) )
36531
36532#define ID3D12GraphicsCommandList10_DispatchGraph(This,pDesc) \
36533 ( (This)->lpVtbl -> DispatchGraph(This,pDesc) )
36534
36535#endif /* COBJMACROS */
36536
36537
36538#endif /* C style interface */
36539
36540
36541
36542
36543#endif /* __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ */
36544
36545
36546#ifndef __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__
36547#define __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__
36548
36549/* interface ID3D12DSRDeviceFactory */
36550/* [unique][local][object][uuid] */
36551
36552
36553EXTERN_C const IID IID_ID3D12DSRDeviceFactory;
36554
36555#if defined(__cplusplus) && !defined(CINTERFACE)
36556
36557 MIDL_INTERFACE("f343d1a0-afe3-439f-b13d-cd87a43b70ca")
36558 ID3D12DSRDeviceFactory : public IUnknown
36559 {
36560 public:
36561 virtual HRESULT STDMETHODCALLTYPE CreateDSRDevice(
36562 ID3D12Device *pD3D12Device,
36563 UINT NodeMask,
36564 REFIID riid,
36565 _COM_Outptr_ void **ppvDSRDevice) = 0;
36566
36567 };
36568
36569
36570#else /* C style interface */
36571
36572 typedef struct ID3D12DSRDeviceFactoryVtbl
36573 {
36574 BEGIN_INTERFACE
36575
36576 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
36577 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
36578 ID3D12DSRDeviceFactory * This,
36579 REFIID riid,
36580 _COM_Outptr_ void **ppvObject);
36581
36582 DECLSPEC_XFGVIRT(IUnknown, AddRef)
36583 ULONG ( STDMETHODCALLTYPE *AddRef )(
36584 ID3D12DSRDeviceFactory * This);
36585
36586 DECLSPEC_XFGVIRT(IUnknown, Release)
36587 ULONG ( STDMETHODCALLTYPE *Release )(
36588 ID3D12DSRDeviceFactory * This);
36589
36590 DECLSPEC_XFGVIRT(ID3D12DSRDeviceFactory, CreateDSRDevice)
36591 HRESULT ( STDMETHODCALLTYPE *CreateDSRDevice )(
36592 ID3D12DSRDeviceFactory * This,
36593 ID3D12Device *pD3D12Device,
36594 UINT NodeMask,
36595 REFIID riid,
36596 _COM_Outptr_ void **ppvDSRDevice);
36597
36598 END_INTERFACE
36599 } ID3D12DSRDeviceFactoryVtbl;
36600
36601 interface ID3D12DSRDeviceFactory
36602 {
36603 CONST_VTBL struct ID3D12DSRDeviceFactoryVtbl *lpVtbl;
36604 };
36605
36606
36607
36608#ifdef COBJMACROS
36609
36610
36611#define ID3D12DSRDeviceFactory_QueryInterface(This,riid,ppvObject) \
36612 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
36613
36614#define ID3D12DSRDeviceFactory_AddRef(This) \
36615 ( (This)->lpVtbl -> AddRef(This) )
36616
36617#define ID3D12DSRDeviceFactory_Release(This) \
36618 ( (This)->lpVtbl -> Release(This) )
36619
36620
36621#define ID3D12DSRDeviceFactory_CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) \
36622 ( (This)->lpVtbl -> CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) )
36623
36624#endif /* COBJMACROS */
36625
36626
36627#endif /* C style interface */
36628
36629
36630
36631
36632#endif /* __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ */
36633
36634
36635#ifndef __ID3D12GBVDiagnostics_INTERFACE_DEFINED__
36636#define __ID3D12GBVDiagnostics_INTERFACE_DEFINED__
36637
36638/* interface ID3D12GBVDiagnostics */
36639/* [unique][local][object][uuid] */
36640
36641
36642EXTERN_C const IID IID_ID3D12GBVDiagnostics;
36643
36644#if defined(__cplusplus) && !defined(CINTERFACE)
36645
36646 MIDL_INTERFACE("597985ab-9b75-4dbb-be23-0761195bebee")
36647 ID3D12GBVDiagnostics : public IUnknown
36648 {
36649 public:
36650 virtual HRESULT STDMETHODCALLTYPE GetGBVEntireSubresourceStatesData(
36651 _In_ ID3D12Resource *pResource,
36652 _Out_writes_bytes_(DataSize) int *pData,
36653 UINT DataSize) = 0;
36654
36655 virtual HRESULT STDMETHODCALLTYPE GetGBVSubresourceState(
36656 _In_ ID3D12Resource *pResource,
36657 UINT Subresource,
36658 _Out_ int *pData) = 0;
36659
36660 virtual HRESULT STDMETHODCALLTYPE GetGBVResourceUniformState(
36661 _In_ ID3D12Resource *pResource,
36662 _Out_ int *pData) = 0;
36663
36664 virtual HRESULT STDMETHODCALLTYPE GetGBVResourceInfo(
36665 _In_ ID3D12Resource *pResource,
36666 _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc,
36667 _In_opt_ UINT32 *pResourceHash,
36668 _In_opt_ UINT32 *pSubresourceStatesByteOffset) = 0;
36669
36670 virtual void STDMETHODCALLTYPE GBVReserved0( void) = 0;
36671
36672 virtual void STDMETHODCALLTYPE GBVReserved1( void) = 0;
36673
36674 };
36675
36676
36677#else /* C style interface */
36678
36679 typedef struct ID3D12GBVDiagnosticsVtbl
36680 {
36681 BEGIN_INTERFACE
36682
36683 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
36684 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
36685 ID3D12GBVDiagnostics * This,
36686 REFIID riid,
36687 _COM_Outptr_ void **ppvObject);
36688
36689 DECLSPEC_XFGVIRT(IUnknown, AddRef)
36690 ULONG ( STDMETHODCALLTYPE *AddRef )(
36691 ID3D12GBVDiagnostics * This);
36692
36693 DECLSPEC_XFGVIRT(IUnknown, Release)
36694 ULONG ( STDMETHODCALLTYPE *Release )(
36695 ID3D12GBVDiagnostics * This);
36696
36697 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVEntireSubresourceStatesData)
36698 HRESULT ( STDMETHODCALLTYPE *GetGBVEntireSubresourceStatesData )(
36699 ID3D12GBVDiagnostics * This,
36700 _In_ ID3D12Resource *pResource,
36701 _Out_writes_bytes_(DataSize) int *pData,
36702 UINT DataSize);
36703
36704 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVSubresourceState)
36705 HRESULT ( STDMETHODCALLTYPE *GetGBVSubresourceState )(
36706 ID3D12GBVDiagnostics * This,
36707 _In_ ID3D12Resource *pResource,
36708 UINT Subresource,
36709 _Out_ int *pData);
36710
36711 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceUniformState)
36712 HRESULT ( STDMETHODCALLTYPE *GetGBVResourceUniformState )(
36713 ID3D12GBVDiagnostics * This,
36714 _In_ ID3D12Resource *pResource,
36715 _Out_ int *pData);
36716
36717 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceInfo)
36718 HRESULT ( STDMETHODCALLTYPE *GetGBVResourceInfo )(
36719 ID3D12GBVDiagnostics * This,
36720 _In_ ID3D12Resource *pResource,
36721 _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc,
36722 _In_opt_ UINT32 *pResourceHash,
36723 _In_opt_ UINT32 *pSubresourceStatesByteOffset);
36724
36725 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved0)
36726 void ( STDMETHODCALLTYPE *GBVReserved0 )(
36727 ID3D12GBVDiagnostics * This);
36728
36729 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved1)
36730 void ( STDMETHODCALLTYPE *GBVReserved1 )(
36731 ID3D12GBVDiagnostics * This);
36732
36733 END_INTERFACE
36734 } ID3D12GBVDiagnosticsVtbl;
36735
36736 interface ID3D12GBVDiagnostics
36737 {
36738 CONST_VTBL struct ID3D12GBVDiagnosticsVtbl *lpVtbl;
36739 };
36740
36741
36742
36743#ifdef COBJMACROS
36744
36745
36746#define ID3D12GBVDiagnostics_QueryInterface(This,riid,ppvObject) \
36747 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
36748
36749#define ID3D12GBVDiagnostics_AddRef(This) \
36750 ( (This)->lpVtbl -> AddRef(This) )
36751
36752#define ID3D12GBVDiagnostics_Release(This) \
36753 ( (This)->lpVtbl -> Release(This) )
36754
36755
36756#define ID3D12GBVDiagnostics_GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) \
36757 ( (This)->lpVtbl -> GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) )
36758
36759#define ID3D12GBVDiagnostics_GetGBVSubresourceState(This,pResource,Subresource,pData) \
36760 ( (This)->lpVtbl -> GetGBVSubresourceState(This,pResource,Subresource,pData) )
36761
36762#define ID3D12GBVDiagnostics_GetGBVResourceUniformState(This,pResource,pData) \
36763 ( (This)->lpVtbl -> GetGBVResourceUniformState(This,pResource,pData) )
36764
36765#define ID3D12GBVDiagnostics_GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) \
36766 ( (This)->lpVtbl -> GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) )
36767
36768#define ID3D12GBVDiagnostics_GBVReserved0(This) \
36769 ( (This)->lpVtbl -> GBVReserved0(This) )
36770
36771#define ID3D12GBVDiagnostics_GBVReserved1(This) \
36772 ( (This)->lpVtbl -> GBVReserved1(This) )
36773
36774#endif /* COBJMACROS */
36775
36776
36777#endif /* C style interface */
36778
36779
36780
36781
36782#endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */
36783
36784
36785/* interface __MIDL_itf_d3d12_0000_0085 */
36786/* [local] */
36787
36788#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
36789#pragma endregion
36790DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);
36791DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);
36792DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);
36793DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);
36794DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);
36795DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);
36796DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);
36797DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);
36798DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24);
36799DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76);
36800DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);
36801DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45);
36802DEFINE_GUID(IID_ID3D12PipelineState1,0x5646804c,0x9638,0x48f7,0x91,0x82,0xb3,0xee,0x5a,0x6b,0x60,0xfb);
36803DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51);
36804DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4);
36805DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1);
36806DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5);
36807DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);
36808DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
36809DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28);
36810DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);
36811DEFINE_GUID(IID_ID3D12CommandQueue1,0x3a3c3165,0x0ee7,0x4b8e,0xa0,0xaf,0x63,0x56,0xb4,0xc3,0xbb,0xb9);
36812DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);
36813DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);
36814DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3);
36815DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);
36816DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);
36817DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);
36818DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);
36819DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);
36820DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);
36821DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);
36822DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);
36823DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);
36824DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);
36825DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);
36826DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38);
36827DEFINE_GUID(IID_ID3D12StateObjectProperties2,0xd5e82917,0xf0f1,0x44cf,0xae,0x5e,0xce,0x22,0x2d,0xd0,0xb8,0x84);
36828DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57);
36829DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);
36830DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63);
36831DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B);
36832DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea);
36833DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71);
36834DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06);
36835DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54);
36836DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc);
36837DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09);
36838DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b);
36839DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3);
36840DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);
36841DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95);
36842DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);
36843DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);
36844DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);
36845DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);
36846DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8);
36847DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);
36848DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31);
36849DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39);
36850DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5);
36851DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e);
36852DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23);
36853DEFINE_GUID(IID_ID3D12StateObjectDatabase,0xc56060b7,0xb5fc,0x4135,0x98,0xe0,0xa1,0xe9,0x99,0x7e,0xac,0xe0);
36854DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76);
36855DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);
36856DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0);
36857DEFINE_GUID(IID_ID3D12Tools2,0x01d393c5,0xc9b0,0x42a1,0x95,0x8c,0xc2,0x6b,0x02,0xd4,0xd0,0x97);
36858DEFINE_GUID(IID_ID3D12PageableTools,0x8f1359db,0xd8d1,0x42f9,0xb5,0xcf,0x79,0xf4,0xcb,0xad,0x0d,0x3d);
36859DEFINE_GUID(IID_ID3D12DeviceTools,0x2ea68e9c,0x19c3,0x4e47,0xa1,0x09,0x6c,0xda,0xdf,0xf0,0xac,0xa9);
36860DEFINE_GUID(IID_ID3D12DeviceTools1,0xe30e9fc7,0xe641,0x4d6e,0x8a,0x81,0x9d,0xd9,0x20,0x6e,0xc4,0x7a);
36861DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7);
36862DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f);
36863DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb);
36864DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad);
36865DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56);
36866DEFINE_GUID(IID_ID3D12StateObjectDatabaseFactory,0xf5b066f0,0x648a,0x4611,0xbd,0x41,0x27,0xfd,0x09,0x48,0xb9,0xeb);
36867DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea);
36868DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80);
36869DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1);
36870DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51);
36871DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1);
36872DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc);
36873DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0x87,0xa4,0x3b,0x70,0xca);
36874DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee);
36875
36876
36877extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_c_ifspec;
36878extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_s_ifspec;
36879
36880/* Additional Prototypes for ALL interfaces */
36881
36882/* end of Additional Prototypes */
36883
36884#ifdef __cplusplus
36885}
36886#endif
36887
36888#endif
36889
36890