master
1/*** Autogenerated by WIDL 10.4 from include/d3d12.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __d3d12_h__
17#define __d3d12_h__
18
19/* Forward declarations */
20
21#ifndef __ID3D12Object_FWD_DEFINED__
22#define __ID3D12Object_FWD_DEFINED__
23typedef interface ID3D12Object ID3D12Object;
24#ifdef __cplusplus
25interface ID3D12Object;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __ID3D12DeviceChild_FWD_DEFINED__
30#define __ID3D12DeviceChild_FWD_DEFINED__
31typedef interface ID3D12DeviceChild ID3D12DeviceChild;
32#ifdef __cplusplus
33interface ID3D12DeviceChild;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __ID3D12Pageable_FWD_DEFINED__
38#define __ID3D12Pageable_FWD_DEFINED__
39typedef interface ID3D12Pageable ID3D12Pageable;
40#ifdef __cplusplus
41interface ID3D12Pageable;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __ID3D12Heap_FWD_DEFINED__
46#define __ID3D12Heap_FWD_DEFINED__
47typedef interface ID3D12Heap ID3D12Heap;
48#ifdef __cplusplus
49interface ID3D12Heap;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __ID3D12Resource_FWD_DEFINED__
54#define __ID3D12Resource_FWD_DEFINED__
55typedef interface ID3D12Resource ID3D12Resource;
56#ifdef __cplusplus
57interface ID3D12Resource;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __ID3D12CommandList_FWD_DEFINED__
62#define __ID3D12CommandList_FWD_DEFINED__
63typedef interface ID3D12CommandList ID3D12CommandList;
64#ifdef __cplusplus
65interface ID3D12CommandList;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
70#define __ID3D12DescriptorHeap_FWD_DEFINED__
71typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
72#ifdef __cplusplus
73interface ID3D12DescriptorHeap;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __ID3D12QueryHeap_FWD_DEFINED__
78#define __ID3D12QueryHeap_FWD_DEFINED__
79typedef interface ID3D12QueryHeap ID3D12QueryHeap;
80#ifdef __cplusplus
81interface ID3D12QueryHeap;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __ID3D12CommandSignature_FWD_DEFINED__
86#define __ID3D12CommandSignature_FWD_DEFINED__
87typedef interface ID3D12CommandSignature ID3D12CommandSignature;
88#ifdef __cplusplus
89interface ID3D12CommandSignature;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
94#define __ID3D12GraphicsCommandList_FWD_DEFINED__
95typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
96#ifdef __cplusplus
97interface ID3D12GraphicsCommandList;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
102#define __ID3D12GraphicsCommandList1_FWD_DEFINED__
103typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1;
104#ifdef __cplusplus
105interface ID3D12GraphicsCommandList1;
106#endif /* __cplusplus */
107#endif
108
109#ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__
110#define __ID3D12GraphicsCommandList2_FWD_DEFINED__
111typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2;
112#ifdef __cplusplus
113interface ID3D12GraphicsCommandList2;
114#endif /* __cplusplus */
115#endif
116
117#ifndef __ID3D12ProtectedSession_FWD_DEFINED__
118#define __ID3D12ProtectedSession_FWD_DEFINED__
119typedef interface ID3D12ProtectedSession ID3D12ProtectedSession;
120#ifdef __cplusplus
121interface ID3D12ProtectedSession;
122#endif /* __cplusplus */
123#endif
124
125#ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__
126#define __ID3D12ProtectedResourceSession_FWD_DEFINED__
127typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession;
128#ifdef __cplusplus
129interface ID3D12ProtectedResourceSession;
130#endif /* __cplusplus */
131#endif
132
133#ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__
134#define __ID3D12GraphicsCommandList3_FWD_DEFINED__
135typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3;
136#ifdef __cplusplus
137interface ID3D12GraphicsCommandList3;
138#endif /* __cplusplus */
139#endif
140
141#ifndef __ID3D12CommandQueue_FWD_DEFINED__
142#define __ID3D12CommandQueue_FWD_DEFINED__
143typedef interface ID3D12CommandQueue ID3D12CommandQueue;
144#ifdef __cplusplus
145interface ID3D12CommandQueue;
146#endif /* __cplusplus */
147#endif
148
149#ifndef __ID3D12RootSignature_FWD_DEFINED__
150#define __ID3D12RootSignature_FWD_DEFINED__
151typedef interface ID3D12RootSignature ID3D12RootSignature;
152#ifdef __cplusplus
153interface ID3D12RootSignature;
154#endif /* __cplusplus */
155#endif
156
157#ifndef __ID3D12PipelineState_FWD_DEFINED__
158#define __ID3D12PipelineState_FWD_DEFINED__
159typedef interface ID3D12PipelineState ID3D12PipelineState;
160#ifdef __cplusplus
161interface ID3D12PipelineState;
162#endif /* __cplusplus */
163#endif
164
165#ifndef __ID3D12Fence_FWD_DEFINED__
166#define __ID3D12Fence_FWD_DEFINED__
167typedef interface ID3D12Fence ID3D12Fence;
168#ifdef __cplusplus
169interface ID3D12Fence;
170#endif /* __cplusplus */
171#endif
172
173#ifndef __ID3D12Fence1_FWD_DEFINED__
174#define __ID3D12Fence1_FWD_DEFINED__
175typedef interface ID3D12Fence1 ID3D12Fence1;
176#ifdef __cplusplus
177interface ID3D12Fence1;
178#endif /* __cplusplus */
179#endif
180
181#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
182#define __ID3D12CommandAllocator_FWD_DEFINED__
183typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
184#ifdef __cplusplus
185interface ID3D12CommandAllocator;
186#endif /* __cplusplus */
187#endif
188
189#ifndef __ID3D12Device_FWD_DEFINED__
190#define __ID3D12Device_FWD_DEFINED__
191typedef interface ID3D12Device ID3D12Device;
192#ifdef __cplusplus
193interface ID3D12Device;
194#endif /* __cplusplus */
195#endif
196
197#ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
198#define __ID3D12PipelineLibrary_FWD_DEFINED__
199typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary;
200#ifdef __cplusplus
201interface ID3D12PipelineLibrary;
202#endif /* __cplusplus */
203#endif
204
205#ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__
206#define __ID3D12PipelineLibrary1_FWD_DEFINED__
207typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1;
208#ifdef __cplusplus
209interface ID3D12PipelineLibrary1;
210#endif /* __cplusplus */
211#endif
212
213#ifndef __ID3D12Device1_FWD_DEFINED__
214#define __ID3D12Device1_FWD_DEFINED__
215typedef interface ID3D12Device1 ID3D12Device1;
216#ifdef __cplusplus
217interface ID3D12Device1;
218#endif /* __cplusplus */
219#endif
220
221#ifndef __ID3D12Device2_FWD_DEFINED__
222#define __ID3D12Device2_FWD_DEFINED__
223typedef interface ID3D12Device2 ID3D12Device2;
224#ifdef __cplusplus
225interface ID3D12Device2;
226#endif /* __cplusplus */
227#endif
228
229#ifndef __ID3D12Device3_FWD_DEFINED__
230#define __ID3D12Device3_FWD_DEFINED__
231typedef interface ID3D12Device3 ID3D12Device3;
232#ifdef __cplusplus
233interface ID3D12Device3;
234#endif /* __cplusplus */
235#endif
236
237#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
238#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
239typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer;
240#ifdef __cplusplus
241interface ID3D12RootSignatureDeserializer;
242#endif /* __cplusplus */
243#endif
244
245#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
246#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
247typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
248#ifdef __cplusplus
249interface ID3D12VersionedRootSignatureDeserializer;
250#endif /* __cplusplus */
251#endif
252
253#ifndef __ID3D12Device4_FWD_DEFINED__
254#define __ID3D12Device4_FWD_DEFINED__
255typedef interface ID3D12Device4 ID3D12Device4;
256#ifdef __cplusplus
257interface ID3D12Device4;
258#endif /* __cplusplus */
259#endif
260
261#ifndef __ID3D12LifetimeOwner_FWD_DEFINED__
262#define __ID3D12LifetimeOwner_FWD_DEFINED__
263typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner;
264#ifdef __cplusplus
265interface ID3D12LifetimeOwner;
266#endif /* __cplusplus */
267#endif
268
269#ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__
270#define __ID3D12SwapChainAssistant_FWD_DEFINED__
271typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant;
272#ifdef __cplusplus
273interface ID3D12SwapChainAssistant;
274#endif /* __cplusplus */
275#endif
276
277#ifndef __ID3D12LifetimeTracker_FWD_DEFINED__
278#define __ID3D12LifetimeTracker_FWD_DEFINED__
279typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker;
280#ifdef __cplusplus
281interface ID3D12LifetimeTracker;
282#endif /* __cplusplus */
283#endif
284
285#ifndef __ID3D12StateObject_FWD_DEFINED__
286#define __ID3D12StateObject_FWD_DEFINED__
287typedef interface ID3D12StateObject ID3D12StateObject;
288#ifdef __cplusplus
289interface ID3D12StateObject;
290#endif /* __cplusplus */
291#endif
292
293#ifndef __ID3D12StateObjectProperties_FWD_DEFINED__
294#define __ID3D12StateObjectProperties_FWD_DEFINED__
295typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties;
296#ifdef __cplusplus
297interface ID3D12StateObjectProperties;
298#endif /* __cplusplus */
299#endif
300
301#ifndef __ID3D12Device5_FWD_DEFINED__
302#define __ID3D12Device5_FWD_DEFINED__
303typedef interface ID3D12Device5 ID3D12Device5;
304#ifdef __cplusplus
305interface ID3D12Device5;
306#endif /* __cplusplus */
307#endif
308
309#ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
310#define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
311typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings;
312#ifdef __cplusplus
313interface ID3D12DeviceRemovedExtendedDataSettings;
314#endif /* __cplusplus */
315#endif
316
317#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
318#define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
319typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1;
320#ifdef __cplusplus
321interface ID3D12DeviceRemovedExtendedDataSettings1;
322#endif /* __cplusplus */
323#endif
324
325#ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
326#define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
327typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData;
328#ifdef __cplusplus
329interface ID3D12DeviceRemovedExtendedData;
330#endif /* __cplusplus */
331#endif
332
333#ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
334#define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
335typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1;
336#ifdef __cplusplus
337interface ID3D12DeviceRemovedExtendedData1;
338#endif /* __cplusplus */
339#endif
340
341#ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
342#define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
343typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2;
344#ifdef __cplusplus
345interface ID3D12DeviceRemovedExtendedData2;
346#endif /* __cplusplus */
347#endif
348
349#ifndef __ID3D12Device6_FWD_DEFINED__
350#define __ID3D12Device6_FWD_DEFINED__
351typedef interface ID3D12Device6 ID3D12Device6;
352#ifdef __cplusplus
353interface ID3D12Device6;
354#endif /* __cplusplus */
355#endif
356
357#ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__
358#define __ID3D12ProtectedResourceSession1_FWD_DEFINED__
359typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1;
360#ifdef __cplusplus
361interface ID3D12ProtectedResourceSession1;
362#endif /* __cplusplus */
363#endif
364
365#ifndef __ID3D12Device7_FWD_DEFINED__
366#define __ID3D12Device7_FWD_DEFINED__
367typedef interface ID3D12Device7 ID3D12Device7;
368#ifdef __cplusplus
369interface ID3D12Device7;
370#endif /* __cplusplus */
371#endif
372
373#ifndef __ID3D12Device8_FWD_DEFINED__
374#define __ID3D12Device8_FWD_DEFINED__
375typedef interface ID3D12Device8 ID3D12Device8;
376#ifdef __cplusplus
377interface ID3D12Device8;
378#endif /* __cplusplus */
379#endif
380
381#ifndef __ID3D12Resource1_FWD_DEFINED__
382#define __ID3D12Resource1_FWD_DEFINED__
383typedef interface ID3D12Resource1 ID3D12Resource1;
384#ifdef __cplusplus
385interface ID3D12Resource1;
386#endif /* __cplusplus */
387#endif
388
389#ifndef __ID3D12Resource2_FWD_DEFINED__
390#define __ID3D12Resource2_FWD_DEFINED__
391typedef interface ID3D12Resource2 ID3D12Resource2;
392#ifdef __cplusplus
393interface ID3D12Resource2;
394#endif /* __cplusplus */
395#endif
396
397#ifndef __ID3D12Heap1_FWD_DEFINED__
398#define __ID3D12Heap1_FWD_DEFINED__
399typedef interface ID3D12Heap1 ID3D12Heap1;
400#ifdef __cplusplus
401interface ID3D12Heap1;
402#endif /* __cplusplus */
403#endif
404
405#ifndef __ID3D12MetaCommand_FWD_DEFINED__
406#define __ID3D12MetaCommand_FWD_DEFINED__
407typedef interface ID3D12MetaCommand ID3D12MetaCommand;
408#ifdef __cplusplus
409interface ID3D12MetaCommand;
410#endif /* __cplusplus */
411#endif
412
413#ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__
414#define __ID3D12GraphicsCommandList4_FWD_DEFINED__
415typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4;
416#ifdef __cplusplus
417interface ID3D12GraphicsCommandList4;
418#endif /* __cplusplus */
419#endif
420
421#ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__
422#define __ID3D12ShaderCacheSession_FWD_DEFINED__
423typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession;
424#ifdef __cplusplus
425interface ID3D12ShaderCacheSession;
426#endif /* __cplusplus */
427#endif
428
429#ifndef __ID3D12Device9_FWD_DEFINED__
430#define __ID3D12Device9_FWD_DEFINED__
431typedef interface ID3D12Device9 ID3D12Device9;
432#ifdef __cplusplus
433interface ID3D12Device9;
434#endif /* __cplusplus */
435#endif
436
437#ifndef __ID3D12Device10_FWD_DEFINED__
438#define __ID3D12Device10_FWD_DEFINED__
439typedef interface ID3D12Device10 ID3D12Device10;
440#ifdef __cplusplus
441interface ID3D12Device10;
442#endif /* __cplusplus */
443#endif
444
445#ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__
446#define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__
447typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice;
448#ifdef __cplusplus
449interface ID3D12VirtualizationGuestDevice;
450#endif /* __cplusplus */
451#endif
452
453#ifndef __ID3D12Tools_FWD_DEFINED__
454#define __ID3D12Tools_FWD_DEFINED__
455typedef interface ID3D12Tools ID3D12Tools;
456#ifdef __cplusplus
457interface ID3D12Tools;
458#endif /* __cplusplus */
459#endif
460
461#ifndef __ID3D12SDKConfiguration_FWD_DEFINED__
462#define __ID3D12SDKConfiguration_FWD_DEFINED__
463typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration;
464#ifdef __cplusplus
465interface ID3D12SDKConfiguration;
466#endif /* __cplusplus */
467#endif
468
469#ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__
470#define __ID3D12GraphicsCommandList5_FWD_DEFINED__
471typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5;
472#ifdef __cplusplus
473interface ID3D12GraphicsCommandList5;
474#endif /* __cplusplus */
475#endif
476
477#ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__
478#define __ID3D12GraphicsCommandList6_FWD_DEFINED__
479typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6;
480#ifdef __cplusplus
481interface ID3D12GraphicsCommandList6;
482#endif /* __cplusplus */
483#endif
484
485#ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__
486#define __ID3D12GraphicsCommandList7_FWD_DEFINED__
487typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7;
488#ifdef __cplusplus
489interface ID3D12GraphicsCommandList7;
490#endif /* __cplusplus */
491#endif
492
493/* Headers for imported files */
494
495#include <oaidl.h>
496#include <ocidl.h>
497#include <dxgi.h>
498#include <d3dcommon.h>
499
500#ifdef __cplusplus
501extern "C" {
502#endif
503
504#ifndef _D3D12_CONSTANTS
505#define _D3D12_CONSTANTS
506#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE (0xffff)
507
508#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE (0xffffffff)
509
510#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE (0xff)
511
512#define D3D12_APPEND_ALIGNED_ELEMENT (0xffffffff)
513
514#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT (9)
515
516#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT (8)
517
518#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT (2)
519
520#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14)
521
522#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4)
523
524#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32)
525
526#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15)
527
528#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT (16)
529
530#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
531
532#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
533
534#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
535
536#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
537
538#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
539
540#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
541
542#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1)
543
544#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
545
546#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
547
548#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32)
549
550#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1)
551
552#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
553
554#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1)
555
556#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1)
557
558#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128)
559
560#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1)
561
562#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT (16)
563
564#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1)
565
566#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1)
567
568#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
569
570#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
571
572#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4)
573
574#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32)
575
576#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
577
578#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3)
579
580#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3)
581
582#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10)
583
584#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10)
585
586#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8)
587
588#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7)
589
590#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT (256)
591
592#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (256)
593
594#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP (64)
595
596#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (240)
597
598#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP (68)
599
600#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (224)
601
602#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP (72)
603
604#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (208)
605
606#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP (76)
607
608#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (192)
609
610#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP (84)
611
612#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (176)
613
614#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP (92)
615
616#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (160)
617
618#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP (100)
619
620#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (144)
621
622#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP (112)
623
624#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (128)
625
626#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP (128)
627
628#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (112)
629
630#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP (144)
631
632#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (96)
633
634#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP (168)
635
636#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (80)
637
638#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP (204)
639
640#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (64)
641
642#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP (256)
643
644#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (48)
645
646#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP (340)
647
648#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (32)
649
650#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP (512)
651
652#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (16)
653
654#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP (768)
655
656#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION (1)
657
658#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT (256)
659
660#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP (768)
661
662#define D3D12_CS_4_X_THREAD_GROUP_MAX_X (768)
663
664#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y (768)
665
666#define D3D12_CS_4_X_UAV_REGISTER_COUNT (1)
667
668#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535)
669
670#define D3D12_CS_TGSM_REGISTER_COUNT (8192)
671
672#define D3D12_CS_TGSM_REGISTER_READS_PER_INST (1)
673
674#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS (1)
675
676#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS (1)
677
678#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS (3)
679
680#define D3D12_CS_THREADGROUPID_REGISTER_COUNT (1)
681
682#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS (1)
683
684#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT (1)
685
686#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS (3)
687
688#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT (1)
689
690#define D3D12_CS_THREADID_REGISTER_COMPONENTS (3)
691
692#define D3D12_CS_THREADID_REGISTER_COUNT (1)
693
694#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP (1024)
695
696#define D3D12_CS_THREAD_GROUP_MAX_X (1024)
697
698#define D3D12_CS_THREAD_GROUP_MAX_Y (1024)
699
700#define D3D12_CS_THREAD_GROUP_MAX_Z (64)
701
702#define D3D12_CS_THREAD_GROUP_MIN_X (1)
703
704#define D3D12_CS_THREAD_GROUP_MIN_Y (1)
705
706#define D3D12_CS_THREAD_GROUP_MIN_Z (1)
707
708#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL (16384)
709
710#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)
711#define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f)
712#define D3D12_DEFAULT_BLEND_FACTOR_GREEN (1.0f)
713#define D3D12_DEFAULT_BLEND_FACTOR_RED (1.0f)
714#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT (0.0f)
715#define D3D12_DEFAULT_DEPTH_BIAS (0)
716
717#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP (0.0f)
718#define D3D12_DEFAULT_MAX_ANISOTROPY (16)
719
720#define D3D12_DEFAULT_MIP_LOD_BIAS (0.0f)
721#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (4194304)
722
723#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX (0)
724
725#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT (65536)
726
727#define D3D12_DEFAULT_SAMPLE_MASK (0xffffffff)
728
729#define D3D12_DEFAULT_SCISSOR_ENDX (0)
730
731#define D3D12_DEFAULT_SCISSOR_ENDY (0)
732
733#define D3D12_DEFAULT_SCISSOR_STARTX (0)
734
735#define D3D12_DEFAULT_SCISSOR_STARTY (0)
736
737#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.0f)
738#define D3D12_DEFAULT_STENCIL_READ_MASK (0xff)
739
740#define D3D12_DEFAULT_STENCIL_REFERENCE (0)
741
742#define D3D12_DEFAULT_STENCIL_WRITE_MASK (0xff)
743
744#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX (0)
745
746#define D3D12_DEFAULT_VIEWPORT_HEIGHT (0)
747
748#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH (0.0f)
749#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH (0.0f)
750#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX (0)
751
752#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY (0)
753
754#define D3D12_DEFAULT_VIEWPORT_WIDTH (0)
755
756#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND (0xffffffff)
757
758#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END (0xfffffff7)
759
760#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff0)
761
762#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS (3968)
763
764#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS (4)
765
766#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
767
768#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32)
769
770#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST (2)
771
772#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS (1)
773
774#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS (3)
775
776#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
777
778#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT (1)
779
780#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST (2)
781
782#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS (1)
783
784#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS (4)
785
786#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT (32)
787
788#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
789
790#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST (2)
791
792#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS (1)
793
794#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS (1)
795
796#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
797
798#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT (1)
799
800#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST (2)
801
802#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS (1)
803
804#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS (4)
805
806#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
807
808#define D3D12_DS_OUTPUT_REGISTER_COUNT (32)
809
810#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP (0.6)
811#define D3D12_FLOAT32_MAX (3.402823466e+38f)
812#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)
813#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR (2.4f)
814#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR (1.0f)
815#define D3D12_FLOAT_TO_SRGB_OFFSET (0.055f)
816#define D3D12_FLOAT_TO_SRGB_SCALE_1 (12.92f)
817#define D3D12_FLOAT_TO_SRGB_SCALE_2 (1.055f)
818#define D3D12_FLOAT_TO_SRGB_THRESHOLD (0.0031308f)
819#define D3D12_FTOI_INSTRUCTION_MAX_INPUT (2147483647.999f)
820#define D3D12_FTOI_INSTRUCTION_MIN_INPUT (-2147483648.999f)
821#define D3D12_FTOU_INSTRUCTION_MAX_INPUT (4294967295.999f)
822#define D3D12_FTOU_INSTRUCTION_MIN_INPUT (0.0f)
823#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST (2)
824
825#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS (1)
826
827#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS (1)
828
829#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
830
831#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT (1)
832
833#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS (1)
834
835#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT (32)
836
837#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT (1)
838
839#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST (2)
840
841#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS (1)
842
843#define D3D12_GS_INPUT_REGISTER_COMPONENTS (4)
844
845#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
846
847#define D3D12_GS_INPUT_REGISTER_COUNT (32)
848
849#define D3D12_GS_INPUT_REGISTER_READS_PER_INST (2)
850
851#define D3D12_GS_INPUT_REGISTER_READ_PORTS (1)
852
853#define D3D12_GS_INPUT_REGISTER_VERTICES (32)
854
855#define D3D12_GS_MAX_INSTANCE_COUNT (32)
856
857#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES (1024)
858
859#define D3D12_GS_OUTPUT_ELEMENTS (32)
860
861#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS (4)
862
863#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
864
865#define D3D12_GS_OUTPUT_REGISTER_COUNT (32)
866
867#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32)
868
869#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32)
870
871#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS (4)
872
873#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
874
875#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST (2)
876
877#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS (1)
878
879#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND (0xffffffff)
880
881#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS (1)
882
883#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
884
885#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT (1)
886
887#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST (2)
888
889#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS (1)
890
891#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS (1)
892
893#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
894
895#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT (1)
896
897#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST (2)
898
899#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS (1)
900
901#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS (1)
902
903#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
904
905#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT (1)
906
907#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST (2)
908
909#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS (1)
910
911#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND (0xffffffff)
912
913#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND (1.0f)
914#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND (64.0f)
915#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS (3968)
916
917#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS (1)
918
919#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT (32)
920
921#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT (1)
922
923#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST (2)
924
925#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS (1)
926
927#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS (4)
928
929#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT (32)
930
931#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
932
933#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST (2)
934
935#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS (1)
936
937#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS (128)
938
939#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0)
940
941#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0)
942
943#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0)
944
945#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
946
947#define D3D12_IA_INSTANCE_ID_BIT_COUNT (32)
948
949#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT (32)
950
951#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT (32)
952
953#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT (32)
954
955#define D3D12_IA_VERTEX_ID_BIT_COUNT (32)
956
957#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
958
959#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (128)
960
961#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (32)
962
963#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT (0xffffffff)
964
965#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER (0xffffffff)
966
967#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL (0xffffffff)
968
969#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS (0xffffffff)
970
971#define D3D12_LINEAR_GAMMA (1.0f)
972#define D3D12_MAJOR_VERSION (12)
973
974#define D3D12_MAX_BORDER_COLOR_COMPONENT (1.0f)
975#define D3D12_MAX_DEPTH (1.0f)
976#define D3D12_MAX_LIVE_STATIC_SAMPLERS (2032)
977
978#define D3D12_MAX_MAXANISOTROPY (16)
979
980#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
981
982#define D3D12_MAX_POSITION_VALUE (3.402823466e+34f)
983#define D3D12_MAX_ROOT_COST (64)
984
985#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 (1000000)
986
987#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 (1000000)
988
989#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE (2048)
990
991#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP (17)
992
993#define D3D12_MAX_VIEW_INSTANCE_COUNT (4)
994
995#define D3D12_MINOR_VERSION (0)
996
997#define D3D12_MIN_BORDER_COLOR_COMPONENT (0.0f)
998#define D3D12_MIN_DEPTH (0.0f)
999#define D3D12_MIN_MAXANISOTROPY (0)
1000
1001#define D3D12_MIP_LOD_BIAS_MAX (15.99f)
1002#define D3D12_MIP_LOD_BIAS_MIN (-16.0f)
1003#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT (8)
1004
1005#define D3D12_MIP_LOD_RANGE_BIT_COUNT (8)
1006
1007#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH (1.4f)
1008#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT (0)
1009
1010#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END (0xffffffff)
1011
1012#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff8)
1013
1014#define D3D12_PACKED_TILE (0xffffffff)
1015
1016#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT (15)
1017
1018#define D3D12_PREVIEW_SDK_VERSION (702)
1019
1020#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT (16)
1021
1022#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS (1)
1023
1024#define D3D12_PS_CS_UAV_REGISTER_COUNT (8)
1025
1026#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST (1)
1027
1028#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS (1)
1029
1030#define D3D12_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff)
1031
1032#define D3D12_PS_FRONTFACING_FALSE_VALUE (0x0)
1033
1034#define D3D12_PS_FRONTFACING_TRUE_VALUE (0xffffffff)
1035
1036#define D3D12_PS_INPUT_REGISTER_COMPONENTS (4)
1037
1038#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
1039
1040#define D3D12_PS_INPUT_REGISTER_COUNT (32)
1041
1042#define D3D12_PS_INPUT_REGISTER_READS_PER_INST (2)
1043
1044#define D3D12_PS_INPUT_REGISTER_READ_PORTS (1)
1045
1046#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.0f)
1047#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1)
1048
1049#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32)
1050
1051#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
1052
1053#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS (1)
1054
1055#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT (32)
1056
1057#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT (1)
1058
1059#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS (4)
1060
1061#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
1062
1063#define D3D12_PS_OUTPUT_REGISTER_COUNT (8)
1064
1065#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.5f)
1066#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT (16)
1067
1068#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT (8)
1069
1070#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT (256)
1071
1072#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT (16)
1073
1074#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES (32)
1075
1076#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH (31)
1077
1078#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE (16777216)
1079
1080#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE (16777216)
1081
1082#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE (536870912)
1083
1084#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS (1073741824)
1085
1086#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE (4096)
1087
1088#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT (32)
1089
1090#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT (64)
1091
1092#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT (16)
1093
1094#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
1095
1096#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27)
1097
1098#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
1099
1100#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
1101
1102#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32)
1103
1104#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32)
1105
1106#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384)
1107
1108#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024)
1109
1110#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
1111
1112#define D3D12_REQ_MAXANISOTROPY (16)
1113
1114#define D3D12_REQ_MIP_LEVELS (15)
1115
1116#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048)
1117
1118#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
1119
1120#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (16384)
1121
1122#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
1123
1124#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0.25f)
1125#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048)
1126
1127#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (20)
1128
1129#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
1130
1131#define D3D12_REQ_SUBRESOURCES (30720)
1132
1133#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048)
1134
1135#define D3D12_REQ_TEXTURE1D_U_DIMENSION (16384)
1136
1137#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048)
1138
1139#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
1140
1141#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
1142
1143#define D3D12_REQ_TEXTURECUBE_DIMENSION (16384)
1144
1145#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0)
1146
1147#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES (0xffffffff)
1148
1149#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT (2)
1150
1151#define D3D12_SDK_VERSION (602)
1152
1153#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES (32)
1154
1155#define D3D12_SHADER_MAJOR_VERSION (5)
1156
1157#define D3D12_SHADER_MAX_INSTANCES (65535)
1158
1159#define D3D12_SHADER_MAX_INTERFACES (253)
1160
1161#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES (4096)
1162
1163#define D3D12_SHADER_MAX_TYPES (65535)
1164
1165#define D3D12_SHADER_MINOR_VERSION (1)
1166
1167#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE (0)
1168
1169#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5)
1170
1171#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
1172
1173#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (65536)
1174
1175#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT (4096)
1176
1177#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
1178
1179#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (512)
1180
1181#define D3D12_SO_BUFFER_SLOT_COUNT (4)
1182
1183#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
1184
1185#define D3D12_SO_NO_RASTERIZED_STREAM (0xffffffff)
1186
1187#define D3D12_SO_OUTPUT_COMPONENT_COUNT (128)
1188
1189#define D3D12_SO_STREAM_COUNT (4)
1190
1191#define D3D12_SPEC_DATE_DAY (14)
1192
1193#define D3D12_SPEC_DATE_MONTH (11)
1194
1195#define D3D12_SPEC_DATE_YEAR (2014)
1196
1197#define D3D12_SPEC_VERSION (1.16)
1198#define D3D12_SRGB_GAMMA (2.2f)
1199#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 (12.92f)
1200#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 (1.055f)
1201#define D3D12_SRGB_TO_FLOAT_EXPONENT (2.4f)
1202#define D3D12_SRGB_TO_FLOAT_OFFSET (0.055f)
1203#define D3D12_SRGB_TO_FLOAT_THRESHOLD (0.04045f)
1204#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.5f)
1205#define D3D12_STANDARD_COMPONENT_BIT_COUNT (32)
1206
1207#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64)
1208
1209#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
1210
1211#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT (128)
1212
1213#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT (32)
1214
1215#define D3D12_STANDARD_VECTOR_SIZE (4)
1216
1217#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT (32)
1218
1219#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64)
1220
1221#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT (8)
1222
1223#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT (8)
1224
1225#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END (0xffffffff)
1226
1227#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff0)
1228
1229#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR (64)
1230
1231#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR (64)
1232
1233#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR (63)
1234
1235#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR (64)
1236
1237#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR (2)
1238
1239#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR (1)
1240
1241#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR (1)
1242
1243#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT (16)
1244
1245#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT (256)
1246
1247#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT (512)
1248
1249#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES (65536)
1250
1251#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES (32)
1252
1253#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT (4096)
1254
1255#define D3D12_UAV_SLOT_COUNT (64)
1256
1257#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT (0)
1258
1259#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS (10)
1260
1261#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS (4)
1262
1263#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT (256)
1264
1265#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT (256)
1266
1267#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN (0xffffffff)
1268
1269#define D3D12_VIDEO_PROCESS_MAX_FILTERS (32)
1270
1271#define D3D12_VIDEO_PROCESS_STEREO_VIEWS (2)
1272
1273#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX (15)
1274
1275#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
1276
1277#define D3D12_VIEWPORT_BOUNDS_MAX (32767)
1278
1279#define D3D12_VIEWPORT_BOUNDS_MIN (-32768)
1280
1281#define D3D12_VS_INPUT_REGISTER_COMPONENTS (4)
1282
1283#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
1284
1285#define D3D12_VS_INPUT_REGISTER_COUNT (32)
1286
1287#define D3D12_VS_INPUT_REGISTER_READS_PER_INST (2)
1288
1289#define D3D12_VS_INPUT_REGISTER_READ_PORTS (1)
1290
1291#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS (4)
1292
1293#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
1294
1295#define D3D12_VS_OUTPUT_REGISTER_COUNT (32)
1296
1297#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT (10)
1298
1299#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (25)
1300
1301#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP (25)
1302
1303#endif
1304#define D3D12_SHADER_COMPONENT_MAPPING_MASK (0x7)
1305
1306#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT (3)
1307
1308#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1 << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 4))
1309
1310typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT {
1311 D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0,
1312 D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
1313 D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
1314} D3D12_SHADER_MIN_PRECISION_SUPPORT;
1315DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_MIN_PRECISION_SUPPORT);
1316typedef enum D3D12_TILED_RESOURCES_TIER {
1317 D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
1318 D3D12_TILED_RESOURCES_TIER_1 = 1,
1319 D3D12_TILED_RESOURCES_TIER_2 = 2,
1320 D3D12_TILED_RESOURCES_TIER_3 = 3
1321} D3D12_TILED_RESOURCES_TIER;
1322typedef enum D3D12_RESOURCE_BINDING_TIER {
1323 D3D12_RESOURCE_BINDING_TIER_1 = 1,
1324 D3D12_RESOURCE_BINDING_TIER_2 = 2,
1325 D3D12_RESOURCE_BINDING_TIER_3 = 3
1326} D3D12_RESOURCE_BINDING_TIER;
1327typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER {
1328 D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
1329 D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
1330 D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
1331 D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
1332} D3D12_CONSERVATIVE_RASTERIZATION_TIER;
1333typedef enum D3D12_CROSS_NODE_SHARING_TIER {
1334 D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
1335 D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
1336 D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
1337 D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
1338 D3D12_CROSS_NODE_SHARING_TIER_3 = 4
1339} D3D12_CROSS_NODE_SHARING_TIER;
1340typedef enum D3D12_RESOURCE_HEAP_TIER {
1341 D3D12_RESOURCE_HEAP_TIER_1 = 1,
1342 D3D12_RESOURCE_HEAP_TIER_2 = 2
1343} D3D12_RESOURCE_HEAP_TIER;
1344typedef enum D3D12_FORMAT_SUPPORT1 {
1345 D3D12_FORMAT_SUPPORT1_NONE = 0x0,
1346 D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
1347 D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
1348 D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
1349 D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
1350 D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
1351 D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
1352 D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
1353 D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
1354 D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
1355 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
1356 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
1357 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
1358 D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
1359 D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
1360 D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
1361 D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
1362 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
1363 D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
1364 D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
1365 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
1366 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
1367 D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
1368 D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
1369 D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
1370 D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
1371 D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
1372 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
1373 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
1374 D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
1375} D3D12_FORMAT_SUPPORT1;
1376DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT1);
1377typedef enum D3D12_FORMAT_SUPPORT2 {
1378 D3D12_FORMAT_SUPPORT2_NONE = 0x0,
1379 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
1380 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
1381 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
1382 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
1383 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
1384 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
1385 D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
1386 D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
1387 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
1388 D3D12_FORMAT_SUPPORT2_TILED = 0x200,
1389 D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
1390 D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000
1391} D3D12_FORMAT_SUPPORT2;
1392DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT2);
1393typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE {
1394 D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0,
1395 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
1396 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
1397} D3D12_WRITEBUFFERIMMEDIATE_MODE;
1398typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {
1399 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0x0,
1400 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 0x1,
1401 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 0x2
1402} D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
1403typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS {
1404 D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0,
1405 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
1406 D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
1407 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
1408 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
1409 D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
1410 D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20,
1411 D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40
1412} D3D12_SHADER_CACHE_SUPPORT_FLAGS;
1413DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_SUPPORT_FLAGS);
1414typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS {
1415 D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x0,
1416 D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 0x1,
1417 D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 0x2,
1418 D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 0x4,
1419 D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 0x8,
1420 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 0x10,
1421 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 0x20,
1422 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 0x40
1423} D3D12_COMMAND_LIST_SUPPORT_FLAGS;
1424DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_SUPPORT_FLAGS);
1425typedef enum D3D12_VIEW_INSTANCING_TIER {
1426 D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0x0,
1427 D3D12_VIEW_INSTANCING_TIER_1 = 0x1,
1428 D3D12_VIEW_INSTANCING_TIER_2 = 0x2,
1429 D3D12_VIEW_INSTANCING_TIER_3 = 0x3
1430} D3D12_VIEW_INSTANCING_TIER;
1431typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
1432 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0x0,
1433 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = 0x1,
1434 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = 0x2
1435} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
1436typedef struct D3D12_FEATURE_DATA_DISPLAYABLE {
1437 WINBOOL DisplayableTexture;
1438 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
1439} D3D12_FEATURE_DATA_DISPLAYABLE;
1440typedef enum D3D12_HEAP_SERIALIZATION_TIER {
1441 D3D12_HEAP_SERIALIZATION_TIER_0 = 0x0,
1442 D3D12_HEAP_SERIALIZATION_TIER_10 = 0xa
1443} D3D12_HEAP_SERIALIZATION_TIER;
1444typedef enum D3D12_RENDER_PASS_TIER {
1445 D3D12_RENDER_PASS_TIER_0 = 0x0,
1446 D3D12_RENDER_PASS_TIER_1 = 0x1,
1447 D3D12_RENDER_PASS_TIER_2 = 0x2
1448} D3D12_RENDER_PASS_TIER;
1449typedef enum D3D12_RAYTRACING_TIER {
1450 D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0x0,
1451 D3D12_RAYTRACING_TIER_1_0 = 0xa,
1452 D3D12_RAYTRACING_TIER_1_1 = 0xb
1453} D3D12_RAYTRACING_TIER;
1454typedef enum D3D12_RESIDENCY_FLAGS {
1455 D3D12_RESIDENCY_FLAG_NONE = 0x0,
1456 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1
1457} D3D12_RESIDENCY_FLAGS;
1458DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESIDENCY_FLAGS);
1459#ifndef __ID3D12Fence_FWD_DEFINED__
1460#define __ID3D12Fence_FWD_DEFINED__
1461typedef interface ID3D12Fence ID3D12Fence;
1462#ifdef __cplusplus
1463interface ID3D12Fence;
1464#endif /* __cplusplus */
1465#endif
1466
1467#ifndef __ID3D12RootSignature_FWD_DEFINED__
1468#define __ID3D12RootSignature_FWD_DEFINED__
1469typedef interface ID3D12RootSignature ID3D12RootSignature;
1470#ifdef __cplusplus
1471interface ID3D12RootSignature;
1472#endif /* __cplusplus */
1473#endif
1474
1475#ifndef __ID3D12Heap_FWD_DEFINED__
1476#define __ID3D12Heap_FWD_DEFINED__
1477typedef interface ID3D12Heap ID3D12Heap;
1478#ifdef __cplusplus
1479interface ID3D12Heap;
1480#endif /* __cplusplus */
1481#endif
1482
1483#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
1484#define __ID3D12DescriptorHeap_FWD_DEFINED__
1485typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
1486#ifdef __cplusplus
1487interface ID3D12DescriptorHeap;
1488#endif /* __cplusplus */
1489#endif
1490
1491#ifndef __ID3D12Resource_FWD_DEFINED__
1492#define __ID3D12Resource_FWD_DEFINED__
1493typedef interface ID3D12Resource ID3D12Resource;
1494#ifdef __cplusplus
1495interface ID3D12Resource;
1496#endif /* __cplusplus */
1497#endif
1498
1499#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
1500#define __ID3D12CommandAllocator_FWD_DEFINED__
1501typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
1502#ifdef __cplusplus
1503interface ID3D12CommandAllocator;
1504#endif /* __cplusplus */
1505#endif
1506
1507#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
1508#define __ID3D12GraphicsCommandList_FWD_DEFINED__
1509typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
1510#ifdef __cplusplus
1511interface ID3D12GraphicsCommandList;
1512#endif /* __cplusplus */
1513#endif
1514
1515#ifndef __ID3D12CommandQueue_FWD_DEFINED__
1516#define __ID3D12CommandQueue_FWD_DEFINED__
1517typedef interface ID3D12CommandQueue ID3D12CommandQueue;
1518#ifdef __cplusplus
1519interface ID3D12CommandQueue;
1520#endif /* __cplusplus */
1521#endif
1522
1523#ifndef __ID3D12PipelineState_FWD_DEFINED__
1524#define __ID3D12PipelineState_FWD_DEFINED__
1525typedef interface ID3D12PipelineState ID3D12PipelineState;
1526#ifdef __cplusplus
1527interface ID3D12PipelineState;
1528#endif /* __cplusplus */
1529#endif
1530
1531#ifndef __ID3D12Device_FWD_DEFINED__
1532#define __ID3D12Device_FWD_DEFINED__
1533typedef interface ID3D12Device ID3D12Device;
1534#ifdef __cplusplus
1535interface ID3D12Device;
1536#endif /* __cplusplus */
1537#endif
1538
1539typedef RECT D3D12_RECT;
1540typedef struct D3D12_BOX {
1541 UINT left;
1542 UINT top;
1543 UINT front;
1544 UINT right;
1545 UINT bottom;
1546 UINT back;
1547} D3D12_BOX;
1548typedef struct D3D12_VIEWPORT {
1549 FLOAT TopLeftX;
1550 FLOAT TopLeftY;
1551 FLOAT Width;
1552 FLOAT Height;
1553 FLOAT MinDepth;
1554 FLOAT MaxDepth;
1555} D3D12_VIEWPORT;
1556typedef struct D3D12_RANGE {
1557 SIZE_T Begin;
1558 SIZE_T End;
1559} D3D12_RANGE;
1560typedef struct D3D12_RANGE_UINT64 {
1561 UINT64 Begin;
1562 UINT64 End;
1563} D3D12_RANGE_UINT64;
1564typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 {
1565 UINT Subresource;
1566 D3D12_RANGE_UINT64 Range;
1567} D3D12_SUBRESOURCE_RANGE_UINT64;
1568typedef struct D3D12_SUBRESOURCE_INFO {
1569 UINT64 Offset;
1570 UINT RowPitch;
1571 UINT DepthPitch;
1572} D3D12_SUBRESOURCE_INFO;
1573typedef struct D3D12_RESOURCE_ALLOCATION_INFO {
1574 UINT64 SizeInBytes;
1575 UINT64 Alignment;
1576} D3D12_RESOURCE_ALLOCATION_INFO;
1577typedef struct D3D12_RESOURCE_ALLOCATION_INFO1 {
1578 UINT64 Offset;
1579 UINT64 Alignment;
1580 UINT64 SizeInBytes;
1581} D3D12_RESOURCE_ALLOCATION_INFO1;
1582typedef struct D3D12_DRAW_ARGUMENTS {
1583 UINT VertexCountPerInstance;
1584 UINT InstanceCount;
1585 UINT StartVertexLocation;
1586 UINT StartInstanceLocation;
1587} D3D12_DRAW_ARGUMENTS;
1588typedef struct D3D12_DRAW_INDEXED_ARGUMENTS {
1589 UINT IndexCountPerInstance;
1590 UINT InstanceCount;
1591 UINT StartIndexLocation;
1592 INT BaseVertexLocation;
1593 UINT StartInstanceLocation;
1594} D3D12_DRAW_INDEXED_ARGUMENTS;
1595typedef struct D3D12_DISPATCH_ARGUMENTS {
1596 UINT ThreadGroupCountX;
1597 UINT ThreadGroupCountY;
1598 UINT ThreadGroupCountZ;
1599} D3D12_DISPATCH_ARGUMENTS;
1600typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS {
1601 WINBOOL DoublePrecisionFloatShaderOps;
1602 WINBOOL OutputMergerLogicOp;
1603 D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
1604 D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
1605 D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
1606 WINBOOL PSSpecifiedStencilRefSupported;
1607 WINBOOL TypedUAVLoadAdditionalFormats;
1608 WINBOOL ROVsSupported;
1609 D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
1610 UINT MaxGPUVirtualAddressBitsPerResource;
1611 WINBOOL StandardSwizzle64KBSupported;
1612 D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
1613 WINBOOL CrossAdapterRowMajorTextureSupported;
1614 WINBOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
1615 D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
1616} D3D12_FEATURE_DATA_D3D12_OPTIONS;
1617typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT {
1618 DXGI_FORMAT Format;
1619 D3D12_FORMAT_SUPPORT1 Support1;
1620 D3D12_FORMAT_SUPPORT2 Support2;
1621} D3D12_FEATURE_DATA_FORMAT_SUPPORT;
1622typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
1623 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0x0,
1624 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
1625} D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
1626DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS);
1627typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
1628 DXGI_FORMAT Format;
1629 UINT SampleCount;
1630 D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
1631 UINT NumQualityLevels;
1632} D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
1633typedef enum D3D12_HEAP_TYPE {
1634 D3D12_HEAP_TYPE_DEFAULT = 1,
1635 D3D12_HEAP_TYPE_UPLOAD = 2,
1636 D3D12_HEAP_TYPE_READBACK = 3,
1637 D3D12_HEAP_TYPE_CUSTOM = 4
1638} D3D12_HEAP_TYPE;
1639typedef enum D3D12_CPU_PAGE_PROPERTY {
1640 D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
1641 D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
1642 D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
1643 D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
1644} D3D12_CPU_PAGE_PROPERTY;
1645typedef enum D3D12_MEMORY_POOL {
1646 D3D12_MEMORY_POOL_UNKNOWN = 0,
1647 D3D12_MEMORY_POOL_L0 = 1,
1648 D3D12_MEMORY_POOL_L1 = 2
1649} D3D12_MEMORY_POOL;
1650typedef struct D3D12_HEAP_PROPERTIES {
1651 D3D12_HEAP_TYPE Type;
1652 D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
1653 D3D12_MEMORY_POOL MemoryPoolPreference;
1654 UINT CreationNodeMask;
1655 UINT VisibleNodeMask;
1656} D3D12_HEAP_PROPERTIES;
1657typedef enum D3D12_HEAP_FLAGS {
1658 D3D12_HEAP_FLAG_NONE = 0x0,
1659 D3D12_HEAP_FLAG_SHARED = 0x1,
1660 D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
1661 D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
1662 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
1663 D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
1664 D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
1665 D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
1666 D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
1667 D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
1668 D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
1669 D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
1670 D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x0,
1671 D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
1672 D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
1673 D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
1674} D3D12_HEAP_FLAGS;
1675DEFINE_ENUM_FLAG_OPERATORS(D3D12_HEAP_FLAGS);
1676typedef struct D3D12_HEAP_DESC {
1677 UINT64 SizeInBytes;
1678 D3D12_HEAP_PROPERTIES Properties;
1679 UINT64 Alignment;
1680 D3D12_HEAP_FLAGS Flags;
1681} D3D12_HEAP_DESC;
1682typedef struct D3D12_TILED_RESOURCE_COORDINATE {
1683 UINT X;
1684 UINT Y;
1685 UINT Z;
1686 UINT Subresource;
1687} D3D12_TILED_RESOURCE_COORDINATE;
1688typedef struct D3D12_TILE_REGION_SIZE {
1689 UINT NumTiles;
1690 WINBOOL UseBox;
1691 UINT Width;
1692 UINT16 Height;
1693 UINT16 Depth;
1694} D3D12_TILE_REGION_SIZE;
1695typedef struct D3D12_SUBRESOURCE_TILING {
1696 UINT WidthInTiles;
1697 UINT16 HeightInTiles;
1698 UINT16 DepthInTiles;
1699 UINT StartTileIndexInOverallResource;
1700} D3D12_SUBRESOURCE_TILING;
1701typedef struct D3D12_TILE_SHAPE {
1702 UINT WidthInTexels;
1703 UINT HeightInTexels;
1704 UINT DepthInTexels;
1705} D3D12_TILE_SHAPE;
1706typedef struct D3D12_SHADER_BYTECODE {
1707 const void *pShaderBytecode;
1708 SIZE_T BytecodeLength;
1709} D3D12_SHADER_BYTECODE;
1710typedef struct D3D12_DEPTH_STENCIL_VALUE {
1711 FLOAT Depth;
1712 UINT8 Stencil;
1713} D3D12_DEPTH_STENCIL_VALUE;
1714typedef struct D3D12_CLEAR_VALUE {
1715 DXGI_FORMAT Format;
1716 __C89_NAMELESS union {
1717 FLOAT Color[4];
1718 D3D12_DEPTH_STENCIL_VALUE DepthStencil;
1719 } __C89_NAMELESSUNIONNAME;
1720} D3D12_CLEAR_VALUE;
1721typedef struct D3D12_PACKED_MIP_INFO {
1722 UINT8 NumStandardMips;
1723 UINT8 NumPackedMips;
1724 UINT NumTilesForPackedMips;
1725 UINT StartTileIndexInOverallResource;
1726} D3D12_PACKED_MIP_INFO;
1727typedef enum D3D12_RESOURCE_STATES {
1728 D3D12_RESOURCE_STATE_COMMON = 0,
1729 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
1730 D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
1731 D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
1732 D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
1733 D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
1734 D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
1735 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
1736 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
1737 D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
1738 D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
1739 D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
1740 D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
1741 D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
1742 D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
1743 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
1744 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
1745 D3D12_RESOURCE_STATE_GENERIC_READ = ((((0x1 | 0x2) | 0x40) | 0x80) | 0x200) | 0x800,
1746 D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = 0x40 | 0x80,
1747 D3D12_RESOURCE_STATE_PRESENT = 0x0,
1748 D3D12_RESOURCE_STATE_PREDICATION = 0x200,
1749 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
1750 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
1751 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
1752 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
1753 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
1754 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
1755} D3D12_RESOURCE_STATES;
1756DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_STATES);
1757typedef enum D3D12_RESOURCE_BARRIER_TYPE {
1758 D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
1759 D3D12_RESOURCE_BARRIER_TYPE_ALIASING = 1,
1760 D3D12_RESOURCE_BARRIER_TYPE_UAV = 2
1761} D3D12_RESOURCE_BARRIER_TYPE;
1762typedef enum D3D12_RESOURCE_BARRIER_FLAGS {
1763 D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0,
1764 D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
1765 D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
1766} D3D12_RESOURCE_BARRIER_FLAGS;
1767DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_BARRIER_FLAGS);
1768typedef struct D3D12_RESOURCE_TRANSITION_BARRIER {
1769 ID3D12Resource *pResource;
1770 UINT Subresource;
1771 D3D12_RESOURCE_STATES StateBefore;
1772 D3D12_RESOURCE_STATES StateAfter;
1773} D3D12_RESOURCE_TRANSITION_BARRIER;
1774typedef struct D3D12_RESOURCE_ALIASING_BARRIER_ALIASING {
1775 ID3D12Resource *pResourceBefore;
1776 ID3D12Resource *pResourceAfter;
1777} D3D12_RESOURCE_ALIASING_BARRIER;
1778typedef struct D3D12_RESOURCE_UAV_BARRIER {
1779 ID3D12Resource *pResource;
1780} D3D12_RESOURCE_UAV_BARRIER;
1781typedef struct D3D12_RESOURCE_BARRIER {
1782 D3D12_RESOURCE_BARRIER_TYPE Type;
1783 D3D12_RESOURCE_BARRIER_FLAGS Flags;
1784 __C89_NAMELESS union {
1785 D3D12_RESOURCE_TRANSITION_BARRIER Transition;
1786 D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
1787 D3D12_RESOURCE_UAV_BARRIER UAV;
1788 } __C89_NAMELESSUNIONNAME;
1789} D3D12_RESOURCE_BARRIER;
1790typedef enum D3D12_RESOURCE_DIMENSION {
1791 D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
1792 D3D12_RESOURCE_DIMENSION_BUFFER = 1,
1793 D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
1794 D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
1795 D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
1796} D3D12_RESOURCE_DIMENSION;
1797typedef enum D3D12_TEXTURE_LAYOUT {
1798 D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
1799 D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
1800 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
1801 D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
1802} D3D12_TEXTURE_LAYOUT;
1803typedef enum D3D12_RESOURCE_FLAGS {
1804 D3D12_RESOURCE_FLAG_NONE = 0x0,
1805 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
1806 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
1807 D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
1808 D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
1809 D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
1810 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
1811 D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
1812 D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
1813 D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
1814} D3D12_RESOURCE_FLAGS;
1815DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_FLAGS);
1816typedef struct D3D12_MIP_REGION {
1817 UINT Width;
1818 UINT Height;
1819 UINT Depth;
1820} D3D12_MIP_REGION;
1821typedef struct D3D12_RESOURCE_DESC {
1822 D3D12_RESOURCE_DIMENSION Dimension;
1823 UINT64 Alignment;
1824 UINT64 Width;
1825 UINT Height;
1826 UINT16 DepthOrArraySize;
1827 UINT16 MipLevels;
1828 DXGI_FORMAT Format;
1829 DXGI_SAMPLE_DESC SampleDesc;
1830 D3D12_TEXTURE_LAYOUT Layout;
1831 D3D12_RESOURCE_FLAGS Flags;
1832} D3D12_RESOURCE_DESC;
1833typedef struct D3D12_RESOURCE_DESC1 {
1834 D3D12_RESOURCE_DIMENSION Dimension;
1835 UINT64 Alignment;
1836 UINT64 Width;
1837 UINT Height;
1838 UINT16 DepthOrArraySize;
1839 UINT16 MipLevels;
1840 DXGI_FORMAT Format;
1841 DXGI_SAMPLE_DESC SampleDesc;
1842 D3D12_TEXTURE_LAYOUT Layout;
1843 D3D12_RESOURCE_FLAGS Flags;
1844 D3D12_MIP_REGION SamplerFeedbackMipRegion;
1845} D3D12_RESOURCE_DESC1;
1846typedef enum D3D12_RESOLVE_MODE {
1847 D3D12_RESOLVE_MODE_DECOMPRESS = 0,
1848 D3D12_RESOLVE_MODE_MIN = 1,
1849 D3D12_RESOLVE_MODE_MAX = 2,
1850 D3D12_RESOLVE_MODE_AVERAGE = 3,
1851 D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4,
1852 D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5
1853} D3D12_RESOLVE_MODE;
1854typedef struct D3D12_SAMPLE_POSITION {
1855 INT8 X;
1856 INT8 Y;
1857} D3D12_SAMPLE_POSITION;
1858typedef enum D3D12_TEXTURE_COPY_TYPE {
1859 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
1860 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
1861} D3D12_TEXTURE_COPY_TYPE;
1862typedef struct D3D12_SUBRESOURCE_FOOTPRINT {
1863 DXGI_FORMAT Format;
1864 UINT Width;
1865 UINT Height;
1866 UINT Depth;
1867 UINT RowPitch;
1868} D3D12_SUBRESOURCE_FOOTPRINT;
1869typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
1870 UINT64 Offset;
1871 D3D12_SUBRESOURCE_FOOTPRINT Footprint;
1872} D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
1873typedef struct D3D12_TEXTURE_COPY_LOCATION {
1874 ID3D12Resource *pResource;
1875 D3D12_TEXTURE_COPY_TYPE Type;
1876 __C89_NAMELESS union {
1877 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
1878 UINT SubresourceIndex;
1879 } __C89_NAMELESSUNIONNAME;
1880} D3D12_TEXTURE_COPY_LOCATION;
1881typedef enum D3D12_DESCRIPTOR_RANGE_TYPE {
1882 D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
1883 D3D12_DESCRIPTOR_RANGE_TYPE_UAV = 1,
1884 D3D12_DESCRIPTOR_RANGE_TYPE_CBV = 2,
1885 D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = 3
1886} D3D12_DESCRIPTOR_RANGE_TYPE;
1887typedef struct D3D12_DESCRIPTOR_RANGE {
1888 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
1889 UINT NumDescriptors;
1890 UINT BaseShaderRegister;
1891 UINT RegisterSpace;
1892 UINT OffsetInDescriptorsFromTableStart;
1893} D3D12_DESCRIPTOR_RANGE;
1894typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS {
1895 D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0,
1896 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
1897 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
1898 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
1899 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
1900 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
1901} D3D12_DESCRIPTOR_RANGE_FLAGS;
1902DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_RANGE_FLAGS);
1903typedef struct D3D12_DESCRIPTOR_RANGE1 {
1904 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
1905 UINT NumDescriptors;
1906 UINT BaseShaderRegister;
1907 UINT RegisterSpace;
1908 D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
1909 UINT OffsetInDescriptorsFromTableStart;
1910} D3D12_DESCRIPTOR_RANGE1;
1911typedef struct D3D12_ROOT_DESCRIPTOR_TABLE {
1912 UINT NumDescriptorRanges;
1913 const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
1914} D3D12_ROOT_DESCRIPTOR_TABLE;
1915typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 {
1916 UINT NumDescriptorRanges;
1917 const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
1918} D3D12_ROOT_DESCRIPTOR_TABLE1;
1919typedef struct D3D12_ROOT_CONSTANTS {
1920 UINT ShaderRegister;
1921 UINT RegisterSpace;
1922 UINT Num32BitValues;
1923} D3D12_ROOT_CONSTANTS;
1924typedef struct D3D12_ROOT_DESCRIPTOR {
1925 UINT ShaderRegister;
1926 UINT RegisterSpace;
1927} D3D12_ROOT_DESCRIPTOR;
1928typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS {
1929 D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0,
1930 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
1931 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
1932 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
1933} D3D12_ROOT_DESCRIPTOR_FLAGS;
1934DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_DESCRIPTOR_FLAGS);
1935typedef struct D3D12_ROOT_DESCRIPTOR1 {
1936 UINT ShaderRegister;
1937 UINT RegisterSpace;
1938 D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
1939} D3D12_ROOT_DESCRIPTOR1;
1940typedef enum D3D12_ROOT_PARAMETER_TYPE {
1941 D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
1942 D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = 1,
1943 D3D12_ROOT_PARAMETER_TYPE_CBV = 2,
1944 D3D12_ROOT_PARAMETER_TYPE_SRV = 3,
1945 D3D12_ROOT_PARAMETER_TYPE_UAV = 4
1946} D3D12_ROOT_PARAMETER_TYPE;
1947typedef enum D3D12_SHADER_VISIBILITY {
1948 D3D12_SHADER_VISIBILITY_ALL = 0,
1949 D3D12_SHADER_VISIBILITY_VERTEX = 1,
1950 D3D12_SHADER_VISIBILITY_HULL = 2,
1951 D3D12_SHADER_VISIBILITY_DOMAIN = 3,
1952 D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
1953 D3D12_SHADER_VISIBILITY_PIXEL = 5,
1954 D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
1955 D3D12_SHADER_VISIBILITY_MESH = 7
1956} D3D12_SHADER_VISIBILITY;
1957typedef struct D3D12_ROOT_PARAMETER {
1958 D3D12_ROOT_PARAMETER_TYPE ParameterType;
1959 __C89_NAMELESS union {
1960 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
1961 D3D12_ROOT_CONSTANTS Constants;
1962 D3D12_ROOT_DESCRIPTOR Descriptor;
1963 } __C89_NAMELESSUNIONNAME;
1964 D3D12_SHADER_VISIBILITY ShaderVisibility;
1965} D3D12_ROOT_PARAMETER;
1966typedef struct D3D12_ROOT_PARAMETER1 {
1967 D3D12_ROOT_PARAMETER_TYPE ParameterType;
1968 __C89_NAMELESS union {
1969 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
1970 D3D12_ROOT_CONSTANTS Constants;
1971 D3D12_ROOT_DESCRIPTOR1 Descriptor;
1972 } __C89_NAMELESSUNIONNAME;
1973 D3D12_SHADER_VISIBILITY ShaderVisibility;
1974} D3D12_ROOT_PARAMETER1;
1975typedef enum D3D12_STATIC_BORDER_COLOR {
1976 D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
1977 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = 1,
1978 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = 2
1979} D3D12_STATIC_BORDER_COLOR;
1980typedef enum D3D12_FILTER {
1981 D3D12_FILTER_MIN_MAG_MIP_POINT = 0x0,
1982 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
1983 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
1984 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
1985 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
1986 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
1987 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
1988 D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
1989 D3D12_FILTER_ANISOTROPIC = 0x55,
1990 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
1991 D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
1992 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
1993 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
1994 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
1995 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
1996 D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
1997 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
1998 D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
1999 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
2000 D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
2001 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
2002 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
2003 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
2004 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
2005 D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
2006 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
2007 D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
2008 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
2009 D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
2010 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
2011 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
2012 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
2013 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
2014 D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
2015 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
2016 D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
2017} D3D12_FILTER;
2018typedef enum D3D12_FILTER_TYPE {
2019 D3D12_FILTER_TYPE_POINT = 0,
2020 D3D12_FILTER_TYPE_LINEAR = 1
2021} D3D12_FILTER_TYPE;
2022#define D3D12_MIP_FILTER_SHIFT (0)
2023
2024#define D3D12_MAG_FILTER_SHIFT (2)
2025
2026#define D3D12_MIN_FILTER_SHIFT (4)
2027
2028#define D3D12_FILTER_TYPE_MASK (0x3)
2029
2030#define D3D12_ANISOTROPIC_FILTERING_BIT (0x40)
2031
2032typedef enum D3D12_FILTER_REDUCTION_TYPE {
2033 D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
2034 D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
2035 D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
2036 D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
2037} D3D12_FILTER_REDUCTION_TYPE;
2038#define D3D12_FILTER_REDUCTION_TYPE_MASK (0x3)
2039
2040#define D3D12_FILTER_REDUCTION_TYPE_SHIFT (7)
2041
2042#define D3D12_ENCODE_BASIC_FILTER(min, mag, mip, reduction) \
2043 ((D3D12_FILTER) ( \
2044 (((min) & D3D12_FILTER_TYPE_MASK) << D3D12_MIN_FILTER_SHIFT) \
2045 | (((mag) & D3D12_FILTER_TYPE_MASK) << D3D12_MAG_FILTER_SHIFT) \
2046 | (((mip) & D3D12_FILTER_TYPE_MASK) << D3D12_MIP_FILTER_SHIFT) \
2047 | (((reduction) & D3D12_FILTER_REDUCTION_TYPE_MASK) << D3D12_FILTER_REDUCTION_TYPE_SHIFT)))
2048#define D3D12_ENCODE_ANISOTROPIC_FILTER(reduction) \
2049 ((D3D12_FILTER) ( \
2050 D3D12_ANISOTROPIC_FILTERING_BIT \
2051 | D3D12_ENCODE_BASIC_FILTER(D3D12_FILTER_TYPE_LINEAR, \
2052 D3D12_FILTER_TYPE_LINEAR, \
2053 D3D12_FILTER_TYPE_LINEAR, \
2054 reduction)))
2055#define D3D12_DECODE_MAG_FILTER(filter) \
2056 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MAG_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
2057#define D3D12_DECODE_MIN_FILTER(filter) \
2058 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIN_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
2059#define D3D12_DECODE_MIP_FILTER(filter) \
2060 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIP_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
2061#define D3D12_DECODE_IS_ANISOTROPIC_FILTER(filter) \
2062 (((filter) & D3D12_ANISOTROPIC_FILTERING_BIT) \
2063 && (D3D12_DECODE_MIN_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \
2064 && (D3D12_DECODE_MAG_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \
2065 && (D3D12_DECODE_MIP_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR))
2066#define D3D12_DECODE_FILTER_REDUCTION(filter) \
2067 ((D3D12_FILTER_REDUCTION_TYPE)(((filter) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT) \
2068 & D3D12_FILTER_REDUCTION_TYPE_MASK))
2069#define D3D12_DECODE_IS_COMPARISON_FILTER(filter) \
2070 (D3D12_DECODE_FILTER_REDUCTION(filter) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON)
2071typedef enum D3D12_TEXTURE_ADDRESS_MODE {
2072 D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
2073 D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
2074 D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
2075 D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
2076 D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
2077} D3D12_TEXTURE_ADDRESS_MODE;
2078typedef enum D3D12_COMPARISON_FUNC {
2079 D3D12_COMPARISON_FUNC_NEVER = 1,
2080 D3D12_COMPARISON_FUNC_LESS = 2,
2081 D3D12_COMPARISON_FUNC_EQUAL = 3,
2082 D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
2083 D3D12_COMPARISON_FUNC_GREATER = 5,
2084 D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
2085 D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
2086 D3D12_COMPARISON_FUNC_ALWAYS = 8
2087} D3D12_COMPARISON_FUNC;
2088typedef struct D3D12_STATIC_SAMPLER_DESC {
2089 D3D12_FILTER Filter;
2090 D3D12_TEXTURE_ADDRESS_MODE AddressU;
2091 D3D12_TEXTURE_ADDRESS_MODE AddressV;
2092 D3D12_TEXTURE_ADDRESS_MODE AddressW;
2093 FLOAT MipLODBias;
2094 UINT MaxAnisotropy;
2095 D3D12_COMPARISON_FUNC ComparisonFunc;
2096 D3D12_STATIC_BORDER_COLOR BorderColor;
2097 FLOAT MinLOD;
2098 FLOAT MaxLOD;
2099 UINT ShaderRegister;
2100 UINT RegisterSpace;
2101 D3D12_SHADER_VISIBILITY ShaderVisibility;
2102} D3D12_STATIC_SAMPLER_DESC;
2103typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
2104 D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0,
2105 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
2106 D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
2107 D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
2108 D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
2109 D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
2110 D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
2111 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
2112 D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
2113 D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
2114 D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
2115 D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
2116 D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
2117} D3D12_ROOT_SIGNATURE_FLAGS;
2118DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_SIGNATURE_FLAGS);
2119typedef struct D3D12_ROOT_SIGNATURE_DESC {
2120 UINT NumParameters;
2121 const D3D12_ROOT_PARAMETER *pParameters;
2122 UINT NumStaticSamplers;
2123 const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
2124 D3D12_ROOT_SIGNATURE_FLAGS Flags;
2125} D3D12_ROOT_SIGNATURE_DESC;
2126typedef struct D3D12_ROOT_SIGNATURE_DESC1 {
2127 UINT NumParameters;
2128 const D3D12_ROOT_PARAMETER1 *pParameters;
2129 UINT NumStaticSamplers;
2130 const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
2131 D3D12_ROOT_SIGNATURE_FLAGS Flags;
2132} D3D12_ROOT_SIGNATURE_DESC1;
2133typedef enum D3D_ROOT_SIGNATURE_VERSION {
2134 D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
2135 D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
2136 D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2
2137} D3D_ROOT_SIGNATURE_VERSION;
2138typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
2139 D3D_ROOT_SIGNATURE_VERSION Version;
2140 __C89_NAMELESS union {
2141 D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
2142 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
2143 } __C89_NAMELESSUNIONNAME;
2144} D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
2145typedef enum D3D12_DESCRIPTOR_HEAP_TYPE {
2146 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
2147 D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = 1,
2148 D3D12_DESCRIPTOR_HEAP_TYPE_RTV = 2,
2149 D3D12_DESCRIPTOR_HEAP_TYPE_DSV = 3,
2150 D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = 4
2151} D3D12_DESCRIPTOR_HEAP_TYPE;
2152typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS {
2153 D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0,
2154 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
2155} D3D12_DESCRIPTOR_HEAP_FLAGS;
2156DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_HEAP_FLAGS);
2157typedef struct D3D12_DESCRIPTOR_HEAP_DESC {
2158 D3D12_DESCRIPTOR_HEAP_TYPE Type;
2159 UINT NumDescriptors;
2160 D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
2161 UINT NodeMask;
2162} D3D12_DESCRIPTOR_HEAP_DESC;
2163typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
2164typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC {
2165 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
2166 UINT SizeInBytes;
2167} D3D12_CONSTANT_BUFFER_VIEW_DESC;
2168typedef enum D3D12_SRV_DIMENSION {
2169 D3D12_SRV_DIMENSION_UNKNOWN = 0,
2170 D3D12_SRV_DIMENSION_BUFFER = 1,
2171 D3D12_SRV_DIMENSION_TEXTURE1D = 2,
2172 D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
2173 D3D12_SRV_DIMENSION_TEXTURE2D = 4,
2174 D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
2175 D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
2176 D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
2177 D3D12_SRV_DIMENSION_TEXTURE3D = 8,
2178 D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
2179 D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
2180 D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
2181} D3D12_SRV_DIMENSION;
2182typedef enum D3D12_BUFFER_SRV_FLAGS {
2183 D3D12_BUFFER_SRV_FLAG_NONE = 0x0,
2184 D3D12_BUFFER_SRV_FLAG_RAW = 0x1
2185} D3D12_BUFFER_SRV_FLAGS;
2186DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_SRV_FLAGS);
2187typedef enum D3D12_SHADER_COMPONENT_MAPPING {
2188 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
2189 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
2190 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
2191 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
2192 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
2193 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
2194} D3D12_SHADER_COMPONENT_MAPPING;
2195#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(x, y, z, w) \
2196 (((x) & D3D12_SHADER_COMPONENT_MAPPING_MASK) \
2197 | (((y) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \
2198 | (((z) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 2)) \
2199 | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) \
2200 | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)
2201#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)
2202#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(i, mapping) \
2203 ((D3D12_SHADER_COMPONENT_MAPPING)(mapping >> (i * D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \
2204 & D3D12_SHADER_COMPONENT_MAPPING_MASK))
2205typedef struct D3D12_BUFFER_SRV {
2206 UINT64 FirstElement;
2207 UINT NumElements;
2208 UINT StructureByteStride;
2209 D3D12_BUFFER_SRV_FLAGS Flags;
2210} D3D12_BUFFER_SRV;
2211typedef struct D3D12_TEX1D_SRV {
2212 UINT MostDetailedMip;
2213 UINT MipLevels;
2214 FLOAT ResourceMinLODClamp;
2215} D3D12_TEX1D_SRV;
2216typedef struct D3D12_TEX1D_ARRAY_SRV {
2217 UINT MostDetailedMip;
2218 UINT MipLevels;
2219 UINT FirstArraySlice;
2220 UINT ArraySize;
2221 FLOAT ResourceMinLODClamp;
2222} D3D12_TEX1D_ARRAY_SRV;
2223typedef struct D3D12_TEX2D_SRV {
2224 UINT MostDetailedMip;
2225 UINT MipLevels;
2226 UINT PlaneSlice;
2227 FLOAT ResourceMinLODClamp;
2228} D3D12_TEX2D_SRV;
2229typedef struct D3D12_TEX2D_ARRAY_SRV {
2230 UINT MostDetailedMip;
2231 UINT MipLevels;
2232 UINT FirstArraySlice;
2233 UINT ArraySize;
2234 UINT PlaneSlice;
2235 FLOAT ResourceMinLODClamp;
2236} D3D12_TEX2D_ARRAY_SRV;
2237typedef struct D3D12_TEX2DMS_SRV {
2238 UINT UnusedField_NothingToDefine;
2239} D3D12_TEX2DMS_SRV;
2240typedef struct D3D12_TEX2DMS_ARRAY_SRV {
2241 UINT FirstArraySlice;
2242 UINT ArraySize;
2243} D3D12_TEX2DMS_ARRAY_SRV;
2244typedef struct D3D12_TEX3D_SRV {
2245 UINT MostDetailedMip;
2246 UINT MipLevels;
2247 FLOAT ResourceMinLODClamp;
2248} D3D12_TEX3D_SRV;
2249typedef struct D3D12_TEXCUBE_SRV {
2250 UINT MostDetailedMip;
2251 UINT MipLevels;
2252 FLOAT ResourceMinLODClamp;
2253} D3D12_TEXCUBE_SRV;
2254typedef struct D3D12_TEXCUBE_ARRAY_SRV {
2255 UINT MostDetailedMip;
2256 UINT MipLevels;
2257 UINT First2DArrayFace;
2258 UINT NumCubes;
2259 FLOAT ResourceMinLODClamp;
2260} D3D12_TEXCUBE_ARRAY_SRV;
2261typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
2262 D3D12_GPU_VIRTUAL_ADDRESS Location;
2263} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
2264typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC {
2265 DXGI_FORMAT Format;
2266 D3D12_SRV_DIMENSION ViewDimension;
2267 UINT Shader4ComponentMapping;
2268 __C89_NAMELESS union {
2269 D3D12_BUFFER_SRV Buffer;
2270 D3D12_TEX1D_SRV Texture1D;
2271 D3D12_TEX1D_ARRAY_SRV Texture1DArray;
2272 D3D12_TEX2D_SRV Texture2D;
2273 D3D12_TEX2D_ARRAY_SRV Texture2DArray;
2274 D3D12_TEX2DMS_SRV Texture2DMS;
2275 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
2276 D3D12_TEX3D_SRV Texture3D;
2277 D3D12_TEXCUBE_SRV TextureCube;
2278 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
2279 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
2280 } __C89_NAMELESSUNIONNAME;
2281} D3D12_SHADER_RESOURCE_VIEW_DESC;
2282typedef enum D3D12_UAV_DIMENSION {
2283 D3D12_UAV_DIMENSION_UNKNOWN = 0,
2284 D3D12_UAV_DIMENSION_BUFFER = 1,
2285 D3D12_UAV_DIMENSION_TEXTURE1D = 2,
2286 D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
2287 D3D12_UAV_DIMENSION_TEXTURE2D = 4,
2288 D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
2289 D3D12_UAV_DIMENSION_TEXTURE3D = 8
2290} D3D12_UAV_DIMENSION;
2291typedef enum D3D12_BUFFER_UAV_FLAGS {
2292 D3D12_BUFFER_UAV_FLAG_NONE = 0x0,
2293 D3D12_BUFFER_UAV_FLAG_RAW = 0x1
2294} D3D12_BUFFER_UAV_FLAGS;
2295DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_UAV_FLAGS);
2296typedef struct D3D12_BUFFER_UAV {
2297 UINT64 FirstElement;
2298 UINT NumElements;
2299 UINT StructureByteStride;
2300 UINT64 CounterOffsetInBytes;
2301 D3D12_BUFFER_UAV_FLAGS Flags;
2302} D3D12_BUFFER_UAV;
2303typedef struct D3D12_TEX1D_UAV {
2304 UINT MipSlice;
2305} D3D12_TEX1D_UAV;
2306typedef struct D3D12_TEX1D_ARRAY_UAV {
2307 UINT MipSlice;
2308 UINT FirstArraySlice;
2309 UINT ArraySize;
2310} D3D12_TEX1D_ARRAY_UAV;
2311typedef struct D3D12_TEX2D_UAV {
2312 UINT MipSlice;
2313 UINT PlaneSlice;
2314} D3D12_TEX2D_UAV;
2315typedef struct D3D12_TEX2D_ARRAY_UAV {
2316 UINT MipSlice;
2317 UINT FirstArraySlice;
2318 UINT ArraySize;
2319 UINT PlaneSlice;
2320} D3D12_TEX2D_ARRAY_UAV;
2321typedef struct D3D12_TEX3D_UAV {
2322 UINT MipSlice;
2323 UINT FirstWSlice;
2324 UINT WSize;
2325} D3D12_TEX3D_UAV;
2326typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC {
2327 DXGI_FORMAT Format;
2328 D3D12_UAV_DIMENSION ViewDimension;
2329 __C89_NAMELESS union {
2330 D3D12_BUFFER_UAV Buffer;
2331 D3D12_TEX1D_UAV Texture1D;
2332 D3D12_TEX1D_ARRAY_UAV Texture1DArray;
2333 D3D12_TEX2D_UAV Texture2D;
2334 D3D12_TEX2D_ARRAY_UAV Texture2DArray;
2335 D3D12_TEX3D_UAV Texture3D;
2336 } __C89_NAMELESSUNIONNAME;
2337} D3D12_UNORDERED_ACCESS_VIEW_DESC;
2338typedef enum D3D12_RTV_DIMENSION {
2339 D3D12_RTV_DIMENSION_UNKNOWN = 0,
2340 D3D12_RTV_DIMENSION_BUFFER = 1,
2341 D3D12_RTV_DIMENSION_TEXTURE1D = 2,
2342 D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
2343 D3D12_RTV_DIMENSION_TEXTURE2D = 4,
2344 D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
2345 D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
2346 D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
2347 D3D12_RTV_DIMENSION_TEXTURE3D = 8
2348} D3D12_RTV_DIMENSION;
2349typedef struct D3D12_BUFFER_RTV {
2350 UINT64 FirstElement;
2351 UINT NumElements;
2352} D3D12_BUFFER_RTV;
2353typedef struct D3D12_TEX1D_RTV {
2354 UINT MipSlice;
2355} D3D12_TEX1D_RTV;
2356typedef struct D3D12_TEX1D_ARRAY_RTV {
2357 UINT MipSlice;
2358 UINT FirstArraySlice;
2359 UINT ArraySize;
2360} D3D12_TEX1D_ARRAY_RTV;
2361typedef struct D3D12_TEX2D_RTV {
2362 UINT MipSlice;
2363 UINT PlaneSlice;
2364} D3D12_TEX2D_RTV;
2365typedef struct D3D12_TEX2D_ARRAY_RTV {
2366 UINT MipSlice;
2367 UINT FirstArraySlice;
2368 UINT ArraySize;
2369 UINT PlaneSlice;
2370} D3D12_TEX2D_ARRAY_RTV;
2371typedef struct D3D12_TEX2DMS_RTV {
2372 UINT UnusedField_NothingToDefine;
2373} D3D12_TEX2DMS_RTV;
2374typedef struct D3D12_TEX2DMS_ARRAY_RTV {
2375 UINT FirstArraySlice;
2376 UINT ArraySize;
2377} D3D12_TEX2DMS_ARRAY_RTV;
2378typedef struct D3D12_TEX3D_RTV {
2379 UINT MipSlice;
2380 UINT FirstWSlice;
2381 UINT WSize;
2382} D3D12_TEX3D_RTV;
2383typedef struct D3D12_RENDER_TARGET_VIEW_DESC {
2384 DXGI_FORMAT Format;
2385 D3D12_RTV_DIMENSION ViewDimension;
2386 __C89_NAMELESS union {
2387 D3D12_BUFFER_RTV Buffer;
2388 D3D12_TEX1D_RTV Texture1D;
2389 D3D12_TEX1D_ARRAY_RTV Texture1DArray;
2390 D3D12_TEX2D_RTV Texture2D;
2391 D3D12_TEX2D_ARRAY_RTV Texture2DArray;
2392 D3D12_TEX2DMS_RTV Texture2DMS;
2393 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
2394 D3D12_TEX3D_RTV Texture3D;
2395 } __C89_NAMELESSUNIONNAME;
2396} D3D12_RENDER_TARGET_VIEW_DESC;
2397typedef enum D3D12_DSV_DIMENSION {
2398 D3D12_DSV_DIMENSION_UNKNOWN = 0,
2399 D3D12_DSV_DIMENSION_TEXTURE1D = 1,
2400 D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
2401 D3D12_DSV_DIMENSION_TEXTURE2D = 3,
2402 D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
2403 D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
2404 D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
2405} D3D12_DSV_DIMENSION;
2406typedef enum D3D12_DSV_FLAGS {
2407 D3D12_DSV_FLAG_NONE = 0x0,
2408 D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
2409 D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
2410} D3D12_DSV_FLAGS;
2411DEFINE_ENUM_FLAG_OPERATORS(D3D12_DSV_FLAGS);
2412typedef struct D3D12_TEX1D_DSV {
2413 UINT MipSlice;
2414} D3D12_TEX1D_DSV;
2415typedef struct D3D12_TEX1D_ARRAY_DSV {
2416 UINT MipSlice;
2417 UINT FirstArraySlice;
2418 UINT ArraySize;
2419} D3D12_TEX1D_ARRAY_DSV;
2420typedef struct D3D12_TEX2D_DSV {
2421 UINT MipSlice;
2422} D3D12_TEX2D_DSV;
2423typedef struct D3D12_TEX2D_ARRAY_DSV {
2424 UINT MipSlice;
2425 UINT FirstArraySlice;
2426 UINT ArraySize;
2427} D3D12_TEX2D_ARRAY_DSV;
2428typedef struct D3D12_TEX2DMS_DSV {
2429 UINT UnusedField_NothingToDefine;
2430} D3D12_TEX2DMS_DSV;
2431typedef struct D3D12_TEX2DMS_ARRAY_DSV {
2432 UINT FirstArraySlice;
2433 UINT ArraySize;
2434} D3D12_TEX2DMS_ARRAY_DSV;
2435typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC {
2436 DXGI_FORMAT Format;
2437 D3D12_DSV_DIMENSION ViewDimension;
2438 D3D12_DSV_FLAGS Flags;
2439 __C89_NAMELESS union {
2440 D3D12_TEX1D_DSV Texture1D;
2441 D3D12_TEX1D_ARRAY_DSV Texture1DArray;
2442 D3D12_TEX2D_DSV Texture2D;
2443 D3D12_TEX2D_ARRAY_DSV Texture2DArray;
2444 D3D12_TEX2DMS_DSV Texture2DMS;
2445 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
2446 } __C89_NAMELESSUNIONNAME;
2447} D3D12_DEPTH_STENCIL_VIEW_DESC;
2448typedef struct D3D12_SAMPLER_DESC {
2449 D3D12_FILTER Filter;
2450 D3D12_TEXTURE_ADDRESS_MODE AddressU;
2451 D3D12_TEXTURE_ADDRESS_MODE AddressV;
2452 D3D12_TEXTURE_ADDRESS_MODE AddressW;
2453 FLOAT MipLODBias;
2454 UINT MaxAnisotropy;
2455 D3D12_COMPARISON_FUNC ComparisonFunc;
2456 FLOAT BorderColor[4];
2457 FLOAT MinLOD;
2458 FLOAT MaxLOD;
2459} D3D12_SAMPLER_DESC;
2460typedef struct D3D12_CPU_DESCRIPTOR_HANDLE {
2461 SIZE_T ptr;
2462} D3D12_CPU_DESCRIPTOR_HANDLE;
2463typedef struct D3D12_GPU_DESCRIPTOR_HANDLE {
2464 UINT64 ptr;
2465} D3D12_GPU_DESCRIPTOR_HANDLE;
2466typedef enum D3D12_STENCIL_OP {
2467 D3D12_STENCIL_OP_KEEP = 1,
2468 D3D12_STENCIL_OP_ZERO = 2,
2469 D3D12_STENCIL_OP_REPLACE = 3,
2470 D3D12_STENCIL_OP_INCR_SAT = 4,
2471 D3D12_STENCIL_OP_DECR_SAT = 5,
2472 D3D12_STENCIL_OP_INVERT = 6,
2473 D3D12_STENCIL_OP_INCR = 7,
2474 D3D12_STENCIL_OP_DECR = 8
2475} D3D12_STENCIL_OP;
2476typedef struct D3D12_DEPTH_STENCILOP_DESC {
2477 D3D12_STENCIL_OP StencilFailOp;
2478 D3D12_STENCIL_OP StencilDepthFailOp;
2479 D3D12_STENCIL_OP StencilPassOp;
2480 D3D12_COMPARISON_FUNC StencilFunc;
2481} D3D12_DEPTH_STENCILOP_DESC;
2482typedef enum D3D12_DEPTH_WRITE_MASK {
2483 D3D12_DEPTH_WRITE_MASK_ZERO = 0,
2484 D3D12_DEPTH_WRITE_MASK_ALL = 1
2485} D3D12_DEPTH_WRITE_MASK;
2486typedef struct D3D12_DEPTH_STENCIL_DESC {
2487 WINBOOL DepthEnable;
2488 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
2489 D3D12_COMPARISON_FUNC DepthFunc;
2490 WINBOOL StencilEnable;
2491 UINT8 StencilReadMask;
2492 UINT8 StencilWriteMask;
2493 D3D12_DEPTH_STENCILOP_DESC FrontFace;
2494 D3D12_DEPTH_STENCILOP_DESC BackFace;
2495} D3D12_DEPTH_STENCIL_DESC;
2496typedef struct D3D12_DEPTH_STENCIL_DESC1 {
2497 WINBOOL DepthEnable;
2498 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
2499 D3D12_COMPARISON_FUNC DepthFunc;
2500 WINBOOL StencilEnable;
2501 UINT8 StencilReadMask;
2502 UINT8 StencilWriteMask;
2503 D3D12_DEPTH_STENCILOP_DESC FrontFace;
2504 D3D12_DEPTH_STENCILOP_DESC BackFace;
2505 WINBOOL DepthBoundsTestEnable;
2506} D3D12_DEPTH_STENCIL_DESC1;
2507typedef enum D3D12_BLEND {
2508 D3D12_BLEND_ZERO = 1,
2509 D3D12_BLEND_ONE = 2,
2510 D3D12_BLEND_SRC_COLOR = 3,
2511 D3D12_BLEND_INV_SRC_COLOR = 4,
2512 D3D12_BLEND_SRC_ALPHA = 5,
2513 D3D12_BLEND_INV_SRC_ALPHA = 6,
2514 D3D12_BLEND_DEST_ALPHA = 7,
2515 D3D12_BLEND_INV_DEST_ALPHA = 8,
2516 D3D12_BLEND_DEST_COLOR = 9,
2517 D3D12_BLEND_INV_DEST_COLOR = 10,
2518 D3D12_BLEND_SRC_ALPHA_SAT = 11,
2519 D3D12_BLEND_BLEND_FACTOR = 14,
2520 D3D12_BLEND_INV_BLEND_FACTOR = 15,
2521 D3D12_BLEND_SRC1_COLOR = 16,
2522 D3D12_BLEND_INV_SRC1_COLOR = 17,
2523 D3D12_BLEND_SRC1_ALPHA = 18,
2524 D3D12_BLEND_INV_SRC1_ALPHA = 19,
2525 D3D12_BLEND_ALPHA_FACTOR = 20,
2526 D3D12_BLEND_INV_ALPHA_FACTOR = 21
2527} D3D12_BLEND;
2528typedef enum D3D12_BLEND_OP {
2529 D3D12_BLEND_OP_ADD = 1,
2530 D3D12_BLEND_OP_SUBTRACT = 2,
2531 D3D12_BLEND_OP_REV_SUBTRACT = 3,
2532 D3D12_BLEND_OP_MIN = 4,
2533 D3D12_BLEND_OP_MAX = 5
2534} D3D12_BLEND_OP;
2535typedef enum D3D12_LOGIC_OP {
2536 D3D12_LOGIC_OP_CLEAR = 0x0,
2537 D3D12_LOGIC_OP_SET = 0x1,
2538 D3D12_LOGIC_OP_COPY = 0x2,
2539 D3D12_LOGIC_OP_COPY_INVERTED = 0x3,
2540 D3D12_LOGIC_OP_NOOP = 0x4,
2541 D3D12_LOGIC_OP_INVERT = 0x5,
2542 D3D12_LOGIC_OP_AND = 0x6,
2543 D3D12_LOGIC_OP_NAND = 0x7,
2544 D3D12_LOGIC_OP_OR = 0x8,
2545 D3D12_LOGIC_OP_NOR = 0x9,
2546 D3D12_LOGIC_OP_XOR = 0xa,
2547 D3D12_LOGIC_OP_EQUIV = 0xb,
2548 D3D12_LOGIC_OP_AND_REVERSE = 0xc,
2549 D3D12_LOGIC_OP_AND_INVERTED = 0xd,
2550 D3D12_LOGIC_OP_OR_REVERSE = 0xe,
2551 D3D12_LOGIC_OP_OR_INVERTED = 0xf
2552} D3D12_LOGIC_OP;
2553typedef enum D3D12_COLOR_WRITE_ENABLE {
2554 D3D12_COLOR_WRITE_ENABLE_RED = 0x1,
2555 D3D12_COLOR_WRITE_ENABLE_GREEN = 0x2,
2556 D3D12_COLOR_WRITE_ENABLE_BLUE = 0x4,
2557 D3D12_COLOR_WRITE_ENABLE_ALPHA = 0x8,
2558 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
2559} D3D12_COLOR_WRITE_ENABLE;
2560typedef struct D3D12_RENDER_TARGET_BLEND_DESC {
2561 WINBOOL BlendEnable;
2562 WINBOOL LogicOpEnable;
2563 D3D12_BLEND SrcBlend;
2564 D3D12_BLEND DestBlend;
2565 D3D12_BLEND_OP BlendOp;
2566 D3D12_BLEND SrcBlendAlpha;
2567 D3D12_BLEND DestBlendAlpha;
2568 D3D12_BLEND_OP BlendOpAlpha;
2569 D3D12_LOGIC_OP LogicOp;
2570 UINT8 RenderTargetWriteMask;
2571} D3D12_RENDER_TARGET_BLEND_DESC;
2572typedef struct D3D12_BLEND_DESC {
2573 WINBOOL AlphaToCoverageEnable;
2574 WINBOOL IndependentBlendEnable;
2575 D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[8];
2576} D3D12_BLEND_DESC;
2577typedef enum D3D12_FILL_MODE {
2578 D3D12_FILL_MODE_WIREFRAME = 2,
2579 D3D12_FILL_MODE_SOLID = 3
2580} D3D12_FILL_MODE;
2581typedef enum D3D12_CULL_MODE {
2582 D3D12_CULL_MODE_NONE = 1,
2583 D3D12_CULL_MODE_FRONT = 2,
2584 D3D12_CULL_MODE_BACK = 3
2585} D3D12_CULL_MODE;
2586typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE {
2587 D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
2588 D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
2589} D3D12_CONSERVATIVE_RASTERIZATION_MODE;
2590typedef struct D3D12_RASTERIZER_DESC {
2591 D3D12_FILL_MODE FillMode;
2592 D3D12_CULL_MODE CullMode;
2593 WINBOOL FrontCounterClockwise;
2594 INT DepthBias;
2595 FLOAT DepthBiasClamp;
2596 FLOAT SlopeScaledDepthBias;
2597 WINBOOL DepthClipEnable;
2598 WINBOOL MultisampleEnable;
2599 WINBOOL AntialiasedLineEnable;
2600 UINT ForcedSampleCount;
2601 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
2602} D3D12_RASTERIZER_DESC;
2603typedef struct D3D12_SO_DECLARATION_ENTRY {
2604 UINT Stream;
2605 const char *SemanticName;
2606 UINT SemanticIndex;
2607 BYTE StartComponent;
2608 BYTE ComponentCount;
2609 BYTE OutputSlot;
2610} D3D12_SO_DECLARATION_ENTRY;
2611typedef struct D3D12_STREAM_OUTPUT_DESC {
2612 const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
2613 UINT NumEntries;
2614 const UINT *pBufferStrides;
2615 UINT NumStrides;
2616 UINT RasterizedStream;
2617} D3D12_STREAM_OUTPUT_DESC;
2618typedef enum D3D12_INPUT_CLASSIFICATION {
2619 D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
2620 D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
2621} D3D12_INPUT_CLASSIFICATION;
2622typedef struct D3D12_INPUT_ELEMENT_DESC {
2623 const char *SemanticName;
2624 UINT SemanticIndex;
2625 DXGI_FORMAT Format;
2626 UINT InputSlot;
2627 UINT AlignedByteOffset;
2628 D3D12_INPUT_CLASSIFICATION InputSlotClass;
2629 UINT InstanceDataStepRate;
2630} D3D12_INPUT_ELEMENT_DESC;
2631typedef struct D3D12_INPUT_LAYOUT_DESC {
2632 const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
2633 UINT NumElements;
2634} D3D12_INPUT_LAYOUT_DESC;
2635typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE {
2636 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
2637 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
2638 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
2639} D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
2640typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
2641typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
2642typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE {
2643 D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
2644 D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
2645 D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
2646 D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
2647 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
2648} D3D12_PRIMITIVE_TOPOLOGY_TYPE;
2649typedef struct D3D12_CACHED_PIPELINE_STATE {
2650 const void *pCachedBlob;
2651 SIZE_T CachedBlobSizeInBytes;
2652} D3D12_CACHED_PIPELINE_STATE;
2653typedef enum D3D12_PIPELINE_STATE_FLAGS {
2654 D3D12_PIPELINE_STATE_FLAG_NONE = 0x0,
2655 D3D12_PIPELINE_STATE_FLAG_DEBUG = 0x1
2656} D3D12_PIPELINE_STATE_FLAGS;
2657DEFINE_ENUM_FLAG_OPERATORS(D3D12_PIPELINE_STATE_FLAGS);
2658typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
2659 ID3D12RootSignature *pRootSignature;
2660 D3D12_SHADER_BYTECODE VS;
2661 D3D12_SHADER_BYTECODE PS;
2662 D3D12_SHADER_BYTECODE DS;
2663 D3D12_SHADER_BYTECODE HS;
2664 D3D12_SHADER_BYTECODE GS;
2665 D3D12_STREAM_OUTPUT_DESC StreamOutput;
2666 D3D12_BLEND_DESC BlendState;
2667 UINT SampleMask;
2668 D3D12_RASTERIZER_DESC RasterizerState;
2669 D3D12_DEPTH_STENCIL_DESC DepthStencilState;
2670 D3D12_INPUT_LAYOUT_DESC InputLayout;
2671 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
2672 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
2673 UINT NumRenderTargets;
2674 DXGI_FORMAT RTVFormats[8];
2675 DXGI_FORMAT DSVFormat;
2676 DXGI_SAMPLE_DESC SampleDesc;
2677 UINT NodeMask;
2678 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2679 D3D12_PIPELINE_STATE_FLAGS Flags;
2680} D3D12_GRAPHICS_PIPELINE_STATE_DESC;
2681typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC {
2682 ID3D12RootSignature *pRootSignature;
2683 D3D12_SHADER_BYTECODE CS;
2684 UINT NodeMask;
2685 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2686 D3D12_PIPELINE_STATE_FLAGS Flags;
2687} D3D12_COMPUTE_PIPELINE_STATE_DESC;
2688typedef struct D3D12_PIPELINE_STATE_STREAM_DESC {
2689 SIZE_T SizeInBytes;
2690 void *pPipelineStateSubobjectStream;
2691} D3D12_PIPELINE_STATE_STREAM_DESC;
2692struct D3D12_RT_FORMAT_ARRAY {
2693 DXGI_FORMAT RTFormats[8];
2694 UINT NumRenderTargets;
2695};
2696typedef enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE {
2697 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0x0,
2698 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = 0x1,
2699 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = 0x2,
2700 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = 0x3,
2701 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = 0x4,
2702 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = 0x5,
2703 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = 0x6,
2704 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 0x7,
2705 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = 0x8,
2706 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 0x9,
2707 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = 0xa,
2708 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 0xb,
2709 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 0xc,
2710 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 0xd,
2711 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 0xe,
2712 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 0xf,
2713 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 0x10,
2714 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 0x11,
2715 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = 0x12,
2716 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = 0x13,
2717 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = 0x14,
2718 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 0x15,
2719 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 0x16,
2720 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 0x18,
2721 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 0x19,
2722 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = 0x1a
2723} D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
2724typedef struct D3D12_VIEW_INSTANCE_LOCATION {
2725 UINT ViewportArrayIndex;
2726 UINT RenderTargetArrayIndex;
2727} D3D12_VIEW_INSTANCE_LOCATION;
2728typedef enum D3D12_VIEW_INSTANCING_FLAGS {
2729 D3D12_VIEW_INSTANCING_FLAG_NONE = 0x0,
2730 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1
2731} D3D12_VIEW_INSTANCING_FLAGS;
2732DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIEW_INSTANCING_FLAGS);
2733typedef struct D3D12_VIEW_INSTANCING_DESC {
2734 UINT ViewInstanceCount;
2735 const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
2736 D3D12_VIEW_INSTANCING_FLAGS Flags;
2737} D3D12_VIEW_INSTANCING_DESC;
2738typedef enum D3D12_COMMAND_LIST_TYPE {
2739 D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
2740 D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
2741 D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
2742 D3D12_COMMAND_LIST_TYPE_COPY = 3,
2743 D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
2744 D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
2745 D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6
2746} D3D12_COMMAND_LIST_TYPE;
2747typedef enum D3D12_COMMAND_QUEUE_PRIORITY {
2748 D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
2749 D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
2750 D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
2751} D3D12_COMMAND_QUEUE_PRIORITY;
2752typedef enum D3D12_COMMAND_QUEUE_FLAGS {
2753 D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0,
2754 D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1
2755} D3D12_COMMAND_QUEUE_FLAGS;
2756DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_QUEUE_FLAGS);
2757typedef struct D3D12_COMMAND_QUEUE_DESC {
2758 D3D12_COMMAND_LIST_TYPE Type;
2759 INT Priority;
2760 D3D12_COMMAND_QUEUE_FLAGS Flags;
2761 UINT NodeMask;
2762} D3D12_COMMAND_QUEUE_DESC;
2763typedef struct D3D12_FEATURE_DATA_ARCHITECTURE {
2764 UINT NodeIndex;
2765 WINBOOL TileBasedRenderer;
2766 WINBOOL UMA;
2767 WINBOOL CacheCoherentUMA;
2768} D3D12_FEATURE_DATA_ARCHITECTURE;
2769typedef struct D3D12_FEATURE_DATA_FORMAT_INFO {
2770 DXGI_FORMAT Format;
2771 UINT8 PlaneCount;
2772} D3D12_FEATURE_DATA_FORMAT_INFO;
2773typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS {
2774 UINT NumFeatureLevels;
2775 const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
2776 D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
2777} D3D12_FEATURE_DATA_FEATURE_LEVELS;
2778typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE {
2779 D3D_ROOT_SIGNATURE_VERSION HighestVersion;
2780} D3D12_FEATURE_DATA_ROOT_SIGNATURE;
2781typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
2782 UINT MaxGPUVirtualAddressBitsPerResource;
2783 UINT MaxGPUVirtualAddressBitsPerProcess;
2784} D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
2785typedef enum D3D_SHADER_MODEL {
2786 D3D_SHADER_MODEL_5_1 = 0x51,
2787 D3D_SHADER_MODEL_6_0 = 0x60,
2788 D3D_SHADER_MODEL_6_1 = 0x61,
2789 D3D_SHADER_MODEL_6_2 = 0x62,
2790 D3D_SHADER_MODEL_6_3 = 0x63,
2791 D3D_SHADER_MODEL_6_4 = 0x64,
2792 D3D_SHADER_MODEL_6_5 = 0x65,
2793 D3D_SHADER_MODEL_6_6 = 0x66,
2794 D3D_SHADER_MODEL_6_7 = 0x67,
2795 D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_7
2796} D3D_SHADER_MODEL;
2797typedef struct D3D12_FEATURE_DATA_SHADER_MODEL {
2798 D3D_SHADER_MODEL HighestShaderModel;
2799} D3D12_FEATURE_DATA_SHADER_MODEL;
2800typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
2801 WINBOOL WaveOps;
2802 UINT WaveLaneCountMin;
2803 UINT WaveLaneCountMax;
2804 UINT TotalLaneCount;
2805 WINBOOL ExpandedComputeResourceStates;
2806 WINBOOL Int64ShaderOps;
2807} D3D12_FEATURE_DATA_D3D12_OPTIONS1;
2808typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 {
2809 UINT NodeIndex;
2810 WINBOOL TileBasedRenderer;
2811 WINBOOL UMA;
2812 WINBOOL CacheCoherentUMA;
2813 WINBOOL IsolatedMMU;
2814} D3D12_FEATURE_DATA_ARCHITECTURE1;
2815typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
2816 WINBOOL DepthBoundsTestSupported;
2817 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
2818} D3D12_FEATURE_DATA_D3D12_OPTIONS2;
2819typedef struct D3D12_FEATURE_DATA_SHADER_CACHE {
2820 D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
2821} D3D12_FEATURE_DATA_SHADER_CACHE;
2822typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
2823 D3D12_COMMAND_LIST_TYPE CommandListType;
2824 UINT Priority;
2825 WINBOOL PriorityForTypeIsSupported;
2826} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
2827typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
2828 WINBOOL CopyQueueTimestampQueriesSupported;
2829 WINBOOL CastingFullyTypedFormatSupported;
2830 D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
2831 D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
2832 WINBOOL BarycentricsSupported;
2833} D3D12_FEATURE_DATA_D3D12_OPTIONS3;
2834typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS {
2835 WINBOOL Supported;
2836} D3D12_FEATURE_DATA_EXISTING_HEAPS;
2837typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
2838 WINBOOL MSAA64KBAlignedTextureSupported;
2839 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2840 WINBOOL Native16BitShaderOpsSupported;
2841} D3D12_FEATURE_DATA_D3D12_OPTIONS4;
2842typedef struct D3D12_FEATURE_DATA_SERIALIZATION {
2843 UINT NodeIndex;
2844 D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
2845} D3D12_FEATURE_DATA_SERIALIZATION;
2846typedef struct D3D12_FEATURE_DATA_CROSS_NODE {
2847 D3D12_CROSS_NODE_SHARING_TIER SharingTier;
2848 WINBOOL AtomicShaderInstructions;
2849} D3D12_FEATURE_DATA_CROSS_NODE;
2850typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
2851 WINBOOL SRVOnlyTiledResourceTier3;
2852 D3D12_RENDER_PASS_TIER RenderPassesTier;
2853 D3D12_RAYTRACING_TIER RaytracingTier;
2854} D3D12_FEATURE_DATA_D3D12_OPTIONS5;
2855typedef enum D3D12_VARIABLE_SHADING_RATE_TIER {
2856 D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0x0,
2857 D3D12_VARIABLE_SHADING_RATE_TIER_1 = 0x1,
2858 D3D12_VARIABLE_SHADING_RATE_TIER_2 = 0x2
2859} D3D12_VARIABLE_SHADING_RATE_TIER;
2860typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
2861 WINBOOL AdditionalShadingRatesSupported;
2862 WINBOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
2863 D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
2864 UINT ShadingRateImageTileSize;
2865 WINBOOL BackgroundProcessingSupported;
2866} D3D12_FEATURE_DATA_D3D12_OPTIONS6;
2867typedef enum D3D12_MESH_SHADER_TIER {
2868 D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0x0,
2869 D3D12_MESH_SHADER_TIER_1 = 0xa
2870} D3D12_MESH_SHADER_TIER;
2871typedef enum D3D12_SAMPLER_FEEDBACK_TIER {
2872 D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0x0,
2873 D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 0x5a,
2874 D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 0x64
2875} D3D12_SAMPLER_FEEDBACK_TIER;
2876typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
2877 D3D12_MESH_SHADER_TIER MeshShaderTier;
2878 D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
2879} D3D12_FEATURE_DATA_D3D12_OPTIONS7;
2880typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND {
2881 GUID CommandId;
2882 UINT NodeMask;
2883 const void *pQueryInputData;
2884 SIZE_T QueryInputDataSizeInBytes;
2885 void *pQueryOutputData;
2886 SIZE_T QueryOutputDataSizeInBytes;
2887} D3D12_FEATURE_DATA_QUERY_META_COMMAND;
2888typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
2889 WINBOOL UnalignedBlockTexturesSupported;
2890} D3D12_FEATURE_DATA_D3D12_OPTIONS8;
2891typedef enum D3D12_WAVE_MMA_TIER {
2892 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0x0,
2893 D3D12_WAVE_MMA_TIER_1_0 = 0xa
2894} D3D12_WAVE_MMA_TIER;
2895typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
2896 WINBOOL MeshShaderPipelineStatsSupported;
2897 WINBOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
2898 WINBOOL AtomicInt64OnTypedResourceSupported;
2899 WINBOOL AtomicInt64OnGroupSharedSupported;
2900 WINBOOL DerivativesInMeshAndAmplificationShadersSupported;
2901 D3D12_WAVE_MMA_TIER WaveMMATier;
2902} D3D12_FEATURE_DATA_D3D12_OPTIONS9;
2903typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
2904 WINBOOL VariableRateShadingSumCombinerSupported;
2905 WINBOOL MeshShaderPerPrimitiveShadingRateSupported;
2906} D3D12_FEATURE_DATA_D3D12_OPTIONS10;
2907typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
2908 WINBOOL AtomicInt64OnDescriptorHeapResourceSupported;
2909} D3D12_FEATURE_DATA_D3D12_OPTIONS11;
2910typedef enum D3D12_TRI_STATE {
2911 D3D12_TRI_STATE_UNKNOWN = -0x1,
2912 D3D12_TRI_STATE_FALSE = 0x0,
2913 D3D12_TRI_STATE_TRUE = 0x1
2914} D3D12_TRI_STATE;
2915typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
2916 D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives;
2917 WINBOOL EnhancedBarriersSupported;
2918 WINBOOL RelaxedFormatCastingSupported;
2919} D3D12_FEATURE_DATA_D3D12_OPTIONS12;
2920typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 {
2921 WINBOOL UnrestrictedBufferTextureCopyPitchSupported;
2922 WINBOOL UnrestrictedVertexElementAlignmentSupported;
2923 WINBOOL InvertedViewportHeightFlipsYSupported;
2924 WINBOOL InvertedViewportDepthFlipsZSupported;
2925 WINBOOL TextureCopyBetweenDimensionsSupported;
2926 WINBOOL AlphaBlendFactorSupported;
2927} D3D12_FEATURE_DATA_D3D12_OPTIONS13;
2928typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 {
2929 WINBOOL AdvancedTextureOpsSupported;
2930 WINBOOL WriteableMSAATexturesSupported;
2931 WINBOOL IndependentFrontAndBackStencilRefMaskSupported;
2932} D3D12_FEATURE_DATA_D3D12_OPTIONS14;
2933typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 {
2934 WINBOOL TriangleFanSupported;
2935 WINBOOL DynamicIndexBufferStripCutSupported;
2936} D3D12_FEATURE_DATA_D3D12_OPTIONS15;
2937typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 {
2938 WINBOOL DynamicDepthBiasSupported;
2939 WINBOOL GPUUploadHeapSupported;
2940} D3D12_FEATURE_DATA_D3D12_OPTIONS16;
2941typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17 {
2942 WINBOOL NonNormalizedCoordinateSamplersSupported;
2943 WINBOOL ManualWriteTrackingResourceSupported;
2944} D3D12_FEATURE_DATA_D3D12_OPTIONS17;
2945typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18 {
2946 WINBOOL RenderPassesValid;
2947} D3D12_FEATURE_DATA_D3D12_OPTIONS18;
2948typedef enum D3D12_FEATURE {
2949 D3D12_FEATURE_D3D12_OPTIONS = 0,
2950 D3D12_FEATURE_ARCHITECTURE = 1,
2951 D3D12_FEATURE_FEATURE_LEVELS = 2,
2952 D3D12_FEATURE_FORMAT_SUPPORT = 3,
2953 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
2954 D3D12_FEATURE_FORMAT_INFO = 5,
2955 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
2956 D3D12_FEATURE_SHADER_MODEL = 7,
2957 D3D12_FEATURE_D3D12_OPTIONS1 = 8,
2958 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
2959 D3D12_FEATURE_ROOT_SIGNATURE = 12,
2960 D3D12_FEATURE_ARCHITECTURE1 = 16,
2961 D3D12_FEATURE_D3D12_OPTIONS2 = 18,
2962 D3D12_FEATURE_SHADER_CACHE = 19,
2963 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
2964 D3D12_FEATURE_D3D12_OPTIONS3 = 21,
2965 D3D12_FEATURE_EXISTING_HEAPS = 22,
2966 D3D12_FEATURE_D3D12_OPTIONS4 = 23,
2967 D3D12_FEATURE_SERIALIZATION = 24,
2968 D3D12_FEATURE_CROSS_NODE = 25,
2969 D3D12_FEATURE_D3D12_OPTIONS5 = 27,
2970 D3D12_FEATURE_DISPLAYABLE = 28,
2971 D3D12_FEATURE_D3D12_OPTIONS6 = 30,
2972 D3D12_FEATURE_QUERY_META_COMMAND = 31,
2973 D3D12_FEATURE_D3D12_OPTIONS7 = 32,
2974 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
2975 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
2976 D3D12_FEATURE_D3D12_OPTIONS8 = 36,
2977 D3D12_FEATURE_D3D12_OPTIONS9 = 37,
2978 D3D12_FEATURE_D3D12_OPTIONS10 = 39,
2979 D3D12_FEATURE_D3D12_OPTIONS11 = 40,
2980 D3D12_FEATURE_D3D12_OPTIONS12 = 41,
2981 D3D12_FEATURE_D3D12_OPTIONS13 = 42,
2982 D3D12_FEATURE_D3D12_OPTIONS14 = 43,
2983 D3D12_FEATURE_D3D12_OPTIONS15 = 44,
2984 D3D12_FEATURE_D3D12_OPTIONS16 = 45,
2985 D3D12_FEATURE_D3D12_OPTIONS17 = 46,
2986 D3D12_FEATURE_D3D12_OPTIONS18 = 47
2987} D3D12_FEATURE;
2988typedef struct D3D12_MEMCPY_DEST {
2989 void *pData;
2990 SIZE_T RowPitch;
2991 SIZE_T SlicePitch;
2992} D3D12_MEMCPY_DEST;
2993typedef struct D3D12_SUBRESOURCE_DATA {
2994 const void *pData;
2995 LONG_PTR RowPitch;
2996 LONG_PTR SlicePitch;
2997} D3D12_SUBRESOURCE_DATA;
2998typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
2999 D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0,
3000 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
3001 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0
3002} D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
3003DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTIPLE_FENCE_WAIT_FLAGS);
3004typedef enum D3D12_RESIDENCY_PRIORITY {
3005 D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
3006 D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
3007 D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
3008 D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
3009 D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
3010} D3D12_RESIDENCY_PRIORITY;
3011typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
3012 D3D12_GPU_VIRTUAL_ADDRESS Dest;
3013 UINT32 Value;
3014} D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
3015typedef enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
3016 D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0
3017} D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
3018DEFINE_ENUM_FLAG_OPERATORS(D3D12_PROTECTED_RESOURCE_SESSION_FLAGS);
3019typedef enum D3D12_PROTECTED_SESSION_STATUS {
3020 D3D12_PROTECTED_SESSION_STATUS_OK = 0,
3021 D3D12_PROTECTED_SESSION_STATUS_INVALID = 1
3022} D3D12_PROTECTED_SESSION_STATUS;
3023typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC {
3024 UINT NodeMask;
3025 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
3026} D3D12_PROTECTED_RESOURCE_SESSION_DESC;
3027/*****************************************************************************
3028 * ID3D12Object interface
3029 */
3030#ifndef __ID3D12Object_INTERFACE_DEFINED__
3031#define __ID3D12Object_INTERFACE_DEFINED__
3032
3033DEFINE_GUID(IID_ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f,0x94, 0xf4,0x31,0xcb,0x56,0xc3,0xb8);
3034#if defined(__cplusplus) && !defined(CINTERFACE)
3035MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
3036ID3D12Object : public IUnknown
3037{
3038 virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
3039 REFGUID guid,
3040 UINT *data_size,
3041 void *data) = 0;
3042
3043 virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
3044 REFGUID guid,
3045 UINT data_size,
3046 const void *data) = 0;
3047
3048 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
3049 REFGUID guid,
3050 const IUnknown *data) = 0;
3051
3052 virtual HRESULT STDMETHODCALLTYPE SetName(
3053 const WCHAR *name) = 0;
3054
3055};
3056#ifdef __CRT_UUID_DECL
3057__CRT_UUID_DECL(ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f,0x94, 0xf4,0x31,0xcb,0x56,0xc3,0xb8)
3058#endif
3059#else
3060typedef struct ID3D12ObjectVtbl {
3061 BEGIN_INTERFACE
3062
3063 /*** IUnknown methods ***/
3064 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3065 ID3D12Object *This,
3066 REFIID riid,
3067 void **ppvObject);
3068
3069 ULONG (STDMETHODCALLTYPE *AddRef)(
3070 ID3D12Object *This);
3071
3072 ULONG (STDMETHODCALLTYPE *Release)(
3073 ID3D12Object *This);
3074
3075 /*** ID3D12Object methods ***/
3076 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3077 ID3D12Object *This,
3078 REFGUID guid,
3079 UINT *data_size,
3080 void *data);
3081
3082 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3083 ID3D12Object *This,
3084 REFGUID guid,
3085 UINT data_size,
3086 const void *data);
3087
3088 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3089 ID3D12Object *This,
3090 REFGUID guid,
3091 const IUnknown *data);
3092
3093 HRESULT (STDMETHODCALLTYPE *SetName)(
3094 ID3D12Object *This,
3095 const WCHAR *name);
3096
3097 END_INTERFACE
3098} ID3D12ObjectVtbl;
3099
3100interface ID3D12Object {
3101 CONST_VTBL ID3D12ObjectVtbl* lpVtbl;
3102};
3103
3104#ifdef COBJMACROS
3105#ifndef WIDL_C_INLINE_WRAPPERS
3106/*** IUnknown methods ***/
3107#define ID3D12Object_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3108#define ID3D12Object_AddRef(This) (This)->lpVtbl->AddRef(This)
3109#define ID3D12Object_Release(This) (This)->lpVtbl->Release(This)
3110/*** ID3D12Object methods ***/
3111#define ID3D12Object_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3112#define ID3D12Object_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3113#define ID3D12Object_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3114#define ID3D12Object_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3115#else
3116/*** IUnknown methods ***/
3117static inline HRESULT ID3D12Object_QueryInterface(ID3D12Object* This,REFIID riid,void **ppvObject) {
3118 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3119}
3120static inline ULONG ID3D12Object_AddRef(ID3D12Object* This) {
3121 return This->lpVtbl->AddRef(This);
3122}
3123static inline ULONG ID3D12Object_Release(ID3D12Object* This) {
3124 return This->lpVtbl->Release(This);
3125}
3126/*** ID3D12Object methods ***/
3127static inline HRESULT ID3D12Object_GetPrivateData(ID3D12Object* This,REFGUID guid,UINT *data_size,void *data) {
3128 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3129}
3130static inline HRESULT ID3D12Object_SetPrivateData(ID3D12Object* This,REFGUID guid,UINT data_size,const void *data) {
3131 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3132}
3133static inline HRESULT ID3D12Object_SetPrivateDataInterface(ID3D12Object* This,REFGUID guid,const IUnknown *data) {
3134 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3135}
3136static inline HRESULT ID3D12Object_SetName(ID3D12Object* This,const WCHAR *name) {
3137 return This->lpVtbl->SetName(This,name);
3138}
3139#endif
3140#endif
3141
3142#endif
3143
3144
3145#endif /* __ID3D12Object_INTERFACE_DEFINED__ */
3146
3147/*****************************************************************************
3148 * ID3D12DeviceChild interface
3149 */
3150#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
3151#define __ID3D12DeviceChild_INTERFACE_DEFINED__
3152
3153DEFINE_GUID(IID_ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d,0xf5, 0x2b,0x64,0xca,0x9e,0xa3,0x57);
3154#if defined(__cplusplus) && !defined(CINTERFACE)
3155MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
3156ID3D12DeviceChild : public ID3D12Object
3157{
3158 virtual HRESULT STDMETHODCALLTYPE GetDevice(
3159 REFIID riid,
3160 void **device) = 0;
3161
3162};
3163#ifdef __CRT_UUID_DECL
3164__CRT_UUID_DECL(ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d,0xf5, 0x2b,0x64,0xca,0x9e,0xa3,0x57)
3165#endif
3166#else
3167typedef struct ID3D12DeviceChildVtbl {
3168 BEGIN_INTERFACE
3169
3170 /*** IUnknown methods ***/
3171 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3172 ID3D12DeviceChild *This,
3173 REFIID riid,
3174 void **ppvObject);
3175
3176 ULONG (STDMETHODCALLTYPE *AddRef)(
3177 ID3D12DeviceChild *This);
3178
3179 ULONG (STDMETHODCALLTYPE *Release)(
3180 ID3D12DeviceChild *This);
3181
3182 /*** ID3D12Object methods ***/
3183 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3184 ID3D12DeviceChild *This,
3185 REFGUID guid,
3186 UINT *data_size,
3187 void *data);
3188
3189 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3190 ID3D12DeviceChild *This,
3191 REFGUID guid,
3192 UINT data_size,
3193 const void *data);
3194
3195 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3196 ID3D12DeviceChild *This,
3197 REFGUID guid,
3198 const IUnknown *data);
3199
3200 HRESULT (STDMETHODCALLTYPE *SetName)(
3201 ID3D12DeviceChild *This,
3202 const WCHAR *name);
3203
3204 /*** ID3D12DeviceChild methods ***/
3205 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3206 ID3D12DeviceChild *This,
3207 REFIID riid,
3208 void **device);
3209
3210 END_INTERFACE
3211} ID3D12DeviceChildVtbl;
3212
3213interface ID3D12DeviceChild {
3214 CONST_VTBL ID3D12DeviceChildVtbl* lpVtbl;
3215};
3216
3217#ifdef COBJMACROS
3218#ifndef WIDL_C_INLINE_WRAPPERS
3219/*** IUnknown methods ***/
3220#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3221#define ID3D12DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This)
3222#define ID3D12DeviceChild_Release(This) (This)->lpVtbl->Release(This)
3223/*** ID3D12Object methods ***/
3224#define ID3D12DeviceChild_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3225#define ID3D12DeviceChild_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3226#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3227#define ID3D12DeviceChild_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3228/*** ID3D12DeviceChild methods ***/
3229#define ID3D12DeviceChild_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3230#else
3231/*** IUnknown methods ***/
3232static inline HRESULT ID3D12DeviceChild_QueryInterface(ID3D12DeviceChild* This,REFIID riid,void **ppvObject) {
3233 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3234}
3235static inline ULONG ID3D12DeviceChild_AddRef(ID3D12DeviceChild* This) {
3236 return This->lpVtbl->AddRef(This);
3237}
3238static inline ULONG ID3D12DeviceChild_Release(ID3D12DeviceChild* This) {
3239 return This->lpVtbl->Release(This);
3240}
3241/*** ID3D12Object methods ***/
3242static inline HRESULT ID3D12DeviceChild_GetPrivateData(ID3D12DeviceChild* This,REFGUID guid,UINT *data_size,void *data) {
3243 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3244}
3245static inline HRESULT ID3D12DeviceChild_SetPrivateData(ID3D12DeviceChild* This,REFGUID guid,UINT data_size,const void *data) {
3246 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3247}
3248static inline HRESULT ID3D12DeviceChild_SetPrivateDataInterface(ID3D12DeviceChild* This,REFGUID guid,const IUnknown *data) {
3249 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3250}
3251static inline HRESULT ID3D12DeviceChild_SetName(ID3D12DeviceChild* This,const WCHAR *name) {
3252 return This->lpVtbl->SetName(This,name);
3253}
3254/*** ID3D12DeviceChild methods ***/
3255static inline HRESULT ID3D12DeviceChild_GetDevice(ID3D12DeviceChild* This,REFIID riid,void **device) {
3256 return This->lpVtbl->GetDevice(This,riid,device);
3257}
3258#endif
3259#endif
3260
3261#endif
3262
3263
3264#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
3265
3266/*****************************************************************************
3267 * ID3D12Pageable interface
3268 */
3269#ifndef __ID3D12Pageable_INTERFACE_DEFINED__
3270#define __ID3D12Pageable_INTERFACE_DEFINED__
3271
3272DEFINE_GUID(IID_ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86,0xda, 0xf0,0x08,0xce,0x62,0xf0,0xd6);
3273#if defined(__cplusplus) && !defined(CINTERFACE)
3274MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
3275ID3D12Pageable : public ID3D12DeviceChild
3276{
3277};
3278#ifdef __CRT_UUID_DECL
3279__CRT_UUID_DECL(ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86,0xda, 0xf0,0x08,0xce,0x62,0xf0,0xd6)
3280#endif
3281#else
3282typedef struct ID3D12PageableVtbl {
3283 BEGIN_INTERFACE
3284
3285 /*** IUnknown methods ***/
3286 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3287 ID3D12Pageable *This,
3288 REFIID riid,
3289 void **ppvObject);
3290
3291 ULONG (STDMETHODCALLTYPE *AddRef)(
3292 ID3D12Pageable *This);
3293
3294 ULONG (STDMETHODCALLTYPE *Release)(
3295 ID3D12Pageable *This);
3296
3297 /*** ID3D12Object methods ***/
3298 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3299 ID3D12Pageable *This,
3300 REFGUID guid,
3301 UINT *data_size,
3302 void *data);
3303
3304 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3305 ID3D12Pageable *This,
3306 REFGUID guid,
3307 UINT data_size,
3308 const void *data);
3309
3310 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3311 ID3D12Pageable *This,
3312 REFGUID guid,
3313 const IUnknown *data);
3314
3315 HRESULT (STDMETHODCALLTYPE *SetName)(
3316 ID3D12Pageable *This,
3317 const WCHAR *name);
3318
3319 /*** ID3D12DeviceChild methods ***/
3320 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3321 ID3D12Pageable *This,
3322 REFIID riid,
3323 void **device);
3324
3325 END_INTERFACE
3326} ID3D12PageableVtbl;
3327
3328interface ID3D12Pageable {
3329 CONST_VTBL ID3D12PageableVtbl* lpVtbl;
3330};
3331
3332#ifdef COBJMACROS
3333#ifndef WIDL_C_INLINE_WRAPPERS
3334/*** IUnknown methods ***/
3335#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3336#define ID3D12Pageable_AddRef(This) (This)->lpVtbl->AddRef(This)
3337#define ID3D12Pageable_Release(This) (This)->lpVtbl->Release(This)
3338/*** ID3D12Object methods ***/
3339#define ID3D12Pageable_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3340#define ID3D12Pageable_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3341#define ID3D12Pageable_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3342#define ID3D12Pageable_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3343/*** ID3D12DeviceChild methods ***/
3344#define ID3D12Pageable_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3345#else
3346/*** IUnknown methods ***/
3347static inline HRESULT ID3D12Pageable_QueryInterface(ID3D12Pageable* This,REFIID riid,void **ppvObject) {
3348 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3349}
3350static inline ULONG ID3D12Pageable_AddRef(ID3D12Pageable* This) {
3351 return This->lpVtbl->AddRef(This);
3352}
3353static inline ULONG ID3D12Pageable_Release(ID3D12Pageable* This) {
3354 return This->lpVtbl->Release(This);
3355}
3356/*** ID3D12Object methods ***/
3357static inline HRESULT ID3D12Pageable_GetPrivateData(ID3D12Pageable* This,REFGUID guid,UINT *data_size,void *data) {
3358 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3359}
3360static inline HRESULT ID3D12Pageable_SetPrivateData(ID3D12Pageable* This,REFGUID guid,UINT data_size,const void *data) {
3361 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3362}
3363static inline HRESULT ID3D12Pageable_SetPrivateDataInterface(ID3D12Pageable* This,REFGUID guid,const IUnknown *data) {
3364 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3365}
3366static inline HRESULT ID3D12Pageable_SetName(ID3D12Pageable* This,const WCHAR *name) {
3367 return This->lpVtbl->SetName(This,name);
3368}
3369/*** ID3D12DeviceChild methods ***/
3370static inline HRESULT ID3D12Pageable_GetDevice(ID3D12Pageable* This,REFIID riid,void **device) {
3371 return This->lpVtbl->GetDevice(This,riid,device);
3372}
3373#endif
3374#endif
3375
3376#endif
3377
3378
3379#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */
3380
3381/*****************************************************************************
3382 * ID3D12Heap interface
3383 */
3384#ifndef __ID3D12Heap_INTERFACE_DEFINED__
3385#define __ID3D12Heap_INTERFACE_DEFINED__
3386
3387DEFINE_GUID(IID_ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3);
3388#if defined(__cplusplus) && !defined(CINTERFACE)
3389MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
3390ID3D12Heap : public ID3D12Pageable
3391{
3392#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
3393 virtual D3D12_HEAP_DESC* STDMETHODCALLTYPE GetDesc(
3394 D3D12_HEAP_DESC *__ret) = 0;
3395 D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc(
3396 )
3397 {
3398 D3D12_HEAP_DESC __ret;
3399 return *GetDesc(&__ret);
3400 }
3401#else
3402 virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc(
3403 ) = 0;
3404#endif
3405
3406};
3407#ifdef __CRT_UUID_DECL
3408__CRT_UUID_DECL(ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3)
3409#endif
3410#else
3411typedef struct ID3D12HeapVtbl {
3412 BEGIN_INTERFACE
3413
3414 /*** IUnknown methods ***/
3415 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3416 ID3D12Heap *This,
3417 REFIID riid,
3418 void **ppvObject);
3419
3420 ULONG (STDMETHODCALLTYPE *AddRef)(
3421 ID3D12Heap *This);
3422
3423 ULONG (STDMETHODCALLTYPE *Release)(
3424 ID3D12Heap *This);
3425
3426 /*** ID3D12Object methods ***/
3427 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3428 ID3D12Heap *This,
3429 REFGUID guid,
3430 UINT *data_size,
3431 void *data);
3432
3433 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3434 ID3D12Heap *This,
3435 REFGUID guid,
3436 UINT data_size,
3437 const void *data);
3438
3439 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3440 ID3D12Heap *This,
3441 REFGUID guid,
3442 const IUnknown *data);
3443
3444 HRESULT (STDMETHODCALLTYPE *SetName)(
3445 ID3D12Heap *This,
3446 const WCHAR *name);
3447
3448 /*** ID3D12DeviceChild methods ***/
3449 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3450 ID3D12Heap *This,
3451 REFIID riid,
3452 void **device);
3453
3454 /*** ID3D12Heap methods ***/
3455 D3D12_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
3456 ID3D12Heap *This,
3457 D3D12_HEAP_DESC *__ret);
3458
3459 END_INTERFACE
3460} ID3D12HeapVtbl;
3461
3462interface ID3D12Heap {
3463 CONST_VTBL ID3D12HeapVtbl* lpVtbl;
3464};
3465
3466#ifdef COBJMACROS
3467#ifndef WIDL_C_INLINE_WRAPPERS
3468/*** IUnknown methods ***/
3469#define ID3D12Heap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3470#define ID3D12Heap_AddRef(This) (This)->lpVtbl->AddRef(This)
3471#define ID3D12Heap_Release(This) (This)->lpVtbl->Release(This)
3472/*** ID3D12Object methods ***/
3473#define ID3D12Heap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3474#define ID3D12Heap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3475#define ID3D12Heap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3476#define ID3D12Heap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3477/*** ID3D12DeviceChild methods ***/
3478#define ID3D12Heap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3479/*** ID3D12Heap methods ***/
3480#define ID3D12Heap_GetDesc(This) ID3D12Heap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
3481#else
3482/*** IUnknown methods ***/
3483static inline HRESULT ID3D12Heap_QueryInterface(ID3D12Heap* This,REFIID riid,void **ppvObject) {
3484 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3485}
3486static inline ULONG ID3D12Heap_AddRef(ID3D12Heap* This) {
3487 return This->lpVtbl->AddRef(This);
3488}
3489static inline ULONG ID3D12Heap_Release(ID3D12Heap* This) {
3490 return This->lpVtbl->Release(This);
3491}
3492/*** ID3D12Object methods ***/
3493static inline HRESULT ID3D12Heap_GetPrivateData(ID3D12Heap* This,REFGUID guid,UINT *data_size,void *data) {
3494 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3495}
3496static inline HRESULT ID3D12Heap_SetPrivateData(ID3D12Heap* This,REFGUID guid,UINT data_size,const void *data) {
3497 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3498}
3499static inline HRESULT ID3D12Heap_SetPrivateDataInterface(ID3D12Heap* This,REFGUID guid,const IUnknown *data) {
3500 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3501}
3502static inline HRESULT ID3D12Heap_SetName(ID3D12Heap* This,const WCHAR *name) {
3503 return This->lpVtbl->SetName(This,name);
3504}
3505/*** ID3D12DeviceChild methods ***/
3506static inline HRESULT ID3D12Heap_GetDevice(ID3D12Heap* This,REFIID riid,void **device) {
3507 return This->lpVtbl->GetDevice(This,riid,device);
3508}
3509/*** ID3D12Heap methods ***/
3510static inline D3D12_HEAP_DESC ID3D12Heap_GetDesc(ID3D12Heap* This) {
3511 D3D12_HEAP_DESC __ret;
3512 return *This->lpVtbl->GetDesc(This,&__ret);
3513}
3514#endif
3515#endif
3516
3517#endif
3518
3519
3520#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
3521
3522/*****************************************************************************
3523 * ID3D12Resource interface
3524 */
3525#ifndef __ID3D12Resource_INTERFACE_DEFINED__
3526#define __ID3D12Resource_INTERFACE_DEFINED__
3527
3528DEFINE_GUID(IID_ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc,0x79, 0x5b,0x5c,0x98,0x04,0x0f,0xad);
3529#if defined(__cplusplus) && !defined(CINTERFACE)
3530MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
3531ID3D12Resource : public ID3D12Pageable
3532{
3533 virtual HRESULT STDMETHODCALLTYPE Map(
3534 UINT sub_resource,
3535 const D3D12_RANGE *read_range,
3536 void **data) = 0;
3537
3538 virtual void STDMETHODCALLTYPE Unmap(
3539 UINT sub_resource,
3540 const D3D12_RANGE *written_range) = 0;
3541
3542#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
3543 virtual D3D12_RESOURCE_DESC* STDMETHODCALLTYPE GetDesc(
3544 D3D12_RESOURCE_DESC *__ret) = 0;
3545 D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc(
3546 )
3547 {
3548 D3D12_RESOURCE_DESC __ret;
3549 return *GetDesc(&__ret);
3550 }
3551#else
3552 virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc(
3553 ) = 0;
3554#endif
3555
3556 virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress(
3557 ) = 0;
3558
3559 virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
3560 UINT dst_sub_resource,
3561 const D3D12_BOX *dst_box,
3562 const void *src_data,
3563 UINT src_row_pitch,
3564 UINT src_slice_pitch) = 0;
3565
3566 virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
3567 void *dst_data,
3568 UINT dst_row_pitch,
3569 UINT dst_slice_pitch,
3570 UINT src_sub_resource,
3571 const D3D12_BOX *src_box) = 0;
3572
3573 virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
3574 D3D12_HEAP_PROPERTIES *heap_properties,
3575 D3D12_HEAP_FLAGS *flags) = 0;
3576
3577};
3578#ifdef __CRT_UUID_DECL
3579__CRT_UUID_DECL(ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc,0x79, 0x5b,0x5c,0x98,0x04,0x0f,0xad)
3580#endif
3581#else
3582typedef struct ID3D12ResourceVtbl {
3583 BEGIN_INTERFACE
3584
3585 /*** IUnknown methods ***/
3586 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3587 ID3D12Resource *This,
3588 REFIID riid,
3589 void **ppvObject);
3590
3591 ULONG (STDMETHODCALLTYPE *AddRef)(
3592 ID3D12Resource *This);
3593
3594 ULONG (STDMETHODCALLTYPE *Release)(
3595 ID3D12Resource *This);
3596
3597 /*** ID3D12Object methods ***/
3598 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3599 ID3D12Resource *This,
3600 REFGUID guid,
3601 UINT *data_size,
3602 void *data);
3603
3604 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3605 ID3D12Resource *This,
3606 REFGUID guid,
3607 UINT data_size,
3608 const void *data);
3609
3610 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3611 ID3D12Resource *This,
3612 REFGUID guid,
3613 const IUnknown *data);
3614
3615 HRESULT (STDMETHODCALLTYPE *SetName)(
3616 ID3D12Resource *This,
3617 const WCHAR *name);
3618
3619 /*** ID3D12DeviceChild methods ***/
3620 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3621 ID3D12Resource *This,
3622 REFIID riid,
3623 void **device);
3624
3625 /*** ID3D12Resource methods ***/
3626 HRESULT (STDMETHODCALLTYPE *Map)(
3627 ID3D12Resource *This,
3628 UINT sub_resource,
3629 const D3D12_RANGE *read_range,
3630 void **data);
3631
3632 void (STDMETHODCALLTYPE *Unmap)(
3633 ID3D12Resource *This,
3634 UINT sub_resource,
3635 const D3D12_RANGE *written_range);
3636
3637 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)(
3638 ID3D12Resource *This,
3639 D3D12_RESOURCE_DESC *__ret);
3640
3641 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)(
3642 ID3D12Resource *This);
3643
3644 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)(
3645 ID3D12Resource *This,
3646 UINT dst_sub_resource,
3647 const D3D12_BOX *dst_box,
3648 const void *src_data,
3649 UINT src_row_pitch,
3650 UINT src_slice_pitch);
3651
3652 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)(
3653 ID3D12Resource *This,
3654 void *dst_data,
3655 UINT dst_row_pitch,
3656 UINT dst_slice_pitch,
3657 UINT src_sub_resource,
3658 const D3D12_BOX *src_box);
3659
3660 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)(
3661 ID3D12Resource *This,
3662 D3D12_HEAP_PROPERTIES *heap_properties,
3663 D3D12_HEAP_FLAGS *flags);
3664
3665 END_INTERFACE
3666} ID3D12ResourceVtbl;
3667
3668interface ID3D12Resource {
3669 CONST_VTBL ID3D12ResourceVtbl* lpVtbl;
3670};
3671
3672#ifdef COBJMACROS
3673#ifndef WIDL_C_INLINE_WRAPPERS
3674/*** IUnknown methods ***/
3675#define ID3D12Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3676#define ID3D12Resource_AddRef(This) (This)->lpVtbl->AddRef(This)
3677#define ID3D12Resource_Release(This) (This)->lpVtbl->Release(This)
3678/*** ID3D12Object methods ***/
3679#define ID3D12Resource_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3680#define ID3D12Resource_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3681#define ID3D12Resource_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3682#define ID3D12Resource_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3683/*** ID3D12DeviceChild methods ***/
3684#define ID3D12Resource_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3685/*** ID3D12Resource methods ***/
3686#define ID3D12Resource_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data)
3687#define ID3D12Resource_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range)
3688#define ID3D12Resource_GetDesc(This) ID3D12Resource_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
3689#define ID3D12Resource_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This)
3690#define ID3D12Resource_WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch)
3691#define ID3D12Resource_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box)
3692#define ID3D12Resource_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags)
3693#else
3694/*** IUnknown methods ***/
3695static inline HRESULT ID3D12Resource_QueryInterface(ID3D12Resource* This,REFIID riid,void **ppvObject) {
3696 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3697}
3698static inline ULONG ID3D12Resource_AddRef(ID3D12Resource* This) {
3699 return This->lpVtbl->AddRef(This);
3700}
3701static inline ULONG ID3D12Resource_Release(ID3D12Resource* This) {
3702 return This->lpVtbl->Release(This);
3703}
3704/*** ID3D12Object methods ***/
3705static inline HRESULT ID3D12Resource_GetPrivateData(ID3D12Resource* This,REFGUID guid,UINT *data_size,void *data) {
3706 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3707}
3708static inline HRESULT ID3D12Resource_SetPrivateData(ID3D12Resource* This,REFGUID guid,UINT data_size,const void *data) {
3709 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3710}
3711static inline HRESULT ID3D12Resource_SetPrivateDataInterface(ID3D12Resource* This,REFGUID guid,const IUnknown *data) {
3712 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3713}
3714static inline HRESULT ID3D12Resource_SetName(ID3D12Resource* This,const WCHAR *name) {
3715 return This->lpVtbl->SetName(This,name);
3716}
3717/*** ID3D12DeviceChild methods ***/
3718static inline HRESULT ID3D12Resource_GetDevice(ID3D12Resource* This,REFIID riid,void **device) {
3719 return This->lpVtbl->GetDevice(This,riid,device);
3720}
3721/*** ID3D12Resource methods ***/
3722static inline HRESULT ID3D12Resource_Map(ID3D12Resource* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) {
3723 return This->lpVtbl->Map(This,sub_resource,read_range,data);
3724}
3725static inline void ID3D12Resource_Unmap(ID3D12Resource* This,UINT sub_resource,const D3D12_RANGE *written_range) {
3726 This->lpVtbl->Unmap(This,sub_resource,written_range);
3727}
3728static inline D3D12_RESOURCE_DESC ID3D12Resource_GetDesc(ID3D12Resource* This) {
3729 D3D12_RESOURCE_DESC __ret;
3730 return *This->lpVtbl->GetDesc(This,&__ret);
3731}
3732static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource_GetGPUVirtualAddress(ID3D12Resource* This) {
3733 return This->lpVtbl->GetGPUVirtualAddress(This);
3734}
3735static inline HRESULT ID3D12Resource_WriteToSubresource(ID3D12Resource* This,UINT dst_sub_resource,const D3D12_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_slice_pitch) {
3736 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch);
3737}
3738static inline HRESULT ID3D12Resource_ReadFromSubresource(ID3D12Resource* This,void *dst_data,UINT dst_row_pitch,UINT dst_slice_pitch,UINT src_sub_resource,const D3D12_BOX *src_box) {
3739 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box);
3740}
3741static inline HRESULT ID3D12Resource_GetHeapProperties(ID3D12Resource* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) {
3742 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags);
3743}
3744#endif
3745#endif
3746
3747#endif
3748
3749
3750#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
3751
3752/*****************************************************************************
3753 * ID3D12CommandList interface
3754 */
3755#ifndef __ID3D12CommandList_INTERFACE_DEFINED__
3756#define __ID3D12CommandList_INTERFACE_DEFINED__
3757
3758DEFINE_GUID(IID_ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8,0xc6, 0xec,0x81,0x68,0xf4,0x37,0xe5);
3759#if defined(__cplusplus) && !defined(CINTERFACE)
3760MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
3761ID3D12CommandList : public ID3D12DeviceChild
3762{
3763 virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(
3764 ) = 0;
3765
3766};
3767#ifdef __CRT_UUID_DECL
3768__CRT_UUID_DECL(ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8,0xc6, 0xec,0x81,0x68,0xf4,0x37,0xe5)
3769#endif
3770#else
3771typedef struct ID3D12CommandListVtbl {
3772 BEGIN_INTERFACE
3773
3774 /*** IUnknown methods ***/
3775 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3776 ID3D12CommandList *This,
3777 REFIID riid,
3778 void **ppvObject);
3779
3780 ULONG (STDMETHODCALLTYPE *AddRef)(
3781 ID3D12CommandList *This);
3782
3783 ULONG (STDMETHODCALLTYPE *Release)(
3784 ID3D12CommandList *This);
3785
3786 /*** ID3D12Object methods ***/
3787 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3788 ID3D12CommandList *This,
3789 REFGUID guid,
3790 UINT *data_size,
3791 void *data);
3792
3793 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3794 ID3D12CommandList *This,
3795 REFGUID guid,
3796 UINT data_size,
3797 const void *data);
3798
3799 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3800 ID3D12CommandList *This,
3801 REFGUID guid,
3802 const IUnknown *data);
3803
3804 HRESULT (STDMETHODCALLTYPE *SetName)(
3805 ID3D12CommandList *This,
3806 const WCHAR *name);
3807
3808 /*** ID3D12DeviceChild methods ***/
3809 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3810 ID3D12CommandList *This,
3811 REFIID riid,
3812 void **device);
3813
3814 /*** ID3D12CommandList methods ***/
3815 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
3816 ID3D12CommandList *This);
3817
3818 END_INTERFACE
3819} ID3D12CommandListVtbl;
3820
3821interface ID3D12CommandList {
3822 CONST_VTBL ID3D12CommandListVtbl* lpVtbl;
3823};
3824
3825#ifdef COBJMACROS
3826#ifndef WIDL_C_INLINE_WRAPPERS
3827/*** IUnknown methods ***/
3828#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3829#define ID3D12CommandList_AddRef(This) (This)->lpVtbl->AddRef(This)
3830#define ID3D12CommandList_Release(This) (This)->lpVtbl->Release(This)
3831/*** ID3D12Object methods ***/
3832#define ID3D12CommandList_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3833#define ID3D12CommandList_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3834#define ID3D12CommandList_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3835#define ID3D12CommandList_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3836/*** ID3D12DeviceChild methods ***/
3837#define ID3D12CommandList_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3838/*** ID3D12CommandList methods ***/
3839#define ID3D12CommandList_GetType(This) (This)->lpVtbl->GetType(This)
3840#else
3841/*** IUnknown methods ***/
3842static inline HRESULT ID3D12CommandList_QueryInterface(ID3D12CommandList* This,REFIID riid,void **ppvObject) {
3843 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3844}
3845static inline ULONG ID3D12CommandList_AddRef(ID3D12CommandList* This) {
3846 return This->lpVtbl->AddRef(This);
3847}
3848static inline ULONG ID3D12CommandList_Release(ID3D12CommandList* This) {
3849 return This->lpVtbl->Release(This);
3850}
3851/*** ID3D12Object methods ***/
3852static inline HRESULT ID3D12CommandList_GetPrivateData(ID3D12CommandList* This,REFGUID guid,UINT *data_size,void *data) {
3853 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3854}
3855static inline HRESULT ID3D12CommandList_SetPrivateData(ID3D12CommandList* This,REFGUID guid,UINT data_size,const void *data) {
3856 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3857}
3858static inline HRESULT ID3D12CommandList_SetPrivateDataInterface(ID3D12CommandList* This,REFGUID guid,const IUnknown *data) {
3859 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3860}
3861static inline HRESULT ID3D12CommandList_SetName(ID3D12CommandList* This,const WCHAR *name) {
3862 return This->lpVtbl->SetName(This,name);
3863}
3864/*** ID3D12DeviceChild methods ***/
3865static inline HRESULT ID3D12CommandList_GetDevice(ID3D12CommandList* This,REFIID riid,void **device) {
3866 return This->lpVtbl->GetDevice(This,riid,device);
3867}
3868/*** ID3D12CommandList methods ***/
3869static inline D3D12_COMMAND_LIST_TYPE ID3D12CommandList_GetType(ID3D12CommandList* This) {
3870 return This->lpVtbl->GetType(This);
3871}
3872#endif
3873#endif
3874
3875#endif
3876
3877
3878#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
3879
3880typedef enum D3D12_TILE_COPY_FLAGS {
3881 D3D12_TILE_COPY_FLAG_NONE = 0x0,
3882 D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
3883 D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
3884 D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
3885} D3D12_TILE_COPY_FLAGS;
3886DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_COPY_FLAGS);
3887typedef struct D3D12_INDEX_BUFFER_VIEW {
3888 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3889 UINT SizeInBytes;
3890 DXGI_FORMAT Format;
3891} D3D12_INDEX_BUFFER_VIEW;
3892typedef struct D3D12_VERTEX_BUFFER_VIEW {
3893 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3894 UINT SizeInBytes;
3895 UINT StrideInBytes;
3896} D3D12_VERTEX_BUFFER_VIEW;
3897typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW {
3898 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3899 UINT64 SizeInBytes;
3900 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
3901} D3D12_STREAM_OUTPUT_BUFFER_VIEW;
3902typedef enum D3D12_CLEAR_FLAGS {
3903 D3D12_CLEAR_FLAG_DEPTH = 0x1,
3904 D3D12_CLEAR_FLAG_STENCIL = 0x2
3905} D3D12_CLEAR_FLAGS;
3906DEFINE_ENUM_FLAG_OPERATORS(D3D12_CLEAR_FLAGS);
3907typedef struct D3D12_DISCARD_REGION {
3908 UINT NumRects;
3909 const D3D12_RECT *pRects;
3910 UINT FirstSubresource;
3911 UINT NumSubresources;
3912} D3D12_DISCARD_REGION;
3913typedef enum D3D12_QUERY_TYPE {
3914 D3D12_QUERY_TYPE_OCCLUSION = 0,
3915 D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
3916 D3D12_QUERY_TYPE_TIMESTAMP = 2,
3917 D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
3918 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
3919 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
3920 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
3921 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
3922 D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8,
3923 D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10
3924} D3D12_QUERY_TYPE;
3925typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS {
3926 UINT64 IAVertices;
3927 UINT64 IAPrimitives;
3928 UINT64 VSInvocations;
3929 UINT64 GSInvocations;
3930 UINT64 GSPrimitives;
3931 UINT64 CInvocations;
3932 UINT64 CPrimitives;
3933 UINT64 PSInvocations;
3934 UINT64 HSInvocations;
3935 UINT64 DSInvocations;
3936 UINT64 CSInvocations;
3937} D3D12_QUERY_DATA_PIPELINE_STATISTICS;
3938typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
3939 UINT64 IAVertices;
3940 UINT64 IAPrimitives;
3941 UINT64 VSInvocations;
3942 UINT64 GSInvocations;
3943 UINT64 GSPrimitives;
3944 UINT64 CInvocations;
3945 UINT64 CPrimitives;
3946 UINT64 PSInvocations;
3947 UINT64 HSInvocations;
3948 UINT64 DSInvocations;
3949 UINT64 CSInvocations;
3950 UINT64 ASInvocations;
3951 UINT64 MSInvocations;
3952 UINT64 MSPrimitives;
3953} D3D12_QUERY_DATA_PIPELINE_STATISTICS1;
3954typedef struct D3D12_QUERY_DATA_SO_STATISTICS {
3955 UINT64 NumPrimitivesWritten;
3956 UINT64 PrimitivesStorageNeeded;
3957} D3D12_QUERY_DATA_SO_STATISTICS;
3958typedef enum D3D12_PREDICATION_OP {
3959 D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
3960 D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
3961} D3D12_PREDICATION_OP;
3962/*****************************************************************************
3963 * ID3D12DescriptorHeap interface
3964 */
3965#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
3966#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
3967
3968DEFINE_GUID(IID_ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90,0xf7, 0x12,0x7b,0xb7,0x63,0xfa,0x51);
3969#if defined(__cplusplus) && !defined(CINTERFACE)
3970MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
3971ID3D12DescriptorHeap : public ID3D12Pageable
3972{
3973#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
3974 virtual D3D12_DESCRIPTOR_HEAP_DESC* STDMETHODCALLTYPE GetDesc(
3975 D3D12_DESCRIPTOR_HEAP_DESC *__ret) = 0;
3976 D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(
3977 )
3978 {
3979 D3D12_DESCRIPTOR_HEAP_DESC __ret;
3980 return *GetDesc(&__ret);
3981 }
3982#else
3983 virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(
3984 ) = 0;
3985#endif
3986
3987#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
3988 virtual D3D12_CPU_DESCRIPTOR_HANDLE* STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
3989 D3D12_CPU_DESCRIPTOR_HANDLE *__ret) = 0;
3990 D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
3991 )
3992 {
3993 D3D12_CPU_DESCRIPTOR_HANDLE __ret;
3994 return *GetCPUDescriptorHandleForHeapStart(&__ret);
3995 }
3996#else
3997 virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
3998 ) = 0;
3999#endif
4000
4001#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
4002 virtual D3D12_GPU_DESCRIPTOR_HANDLE* STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
4003 D3D12_GPU_DESCRIPTOR_HANDLE *__ret) = 0;
4004 D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
4005 )
4006 {
4007 D3D12_GPU_DESCRIPTOR_HANDLE __ret;
4008 return *GetGPUDescriptorHandleForHeapStart(&__ret);
4009 }
4010#else
4011 virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
4012 ) = 0;
4013#endif
4014
4015};
4016#ifdef __CRT_UUID_DECL
4017__CRT_UUID_DECL(ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90,0xf7, 0x12,0x7b,0xb7,0x63,0xfa,0x51)
4018#endif
4019#else
4020typedef struct ID3D12DescriptorHeapVtbl {
4021 BEGIN_INTERFACE
4022
4023 /*** IUnknown methods ***/
4024 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4025 ID3D12DescriptorHeap *This,
4026 REFIID riid,
4027 void **ppvObject);
4028
4029 ULONG (STDMETHODCALLTYPE *AddRef)(
4030 ID3D12DescriptorHeap *This);
4031
4032 ULONG (STDMETHODCALLTYPE *Release)(
4033 ID3D12DescriptorHeap *This);
4034
4035 /*** ID3D12Object methods ***/
4036 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
4037 ID3D12DescriptorHeap *This,
4038 REFGUID guid,
4039 UINT *data_size,
4040 void *data);
4041
4042 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
4043 ID3D12DescriptorHeap *This,
4044 REFGUID guid,
4045 UINT data_size,
4046 const void *data);
4047
4048 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
4049 ID3D12DescriptorHeap *This,
4050 REFGUID guid,
4051 const IUnknown *data);
4052
4053 HRESULT (STDMETHODCALLTYPE *SetName)(
4054 ID3D12DescriptorHeap *This,
4055 const WCHAR *name);
4056
4057 /*** ID3D12DeviceChild methods ***/
4058 HRESULT (STDMETHODCALLTYPE *GetDevice)(
4059 ID3D12DescriptorHeap *This,
4060 REFIID riid,
4061 void **device);
4062
4063 /*** ID3D12DescriptorHeap methods ***/
4064 D3D12_DESCRIPTOR_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
4065 ID3D12DescriptorHeap *This,
4066 D3D12_DESCRIPTOR_HEAP_DESC *__ret);
4067
4068 D3D12_CPU_DESCRIPTOR_HANDLE * (STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart)(
4069 ID3D12DescriptorHeap *This,
4070 D3D12_CPU_DESCRIPTOR_HANDLE *__ret);
4071
4072 D3D12_GPU_DESCRIPTOR_HANDLE * (STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart)(
4073 ID3D12DescriptorHeap *This,
4074 D3D12_GPU_DESCRIPTOR_HANDLE *__ret);
4075
4076 END_INTERFACE
4077} ID3D12DescriptorHeapVtbl;
4078
4079interface ID3D12DescriptorHeap {
4080 CONST_VTBL ID3D12DescriptorHeapVtbl* lpVtbl;
4081};
4082
4083#ifdef COBJMACROS
4084#ifndef WIDL_C_INLINE_WRAPPERS
4085/*** IUnknown methods ***/
4086#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4087#define ID3D12DescriptorHeap_AddRef(This) (This)->lpVtbl->AddRef(This)
4088#define ID3D12DescriptorHeap_Release(This) (This)->lpVtbl->Release(This)
4089/*** ID3D12Object methods ***/
4090#define ID3D12DescriptorHeap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
4091#define ID3D12DescriptorHeap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
4092#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
4093#define ID3D12DescriptorHeap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
4094/*** ID3D12DeviceChild methods ***/
4095#define ID3D12DescriptorHeap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
4096/*** ID3D12DescriptorHeap methods ***/
4097#define ID3D12DescriptorHeap_GetDesc(This) ID3D12DescriptorHeap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
4098#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
4099#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
4100#else
4101/*** IUnknown methods ***/
4102static inline HRESULT ID3D12DescriptorHeap_QueryInterface(ID3D12DescriptorHeap* This,REFIID riid,void **ppvObject) {
4103 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4104}
4105static inline ULONG ID3D12DescriptorHeap_AddRef(ID3D12DescriptorHeap* This) {
4106 return This->lpVtbl->AddRef(This);
4107}
4108static inline ULONG ID3D12DescriptorHeap_Release(ID3D12DescriptorHeap* This) {
4109 return This->lpVtbl->Release(This);
4110}
4111/*** ID3D12Object methods ***/
4112static inline HRESULT ID3D12DescriptorHeap_GetPrivateData(ID3D12DescriptorHeap* This,REFGUID guid,UINT *data_size,void *data) {
4113 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
4114}
4115static inline HRESULT ID3D12DescriptorHeap_SetPrivateData(ID3D12DescriptorHeap* This,REFGUID guid,UINT data_size,const void *data) {
4116 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
4117}
4118static inline HRESULT ID3D12DescriptorHeap_SetPrivateDataInterface(ID3D12DescriptorHeap* This,REFGUID guid,const IUnknown *data) {
4119 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
4120}
4121static inline HRESULT ID3D12DescriptorHeap_SetName(ID3D12DescriptorHeap* This,const WCHAR *name) {
4122 return This->lpVtbl->SetName(This,name);
4123}
4124/*** ID3D12DeviceChild methods ***/
4125static inline HRESULT ID3D12DescriptorHeap_GetDevice(ID3D12DescriptorHeap* This,REFIID riid,void **device) {
4126 return This->lpVtbl->GetDevice(This,riid,device);
4127}
4128/*** ID3D12DescriptorHeap methods ***/
4129static inline D3D12_DESCRIPTOR_HEAP_DESC ID3D12DescriptorHeap_GetDesc(ID3D12DescriptorHeap* This) {
4130 D3D12_DESCRIPTOR_HEAP_DESC __ret;
4131 return *This->lpVtbl->GetDesc(This,&__ret);
4132}
4133static inline D3D12_CPU_DESCRIPTOR_HANDLE ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap* This) {
4134 D3D12_CPU_DESCRIPTOR_HANDLE __ret;
4135 return *This->lpVtbl->GetCPUDescriptorHandleForHeapStart(This,&__ret);
4136}
4137static inline D3D12_GPU_DESCRIPTOR_HANDLE ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap* This) {
4138 D3D12_GPU_DESCRIPTOR_HANDLE __ret;
4139 return *This->lpVtbl->GetGPUDescriptorHandleForHeapStart(This,&__ret);
4140}
4141#endif
4142#endif
4143
4144#endif
4145
4146
4147#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
4148
4149/*****************************************************************************
4150 * ID3D12QueryHeap interface
4151 */
4152#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
4153#define __ID3D12QueryHeap_INTERFACE_DEFINED__
4154
4155DEFINE_GUID(IID_ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6,0x1d, 0x97,0x0e,0xc5,0x83,0xca,0xb4);
4156#if defined(__cplusplus) && !defined(CINTERFACE)
4157MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
4158ID3D12QueryHeap : public ID3D12Pageable
4159{
4160};
4161#ifdef __CRT_UUID_DECL
4162__CRT_UUID_DECL(ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6,0x1d, 0x97,0x0e,0xc5,0x83,0xca,0xb4)
4163#endif
4164#else
4165typedef struct ID3D12QueryHeapVtbl {
4166 BEGIN_INTERFACE
4167
4168 /*** IUnknown methods ***/
4169 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4170 ID3D12QueryHeap *This,
4171 REFIID riid,
4172 void **ppvObject);
4173
4174 ULONG (STDMETHODCALLTYPE *AddRef)(
4175 ID3D12QueryHeap *This);
4176
4177 ULONG (STDMETHODCALLTYPE *Release)(
4178 ID3D12QueryHeap *This);
4179
4180 /*** ID3D12Object methods ***/
4181 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
4182 ID3D12QueryHeap *This,
4183 REFGUID guid,
4184 UINT *data_size,
4185 void *data);
4186
4187 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
4188 ID3D12QueryHeap *This,
4189 REFGUID guid,
4190 UINT data_size,
4191 const void *data);
4192
4193 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
4194 ID3D12QueryHeap *This,
4195 REFGUID guid,
4196 const IUnknown *data);
4197
4198 HRESULT (STDMETHODCALLTYPE *SetName)(
4199 ID3D12QueryHeap *This,
4200 const WCHAR *name);
4201
4202 /*** ID3D12DeviceChild methods ***/
4203 HRESULT (STDMETHODCALLTYPE *GetDevice)(
4204 ID3D12QueryHeap *This,
4205 REFIID riid,
4206 void **device);
4207
4208 END_INTERFACE
4209} ID3D12QueryHeapVtbl;
4210
4211interface ID3D12QueryHeap {
4212 CONST_VTBL ID3D12QueryHeapVtbl* lpVtbl;
4213};
4214
4215#ifdef COBJMACROS
4216#ifndef WIDL_C_INLINE_WRAPPERS
4217/*** IUnknown methods ***/
4218#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4219#define ID3D12QueryHeap_AddRef(This) (This)->lpVtbl->AddRef(This)
4220#define ID3D12QueryHeap_Release(This) (This)->lpVtbl->Release(This)
4221/*** ID3D12Object methods ***/
4222#define ID3D12QueryHeap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
4223#define ID3D12QueryHeap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
4224#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
4225#define ID3D12QueryHeap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
4226/*** ID3D12DeviceChild methods ***/
4227#define ID3D12QueryHeap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
4228#else
4229/*** IUnknown methods ***/
4230static inline HRESULT ID3D12QueryHeap_QueryInterface(ID3D12QueryHeap* This,REFIID riid,void **ppvObject) {
4231 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4232}
4233static inline ULONG ID3D12QueryHeap_AddRef(ID3D12QueryHeap* This) {
4234 return This->lpVtbl->AddRef(This);
4235}
4236static inline ULONG ID3D12QueryHeap_Release(ID3D12QueryHeap* This) {
4237 return This->lpVtbl->Release(This);
4238}
4239/*** ID3D12Object methods ***/
4240static inline HRESULT ID3D12QueryHeap_GetPrivateData(ID3D12QueryHeap* This,REFGUID guid,UINT *data_size,void *data) {
4241 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
4242}
4243static inline HRESULT ID3D12QueryHeap_SetPrivateData(ID3D12QueryHeap* This,REFGUID guid,UINT data_size,const void *data) {
4244 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
4245}
4246static inline HRESULT ID3D12QueryHeap_SetPrivateDataInterface(ID3D12QueryHeap* This,REFGUID guid,const IUnknown *data) {
4247 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
4248}
4249static inline HRESULT ID3D12QueryHeap_SetName(ID3D12QueryHeap* This,const WCHAR *name) {
4250 return This->lpVtbl->SetName(This,name);
4251}
4252/*** ID3D12DeviceChild methods ***/
4253static inline HRESULT ID3D12QueryHeap_GetDevice(ID3D12QueryHeap* This,REFIID riid,void **device) {
4254 return This->lpVtbl->GetDevice(This,riid,device);
4255}
4256#endif
4257#endif
4258
4259#endif
4260
4261
4262#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
4263
4264/*****************************************************************************
4265 * ID3D12CommandSignature interface
4266 */
4267#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__
4268#define __ID3D12CommandSignature_INTERFACE_DEFINED__
4269
4270DEFINE_GUID(IID_ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89,0x85, 0xa7,0xb2,0x47,0x50,0x82,0xd1);
4271#if defined(__cplusplus) && !defined(CINTERFACE)
4272MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1")
4273ID3D12CommandSignature : public ID3D12Pageable
4274{
4275};
4276#ifdef __CRT_UUID_DECL
4277__CRT_UUID_DECL(ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89,0x85, 0xa7,0xb2,0x47,0x50,0x82,0xd1)
4278#endif
4279#else
4280typedef struct ID3D12CommandSignatureVtbl {
4281 BEGIN_INTERFACE
4282
4283 /*** IUnknown methods ***/
4284 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4285 ID3D12CommandSignature *This,
4286 REFIID riid,
4287 void **ppvObject);
4288
4289 ULONG (STDMETHODCALLTYPE *AddRef)(
4290 ID3D12CommandSignature *This);
4291
4292 ULONG (STDMETHODCALLTYPE *Release)(
4293 ID3D12CommandSignature *This);
4294
4295 /*** ID3D12Object methods ***/
4296 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
4297 ID3D12CommandSignature *This,
4298 REFGUID guid,
4299 UINT *data_size,
4300 void *data);
4301
4302 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
4303 ID3D12CommandSignature *This,
4304 REFGUID guid,
4305 UINT data_size,
4306 const void *data);
4307
4308 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
4309 ID3D12CommandSignature *This,
4310 REFGUID guid,
4311 const IUnknown *data);
4312
4313 HRESULT (STDMETHODCALLTYPE *SetName)(
4314 ID3D12CommandSignature *This,
4315 const WCHAR *name);
4316
4317 /*** ID3D12DeviceChild methods ***/
4318 HRESULT (STDMETHODCALLTYPE *GetDevice)(
4319 ID3D12CommandSignature *This,
4320 REFIID riid,
4321 void **device);
4322
4323 END_INTERFACE
4324} ID3D12CommandSignatureVtbl;
4325
4326interface ID3D12CommandSignature {
4327 CONST_VTBL ID3D12CommandSignatureVtbl* lpVtbl;
4328};
4329
4330#ifdef COBJMACROS
4331#ifndef WIDL_C_INLINE_WRAPPERS
4332/*** IUnknown methods ***/
4333#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4334#define ID3D12CommandSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
4335#define ID3D12CommandSignature_Release(This) (This)->lpVtbl->Release(This)
4336/*** ID3D12Object methods ***/
4337#define ID3D12CommandSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
4338#define ID3D12CommandSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
4339#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
4340#define ID3D12CommandSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name)
4341/*** ID3D12DeviceChild methods ***/
4342#define ID3D12CommandSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
4343#else
4344/*** IUnknown methods ***/
4345static inline HRESULT ID3D12CommandSignature_QueryInterface(ID3D12CommandSignature* This,REFIID riid,void **ppvObject) {
4346 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4347}
4348static inline ULONG ID3D12CommandSignature_AddRef(ID3D12CommandSignature* This) {
4349 return This->lpVtbl->AddRef(This);
4350}
4351static inline ULONG ID3D12CommandSignature_Release(ID3D12CommandSignature* This) {
4352 return This->lpVtbl->Release(This);
4353}
4354/*** ID3D12Object methods ***/
4355static inline HRESULT ID3D12CommandSignature_GetPrivateData(ID3D12CommandSignature* This,REFGUID guid,UINT *data_size,void *data) {
4356 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
4357}
4358static inline HRESULT ID3D12CommandSignature_SetPrivateData(ID3D12CommandSignature* This,REFGUID guid,UINT data_size,const void *data) {
4359 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
4360}
4361static inline HRESULT ID3D12CommandSignature_SetPrivateDataInterface(ID3D12CommandSignature* This,REFGUID guid,const IUnknown *data) {
4362 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
4363}
4364static inline HRESULT ID3D12CommandSignature_SetName(ID3D12CommandSignature* This,const WCHAR *name) {
4365 return This->lpVtbl->SetName(This,name);
4366}
4367/*** ID3D12DeviceChild methods ***/
4368static inline HRESULT ID3D12CommandSignature_GetDevice(ID3D12CommandSignature* This,REFIID riid,void **device) {
4369 return This->lpVtbl->GetDevice(This,riid,device);
4370}
4371#endif
4372#endif
4373
4374#endif
4375
4376
4377#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */
4378
4379/*****************************************************************************
4380 * ID3D12GraphicsCommandList interface
4381 */
4382#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
4383#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
4384
4385DEFINE_GUID(IID_ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b,0xa8, 0xb3,0xae,0x42,0xa5,0xa4,0x55);
4386#if defined(__cplusplus) && !defined(CINTERFACE)
4387MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
4388ID3D12GraphicsCommandList : public ID3D12CommandList
4389{
4390 virtual HRESULT STDMETHODCALLTYPE Close(
4391 ) = 0;
4392
4393 virtual HRESULT STDMETHODCALLTYPE Reset(
4394 ID3D12CommandAllocator *allocator,
4395 ID3D12PipelineState *initial_state) = 0;
4396
4397 virtual void STDMETHODCALLTYPE ClearState(
4398 ID3D12PipelineState *pipeline_state) = 0;
4399
4400 virtual void STDMETHODCALLTYPE DrawInstanced(
4401 UINT vertex_count_per_instance,
4402 UINT instance_count,
4403 UINT start_vertex_location,
4404 UINT start_instance_location) = 0;
4405
4406 virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
4407 UINT index_count_per_instance,
4408 UINT instance_count,
4409 UINT start_vertex_location,
4410 INT base_vertex_location,
4411 UINT start_instance_location) = 0;
4412
4413 virtual void STDMETHODCALLTYPE Dispatch(
4414 UINT x,
4415 UINT u,
4416 UINT z) = 0;
4417
4418 virtual void STDMETHODCALLTYPE CopyBufferRegion(
4419 ID3D12Resource *dst_buffer,
4420 UINT64 dst_offset,
4421 ID3D12Resource *src_buffer,
4422 UINT64 src_offset,
4423 UINT64 byte_count) = 0;
4424
4425 virtual void STDMETHODCALLTYPE CopyTextureRegion(
4426 const D3D12_TEXTURE_COPY_LOCATION *dst,
4427 UINT dst_x,
4428 UINT dst_y,
4429 UINT dst_z,
4430 const D3D12_TEXTURE_COPY_LOCATION *src,
4431 const D3D12_BOX *src_box) = 0;
4432
4433 virtual void STDMETHODCALLTYPE CopyResource(
4434 ID3D12Resource *dst_resource,
4435 ID3D12Resource *src_resource) = 0;
4436
4437 virtual void STDMETHODCALLTYPE CopyTiles(
4438 ID3D12Resource *tiled_resource,
4439 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
4440 const D3D12_TILE_REGION_SIZE *tile_region_size,
4441 ID3D12Resource *buffer,
4442 UINT64 buffer_offset,
4443 D3D12_TILE_COPY_FLAGS flags) = 0;
4444
4445 virtual void STDMETHODCALLTYPE ResolveSubresource(
4446 ID3D12Resource *dst_resource,
4447 UINT dst_sub_resource,
4448 ID3D12Resource *src_resource,
4449 UINT src_sub_resource,
4450 DXGI_FORMAT format) = 0;
4451
4452 virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
4453 D3D12_PRIMITIVE_TOPOLOGY primitive_topology) = 0;
4454
4455 virtual void STDMETHODCALLTYPE RSSetViewports(
4456 UINT viewport_count,
4457 const D3D12_VIEWPORT *viewports) = 0;
4458
4459 virtual void STDMETHODCALLTYPE RSSetScissorRects(
4460 UINT rect_count,
4461 const D3D12_RECT *rects) = 0;
4462
4463 virtual void STDMETHODCALLTYPE OMSetBlendFactor(
4464 const FLOAT blend_factor[4]) = 0;
4465
4466 virtual void STDMETHODCALLTYPE OMSetStencilRef(
4467 UINT stencil_ref) = 0;
4468
4469 virtual void STDMETHODCALLTYPE SetPipelineState(
4470 ID3D12PipelineState *pipeline_state) = 0;
4471
4472 virtual void STDMETHODCALLTYPE ResourceBarrier(
4473 UINT barrier_count,
4474 const D3D12_RESOURCE_BARRIER *barriers) = 0;
4475
4476 virtual void STDMETHODCALLTYPE ExecuteBundle(
4477 ID3D12GraphicsCommandList *command_list) = 0;
4478
4479 virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
4480 UINT heap_count,
4481 ID3D12DescriptorHeap *const *heaps) = 0;
4482
4483 virtual void STDMETHODCALLTYPE SetComputeRootSignature(
4484 ID3D12RootSignature *root_signature) = 0;
4485
4486 virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
4487 ID3D12RootSignature *root_signature) = 0;
4488
4489 virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
4490 UINT root_parameter_index,
4491 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) = 0;
4492
4493 virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
4494 UINT root_parameter_index,
4495 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) = 0;
4496
4497 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
4498 UINT root_parameter_index,
4499 UINT data,
4500 UINT dst_offset) = 0;
4501
4502 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
4503 UINT root_parameter_index,
4504 UINT data,
4505 UINT dst_offset) = 0;
4506
4507 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
4508 UINT root_parameter_index,
4509 UINT constant_count,
4510 const void *data,
4511 UINT dst_offset) = 0;
4512
4513 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
4514 UINT root_parameter_index,
4515 UINT constant_count,
4516 const void *data,
4517 UINT dst_offset) = 0;
4518
4519 virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
4520 UINT root_parameter_index,
4521 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4522
4523 virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
4524 UINT root_parameter_index,
4525 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4526
4527 virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
4528 UINT root_parameter_index,
4529 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4530
4531 virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
4532 UINT root_parameter_index,
4533 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4534
4535 virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
4536 UINT root_parameter_index,
4537 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4538
4539 virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
4540 UINT root_parameter_index,
4541 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4542
4543 virtual void STDMETHODCALLTYPE IASetIndexBuffer(
4544 const D3D12_INDEX_BUFFER_VIEW *view) = 0;
4545
4546 virtual void STDMETHODCALLTYPE IASetVertexBuffers(
4547 UINT start_slot,
4548 UINT view_count,
4549 const D3D12_VERTEX_BUFFER_VIEW *views) = 0;
4550
4551 virtual void STDMETHODCALLTYPE SOSetTargets(
4552 UINT start_slot,
4553 UINT view_count,
4554 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) = 0;
4555
4556 virtual void STDMETHODCALLTYPE OMSetRenderTargets(
4557 UINT render_target_descriptor_count,
4558 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
4559 WINBOOL single_descriptor_handle,
4560 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) = 0;
4561
4562 virtual void STDMETHODCALLTYPE ClearDepthStencilView(
4563 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
4564 D3D12_CLEAR_FLAGS flags,
4565 FLOAT depth,
4566 UINT8 stencil,
4567 UINT rect_count,
4568 const D3D12_RECT *rects) = 0;
4569
4570 virtual void STDMETHODCALLTYPE ClearRenderTargetView(
4571 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
4572 const FLOAT color[4],
4573 UINT rect_count,
4574 const D3D12_RECT *rects) = 0;
4575
4576 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
4577 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
4578 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
4579 ID3D12Resource *resource,
4580 const UINT values[4],
4581 UINT rect_count,
4582 const D3D12_RECT *rects) = 0;
4583
4584 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
4585 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
4586 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
4587 ID3D12Resource *resource,
4588 const float values[4],
4589 UINT rect_count,
4590 const D3D12_RECT *rects) = 0;
4591
4592 virtual void STDMETHODCALLTYPE DiscardResource(
4593 ID3D12Resource *resource,
4594 const D3D12_DISCARD_REGION *region) = 0;
4595
4596 virtual void STDMETHODCALLTYPE BeginQuery(
4597 ID3D12QueryHeap *heap,
4598 D3D12_QUERY_TYPE type,
4599 UINT index) = 0;
4600
4601 virtual void STDMETHODCALLTYPE EndQuery(
4602 ID3D12QueryHeap *heap,
4603 D3D12_QUERY_TYPE type,
4604 UINT index) = 0;
4605
4606 virtual void STDMETHODCALLTYPE ResolveQueryData(
4607 ID3D12QueryHeap *heap,
4608 D3D12_QUERY_TYPE type,
4609 UINT start_index,
4610 UINT query_count,
4611 ID3D12Resource *dst_buffer,
4612 UINT64 aligned_dst_buffer_offset) = 0;
4613
4614 virtual void STDMETHODCALLTYPE SetPredication(
4615 ID3D12Resource *buffer,
4616 UINT64 aligned_buffer_offset,
4617 D3D12_PREDICATION_OP operation) = 0;
4618
4619 virtual void STDMETHODCALLTYPE SetMarker(
4620 UINT metadata,
4621 const void *data,
4622 UINT size) = 0;
4623
4624 virtual void STDMETHODCALLTYPE BeginEvent(
4625 UINT metadata,
4626 const void *data,
4627 UINT size) = 0;
4628
4629 virtual void STDMETHODCALLTYPE EndEvent(
4630 ) = 0;
4631
4632 virtual void STDMETHODCALLTYPE ExecuteIndirect(
4633 ID3D12CommandSignature *command_signature,
4634 UINT max_command_count,
4635 ID3D12Resource *arg_buffer,
4636 UINT64 arg_buffer_offset,
4637 ID3D12Resource *count_buffer,
4638 UINT64 count_buffer_offset) = 0;
4639
4640};
4641#ifdef __CRT_UUID_DECL
4642__CRT_UUID_DECL(ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b,0xa8, 0xb3,0xae,0x42,0xa5,0xa4,0x55)
4643#endif
4644#else
4645typedef struct ID3D12GraphicsCommandListVtbl {
4646 BEGIN_INTERFACE
4647
4648 /*** IUnknown methods ***/
4649 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4650 ID3D12GraphicsCommandList *This,
4651 REFIID riid,
4652 void **ppvObject);
4653
4654 ULONG (STDMETHODCALLTYPE *AddRef)(
4655 ID3D12GraphicsCommandList *This);
4656
4657 ULONG (STDMETHODCALLTYPE *Release)(
4658 ID3D12GraphicsCommandList *This);
4659
4660 /*** ID3D12Object methods ***/
4661 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
4662 ID3D12GraphicsCommandList *This,
4663 REFGUID guid,
4664 UINT *data_size,
4665 void *data);
4666
4667 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
4668 ID3D12GraphicsCommandList *This,
4669 REFGUID guid,
4670 UINT data_size,
4671 const void *data);
4672
4673 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
4674 ID3D12GraphicsCommandList *This,
4675 REFGUID guid,
4676 const IUnknown *data);
4677
4678 HRESULT (STDMETHODCALLTYPE *SetName)(
4679 ID3D12GraphicsCommandList *This,
4680 const WCHAR *name);
4681
4682 /*** ID3D12DeviceChild methods ***/
4683 HRESULT (STDMETHODCALLTYPE *GetDevice)(
4684 ID3D12GraphicsCommandList *This,
4685 REFIID riid,
4686 void **device);
4687
4688 /*** ID3D12CommandList methods ***/
4689 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
4690 ID3D12GraphicsCommandList *This);
4691
4692 /*** ID3D12GraphicsCommandList methods ***/
4693 HRESULT (STDMETHODCALLTYPE *Close)(
4694 ID3D12GraphicsCommandList *This);
4695
4696 HRESULT (STDMETHODCALLTYPE *Reset)(
4697 ID3D12GraphicsCommandList *This,
4698 ID3D12CommandAllocator *allocator,
4699 ID3D12PipelineState *initial_state);
4700
4701 void (STDMETHODCALLTYPE *ClearState)(
4702 ID3D12GraphicsCommandList *This,
4703 ID3D12PipelineState *pipeline_state);
4704
4705 void (STDMETHODCALLTYPE *DrawInstanced)(
4706 ID3D12GraphicsCommandList *This,
4707 UINT vertex_count_per_instance,
4708 UINT instance_count,
4709 UINT start_vertex_location,
4710 UINT start_instance_location);
4711
4712 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
4713 ID3D12GraphicsCommandList *This,
4714 UINT index_count_per_instance,
4715 UINT instance_count,
4716 UINT start_vertex_location,
4717 INT base_vertex_location,
4718 UINT start_instance_location);
4719
4720 void (STDMETHODCALLTYPE *Dispatch)(
4721 ID3D12GraphicsCommandList *This,
4722 UINT x,
4723 UINT u,
4724 UINT z);
4725
4726 void (STDMETHODCALLTYPE *CopyBufferRegion)(
4727 ID3D12GraphicsCommandList *This,
4728 ID3D12Resource *dst_buffer,
4729 UINT64 dst_offset,
4730 ID3D12Resource *src_buffer,
4731 UINT64 src_offset,
4732 UINT64 byte_count);
4733
4734 void (STDMETHODCALLTYPE *CopyTextureRegion)(
4735 ID3D12GraphicsCommandList *This,
4736 const D3D12_TEXTURE_COPY_LOCATION *dst,
4737 UINT dst_x,
4738 UINT dst_y,
4739 UINT dst_z,
4740 const D3D12_TEXTURE_COPY_LOCATION *src,
4741 const D3D12_BOX *src_box);
4742
4743 void (STDMETHODCALLTYPE *CopyResource)(
4744 ID3D12GraphicsCommandList *This,
4745 ID3D12Resource *dst_resource,
4746 ID3D12Resource *src_resource);
4747
4748 void (STDMETHODCALLTYPE *CopyTiles)(
4749 ID3D12GraphicsCommandList *This,
4750 ID3D12Resource *tiled_resource,
4751 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
4752 const D3D12_TILE_REGION_SIZE *tile_region_size,
4753 ID3D12Resource *buffer,
4754 UINT64 buffer_offset,
4755 D3D12_TILE_COPY_FLAGS flags);
4756
4757 void (STDMETHODCALLTYPE *ResolveSubresource)(
4758 ID3D12GraphicsCommandList *This,
4759 ID3D12Resource *dst_resource,
4760 UINT dst_sub_resource,
4761 ID3D12Resource *src_resource,
4762 UINT src_sub_resource,
4763 DXGI_FORMAT format);
4764
4765 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
4766 ID3D12GraphicsCommandList *This,
4767 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
4768
4769 void (STDMETHODCALLTYPE *RSSetViewports)(
4770 ID3D12GraphicsCommandList *This,
4771 UINT viewport_count,
4772 const D3D12_VIEWPORT *viewports);
4773
4774 void (STDMETHODCALLTYPE *RSSetScissorRects)(
4775 ID3D12GraphicsCommandList *This,
4776 UINT rect_count,
4777 const D3D12_RECT *rects);
4778
4779 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
4780 ID3D12GraphicsCommandList *This,
4781 const FLOAT blend_factor[4]);
4782
4783 void (STDMETHODCALLTYPE *OMSetStencilRef)(
4784 ID3D12GraphicsCommandList *This,
4785 UINT stencil_ref);
4786
4787 void (STDMETHODCALLTYPE *SetPipelineState)(
4788 ID3D12GraphicsCommandList *This,
4789 ID3D12PipelineState *pipeline_state);
4790
4791 void (STDMETHODCALLTYPE *ResourceBarrier)(
4792 ID3D12GraphicsCommandList *This,
4793 UINT barrier_count,
4794 const D3D12_RESOURCE_BARRIER *barriers);
4795
4796 void (STDMETHODCALLTYPE *ExecuteBundle)(
4797 ID3D12GraphicsCommandList *This,
4798 ID3D12GraphicsCommandList *command_list);
4799
4800 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
4801 ID3D12GraphicsCommandList *This,
4802 UINT heap_count,
4803 ID3D12DescriptorHeap *const *heaps);
4804
4805 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
4806 ID3D12GraphicsCommandList *This,
4807 ID3D12RootSignature *root_signature);
4808
4809 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
4810 ID3D12GraphicsCommandList *This,
4811 ID3D12RootSignature *root_signature);
4812
4813 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
4814 ID3D12GraphicsCommandList *This,
4815 UINT root_parameter_index,
4816 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
4817
4818 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
4819 ID3D12GraphicsCommandList *This,
4820 UINT root_parameter_index,
4821 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
4822
4823 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
4824 ID3D12GraphicsCommandList *This,
4825 UINT root_parameter_index,
4826 UINT data,
4827 UINT dst_offset);
4828
4829 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
4830 ID3D12GraphicsCommandList *This,
4831 UINT root_parameter_index,
4832 UINT data,
4833 UINT dst_offset);
4834
4835 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
4836 ID3D12GraphicsCommandList *This,
4837 UINT root_parameter_index,
4838 UINT constant_count,
4839 const void *data,
4840 UINT dst_offset);
4841
4842 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
4843 ID3D12GraphicsCommandList *This,
4844 UINT root_parameter_index,
4845 UINT constant_count,
4846 const void *data,
4847 UINT dst_offset);
4848
4849 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
4850 ID3D12GraphicsCommandList *This,
4851 UINT root_parameter_index,
4852 D3D12_GPU_VIRTUAL_ADDRESS address);
4853
4854 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
4855 ID3D12GraphicsCommandList *This,
4856 UINT root_parameter_index,
4857 D3D12_GPU_VIRTUAL_ADDRESS address);
4858
4859 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
4860 ID3D12GraphicsCommandList *This,
4861 UINT root_parameter_index,
4862 D3D12_GPU_VIRTUAL_ADDRESS address);
4863
4864 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
4865 ID3D12GraphicsCommandList *This,
4866 UINT root_parameter_index,
4867 D3D12_GPU_VIRTUAL_ADDRESS address);
4868
4869 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
4870 ID3D12GraphicsCommandList *This,
4871 UINT root_parameter_index,
4872 D3D12_GPU_VIRTUAL_ADDRESS address);
4873
4874 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
4875 ID3D12GraphicsCommandList *This,
4876 UINT root_parameter_index,
4877 D3D12_GPU_VIRTUAL_ADDRESS address);
4878
4879 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
4880 ID3D12GraphicsCommandList *This,
4881 const D3D12_INDEX_BUFFER_VIEW *view);
4882
4883 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
4884 ID3D12GraphicsCommandList *This,
4885 UINT start_slot,
4886 UINT view_count,
4887 const D3D12_VERTEX_BUFFER_VIEW *views);
4888
4889 void (STDMETHODCALLTYPE *SOSetTargets)(
4890 ID3D12GraphicsCommandList *This,
4891 UINT start_slot,
4892 UINT view_count,
4893 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
4894
4895 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
4896 ID3D12GraphicsCommandList *This,
4897 UINT render_target_descriptor_count,
4898 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
4899 WINBOOL single_descriptor_handle,
4900 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
4901
4902 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
4903 ID3D12GraphicsCommandList *This,
4904 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
4905 D3D12_CLEAR_FLAGS flags,
4906 FLOAT depth,
4907 UINT8 stencil,
4908 UINT rect_count,
4909 const D3D12_RECT *rects);
4910
4911 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
4912 ID3D12GraphicsCommandList *This,
4913 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
4914 const FLOAT color[4],
4915 UINT rect_count,
4916 const D3D12_RECT *rects);
4917
4918 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
4919 ID3D12GraphicsCommandList *This,
4920 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
4921 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
4922 ID3D12Resource *resource,
4923 const UINT values[4],
4924 UINT rect_count,
4925 const D3D12_RECT *rects);
4926
4927 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
4928 ID3D12GraphicsCommandList *This,
4929 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
4930 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
4931 ID3D12Resource *resource,
4932 const float values[4],
4933 UINT rect_count,
4934 const D3D12_RECT *rects);
4935
4936 void (STDMETHODCALLTYPE *DiscardResource)(
4937 ID3D12GraphicsCommandList *This,
4938 ID3D12Resource *resource,
4939 const D3D12_DISCARD_REGION *region);
4940
4941 void (STDMETHODCALLTYPE *BeginQuery)(
4942 ID3D12GraphicsCommandList *This,
4943 ID3D12QueryHeap *heap,
4944 D3D12_QUERY_TYPE type,
4945 UINT index);
4946
4947 void (STDMETHODCALLTYPE *EndQuery)(
4948 ID3D12GraphicsCommandList *This,
4949 ID3D12QueryHeap *heap,
4950 D3D12_QUERY_TYPE type,
4951 UINT index);
4952
4953 void (STDMETHODCALLTYPE *ResolveQueryData)(
4954 ID3D12GraphicsCommandList *This,
4955 ID3D12QueryHeap *heap,
4956 D3D12_QUERY_TYPE type,
4957 UINT start_index,
4958 UINT query_count,
4959 ID3D12Resource *dst_buffer,
4960 UINT64 aligned_dst_buffer_offset);
4961
4962 void (STDMETHODCALLTYPE *SetPredication)(
4963 ID3D12GraphicsCommandList *This,
4964 ID3D12Resource *buffer,
4965 UINT64 aligned_buffer_offset,
4966 D3D12_PREDICATION_OP operation);
4967
4968 void (STDMETHODCALLTYPE *SetMarker)(
4969 ID3D12GraphicsCommandList *This,
4970 UINT metadata,
4971 const void *data,
4972 UINT size);
4973
4974 void (STDMETHODCALLTYPE *BeginEvent)(
4975 ID3D12GraphicsCommandList *This,
4976 UINT metadata,
4977 const void *data,
4978 UINT size);
4979
4980 void (STDMETHODCALLTYPE *EndEvent)(
4981 ID3D12GraphicsCommandList *This);
4982
4983 void (STDMETHODCALLTYPE *ExecuteIndirect)(
4984 ID3D12GraphicsCommandList *This,
4985 ID3D12CommandSignature *command_signature,
4986 UINT max_command_count,
4987 ID3D12Resource *arg_buffer,
4988 UINT64 arg_buffer_offset,
4989 ID3D12Resource *count_buffer,
4990 UINT64 count_buffer_offset);
4991
4992 END_INTERFACE
4993} ID3D12GraphicsCommandListVtbl;
4994
4995interface ID3D12GraphicsCommandList {
4996 CONST_VTBL ID3D12GraphicsCommandListVtbl* lpVtbl;
4997};
4998
4999#ifdef COBJMACROS
5000#ifndef WIDL_C_INLINE_WRAPPERS
5001/*** IUnknown methods ***/
5002#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5003#define ID3D12GraphicsCommandList_AddRef(This) (This)->lpVtbl->AddRef(This)
5004#define ID3D12GraphicsCommandList_Release(This) (This)->lpVtbl->Release(This)
5005/*** ID3D12Object methods ***/
5006#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
5007#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
5008#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
5009#define ID3D12GraphicsCommandList_SetName(This,name) (This)->lpVtbl->SetName(This,name)
5010/*** ID3D12DeviceChild methods ***/
5011#define ID3D12GraphicsCommandList_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
5012/*** ID3D12CommandList methods ***/
5013#define ID3D12GraphicsCommandList_GetType(This) (This)->lpVtbl->GetType(This)
5014/*** ID3D12GraphicsCommandList methods ***/
5015#define ID3D12GraphicsCommandList_Close(This) (This)->lpVtbl->Close(This)
5016#define ID3D12GraphicsCommandList_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
5017#define ID3D12GraphicsCommandList_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
5018#define ID3D12GraphicsCommandList_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
5019#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
5020#define ID3D12GraphicsCommandList_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
5021#define ID3D12GraphicsCommandList_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
5022#define ID3D12GraphicsCommandList_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
5023#define ID3D12GraphicsCommandList_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
5024#define ID3D12GraphicsCommandList_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
5025#define ID3D12GraphicsCommandList_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
5026#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
5027#define ID3D12GraphicsCommandList_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
5028#define ID3D12GraphicsCommandList_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
5029#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
5030#define ID3D12GraphicsCommandList_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
5031#define ID3D12GraphicsCommandList_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
5032#define ID3D12GraphicsCommandList_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
5033#define ID3D12GraphicsCommandList_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
5034#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
5035#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
5036#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
5037#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
5038#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
5039#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
5040#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
5041#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
5042#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
5043#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
5044#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
5045#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
5046#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
5047#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
5048#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
5049#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
5050#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
5051#define ID3D12GraphicsCommandList_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
5052#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
5053#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
5054#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
5055#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
5056#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
5057#define ID3D12GraphicsCommandList_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
5058#define ID3D12GraphicsCommandList_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
5059#define ID3D12GraphicsCommandList_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
5060#define ID3D12GraphicsCommandList_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
5061#define ID3D12GraphicsCommandList_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
5062#define ID3D12GraphicsCommandList_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
5063#define ID3D12GraphicsCommandList_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
5064#define ID3D12GraphicsCommandList_EndEvent(This) (This)->lpVtbl->EndEvent(This)
5065#define ID3D12GraphicsCommandList_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
5066#else
5067/*** IUnknown methods ***/
5068static inline HRESULT ID3D12GraphicsCommandList_QueryInterface(ID3D12GraphicsCommandList* This,REFIID riid,void **ppvObject) {
5069 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5070}
5071static inline ULONG ID3D12GraphicsCommandList_AddRef(ID3D12GraphicsCommandList* This) {
5072 return This->lpVtbl->AddRef(This);
5073}
5074static inline ULONG ID3D12GraphicsCommandList_Release(ID3D12GraphicsCommandList* This) {
5075 return This->lpVtbl->Release(This);
5076}
5077/*** ID3D12Object methods ***/
5078static inline HRESULT ID3D12GraphicsCommandList_GetPrivateData(ID3D12GraphicsCommandList* This,REFGUID guid,UINT *data_size,void *data) {
5079 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
5080}
5081static inline HRESULT ID3D12GraphicsCommandList_SetPrivateData(ID3D12GraphicsCommandList* This,REFGUID guid,UINT data_size,const void *data) {
5082 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
5083}
5084static inline HRESULT ID3D12GraphicsCommandList_SetPrivateDataInterface(ID3D12GraphicsCommandList* This,REFGUID guid,const IUnknown *data) {
5085 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
5086}
5087static inline HRESULT ID3D12GraphicsCommandList_SetName(ID3D12GraphicsCommandList* This,const WCHAR *name) {
5088 return This->lpVtbl->SetName(This,name);
5089}
5090/*** ID3D12DeviceChild methods ***/
5091static inline HRESULT ID3D12GraphicsCommandList_GetDevice(ID3D12GraphicsCommandList* This,REFIID riid,void **device) {
5092 return This->lpVtbl->GetDevice(This,riid,device);
5093}
5094/*** ID3D12CommandList methods ***/
5095static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList_GetType(ID3D12GraphicsCommandList* This) {
5096 return This->lpVtbl->GetType(This);
5097}
5098/*** ID3D12GraphicsCommandList methods ***/
5099static inline HRESULT ID3D12GraphicsCommandList_Close(ID3D12GraphicsCommandList* This) {
5100 return This->lpVtbl->Close(This);
5101}
5102static inline HRESULT ID3D12GraphicsCommandList_Reset(ID3D12GraphicsCommandList* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
5103 return This->lpVtbl->Reset(This,allocator,initial_state);
5104}
5105static inline void ID3D12GraphicsCommandList_ClearState(ID3D12GraphicsCommandList* This,ID3D12PipelineState *pipeline_state) {
5106 This->lpVtbl->ClearState(This,pipeline_state);
5107}
5108static inline void ID3D12GraphicsCommandList_DrawInstanced(ID3D12GraphicsCommandList* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
5109 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
5110}
5111static inline void ID3D12GraphicsCommandList_DrawIndexedInstanced(ID3D12GraphicsCommandList* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
5112 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
5113}
5114static inline void ID3D12GraphicsCommandList_Dispatch(ID3D12GraphicsCommandList* This,UINT x,UINT u,UINT z) {
5115 This->lpVtbl->Dispatch(This,x,u,z);
5116}
5117static inline void ID3D12GraphicsCommandList_CopyBufferRegion(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
5118 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
5119}
5120static inline void ID3D12GraphicsCommandList_CopyTextureRegion(ID3D12GraphicsCommandList* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
5121 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
5122}
5123static inline void ID3D12GraphicsCommandList_CopyResource(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
5124 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
5125}
5126static inline void ID3D12GraphicsCommandList_CopyTiles(ID3D12GraphicsCommandList* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
5127 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
5128}
5129static inline void ID3D12GraphicsCommandList_ResolveSubresource(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
5130 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
5131}
5132static inline void ID3D12GraphicsCommandList_IASetPrimitiveTopology(ID3D12GraphicsCommandList* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
5133 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
5134}
5135static inline void ID3D12GraphicsCommandList_RSSetViewports(ID3D12GraphicsCommandList* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
5136 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
5137}
5138static inline void ID3D12GraphicsCommandList_RSSetScissorRects(ID3D12GraphicsCommandList* This,UINT rect_count,const D3D12_RECT *rects) {
5139 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
5140}
5141static inline void ID3D12GraphicsCommandList_OMSetBlendFactor(ID3D12GraphicsCommandList* This,const FLOAT blend_factor[4]) {
5142 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
5143}
5144static inline void ID3D12GraphicsCommandList_OMSetStencilRef(ID3D12GraphicsCommandList* This,UINT stencil_ref) {
5145 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
5146}
5147static inline void ID3D12GraphicsCommandList_SetPipelineState(ID3D12GraphicsCommandList* This,ID3D12PipelineState *pipeline_state) {
5148 This->lpVtbl->SetPipelineState(This,pipeline_state);
5149}
5150static inline void ID3D12GraphicsCommandList_ResourceBarrier(ID3D12GraphicsCommandList* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
5151 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
5152}
5153static inline void ID3D12GraphicsCommandList_ExecuteBundle(ID3D12GraphicsCommandList* This,ID3D12GraphicsCommandList *command_list) {
5154 This->lpVtbl->ExecuteBundle(This,command_list);
5155}
5156static inline void ID3D12GraphicsCommandList_SetDescriptorHeaps(ID3D12GraphicsCommandList* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
5157 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
5158}
5159static inline void ID3D12GraphicsCommandList_SetComputeRootSignature(ID3D12GraphicsCommandList* This,ID3D12RootSignature *root_signature) {
5160 This->lpVtbl->SetComputeRootSignature(This,root_signature);
5161}
5162static inline void ID3D12GraphicsCommandList_SetGraphicsRootSignature(ID3D12GraphicsCommandList* This,ID3D12RootSignature *root_signature) {
5163 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
5164}
5165static inline void ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
5166 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
5167}
5168static inline void ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
5169 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
5170}
5171static inline void ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
5172 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
5173}
5174static inline void ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
5175 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
5176}
5177static inline void ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
5178 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
5179}
5180static inline void ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
5181 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
5182}
5183static inline void ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5184 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
5185}
5186static inline void ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5187 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
5188}
5189static inline void ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5190 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
5191}
5192static inline void ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5193 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
5194}
5195static inline void ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5196 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
5197}
5198static inline void ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5199 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
5200}
5201static inline void ID3D12GraphicsCommandList_IASetIndexBuffer(ID3D12GraphicsCommandList* This,const D3D12_INDEX_BUFFER_VIEW *view) {
5202 This->lpVtbl->IASetIndexBuffer(This,view);
5203}
5204static inline void ID3D12GraphicsCommandList_IASetVertexBuffers(ID3D12GraphicsCommandList* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
5205 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
5206}
5207static inline void ID3D12GraphicsCommandList_SOSetTargets(ID3D12GraphicsCommandList* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
5208 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
5209}
5210static inline void ID3D12GraphicsCommandList_OMSetRenderTargets(ID3D12GraphicsCommandList* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
5211 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
5212}
5213static inline void ID3D12GraphicsCommandList_ClearDepthStencilView(ID3D12GraphicsCommandList* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
5214 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
5215}
5216static inline void ID3D12GraphicsCommandList_ClearRenderTargetView(ID3D12GraphicsCommandList* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
5217 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
5218}
5219static inline void ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
5220 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
5221}
5222static inline void ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
5223 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
5224}
5225static inline void ID3D12GraphicsCommandList_DiscardResource(ID3D12GraphicsCommandList* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
5226 This->lpVtbl->DiscardResource(This,resource,region);
5227}
5228static inline void ID3D12GraphicsCommandList_BeginQuery(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
5229 This->lpVtbl->BeginQuery(This,heap,type,index);
5230}
5231static inline void ID3D12GraphicsCommandList_EndQuery(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
5232 This->lpVtbl->EndQuery(This,heap,type,index);
5233}
5234static inline void ID3D12GraphicsCommandList_ResolveQueryData(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
5235 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
5236}
5237static inline void ID3D12GraphicsCommandList_SetPredication(ID3D12GraphicsCommandList* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
5238 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
5239}
5240static inline void ID3D12GraphicsCommandList_SetMarker(ID3D12GraphicsCommandList* This,UINT metadata,const void *data,UINT size) {
5241 This->lpVtbl->SetMarker(This,metadata,data,size);
5242}
5243static inline void ID3D12GraphicsCommandList_BeginEvent(ID3D12GraphicsCommandList* This,UINT metadata,const void *data,UINT size) {
5244 This->lpVtbl->BeginEvent(This,metadata,data,size);
5245}
5246static inline void ID3D12GraphicsCommandList_EndEvent(ID3D12GraphicsCommandList* This) {
5247 This->lpVtbl->EndEvent(This);
5248}
5249static inline void ID3D12GraphicsCommandList_ExecuteIndirect(ID3D12GraphicsCommandList* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
5250 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
5251}
5252#endif
5253#endif
5254
5255#endif
5256
5257
5258#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
5259
5260/*****************************************************************************
5261 * ID3D12GraphicsCommandList1 interface
5262 */
5263#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
5264#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
5265
5266DEFINE_GUID(IID_ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
5267#if defined(__cplusplus) && !defined(CINTERFACE)
5268MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
5269ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
5270{
5271 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
5272 ID3D12Resource *dst_buffer,
5273 UINT64 dst_offset,
5274 ID3D12Resource *src_buffer,
5275 UINT64 src_offset,
5276 UINT dependent_resource_count,
5277 ID3D12Resource *const *dependent_resources,
5278 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0;
5279
5280 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
5281 ID3D12Resource *dst_buffer,
5282 UINT64 dst_offset,
5283 ID3D12Resource *src_buffer,
5284 UINT64 src_offset,
5285 UINT dependent_resource_count,
5286 ID3D12Resource *const *dependent_resources,
5287 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0;
5288
5289 virtual void STDMETHODCALLTYPE OMSetDepthBounds(
5290 FLOAT min,
5291 FLOAT max) = 0;
5292
5293 virtual void STDMETHODCALLTYPE SetSamplePositions(
5294 UINT sample_count,
5295 UINT pixel_count,
5296 D3D12_SAMPLE_POSITION *sample_positions) = 0;
5297
5298 virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
5299 ID3D12Resource *dst_resource,
5300 UINT dst_sub_resource_idx,
5301 UINT dst_x,
5302 UINT dst_y,
5303 ID3D12Resource *src_resource,
5304 UINT src_sub_resource_idx,
5305 D3D12_RECT *src_rect,
5306 DXGI_FORMAT format,
5307 D3D12_RESOLVE_MODE mode) = 0;
5308
5309 virtual void STDMETHODCALLTYPE SetViewInstanceMask(
5310 UINT mask) = 0;
5311
5312};
5313#ifdef __CRT_UUID_DECL
5314__CRT_UUID_DECL(ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7)
5315#endif
5316#else
5317typedef struct ID3D12GraphicsCommandList1Vtbl {
5318 BEGIN_INTERFACE
5319
5320 /*** IUnknown methods ***/
5321 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5322 ID3D12GraphicsCommandList1 *This,
5323 REFIID riid,
5324 void **ppvObject);
5325
5326 ULONG (STDMETHODCALLTYPE *AddRef)(
5327 ID3D12GraphicsCommandList1 *This);
5328
5329 ULONG (STDMETHODCALLTYPE *Release)(
5330 ID3D12GraphicsCommandList1 *This);
5331
5332 /*** ID3D12Object methods ***/
5333 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
5334 ID3D12GraphicsCommandList1 *This,
5335 REFGUID guid,
5336 UINT *data_size,
5337 void *data);
5338
5339 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
5340 ID3D12GraphicsCommandList1 *This,
5341 REFGUID guid,
5342 UINT data_size,
5343 const void *data);
5344
5345 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
5346 ID3D12GraphicsCommandList1 *This,
5347 REFGUID guid,
5348 const IUnknown *data);
5349
5350 HRESULT (STDMETHODCALLTYPE *SetName)(
5351 ID3D12GraphicsCommandList1 *This,
5352 const WCHAR *name);
5353
5354 /*** ID3D12DeviceChild methods ***/
5355 HRESULT (STDMETHODCALLTYPE *GetDevice)(
5356 ID3D12GraphicsCommandList1 *This,
5357 REFIID riid,
5358 void **device);
5359
5360 /*** ID3D12CommandList methods ***/
5361 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
5362 ID3D12GraphicsCommandList1 *This);
5363
5364 /*** ID3D12GraphicsCommandList methods ***/
5365 HRESULT (STDMETHODCALLTYPE *Close)(
5366 ID3D12GraphicsCommandList1 *This);
5367
5368 HRESULT (STDMETHODCALLTYPE *Reset)(
5369 ID3D12GraphicsCommandList1 *This,
5370 ID3D12CommandAllocator *allocator,
5371 ID3D12PipelineState *initial_state);
5372
5373 void (STDMETHODCALLTYPE *ClearState)(
5374 ID3D12GraphicsCommandList1 *This,
5375 ID3D12PipelineState *pipeline_state);
5376
5377 void (STDMETHODCALLTYPE *DrawInstanced)(
5378 ID3D12GraphicsCommandList1 *This,
5379 UINT vertex_count_per_instance,
5380 UINT instance_count,
5381 UINT start_vertex_location,
5382 UINT start_instance_location);
5383
5384 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
5385 ID3D12GraphicsCommandList1 *This,
5386 UINT index_count_per_instance,
5387 UINT instance_count,
5388 UINT start_vertex_location,
5389 INT base_vertex_location,
5390 UINT start_instance_location);
5391
5392 void (STDMETHODCALLTYPE *Dispatch)(
5393 ID3D12GraphicsCommandList1 *This,
5394 UINT x,
5395 UINT u,
5396 UINT z);
5397
5398 void (STDMETHODCALLTYPE *CopyBufferRegion)(
5399 ID3D12GraphicsCommandList1 *This,
5400 ID3D12Resource *dst_buffer,
5401 UINT64 dst_offset,
5402 ID3D12Resource *src_buffer,
5403 UINT64 src_offset,
5404 UINT64 byte_count);
5405
5406 void (STDMETHODCALLTYPE *CopyTextureRegion)(
5407 ID3D12GraphicsCommandList1 *This,
5408 const D3D12_TEXTURE_COPY_LOCATION *dst,
5409 UINT dst_x,
5410 UINT dst_y,
5411 UINT dst_z,
5412 const D3D12_TEXTURE_COPY_LOCATION *src,
5413 const D3D12_BOX *src_box);
5414
5415 void (STDMETHODCALLTYPE *CopyResource)(
5416 ID3D12GraphicsCommandList1 *This,
5417 ID3D12Resource *dst_resource,
5418 ID3D12Resource *src_resource);
5419
5420 void (STDMETHODCALLTYPE *CopyTiles)(
5421 ID3D12GraphicsCommandList1 *This,
5422 ID3D12Resource *tiled_resource,
5423 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
5424 const D3D12_TILE_REGION_SIZE *tile_region_size,
5425 ID3D12Resource *buffer,
5426 UINT64 buffer_offset,
5427 D3D12_TILE_COPY_FLAGS flags);
5428
5429 void (STDMETHODCALLTYPE *ResolveSubresource)(
5430 ID3D12GraphicsCommandList1 *This,
5431 ID3D12Resource *dst_resource,
5432 UINT dst_sub_resource,
5433 ID3D12Resource *src_resource,
5434 UINT src_sub_resource,
5435 DXGI_FORMAT format);
5436
5437 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
5438 ID3D12GraphicsCommandList1 *This,
5439 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
5440
5441 void (STDMETHODCALLTYPE *RSSetViewports)(
5442 ID3D12GraphicsCommandList1 *This,
5443 UINT viewport_count,
5444 const D3D12_VIEWPORT *viewports);
5445
5446 void (STDMETHODCALLTYPE *RSSetScissorRects)(
5447 ID3D12GraphicsCommandList1 *This,
5448 UINT rect_count,
5449 const D3D12_RECT *rects);
5450
5451 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
5452 ID3D12GraphicsCommandList1 *This,
5453 const FLOAT blend_factor[4]);
5454
5455 void (STDMETHODCALLTYPE *OMSetStencilRef)(
5456 ID3D12GraphicsCommandList1 *This,
5457 UINT stencil_ref);
5458
5459 void (STDMETHODCALLTYPE *SetPipelineState)(
5460 ID3D12GraphicsCommandList1 *This,
5461 ID3D12PipelineState *pipeline_state);
5462
5463 void (STDMETHODCALLTYPE *ResourceBarrier)(
5464 ID3D12GraphicsCommandList1 *This,
5465 UINT barrier_count,
5466 const D3D12_RESOURCE_BARRIER *barriers);
5467
5468 void (STDMETHODCALLTYPE *ExecuteBundle)(
5469 ID3D12GraphicsCommandList1 *This,
5470 ID3D12GraphicsCommandList *command_list);
5471
5472 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
5473 ID3D12GraphicsCommandList1 *This,
5474 UINT heap_count,
5475 ID3D12DescriptorHeap *const *heaps);
5476
5477 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
5478 ID3D12GraphicsCommandList1 *This,
5479 ID3D12RootSignature *root_signature);
5480
5481 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
5482 ID3D12GraphicsCommandList1 *This,
5483 ID3D12RootSignature *root_signature);
5484
5485 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
5486 ID3D12GraphicsCommandList1 *This,
5487 UINT root_parameter_index,
5488 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
5489
5490 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
5491 ID3D12GraphicsCommandList1 *This,
5492 UINT root_parameter_index,
5493 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
5494
5495 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
5496 ID3D12GraphicsCommandList1 *This,
5497 UINT root_parameter_index,
5498 UINT data,
5499 UINT dst_offset);
5500
5501 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
5502 ID3D12GraphicsCommandList1 *This,
5503 UINT root_parameter_index,
5504 UINT data,
5505 UINT dst_offset);
5506
5507 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
5508 ID3D12GraphicsCommandList1 *This,
5509 UINT root_parameter_index,
5510 UINT constant_count,
5511 const void *data,
5512 UINT dst_offset);
5513
5514 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
5515 ID3D12GraphicsCommandList1 *This,
5516 UINT root_parameter_index,
5517 UINT constant_count,
5518 const void *data,
5519 UINT dst_offset);
5520
5521 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
5522 ID3D12GraphicsCommandList1 *This,
5523 UINT root_parameter_index,
5524 D3D12_GPU_VIRTUAL_ADDRESS address);
5525
5526 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
5527 ID3D12GraphicsCommandList1 *This,
5528 UINT root_parameter_index,
5529 D3D12_GPU_VIRTUAL_ADDRESS address);
5530
5531 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
5532 ID3D12GraphicsCommandList1 *This,
5533 UINT root_parameter_index,
5534 D3D12_GPU_VIRTUAL_ADDRESS address);
5535
5536 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
5537 ID3D12GraphicsCommandList1 *This,
5538 UINT root_parameter_index,
5539 D3D12_GPU_VIRTUAL_ADDRESS address);
5540
5541 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
5542 ID3D12GraphicsCommandList1 *This,
5543 UINT root_parameter_index,
5544 D3D12_GPU_VIRTUAL_ADDRESS address);
5545
5546 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
5547 ID3D12GraphicsCommandList1 *This,
5548 UINT root_parameter_index,
5549 D3D12_GPU_VIRTUAL_ADDRESS address);
5550
5551 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
5552 ID3D12GraphicsCommandList1 *This,
5553 const D3D12_INDEX_BUFFER_VIEW *view);
5554
5555 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
5556 ID3D12GraphicsCommandList1 *This,
5557 UINT start_slot,
5558 UINT view_count,
5559 const D3D12_VERTEX_BUFFER_VIEW *views);
5560
5561 void (STDMETHODCALLTYPE *SOSetTargets)(
5562 ID3D12GraphicsCommandList1 *This,
5563 UINT start_slot,
5564 UINT view_count,
5565 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
5566
5567 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
5568 ID3D12GraphicsCommandList1 *This,
5569 UINT render_target_descriptor_count,
5570 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
5571 WINBOOL single_descriptor_handle,
5572 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
5573
5574 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
5575 ID3D12GraphicsCommandList1 *This,
5576 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
5577 D3D12_CLEAR_FLAGS flags,
5578 FLOAT depth,
5579 UINT8 stencil,
5580 UINT rect_count,
5581 const D3D12_RECT *rects);
5582
5583 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
5584 ID3D12GraphicsCommandList1 *This,
5585 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
5586 const FLOAT color[4],
5587 UINT rect_count,
5588 const D3D12_RECT *rects);
5589
5590 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
5591 ID3D12GraphicsCommandList1 *This,
5592 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
5593 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
5594 ID3D12Resource *resource,
5595 const UINT values[4],
5596 UINT rect_count,
5597 const D3D12_RECT *rects);
5598
5599 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
5600 ID3D12GraphicsCommandList1 *This,
5601 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
5602 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
5603 ID3D12Resource *resource,
5604 const float values[4],
5605 UINT rect_count,
5606 const D3D12_RECT *rects);
5607
5608 void (STDMETHODCALLTYPE *DiscardResource)(
5609 ID3D12GraphicsCommandList1 *This,
5610 ID3D12Resource *resource,
5611 const D3D12_DISCARD_REGION *region);
5612
5613 void (STDMETHODCALLTYPE *BeginQuery)(
5614 ID3D12GraphicsCommandList1 *This,
5615 ID3D12QueryHeap *heap,
5616 D3D12_QUERY_TYPE type,
5617 UINT index);
5618
5619 void (STDMETHODCALLTYPE *EndQuery)(
5620 ID3D12GraphicsCommandList1 *This,
5621 ID3D12QueryHeap *heap,
5622 D3D12_QUERY_TYPE type,
5623 UINT index);
5624
5625 void (STDMETHODCALLTYPE *ResolveQueryData)(
5626 ID3D12GraphicsCommandList1 *This,
5627 ID3D12QueryHeap *heap,
5628 D3D12_QUERY_TYPE type,
5629 UINT start_index,
5630 UINT query_count,
5631 ID3D12Resource *dst_buffer,
5632 UINT64 aligned_dst_buffer_offset);
5633
5634 void (STDMETHODCALLTYPE *SetPredication)(
5635 ID3D12GraphicsCommandList1 *This,
5636 ID3D12Resource *buffer,
5637 UINT64 aligned_buffer_offset,
5638 D3D12_PREDICATION_OP operation);
5639
5640 void (STDMETHODCALLTYPE *SetMarker)(
5641 ID3D12GraphicsCommandList1 *This,
5642 UINT metadata,
5643 const void *data,
5644 UINT size);
5645
5646 void (STDMETHODCALLTYPE *BeginEvent)(
5647 ID3D12GraphicsCommandList1 *This,
5648 UINT metadata,
5649 const void *data,
5650 UINT size);
5651
5652 void (STDMETHODCALLTYPE *EndEvent)(
5653 ID3D12GraphicsCommandList1 *This);
5654
5655 void (STDMETHODCALLTYPE *ExecuteIndirect)(
5656 ID3D12GraphicsCommandList1 *This,
5657 ID3D12CommandSignature *command_signature,
5658 UINT max_command_count,
5659 ID3D12Resource *arg_buffer,
5660 UINT64 arg_buffer_offset,
5661 ID3D12Resource *count_buffer,
5662 UINT64 count_buffer_offset);
5663
5664 /*** ID3D12GraphicsCommandList1 methods ***/
5665 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
5666 ID3D12GraphicsCommandList1 *This,
5667 ID3D12Resource *dst_buffer,
5668 UINT64 dst_offset,
5669 ID3D12Resource *src_buffer,
5670 UINT64 src_offset,
5671 UINT dependent_resource_count,
5672 ID3D12Resource *const *dependent_resources,
5673 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
5674
5675 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
5676 ID3D12GraphicsCommandList1 *This,
5677 ID3D12Resource *dst_buffer,
5678 UINT64 dst_offset,
5679 ID3D12Resource *src_buffer,
5680 UINT64 src_offset,
5681 UINT dependent_resource_count,
5682 ID3D12Resource *const *dependent_resources,
5683 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
5684
5685 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
5686 ID3D12GraphicsCommandList1 *This,
5687 FLOAT min,
5688 FLOAT max);
5689
5690 void (STDMETHODCALLTYPE *SetSamplePositions)(
5691 ID3D12GraphicsCommandList1 *This,
5692 UINT sample_count,
5693 UINT pixel_count,
5694 D3D12_SAMPLE_POSITION *sample_positions);
5695
5696 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
5697 ID3D12GraphicsCommandList1 *This,
5698 ID3D12Resource *dst_resource,
5699 UINT dst_sub_resource_idx,
5700 UINT dst_x,
5701 UINT dst_y,
5702 ID3D12Resource *src_resource,
5703 UINT src_sub_resource_idx,
5704 D3D12_RECT *src_rect,
5705 DXGI_FORMAT format,
5706 D3D12_RESOLVE_MODE mode);
5707
5708 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
5709 ID3D12GraphicsCommandList1 *This,
5710 UINT mask);
5711
5712 END_INTERFACE
5713} ID3D12GraphicsCommandList1Vtbl;
5714
5715interface ID3D12GraphicsCommandList1 {
5716 CONST_VTBL ID3D12GraphicsCommandList1Vtbl* lpVtbl;
5717};
5718
5719#ifdef COBJMACROS
5720#ifndef WIDL_C_INLINE_WRAPPERS
5721/*** IUnknown methods ***/
5722#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5723#define ID3D12GraphicsCommandList1_AddRef(This) (This)->lpVtbl->AddRef(This)
5724#define ID3D12GraphicsCommandList1_Release(This) (This)->lpVtbl->Release(This)
5725/*** ID3D12Object methods ***/
5726#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
5727#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
5728#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
5729#define ID3D12GraphicsCommandList1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
5730/*** ID3D12DeviceChild methods ***/
5731#define ID3D12GraphicsCommandList1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
5732/*** ID3D12CommandList methods ***/
5733#define ID3D12GraphicsCommandList1_GetType(This) (This)->lpVtbl->GetType(This)
5734/*** ID3D12GraphicsCommandList methods ***/
5735#define ID3D12GraphicsCommandList1_Close(This) (This)->lpVtbl->Close(This)
5736#define ID3D12GraphicsCommandList1_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
5737#define ID3D12GraphicsCommandList1_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
5738#define ID3D12GraphicsCommandList1_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
5739#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
5740#define ID3D12GraphicsCommandList1_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
5741#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
5742#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
5743#define ID3D12GraphicsCommandList1_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
5744#define ID3D12GraphicsCommandList1_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
5745#define ID3D12GraphicsCommandList1_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
5746#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
5747#define ID3D12GraphicsCommandList1_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
5748#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
5749#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
5750#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
5751#define ID3D12GraphicsCommandList1_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
5752#define ID3D12GraphicsCommandList1_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
5753#define ID3D12GraphicsCommandList1_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
5754#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
5755#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
5756#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
5757#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
5758#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
5759#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
5760#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
5761#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
5762#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
5763#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
5764#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
5765#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
5766#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
5767#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
5768#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
5769#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
5770#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
5771#define ID3D12GraphicsCommandList1_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
5772#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
5773#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
5774#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
5775#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
5776#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
5777#define ID3D12GraphicsCommandList1_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
5778#define ID3D12GraphicsCommandList1_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
5779#define ID3D12GraphicsCommandList1_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
5780#define ID3D12GraphicsCommandList1_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
5781#define ID3D12GraphicsCommandList1_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
5782#define ID3D12GraphicsCommandList1_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
5783#define ID3D12GraphicsCommandList1_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
5784#define ID3D12GraphicsCommandList1_EndEvent(This) (This)->lpVtbl->EndEvent(This)
5785#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
5786/*** ID3D12GraphicsCommandList1 methods ***/
5787#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
5788#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
5789#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
5790#define ID3D12GraphicsCommandList1_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
5791#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
5792#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
5793#else
5794/*** IUnknown methods ***/
5795static inline HRESULT ID3D12GraphicsCommandList1_QueryInterface(ID3D12GraphicsCommandList1* This,REFIID riid,void **ppvObject) {
5796 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5797}
5798static inline ULONG ID3D12GraphicsCommandList1_AddRef(ID3D12GraphicsCommandList1* This) {
5799 return This->lpVtbl->AddRef(This);
5800}
5801static inline ULONG ID3D12GraphicsCommandList1_Release(ID3D12GraphicsCommandList1* This) {
5802 return This->lpVtbl->Release(This);
5803}
5804/*** ID3D12Object methods ***/
5805static inline HRESULT ID3D12GraphicsCommandList1_GetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT *data_size,void *data) {
5806 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
5807}
5808static inline HRESULT ID3D12GraphicsCommandList1_SetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT data_size,const void *data) {
5809 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
5810}
5811static inline HRESULT ID3D12GraphicsCommandList1_SetPrivateDataInterface(ID3D12GraphicsCommandList1* This,REFGUID guid,const IUnknown *data) {
5812 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
5813}
5814static inline HRESULT ID3D12GraphicsCommandList1_SetName(ID3D12GraphicsCommandList1* This,const WCHAR *name) {
5815 return This->lpVtbl->SetName(This,name);
5816}
5817/*** ID3D12DeviceChild methods ***/
5818static inline HRESULT ID3D12GraphicsCommandList1_GetDevice(ID3D12GraphicsCommandList1* This,REFIID riid,void **device) {
5819 return This->lpVtbl->GetDevice(This,riid,device);
5820}
5821/*** ID3D12CommandList methods ***/
5822static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList1_GetType(ID3D12GraphicsCommandList1* This) {
5823 return This->lpVtbl->GetType(This);
5824}
5825/*** ID3D12GraphicsCommandList methods ***/
5826static inline HRESULT ID3D12GraphicsCommandList1_Close(ID3D12GraphicsCommandList1* This) {
5827 return This->lpVtbl->Close(This);
5828}
5829static inline HRESULT ID3D12GraphicsCommandList1_Reset(ID3D12GraphicsCommandList1* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
5830 return This->lpVtbl->Reset(This,allocator,initial_state);
5831}
5832static inline void ID3D12GraphicsCommandList1_ClearState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) {
5833 This->lpVtbl->ClearState(This,pipeline_state);
5834}
5835static inline void ID3D12GraphicsCommandList1_DrawInstanced(ID3D12GraphicsCommandList1* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
5836 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
5837}
5838static inline void ID3D12GraphicsCommandList1_DrawIndexedInstanced(ID3D12GraphicsCommandList1* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
5839 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
5840}
5841static inline void ID3D12GraphicsCommandList1_Dispatch(ID3D12GraphicsCommandList1* This,UINT x,UINT u,UINT z) {
5842 This->lpVtbl->Dispatch(This,x,u,z);
5843}
5844static inline void ID3D12GraphicsCommandList1_CopyBufferRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
5845 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
5846}
5847static inline void ID3D12GraphicsCommandList1_CopyTextureRegion(ID3D12GraphicsCommandList1* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
5848 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
5849}
5850static inline void ID3D12GraphicsCommandList1_CopyResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
5851 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
5852}
5853static inline void ID3D12GraphicsCommandList1_CopyTiles(ID3D12GraphicsCommandList1* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
5854 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
5855}
5856static inline void ID3D12GraphicsCommandList1_ResolveSubresource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
5857 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
5858}
5859static inline void ID3D12GraphicsCommandList1_IASetPrimitiveTopology(ID3D12GraphicsCommandList1* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
5860 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
5861}
5862static inline void ID3D12GraphicsCommandList1_RSSetViewports(ID3D12GraphicsCommandList1* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
5863 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
5864}
5865static inline void ID3D12GraphicsCommandList1_RSSetScissorRects(ID3D12GraphicsCommandList1* This,UINT rect_count,const D3D12_RECT *rects) {
5866 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
5867}
5868static inline void ID3D12GraphicsCommandList1_OMSetBlendFactor(ID3D12GraphicsCommandList1* This,const FLOAT blend_factor[4]) {
5869 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
5870}
5871static inline void ID3D12GraphicsCommandList1_OMSetStencilRef(ID3D12GraphicsCommandList1* This,UINT stencil_ref) {
5872 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
5873}
5874static inline void ID3D12GraphicsCommandList1_SetPipelineState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) {
5875 This->lpVtbl->SetPipelineState(This,pipeline_state);
5876}
5877static inline void ID3D12GraphicsCommandList1_ResourceBarrier(ID3D12GraphicsCommandList1* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
5878 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
5879}
5880static inline void ID3D12GraphicsCommandList1_ExecuteBundle(ID3D12GraphicsCommandList1* This,ID3D12GraphicsCommandList *command_list) {
5881 This->lpVtbl->ExecuteBundle(This,command_list);
5882}
5883static inline void ID3D12GraphicsCommandList1_SetDescriptorHeaps(ID3D12GraphicsCommandList1* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
5884 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
5885}
5886static inline void ID3D12GraphicsCommandList1_SetComputeRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) {
5887 This->lpVtbl->SetComputeRootSignature(This,root_signature);
5888}
5889static inline void ID3D12GraphicsCommandList1_SetGraphicsRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) {
5890 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
5891}
5892static inline void ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
5893 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
5894}
5895static inline void ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
5896 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
5897}
5898static inline void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
5899 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
5900}
5901static inline void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
5902 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
5903}
5904static inline void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
5905 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
5906}
5907static inline void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
5908 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
5909}
5910static inline void ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5911 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
5912}
5913static inline void ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5914 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
5915}
5916static inline void ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5917 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
5918}
5919static inline void ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5920 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
5921}
5922static inline void ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5923 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
5924}
5925static inline void ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5926 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
5927}
5928static inline void ID3D12GraphicsCommandList1_IASetIndexBuffer(ID3D12GraphicsCommandList1* This,const D3D12_INDEX_BUFFER_VIEW *view) {
5929 This->lpVtbl->IASetIndexBuffer(This,view);
5930}
5931static inline void ID3D12GraphicsCommandList1_IASetVertexBuffers(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
5932 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
5933}
5934static inline void ID3D12GraphicsCommandList1_SOSetTargets(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
5935 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
5936}
5937static inline void ID3D12GraphicsCommandList1_OMSetRenderTargets(ID3D12GraphicsCommandList1* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
5938 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
5939}
5940static inline void ID3D12GraphicsCommandList1_ClearDepthStencilView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
5941 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
5942}
5943static inline void ID3D12GraphicsCommandList1_ClearRenderTargetView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
5944 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
5945}
5946static inline void ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList1* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
5947 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
5948}
5949static inline void ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList1* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
5950 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
5951}
5952static inline void ID3D12GraphicsCommandList1_DiscardResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
5953 This->lpVtbl->DiscardResource(This,resource,region);
5954}
5955static inline void ID3D12GraphicsCommandList1_BeginQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
5956 This->lpVtbl->BeginQuery(This,heap,type,index);
5957}
5958static inline void ID3D12GraphicsCommandList1_EndQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
5959 This->lpVtbl->EndQuery(This,heap,type,index);
5960}
5961static inline void ID3D12GraphicsCommandList1_ResolveQueryData(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
5962 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
5963}
5964static inline void ID3D12GraphicsCommandList1_SetPredication(ID3D12GraphicsCommandList1* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
5965 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
5966}
5967static inline void ID3D12GraphicsCommandList1_SetMarker(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) {
5968 This->lpVtbl->SetMarker(This,metadata,data,size);
5969}
5970static inline void ID3D12GraphicsCommandList1_BeginEvent(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) {
5971 This->lpVtbl->BeginEvent(This,metadata,data,size);
5972}
5973static inline void ID3D12GraphicsCommandList1_EndEvent(ID3D12GraphicsCommandList1* This) {
5974 This->lpVtbl->EndEvent(This);
5975}
5976static inline void ID3D12GraphicsCommandList1_ExecuteIndirect(ID3D12GraphicsCommandList1* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
5977 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
5978}
5979/*** ID3D12GraphicsCommandList1 methods ***/
5980static inline void ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
5981 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
5982}
5983static inline void ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
5984 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
5985}
5986static inline void ID3D12GraphicsCommandList1_OMSetDepthBounds(ID3D12GraphicsCommandList1* This,FLOAT min,FLOAT max) {
5987 This->lpVtbl->OMSetDepthBounds(This,min,max);
5988}
5989static inline void ID3D12GraphicsCommandList1_SetSamplePositions(ID3D12GraphicsCommandList1* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
5990 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
5991}
5992static inline void ID3D12GraphicsCommandList1_ResolveSubresourceRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
5993 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
5994}
5995static inline void ID3D12GraphicsCommandList1_SetViewInstanceMask(ID3D12GraphicsCommandList1* This,UINT mask) {
5996 This->lpVtbl->SetViewInstanceMask(This,mask);
5997}
5998#endif
5999#endif
6000
6001#endif
6002
6003
6004#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
6005
6006/*****************************************************************************
6007 * ID3D12GraphicsCommandList2 interface
6008 */
6009#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
6010#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
6011
6012DEFINE_GUID(IID_ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28);
6013#if defined(__cplusplus) && !defined(CINTERFACE)
6014MIDL_INTERFACE("38c3e585-ff17-412c-9150-4fc6f9d72a28")
6015ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
6016{
6017 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
6018 UINT count,
6019 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
6020 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) = 0;
6021
6022};
6023#ifdef __CRT_UUID_DECL
6024__CRT_UUID_DECL(ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28)
6025#endif
6026#else
6027typedef struct ID3D12GraphicsCommandList2Vtbl {
6028 BEGIN_INTERFACE
6029
6030 /*** IUnknown methods ***/
6031 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6032 ID3D12GraphicsCommandList2 *This,
6033 REFIID riid,
6034 void **ppvObject);
6035
6036 ULONG (STDMETHODCALLTYPE *AddRef)(
6037 ID3D12GraphicsCommandList2 *This);
6038
6039 ULONG (STDMETHODCALLTYPE *Release)(
6040 ID3D12GraphicsCommandList2 *This);
6041
6042 /*** ID3D12Object methods ***/
6043 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
6044 ID3D12GraphicsCommandList2 *This,
6045 REFGUID guid,
6046 UINT *data_size,
6047 void *data);
6048
6049 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
6050 ID3D12GraphicsCommandList2 *This,
6051 REFGUID guid,
6052 UINT data_size,
6053 const void *data);
6054
6055 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
6056 ID3D12GraphicsCommandList2 *This,
6057 REFGUID guid,
6058 const IUnknown *data);
6059
6060 HRESULT (STDMETHODCALLTYPE *SetName)(
6061 ID3D12GraphicsCommandList2 *This,
6062 const WCHAR *name);
6063
6064 /*** ID3D12DeviceChild methods ***/
6065 HRESULT (STDMETHODCALLTYPE *GetDevice)(
6066 ID3D12GraphicsCommandList2 *This,
6067 REFIID riid,
6068 void **device);
6069
6070 /*** ID3D12CommandList methods ***/
6071 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
6072 ID3D12GraphicsCommandList2 *This);
6073
6074 /*** ID3D12GraphicsCommandList methods ***/
6075 HRESULT (STDMETHODCALLTYPE *Close)(
6076 ID3D12GraphicsCommandList2 *This);
6077
6078 HRESULT (STDMETHODCALLTYPE *Reset)(
6079 ID3D12GraphicsCommandList2 *This,
6080 ID3D12CommandAllocator *allocator,
6081 ID3D12PipelineState *initial_state);
6082
6083 void (STDMETHODCALLTYPE *ClearState)(
6084 ID3D12GraphicsCommandList2 *This,
6085 ID3D12PipelineState *pipeline_state);
6086
6087 void (STDMETHODCALLTYPE *DrawInstanced)(
6088 ID3D12GraphicsCommandList2 *This,
6089 UINT vertex_count_per_instance,
6090 UINT instance_count,
6091 UINT start_vertex_location,
6092 UINT start_instance_location);
6093
6094 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
6095 ID3D12GraphicsCommandList2 *This,
6096 UINT index_count_per_instance,
6097 UINT instance_count,
6098 UINT start_vertex_location,
6099 INT base_vertex_location,
6100 UINT start_instance_location);
6101
6102 void (STDMETHODCALLTYPE *Dispatch)(
6103 ID3D12GraphicsCommandList2 *This,
6104 UINT x,
6105 UINT u,
6106 UINT z);
6107
6108 void (STDMETHODCALLTYPE *CopyBufferRegion)(
6109 ID3D12GraphicsCommandList2 *This,
6110 ID3D12Resource *dst_buffer,
6111 UINT64 dst_offset,
6112 ID3D12Resource *src_buffer,
6113 UINT64 src_offset,
6114 UINT64 byte_count);
6115
6116 void (STDMETHODCALLTYPE *CopyTextureRegion)(
6117 ID3D12GraphicsCommandList2 *This,
6118 const D3D12_TEXTURE_COPY_LOCATION *dst,
6119 UINT dst_x,
6120 UINT dst_y,
6121 UINT dst_z,
6122 const D3D12_TEXTURE_COPY_LOCATION *src,
6123 const D3D12_BOX *src_box);
6124
6125 void (STDMETHODCALLTYPE *CopyResource)(
6126 ID3D12GraphicsCommandList2 *This,
6127 ID3D12Resource *dst_resource,
6128 ID3D12Resource *src_resource);
6129
6130 void (STDMETHODCALLTYPE *CopyTiles)(
6131 ID3D12GraphicsCommandList2 *This,
6132 ID3D12Resource *tiled_resource,
6133 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
6134 const D3D12_TILE_REGION_SIZE *tile_region_size,
6135 ID3D12Resource *buffer,
6136 UINT64 buffer_offset,
6137 D3D12_TILE_COPY_FLAGS flags);
6138
6139 void (STDMETHODCALLTYPE *ResolveSubresource)(
6140 ID3D12GraphicsCommandList2 *This,
6141 ID3D12Resource *dst_resource,
6142 UINT dst_sub_resource,
6143 ID3D12Resource *src_resource,
6144 UINT src_sub_resource,
6145 DXGI_FORMAT format);
6146
6147 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
6148 ID3D12GraphicsCommandList2 *This,
6149 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
6150
6151 void (STDMETHODCALLTYPE *RSSetViewports)(
6152 ID3D12GraphicsCommandList2 *This,
6153 UINT viewport_count,
6154 const D3D12_VIEWPORT *viewports);
6155
6156 void (STDMETHODCALLTYPE *RSSetScissorRects)(
6157 ID3D12GraphicsCommandList2 *This,
6158 UINT rect_count,
6159 const D3D12_RECT *rects);
6160
6161 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
6162 ID3D12GraphicsCommandList2 *This,
6163 const FLOAT blend_factor[4]);
6164
6165 void (STDMETHODCALLTYPE *OMSetStencilRef)(
6166 ID3D12GraphicsCommandList2 *This,
6167 UINT stencil_ref);
6168
6169 void (STDMETHODCALLTYPE *SetPipelineState)(
6170 ID3D12GraphicsCommandList2 *This,
6171 ID3D12PipelineState *pipeline_state);
6172
6173 void (STDMETHODCALLTYPE *ResourceBarrier)(
6174 ID3D12GraphicsCommandList2 *This,
6175 UINT barrier_count,
6176 const D3D12_RESOURCE_BARRIER *barriers);
6177
6178 void (STDMETHODCALLTYPE *ExecuteBundle)(
6179 ID3D12GraphicsCommandList2 *This,
6180 ID3D12GraphicsCommandList *command_list);
6181
6182 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
6183 ID3D12GraphicsCommandList2 *This,
6184 UINT heap_count,
6185 ID3D12DescriptorHeap *const *heaps);
6186
6187 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
6188 ID3D12GraphicsCommandList2 *This,
6189 ID3D12RootSignature *root_signature);
6190
6191 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
6192 ID3D12GraphicsCommandList2 *This,
6193 ID3D12RootSignature *root_signature);
6194
6195 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
6196 ID3D12GraphicsCommandList2 *This,
6197 UINT root_parameter_index,
6198 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
6199
6200 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
6201 ID3D12GraphicsCommandList2 *This,
6202 UINT root_parameter_index,
6203 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
6204
6205 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
6206 ID3D12GraphicsCommandList2 *This,
6207 UINT root_parameter_index,
6208 UINT data,
6209 UINT dst_offset);
6210
6211 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
6212 ID3D12GraphicsCommandList2 *This,
6213 UINT root_parameter_index,
6214 UINT data,
6215 UINT dst_offset);
6216
6217 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
6218 ID3D12GraphicsCommandList2 *This,
6219 UINT root_parameter_index,
6220 UINT constant_count,
6221 const void *data,
6222 UINT dst_offset);
6223
6224 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
6225 ID3D12GraphicsCommandList2 *This,
6226 UINT root_parameter_index,
6227 UINT constant_count,
6228 const void *data,
6229 UINT dst_offset);
6230
6231 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
6232 ID3D12GraphicsCommandList2 *This,
6233 UINT root_parameter_index,
6234 D3D12_GPU_VIRTUAL_ADDRESS address);
6235
6236 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
6237 ID3D12GraphicsCommandList2 *This,
6238 UINT root_parameter_index,
6239 D3D12_GPU_VIRTUAL_ADDRESS address);
6240
6241 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
6242 ID3D12GraphicsCommandList2 *This,
6243 UINT root_parameter_index,
6244 D3D12_GPU_VIRTUAL_ADDRESS address);
6245
6246 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
6247 ID3D12GraphicsCommandList2 *This,
6248 UINT root_parameter_index,
6249 D3D12_GPU_VIRTUAL_ADDRESS address);
6250
6251 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
6252 ID3D12GraphicsCommandList2 *This,
6253 UINT root_parameter_index,
6254 D3D12_GPU_VIRTUAL_ADDRESS address);
6255
6256 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
6257 ID3D12GraphicsCommandList2 *This,
6258 UINT root_parameter_index,
6259 D3D12_GPU_VIRTUAL_ADDRESS address);
6260
6261 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
6262 ID3D12GraphicsCommandList2 *This,
6263 const D3D12_INDEX_BUFFER_VIEW *view);
6264
6265 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
6266 ID3D12GraphicsCommandList2 *This,
6267 UINT start_slot,
6268 UINT view_count,
6269 const D3D12_VERTEX_BUFFER_VIEW *views);
6270
6271 void (STDMETHODCALLTYPE *SOSetTargets)(
6272 ID3D12GraphicsCommandList2 *This,
6273 UINT start_slot,
6274 UINT view_count,
6275 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
6276
6277 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
6278 ID3D12GraphicsCommandList2 *This,
6279 UINT render_target_descriptor_count,
6280 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
6281 WINBOOL single_descriptor_handle,
6282 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
6283
6284 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
6285 ID3D12GraphicsCommandList2 *This,
6286 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
6287 D3D12_CLEAR_FLAGS flags,
6288 FLOAT depth,
6289 UINT8 stencil,
6290 UINT rect_count,
6291 const D3D12_RECT *rects);
6292
6293 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
6294 ID3D12GraphicsCommandList2 *This,
6295 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
6296 const FLOAT color[4],
6297 UINT rect_count,
6298 const D3D12_RECT *rects);
6299
6300 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
6301 ID3D12GraphicsCommandList2 *This,
6302 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
6303 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
6304 ID3D12Resource *resource,
6305 const UINT values[4],
6306 UINT rect_count,
6307 const D3D12_RECT *rects);
6308
6309 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
6310 ID3D12GraphicsCommandList2 *This,
6311 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
6312 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
6313 ID3D12Resource *resource,
6314 const float values[4],
6315 UINT rect_count,
6316 const D3D12_RECT *rects);
6317
6318 void (STDMETHODCALLTYPE *DiscardResource)(
6319 ID3D12GraphicsCommandList2 *This,
6320 ID3D12Resource *resource,
6321 const D3D12_DISCARD_REGION *region);
6322
6323 void (STDMETHODCALLTYPE *BeginQuery)(
6324 ID3D12GraphicsCommandList2 *This,
6325 ID3D12QueryHeap *heap,
6326 D3D12_QUERY_TYPE type,
6327 UINT index);
6328
6329 void (STDMETHODCALLTYPE *EndQuery)(
6330 ID3D12GraphicsCommandList2 *This,
6331 ID3D12QueryHeap *heap,
6332 D3D12_QUERY_TYPE type,
6333 UINT index);
6334
6335 void (STDMETHODCALLTYPE *ResolveQueryData)(
6336 ID3D12GraphicsCommandList2 *This,
6337 ID3D12QueryHeap *heap,
6338 D3D12_QUERY_TYPE type,
6339 UINT start_index,
6340 UINT query_count,
6341 ID3D12Resource *dst_buffer,
6342 UINT64 aligned_dst_buffer_offset);
6343
6344 void (STDMETHODCALLTYPE *SetPredication)(
6345 ID3D12GraphicsCommandList2 *This,
6346 ID3D12Resource *buffer,
6347 UINT64 aligned_buffer_offset,
6348 D3D12_PREDICATION_OP operation);
6349
6350 void (STDMETHODCALLTYPE *SetMarker)(
6351 ID3D12GraphicsCommandList2 *This,
6352 UINT metadata,
6353 const void *data,
6354 UINT size);
6355
6356 void (STDMETHODCALLTYPE *BeginEvent)(
6357 ID3D12GraphicsCommandList2 *This,
6358 UINT metadata,
6359 const void *data,
6360 UINT size);
6361
6362 void (STDMETHODCALLTYPE *EndEvent)(
6363 ID3D12GraphicsCommandList2 *This);
6364
6365 void (STDMETHODCALLTYPE *ExecuteIndirect)(
6366 ID3D12GraphicsCommandList2 *This,
6367 ID3D12CommandSignature *command_signature,
6368 UINT max_command_count,
6369 ID3D12Resource *arg_buffer,
6370 UINT64 arg_buffer_offset,
6371 ID3D12Resource *count_buffer,
6372 UINT64 count_buffer_offset);
6373
6374 /*** ID3D12GraphicsCommandList1 methods ***/
6375 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
6376 ID3D12GraphicsCommandList2 *This,
6377 ID3D12Resource *dst_buffer,
6378 UINT64 dst_offset,
6379 ID3D12Resource *src_buffer,
6380 UINT64 src_offset,
6381 UINT dependent_resource_count,
6382 ID3D12Resource *const *dependent_resources,
6383 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
6384
6385 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
6386 ID3D12GraphicsCommandList2 *This,
6387 ID3D12Resource *dst_buffer,
6388 UINT64 dst_offset,
6389 ID3D12Resource *src_buffer,
6390 UINT64 src_offset,
6391 UINT dependent_resource_count,
6392 ID3D12Resource *const *dependent_resources,
6393 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
6394
6395 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
6396 ID3D12GraphicsCommandList2 *This,
6397 FLOAT min,
6398 FLOAT max);
6399
6400 void (STDMETHODCALLTYPE *SetSamplePositions)(
6401 ID3D12GraphicsCommandList2 *This,
6402 UINT sample_count,
6403 UINT pixel_count,
6404 D3D12_SAMPLE_POSITION *sample_positions);
6405
6406 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
6407 ID3D12GraphicsCommandList2 *This,
6408 ID3D12Resource *dst_resource,
6409 UINT dst_sub_resource_idx,
6410 UINT dst_x,
6411 UINT dst_y,
6412 ID3D12Resource *src_resource,
6413 UINT src_sub_resource_idx,
6414 D3D12_RECT *src_rect,
6415 DXGI_FORMAT format,
6416 D3D12_RESOLVE_MODE mode);
6417
6418 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
6419 ID3D12GraphicsCommandList2 *This,
6420 UINT mask);
6421
6422 /*** ID3D12GraphicsCommandList2 methods ***/
6423 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
6424 ID3D12GraphicsCommandList2 *This,
6425 UINT count,
6426 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
6427 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
6428
6429 END_INTERFACE
6430} ID3D12GraphicsCommandList2Vtbl;
6431
6432interface ID3D12GraphicsCommandList2 {
6433 CONST_VTBL ID3D12GraphicsCommandList2Vtbl* lpVtbl;
6434};
6435
6436#ifdef COBJMACROS
6437#ifndef WIDL_C_INLINE_WRAPPERS
6438/*** IUnknown methods ***/
6439#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6440#define ID3D12GraphicsCommandList2_AddRef(This) (This)->lpVtbl->AddRef(This)
6441#define ID3D12GraphicsCommandList2_Release(This) (This)->lpVtbl->Release(This)
6442/*** ID3D12Object methods ***/
6443#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
6444#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
6445#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
6446#define ID3D12GraphicsCommandList2_SetName(This,name) (This)->lpVtbl->SetName(This,name)
6447/*** ID3D12DeviceChild methods ***/
6448#define ID3D12GraphicsCommandList2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
6449/*** ID3D12CommandList methods ***/
6450#define ID3D12GraphicsCommandList2_GetType(This) (This)->lpVtbl->GetType(This)
6451/*** ID3D12GraphicsCommandList methods ***/
6452#define ID3D12GraphicsCommandList2_Close(This) (This)->lpVtbl->Close(This)
6453#define ID3D12GraphicsCommandList2_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
6454#define ID3D12GraphicsCommandList2_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
6455#define ID3D12GraphicsCommandList2_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
6456#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
6457#define ID3D12GraphicsCommandList2_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
6458#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
6459#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
6460#define ID3D12GraphicsCommandList2_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
6461#define ID3D12GraphicsCommandList2_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
6462#define ID3D12GraphicsCommandList2_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
6463#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
6464#define ID3D12GraphicsCommandList2_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
6465#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
6466#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
6467#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
6468#define ID3D12GraphicsCommandList2_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
6469#define ID3D12GraphicsCommandList2_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
6470#define ID3D12GraphicsCommandList2_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
6471#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
6472#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
6473#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
6474#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
6475#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
6476#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
6477#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
6478#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
6479#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
6480#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
6481#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
6482#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
6483#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
6484#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
6485#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
6486#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
6487#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
6488#define ID3D12GraphicsCommandList2_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
6489#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
6490#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
6491#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
6492#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
6493#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
6494#define ID3D12GraphicsCommandList2_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
6495#define ID3D12GraphicsCommandList2_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
6496#define ID3D12GraphicsCommandList2_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
6497#define ID3D12GraphicsCommandList2_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
6498#define ID3D12GraphicsCommandList2_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
6499#define ID3D12GraphicsCommandList2_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
6500#define ID3D12GraphicsCommandList2_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
6501#define ID3D12GraphicsCommandList2_EndEvent(This) (This)->lpVtbl->EndEvent(This)
6502#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
6503/*** ID3D12GraphicsCommandList1 methods ***/
6504#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
6505#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
6506#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
6507#define ID3D12GraphicsCommandList2_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
6508#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
6509#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
6510/*** ID3D12GraphicsCommandList2 methods ***/
6511#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
6512#else
6513/*** IUnknown methods ***/
6514static inline HRESULT ID3D12GraphicsCommandList2_QueryInterface(ID3D12GraphicsCommandList2* This,REFIID riid,void **ppvObject) {
6515 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6516}
6517static inline ULONG ID3D12GraphicsCommandList2_AddRef(ID3D12GraphicsCommandList2* This) {
6518 return This->lpVtbl->AddRef(This);
6519}
6520static inline ULONG ID3D12GraphicsCommandList2_Release(ID3D12GraphicsCommandList2* This) {
6521 return This->lpVtbl->Release(This);
6522}
6523/*** ID3D12Object methods ***/
6524static inline HRESULT ID3D12GraphicsCommandList2_GetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT *data_size,void *data) {
6525 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
6526}
6527static inline HRESULT ID3D12GraphicsCommandList2_SetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT data_size,const void *data) {
6528 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
6529}
6530static inline HRESULT ID3D12GraphicsCommandList2_SetPrivateDataInterface(ID3D12GraphicsCommandList2* This,REFGUID guid,const IUnknown *data) {
6531 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
6532}
6533static inline HRESULT ID3D12GraphicsCommandList2_SetName(ID3D12GraphicsCommandList2* This,const WCHAR *name) {
6534 return This->lpVtbl->SetName(This,name);
6535}
6536/*** ID3D12DeviceChild methods ***/
6537static inline HRESULT ID3D12GraphicsCommandList2_GetDevice(ID3D12GraphicsCommandList2* This,REFIID riid,void **device) {
6538 return This->lpVtbl->GetDevice(This,riid,device);
6539}
6540/*** ID3D12CommandList methods ***/
6541static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList2_GetType(ID3D12GraphicsCommandList2* This) {
6542 return This->lpVtbl->GetType(This);
6543}
6544/*** ID3D12GraphicsCommandList methods ***/
6545static inline HRESULT ID3D12GraphicsCommandList2_Close(ID3D12GraphicsCommandList2* This) {
6546 return This->lpVtbl->Close(This);
6547}
6548static inline HRESULT ID3D12GraphicsCommandList2_Reset(ID3D12GraphicsCommandList2* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
6549 return This->lpVtbl->Reset(This,allocator,initial_state);
6550}
6551static inline void ID3D12GraphicsCommandList2_ClearState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) {
6552 This->lpVtbl->ClearState(This,pipeline_state);
6553}
6554static inline void ID3D12GraphicsCommandList2_DrawInstanced(ID3D12GraphicsCommandList2* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
6555 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
6556}
6557static inline void ID3D12GraphicsCommandList2_DrawIndexedInstanced(ID3D12GraphicsCommandList2* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
6558 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
6559}
6560static inline void ID3D12GraphicsCommandList2_Dispatch(ID3D12GraphicsCommandList2* This,UINT x,UINT u,UINT z) {
6561 This->lpVtbl->Dispatch(This,x,u,z);
6562}
6563static inline void ID3D12GraphicsCommandList2_CopyBufferRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
6564 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
6565}
6566static inline void ID3D12GraphicsCommandList2_CopyTextureRegion(ID3D12GraphicsCommandList2* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
6567 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
6568}
6569static inline void ID3D12GraphicsCommandList2_CopyResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
6570 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
6571}
6572static inline void ID3D12GraphicsCommandList2_CopyTiles(ID3D12GraphicsCommandList2* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
6573 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
6574}
6575static inline void ID3D12GraphicsCommandList2_ResolveSubresource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
6576 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
6577}
6578static inline void ID3D12GraphicsCommandList2_IASetPrimitiveTopology(ID3D12GraphicsCommandList2* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
6579 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
6580}
6581static inline void ID3D12GraphicsCommandList2_RSSetViewports(ID3D12GraphicsCommandList2* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
6582 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
6583}
6584static inline void ID3D12GraphicsCommandList2_RSSetScissorRects(ID3D12GraphicsCommandList2* This,UINT rect_count,const D3D12_RECT *rects) {
6585 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
6586}
6587static inline void ID3D12GraphicsCommandList2_OMSetBlendFactor(ID3D12GraphicsCommandList2* This,const FLOAT blend_factor[4]) {
6588 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
6589}
6590static inline void ID3D12GraphicsCommandList2_OMSetStencilRef(ID3D12GraphicsCommandList2* This,UINT stencil_ref) {
6591 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
6592}
6593static inline void ID3D12GraphicsCommandList2_SetPipelineState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) {
6594 This->lpVtbl->SetPipelineState(This,pipeline_state);
6595}
6596static inline void ID3D12GraphicsCommandList2_ResourceBarrier(ID3D12GraphicsCommandList2* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
6597 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
6598}
6599static inline void ID3D12GraphicsCommandList2_ExecuteBundle(ID3D12GraphicsCommandList2* This,ID3D12GraphicsCommandList *command_list) {
6600 This->lpVtbl->ExecuteBundle(This,command_list);
6601}
6602static inline void ID3D12GraphicsCommandList2_SetDescriptorHeaps(ID3D12GraphicsCommandList2* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
6603 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
6604}
6605static inline void ID3D12GraphicsCommandList2_SetComputeRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) {
6606 This->lpVtbl->SetComputeRootSignature(This,root_signature);
6607}
6608static inline void ID3D12GraphicsCommandList2_SetGraphicsRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) {
6609 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
6610}
6611static inline void ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
6612 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
6613}
6614static inline void ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
6615 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
6616}
6617static inline void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
6618 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
6619}
6620static inline void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
6621 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
6622}
6623static inline void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
6624 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
6625}
6626static inline void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
6627 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
6628}
6629static inline void ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6630 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
6631}
6632static inline void ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6633 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
6634}
6635static inline void ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6636 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
6637}
6638static inline void ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6639 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
6640}
6641static inline void ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6642 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
6643}
6644static inline void ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6645 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
6646}
6647static inline void ID3D12GraphicsCommandList2_IASetIndexBuffer(ID3D12GraphicsCommandList2* This,const D3D12_INDEX_BUFFER_VIEW *view) {
6648 This->lpVtbl->IASetIndexBuffer(This,view);
6649}
6650static inline void ID3D12GraphicsCommandList2_IASetVertexBuffers(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
6651 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
6652}
6653static inline void ID3D12GraphicsCommandList2_SOSetTargets(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
6654 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
6655}
6656static inline void ID3D12GraphicsCommandList2_OMSetRenderTargets(ID3D12GraphicsCommandList2* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
6657 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
6658}
6659static inline void ID3D12GraphicsCommandList2_ClearDepthStencilView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
6660 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
6661}
6662static inline void ID3D12GraphicsCommandList2_ClearRenderTargetView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
6663 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
6664}
6665static inline void ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList2* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
6666 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
6667}
6668static inline void ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList2* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
6669 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
6670}
6671static inline void ID3D12GraphicsCommandList2_DiscardResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
6672 This->lpVtbl->DiscardResource(This,resource,region);
6673}
6674static inline void ID3D12GraphicsCommandList2_BeginQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
6675 This->lpVtbl->BeginQuery(This,heap,type,index);
6676}
6677static inline void ID3D12GraphicsCommandList2_EndQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
6678 This->lpVtbl->EndQuery(This,heap,type,index);
6679}
6680static inline void ID3D12GraphicsCommandList2_ResolveQueryData(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
6681 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
6682}
6683static inline void ID3D12GraphicsCommandList2_SetPredication(ID3D12GraphicsCommandList2* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
6684 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
6685}
6686static inline void ID3D12GraphicsCommandList2_SetMarker(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) {
6687 This->lpVtbl->SetMarker(This,metadata,data,size);
6688}
6689static inline void ID3D12GraphicsCommandList2_BeginEvent(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) {
6690 This->lpVtbl->BeginEvent(This,metadata,data,size);
6691}
6692static inline void ID3D12GraphicsCommandList2_EndEvent(ID3D12GraphicsCommandList2* This) {
6693 This->lpVtbl->EndEvent(This);
6694}
6695static inline void ID3D12GraphicsCommandList2_ExecuteIndirect(ID3D12GraphicsCommandList2* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
6696 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
6697}
6698/*** ID3D12GraphicsCommandList1 methods ***/
6699static inline void ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
6700 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
6701}
6702static inline void ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
6703 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
6704}
6705static inline void ID3D12GraphicsCommandList2_OMSetDepthBounds(ID3D12GraphicsCommandList2* This,FLOAT min,FLOAT max) {
6706 This->lpVtbl->OMSetDepthBounds(This,min,max);
6707}
6708static inline void ID3D12GraphicsCommandList2_SetSamplePositions(ID3D12GraphicsCommandList2* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
6709 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
6710}
6711static inline void ID3D12GraphicsCommandList2_ResolveSubresourceRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
6712 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
6713}
6714static inline void ID3D12GraphicsCommandList2_SetViewInstanceMask(ID3D12GraphicsCommandList2* This,UINT mask) {
6715 This->lpVtbl->SetViewInstanceMask(This,mask);
6716}
6717/*** ID3D12GraphicsCommandList2 methods ***/
6718static inline void ID3D12GraphicsCommandList2_WriteBufferImmediate(ID3D12GraphicsCommandList2* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
6719 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
6720}
6721#endif
6722#endif
6723
6724#endif
6725
6726
6727#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
6728
6729/*****************************************************************************
6730 * ID3D12ProtectedSession interface
6731 */
6732#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__
6733#define __ID3D12ProtectedSession_INTERFACE_DEFINED__
6734
6735DEFINE_GUID(IID_ID3D12ProtectedSession, 0xa1533d18, 0x0ac1, 0x4084, 0x85,0xb9, 0x89,0xa9,0x61,0x16,0x80,0x6b);
6736#if defined(__cplusplus) && !defined(CINTERFACE)
6737MIDL_INTERFACE("a1533d18-0ac1-4084-85b9-89a96116806b")
6738ID3D12ProtectedSession : public ID3D12DeviceChild
6739{
6740 virtual HRESULT STDMETHODCALLTYPE GetStatusFence(
6741 REFIID riid,
6742 void **fence) = 0;
6743
6744 virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus(
6745 ) = 0;
6746
6747};
6748#ifdef __CRT_UUID_DECL
6749__CRT_UUID_DECL(ID3D12ProtectedSession, 0xa1533d18, 0x0ac1, 0x4084, 0x85,0xb9, 0x89,0xa9,0x61,0x16,0x80,0x6b)
6750#endif
6751#else
6752typedef struct ID3D12ProtectedSessionVtbl {
6753 BEGIN_INTERFACE
6754
6755 /*** IUnknown methods ***/
6756 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6757 ID3D12ProtectedSession *This,
6758 REFIID riid,
6759 void **ppvObject);
6760
6761 ULONG (STDMETHODCALLTYPE *AddRef)(
6762 ID3D12ProtectedSession *This);
6763
6764 ULONG (STDMETHODCALLTYPE *Release)(
6765 ID3D12ProtectedSession *This);
6766
6767 /*** ID3D12Object methods ***/
6768 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
6769 ID3D12ProtectedSession *This,
6770 REFGUID guid,
6771 UINT *data_size,
6772 void *data);
6773
6774 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
6775 ID3D12ProtectedSession *This,
6776 REFGUID guid,
6777 UINT data_size,
6778 const void *data);
6779
6780 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
6781 ID3D12ProtectedSession *This,
6782 REFGUID guid,
6783 const IUnknown *data);
6784
6785 HRESULT (STDMETHODCALLTYPE *SetName)(
6786 ID3D12ProtectedSession *This,
6787 const WCHAR *name);
6788
6789 /*** ID3D12DeviceChild methods ***/
6790 HRESULT (STDMETHODCALLTYPE *GetDevice)(
6791 ID3D12ProtectedSession *This,
6792 REFIID riid,
6793 void **device);
6794
6795 /*** ID3D12ProtectedSession methods ***/
6796 HRESULT (STDMETHODCALLTYPE *GetStatusFence)(
6797 ID3D12ProtectedSession *This,
6798 REFIID riid,
6799 void **fence);
6800
6801 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)(
6802 ID3D12ProtectedSession *This);
6803
6804 END_INTERFACE
6805} ID3D12ProtectedSessionVtbl;
6806
6807interface ID3D12ProtectedSession {
6808 CONST_VTBL ID3D12ProtectedSessionVtbl* lpVtbl;
6809};
6810
6811#ifdef COBJMACROS
6812#ifndef WIDL_C_INLINE_WRAPPERS
6813/*** IUnknown methods ***/
6814#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6815#define ID3D12ProtectedSession_AddRef(This) (This)->lpVtbl->AddRef(This)
6816#define ID3D12ProtectedSession_Release(This) (This)->lpVtbl->Release(This)
6817/*** ID3D12Object methods ***/
6818#define ID3D12ProtectedSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
6819#define ID3D12ProtectedSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
6820#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
6821#define ID3D12ProtectedSession_SetName(This,name) (This)->lpVtbl->SetName(This,name)
6822/*** ID3D12DeviceChild methods ***/
6823#define ID3D12ProtectedSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
6824/*** ID3D12ProtectedSession methods ***/
6825#define ID3D12ProtectedSession_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence)
6826#define ID3D12ProtectedSession_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This)
6827#else
6828/*** IUnknown methods ***/
6829static inline HRESULT ID3D12ProtectedSession_QueryInterface(ID3D12ProtectedSession* This,REFIID riid,void **ppvObject) {
6830 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6831}
6832static inline ULONG ID3D12ProtectedSession_AddRef(ID3D12ProtectedSession* This) {
6833 return This->lpVtbl->AddRef(This);
6834}
6835static inline ULONG ID3D12ProtectedSession_Release(ID3D12ProtectedSession* This) {
6836 return This->lpVtbl->Release(This);
6837}
6838/*** ID3D12Object methods ***/
6839static inline HRESULT ID3D12ProtectedSession_GetPrivateData(ID3D12ProtectedSession* This,REFGUID guid,UINT *data_size,void *data) {
6840 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
6841}
6842static inline HRESULT ID3D12ProtectedSession_SetPrivateData(ID3D12ProtectedSession* This,REFGUID guid,UINT data_size,const void *data) {
6843 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
6844}
6845static inline HRESULT ID3D12ProtectedSession_SetPrivateDataInterface(ID3D12ProtectedSession* This,REFGUID guid,const IUnknown *data) {
6846 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
6847}
6848static inline HRESULT ID3D12ProtectedSession_SetName(ID3D12ProtectedSession* This,const WCHAR *name) {
6849 return This->lpVtbl->SetName(This,name);
6850}
6851/*** ID3D12DeviceChild methods ***/
6852static inline HRESULT ID3D12ProtectedSession_GetDevice(ID3D12ProtectedSession* This,REFIID riid,void **device) {
6853 return This->lpVtbl->GetDevice(This,riid,device);
6854}
6855/*** ID3D12ProtectedSession methods ***/
6856static inline HRESULT ID3D12ProtectedSession_GetStatusFence(ID3D12ProtectedSession* This,REFIID riid,void **fence) {
6857 return This->lpVtbl->GetStatusFence(This,riid,fence);
6858}
6859static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedSession_GetSessionStatus(ID3D12ProtectedSession* This) {
6860 return This->lpVtbl->GetSessionStatus(This);
6861}
6862#endif
6863#endif
6864
6865#endif
6866
6867
6868#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */
6869
6870typedef enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
6871 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0x0,
6872 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1
6873} D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
6874DEFINE_ENUM_FLAG_OPERATORS(D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS);
6875typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
6876 UINT NodeIndex;
6877 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
6878} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
6879/*****************************************************************************
6880 * ID3D12ProtectedResourceSession interface
6881 */
6882#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
6883#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
6884
6885DEFINE_GUID(IID_ID3D12ProtectedResourceSession, 0x6cd696f4, 0xf289, 0x40cc, 0x80,0x91, 0x5a,0x6c,0x0a,0x09,0x9c,0x3d);
6886#if defined(__cplusplus) && !defined(CINTERFACE)
6887MIDL_INTERFACE("6cd696f4-f289-40cc-8091-5a6c0a099c3d")
6888ID3D12ProtectedResourceSession : public ID3D12ProtectedSession
6889{
6890#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
6891 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC* STDMETHODCALLTYPE GetDesc(
6892 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret) = 0;
6893 D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc(
6894 )
6895 {
6896 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret;
6897 return *GetDesc(&__ret);
6898 }
6899#else
6900 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc(
6901 ) = 0;
6902#endif
6903
6904};
6905#ifdef __CRT_UUID_DECL
6906__CRT_UUID_DECL(ID3D12ProtectedResourceSession, 0x6cd696f4, 0xf289, 0x40cc, 0x80,0x91, 0x5a,0x6c,0x0a,0x09,0x9c,0x3d)
6907#endif
6908#else
6909typedef struct ID3D12ProtectedResourceSessionVtbl {
6910 BEGIN_INTERFACE
6911
6912 /*** IUnknown methods ***/
6913 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6914 ID3D12ProtectedResourceSession *This,
6915 REFIID riid,
6916 void **ppvObject);
6917
6918 ULONG (STDMETHODCALLTYPE *AddRef)(
6919 ID3D12ProtectedResourceSession *This);
6920
6921 ULONG (STDMETHODCALLTYPE *Release)(
6922 ID3D12ProtectedResourceSession *This);
6923
6924 /*** ID3D12Object methods ***/
6925 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
6926 ID3D12ProtectedResourceSession *This,
6927 REFGUID guid,
6928 UINT *data_size,
6929 void *data);
6930
6931 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
6932 ID3D12ProtectedResourceSession *This,
6933 REFGUID guid,
6934 UINT data_size,
6935 const void *data);
6936
6937 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
6938 ID3D12ProtectedResourceSession *This,
6939 REFGUID guid,
6940 const IUnknown *data);
6941
6942 HRESULT (STDMETHODCALLTYPE *SetName)(
6943 ID3D12ProtectedResourceSession *This,
6944 const WCHAR *name);
6945
6946 /*** ID3D12DeviceChild methods ***/
6947 HRESULT (STDMETHODCALLTYPE *GetDevice)(
6948 ID3D12ProtectedResourceSession *This,
6949 REFIID riid,
6950 void **device);
6951
6952 /*** ID3D12ProtectedSession methods ***/
6953 HRESULT (STDMETHODCALLTYPE *GetStatusFence)(
6954 ID3D12ProtectedResourceSession *This,
6955 REFIID riid,
6956 void **fence);
6957
6958 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)(
6959 ID3D12ProtectedResourceSession *This);
6960
6961 /*** ID3D12ProtectedResourceSession methods ***/
6962 D3D12_PROTECTED_RESOURCE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)(
6963 ID3D12ProtectedResourceSession *This,
6964 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret);
6965
6966 END_INTERFACE
6967} ID3D12ProtectedResourceSessionVtbl;
6968
6969interface ID3D12ProtectedResourceSession {
6970 CONST_VTBL ID3D12ProtectedResourceSessionVtbl* lpVtbl;
6971};
6972
6973#ifdef COBJMACROS
6974#ifndef WIDL_C_INLINE_WRAPPERS
6975/*** IUnknown methods ***/
6976#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6977#define ID3D12ProtectedResourceSession_AddRef(This) (This)->lpVtbl->AddRef(This)
6978#define ID3D12ProtectedResourceSession_Release(This) (This)->lpVtbl->Release(This)
6979/*** ID3D12Object methods ***/
6980#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
6981#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
6982#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
6983#define ID3D12ProtectedResourceSession_SetName(This,name) (This)->lpVtbl->SetName(This,name)
6984/*** ID3D12DeviceChild methods ***/
6985#define ID3D12ProtectedResourceSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
6986/*** ID3D12ProtectedSession methods ***/
6987#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence)
6988#define ID3D12ProtectedResourceSession_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This)
6989/*** ID3D12ProtectedResourceSession methods ***/
6990#define ID3D12ProtectedResourceSession_GetDesc(This) ID3D12ProtectedResourceSession_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
6991#else
6992/*** IUnknown methods ***/
6993static inline HRESULT ID3D12ProtectedResourceSession_QueryInterface(ID3D12ProtectedResourceSession* This,REFIID riid,void **ppvObject) {
6994 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6995}
6996static inline ULONG ID3D12ProtectedResourceSession_AddRef(ID3D12ProtectedResourceSession* This) {
6997 return This->lpVtbl->AddRef(This);
6998}
6999static inline ULONG ID3D12ProtectedResourceSession_Release(ID3D12ProtectedResourceSession* This) {
7000 return This->lpVtbl->Release(This);
7001}
7002/*** ID3D12Object methods ***/
7003static inline HRESULT ID3D12ProtectedResourceSession_GetPrivateData(ID3D12ProtectedResourceSession* This,REFGUID guid,UINT *data_size,void *data) {
7004 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
7005}
7006static inline HRESULT ID3D12ProtectedResourceSession_SetPrivateData(ID3D12ProtectedResourceSession* This,REFGUID guid,UINT data_size,const void *data) {
7007 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
7008}
7009static inline HRESULT ID3D12ProtectedResourceSession_SetPrivateDataInterface(ID3D12ProtectedResourceSession* This,REFGUID guid,const IUnknown *data) {
7010 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
7011}
7012static inline HRESULT ID3D12ProtectedResourceSession_SetName(ID3D12ProtectedResourceSession* This,const WCHAR *name) {
7013 return This->lpVtbl->SetName(This,name);
7014}
7015/*** ID3D12DeviceChild methods ***/
7016static inline HRESULT ID3D12ProtectedResourceSession_GetDevice(ID3D12ProtectedResourceSession* This,REFIID riid,void **device) {
7017 return This->lpVtbl->GetDevice(This,riid,device);
7018}
7019/*** ID3D12ProtectedSession methods ***/
7020static inline HRESULT ID3D12ProtectedResourceSession_GetStatusFence(ID3D12ProtectedResourceSession* This,REFIID riid,void **fence) {
7021 return This->lpVtbl->GetStatusFence(This,riid,fence);
7022}
7023static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedResourceSession_GetSessionStatus(ID3D12ProtectedResourceSession* This) {
7024 return This->lpVtbl->GetSessionStatus(This);
7025}
7026/*** ID3D12ProtectedResourceSession methods ***/
7027static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC ID3D12ProtectedResourceSession_GetDesc(ID3D12ProtectedResourceSession* This) {
7028 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret;
7029 return *This->lpVtbl->GetDesc(This,&__ret);
7030}
7031#endif
7032#endif
7033
7034#endif
7035
7036
7037#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
7038
7039/*****************************************************************************
7040 * ID3D12GraphicsCommandList3 interface
7041 */
7042#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
7043#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
7044
7045DEFINE_GUID(IID_ID3D12GraphicsCommandList3, 0x6fda83a7, 0xb84c, 0x4e38, 0x9a,0xc8, 0xc7,0xbd,0x22,0x01,0x6b,0x3d);
7046#if defined(__cplusplus) && !defined(CINTERFACE)
7047MIDL_INTERFACE("6fda83a7-b84c-4e38-9ac8-c7bd22016b3d")
7048ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2
7049{
7050 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
7051 ID3D12ProtectedResourceSession *protected_resource_session) = 0;
7052
7053};
7054#ifdef __CRT_UUID_DECL
7055__CRT_UUID_DECL(ID3D12GraphicsCommandList3, 0x6fda83a7, 0xb84c, 0x4e38, 0x9a,0xc8, 0xc7,0xbd,0x22,0x01,0x6b,0x3d)
7056#endif
7057#else
7058typedef struct ID3D12GraphicsCommandList3Vtbl {
7059 BEGIN_INTERFACE
7060
7061 /*** IUnknown methods ***/
7062 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7063 ID3D12GraphicsCommandList3 *This,
7064 REFIID riid,
7065 void **ppvObject);
7066
7067 ULONG (STDMETHODCALLTYPE *AddRef)(
7068 ID3D12GraphicsCommandList3 *This);
7069
7070 ULONG (STDMETHODCALLTYPE *Release)(
7071 ID3D12GraphicsCommandList3 *This);
7072
7073 /*** ID3D12Object methods ***/
7074 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
7075 ID3D12GraphicsCommandList3 *This,
7076 REFGUID guid,
7077 UINT *data_size,
7078 void *data);
7079
7080 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
7081 ID3D12GraphicsCommandList3 *This,
7082 REFGUID guid,
7083 UINT data_size,
7084 const void *data);
7085
7086 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
7087 ID3D12GraphicsCommandList3 *This,
7088 REFGUID guid,
7089 const IUnknown *data);
7090
7091 HRESULT (STDMETHODCALLTYPE *SetName)(
7092 ID3D12GraphicsCommandList3 *This,
7093 const WCHAR *name);
7094
7095 /*** ID3D12DeviceChild methods ***/
7096 HRESULT (STDMETHODCALLTYPE *GetDevice)(
7097 ID3D12GraphicsCommandList3 *This,
7098 REFIID riid,
7099 void **device);
7100
7101 /*** ID3D12CommandList methods ***/
7102 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
7103 ID3D12GraphicsCommandList3 *This);
7104
7105 /*** ID3D12GraphicsCommandList methods ***/
7106 HRESULT (STDMETHODCALLTYPE *Close)(
7107 ID3D12GraphicsCommandList3 *This);
7108
7109 HRESULT (STDMETHODCALLTYPE *Reset)(
7110 ID3D12GraphicsCommandList3 *This,
7111 ID3D12CommandAllocator *allocator,
7112 ID3D12PipelineState *initial_state);
7113
7114 void (STDMETHODCALLTYPE *ClearState)(
7115 ID3D12GraphicsCommandList3 *This,
7116 ID3D12PipelineState *pipeline_state);
7117
7118 void (STDMETHODCALLTYPE *DrawInstanced)(
7119 ID3D12GraphicsCommandList3 *This,
7120 UINT vertex_count_per_instance,
7121 UINT instance_count,
7122 UINT start_vertex_location,
7123 UINT start_instance_location);
7124
7125 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
7126 ID3D12GraphicsCommandList3 *This,
7127 UINT index_count_per_instance,
7128 UINT instance_count,
7129 UINT start_vertex_location,
7130 INT base_vertex_location,
7131 UINT start_instance_location);
7132
7133 void (STDMETHODCALLTYPE *Dispatch)(
7134 ID3D12GraphicsCommandList3 *This,
7135 UINT x,
7136 UINT u,
7137 UINT z);
7138
7139 void (STDMETHODCALLTYPE *CopyBufferRegion)(
7140 ID3D12GraphicsCommandList3 *This,
7141 ID3D12Resource *dst_buffer,
7142 UINT64 dst_offset,
7143 ID3D12Resource *src_buffer,
7144 UINT64 src_offset,
7145 UINT64 byte_count);
7146
7147 void (STDMETHODCALLTYPE *CopyTextureRegion)(
7148 ID3D12GraphicsCommandList3 *This,
7149 const D3D12_TEXTURE_COPY_LOCATION *dst,
7150 UINT dst_x,
7151 UINT dst_y,
7152 UINT dst_z,
7153 const D3D12_TEXTURE_COPY_LOCATION *src,
7154 const D3D12_BOX *src_box);
7155
7156 void (STDMETHODCALLTYPE *CopyResource)(
7157 ID3D12GraphicsCommandList3 *This,
7158 ID3D12Resource *dst_resource,
7159 ID3D12Resource *src_resource);
7160
7161 void (STDMETHODCALLTYPE *CopyTiles)(
7162 ID3D12GraphicsCommandList3 *This,
7163 ID3D12Resource *tiled_resource,
7164 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
7165 const D3D12_TILE_REGION_SIZE *tile_region_size,
7166 ID3D12Resource *buffer,
7167 UINT64 buffer_offset,
7168 D3D12_TILE_COPY_FLAGS flags);
7169
7170 void (STDMETHODCALLTYPE *ResolveSubresource)(
7171 ID3D12GraphicsCommandList3 *This,
7172 ID3D12Resource *dst_resource,
7173 UINT dst_sub_resource,
7174 ID3D12Resource *src_resource,
7175 UINT src_sub_resource,
7176 DXGI_FORMAT format);
7177
7178 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
7179 ID3D12GraphicsCommandList3 *This,
7180 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
7181
7182 void (STDMETHODCALLTYPE *RSSetViewports)(
7183 ID3D12GraphicsCommandList3 *This,
7184 UINT viewport_count,
7185 const D3D12_VIEWPORT *viewports);
7186
7187 void (STDMETHODCALLTYPE *RSSetScissorRects)(
7188 ID3D12GraphicsCommandList3 *This,
7189 UINT rect_count,
7190 const D3D12_RECT *rects);
7191
7192 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
7193 ID3D12GraphicsCommandList3 *This,
7194 const FLOAT blend_factor[4]);
7195
7196 void (STDMETHODCALLTYPE *OMSetStencilRef)(
7197 ID3D12GraphicsCommandList3 *This,
7198 UINT stencil_ref);
7199
7200 void (STDMETHODCALLTYPE *SetPipelineState)(
7201 ID3D12GraphicsCommandList3 *This,
7202 ID3D12PipelineState *pipeline_state);
7203
7204 void (STDMETHODCALLTYPE *ResourceBarrier)(
7205 ID3D12GraphicsCommandList3 *This,
7206 UINT barrier_count,
7207 const D3D12_RESOURCE_BARRIER *barriers);
7208
7209 void (STDMETHODCALLTYPE *ExecuteBundle)(
7210 ID3D12GraphicsCommandList3 *This,
7211 ID3D12GraphicsCommandList *command_list);
7212
7213 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
7214 ID3D12GraphicsCommandList3 *This,
7215 UINT heap_count,
7216 ID3D12DescriptorHeap *const *heaps);
7217
7218 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
7219 ID3D12GraphicsCommandList3 *This,
7220 ID3D12RootSignature *root_signature);
7221
7222 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
7223 ID3D12GraphicsCommandList3 *This,
7224 ID3D12RootSignature *root_signature);
7225
7226 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
7227 ID3D12GraphicsCommandList3 *This,
7228 UINT root_parameter_index,
7229 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
7230
7231 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
7232 ID3D12GraphicsCommandList3 *This,
7233 UINT root_parameter_index,
7234 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
7235
7236 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
7237 ID3D12GraphicsCommandList3 *This,
7238 UINT root_parameter_index,
7239 UINT data,
7240 UINT dst_offset);
7241
7242 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
7243 ID3D12GraphicsCommandList3 *This,
7244 UINT root_parameter_index,
7245 UINT data,
7246 UINT dst_offset);
7247
7248 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
7249 ID3D12GraphicsCommandList3 *This,
7250 UINT root_parameter_index,
7251 UINT constant_count,
7252 const void *data,
7253 UINT dst_offset);
7254
7255 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
7256 ID3D12GraphicsCommandList3 *This,
7257 UINT root_parameter_index,
7258 UINT constant_count,
7259 const void *data,
7260 UINT dst_offset);
7261
7262 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
7263 ID3D12GraphicsCommandList3 *This,
7264 UINT root_parameter_index,
7265 D3D12_GPU_VIRTUAL_ADDRESS address);
7266
7267 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
7268 ID3D12GraphicsCommandList3 *This,
7269 UINT root_parameter_index,
7270 D3D12_GPU_VIRTUAL_ADDRESS address);
7271
7272 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
7273 ID3D12GraphicsCommandList3 *This,
7274 UINT root_parameter_index,
7275 D3D12_GPU_VIRTUAL_ADDRESS address);
7276
7277 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
7278 ID3D12GraphicsCommandList3 *This,
7279 UINT root_parameter_index,
7280 D3D12_GPU_VIRTUAL_ADDRESS address);
7281
7282 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
7283 ID3D12GraphicsCommandList3 *This,
7284 UINT root_parameter_index,
7285 D3D12_GPU_VIRTUAL_ADDRESS address);
7286
7287 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
7288 ID3D12GraphicsCommandList3 *This,
7289 UINT root_parameter_index,
7290 D3D12_GPU_VIRTUAL_ADDRESS address);
7291
7292 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
7293 ID3D12GraphicsCommandList3 *This,
7294 const D3D12_INDEX_BUFFER_VIEW *view);
7295
7296 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
7297 ID3D12GraphicsCommandList3 *This,
7298 UINT start_slot,
7299 UINT view_count,
7300 const D3D12_VERTEX_BUFFER_VIEW *views);
7301
7302 void (STDMETHODCALLTYPE *SOSetTargets)(
7303 ID3D12GraphicsCommandList3 *This,
7304 UINT start_slot,
7305 UINT view_count,
7306 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
7307
7308 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
7309 ID3D12GraphicsCommandList3 *This,
7310 UINT render_target_descriptor_count,
7311 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
7312 WINBOOL single_descriptor_handle,
7313 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
7314
7315 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
7316 ID3D12GraphicsCommandList3 *This,
7317 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
7318 D3D12_CLEAR_FLAGS flags,
7319 FLOAT depth,
7320 UINT8 stencil,
7321 UINT rect_count,
7322 const D3D12_RECT *rects);
7323
7324 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
7325 ID3D12GraphicsCommandList3 *This,
7326 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
7327 const FLOAT color[4],
7328 UINT rect_count,
7329 const D3D12_RECT *rects);
7330
7331 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
7332 ID3D12GraphicsCommandList3 *This,
7333 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
7334 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
7335 ID3D12Resource *resource,
7336 const UINT values[4],
7337 UINT rect_count,
7338 const D3D12_RECT *rects);
7339
7340 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
7341 ID3D12GraphicsCommandList3 *This,
7342 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
7343 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
7344 ID3D12Resource *resource,
7345 const float values[4],
7346 UINT rect_count,
7347 const D3D12_RECT *rects);
7348
7349 void (STDMETHODCALLTYPE *DiscardResource)(
7350 ID3D12GraphicsCommandList3 *This,
7351 ID3D12Resource *resource,
7352 const D3D12_DISCARD_REGION *region);
7353
7354 void (STDMETHODCALLTYPE *BeginQuery)(
7355 ID3D12GraphicsCommandList3 *This,
7356 ID3D12QueryHeap *heap,
7357 D3D12_QUERY_TYPE type,
7358 UINT index);
7359
7360 void (STDMETHODCALLTYPE *EndQuery)(
7361 ID3D12GraphicsCommandList3 *This,
7362 ID3D12QueryHeap *heap,
7363 D3D12_QUERY_TYPE type,
7364 UINT index);
7365
7366 void (STDMETHODCALLTYPE *ResolveQueryData)(
7367 ID3D12GraphicsCommandList3 *This,
7368 ID3D12QueryHeap *heap,
7369 D3D12_QUERY_TYPE type,
7370 UINT start_index,
7371 UINT query_count,
7372 ID3D12Resource *dst_buffer,
7373 UINT64 aligned_dst_buffer_offset);
7374
7375 void (STDMETHODCALLTYPE *SetPredication)(
7376 ID3D12GraphicsCommandList3 *This,
7377 ID3D12Resource *buffer,
7378 UINT64 aligned_buffer_offset,
7379 D3D12_PREDICATION_OP operation);
7380
7381 void (STDMETHODCALLTYPE *SetMarker)(
7382 ID3D12GraphicsCommandList3 *This,
7383 UINT metadata,
7384 const void *data,
7385 UINT size);
7386
7387 void (STDMETHODCALLTYPE *BeginEvent)(
7388 ID3D12GraphicsCommandList3 *This,
7389 UINT metadata,
7390 const void *data,
7391 UINT size);
7392
7393 void (STDMETHODCALLTYPE *EndEvent)(
7394 ID3D12GraphicsCommandList3 *This);
7395
7396 void (STDMETHODCALLTYPE *ExecuteIndirect)(
7397 ID3D12GraphicsCommandList3 *This,
7398 ID3D12CommandSignature *command_signature,
7399 UINT max_command_count,
7400 ID3D12Resource *arg_buffer,
7401 UINT64 arg_buffer_offset,
7402 ID3D12Resource *count_buffer,
7403 UINT64 count_buffer_offset);
7404
7405 /*** ID3D12GraphicsCommandList1 methods ***/
7406 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
7407 ID3D12GraphicsCommandList3 *This,
7408 ID3D12Resource *dst_buffer,
7409 UINT64 dst_offset,
7410 ID3D12Resource *src_buffer,
7411 UINT64 src_offset,
7412 UINT dependent_resource_count,
7413 ID3D12Resource *const *dependent_resources,
7414 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
7415
7416 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
7417 ID3D12GraphicsCommandList3 *This,
7418 ID3D12Resource *dst_buffer,
7419 UINT64 dst_offset,
7420 ID3D12Resource *src_buffer,
7421 UINT64 src_offset,
7422 UINT dependent_resource_count,
7423 ID3D12Resource *const *dependent_resources,
7424 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
7425
7426 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
7427 ID3D12GraphicsCommandList3 *This,
7428 FLOAT min,
7429 FLOAT max);
7430
7431 void (STDMETHODCALLTYPE *SetSamplePositions)(
7432 ID3D12GraphicsCommandList3 *This,
7433 UINT sample_count,
7434 UINT pixel_count,
7435 D3D12_SAMPLE_POSITION *sample_positions);
7436
7437 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
7438 ID3D12GraphicsCommandList3 *This,
7439 ID3D12Resource *dst_resource,
7440 UINT dst_sub_resource_idx,
7441 UINT dst_x,
7442 UINT dst_y,
7443 ID3D12Resource *src_resource,
7444 UINT src_sub_resource_idx,
7445 D3D12_RECT *src_rect,
7446 DXGI_FORMAT format,
7447 D3D12_RESOLVE_MODE mode);
7448
7449 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
7450 ID3D12GraphicsCommandList3 *This,
7451 UINT mask);
7452
7453 /*** ID3D12GraphicsCommandList2 methods ***/
7454 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
7455 ID3D12GraphicsCommandList3 *This,
7456 UINT count,
7457 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
7458 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
7459
7460 /*** ID3D12GraphicsCommandList3 methods ***/
7461 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
7462 ID3D12GraphicsCommandList3 *This,
7463 ID3D12ProtectedResourceSession *protected_resource_session);
7464
7465 END_INTERFACE
7466} ID3D12GraphicsCommandList3Vtbl;
7467
7468interface ID3D12GraphicsCommandList3 {
7469 CONST_VTBL ID3D12GraphicsCommandList3Vtbl* lpVtbl;
7470};
7471
7472#ifdef COBJMACROS
7473#ifndef WIDL_C_INLINE_WRAPPERS
7474/*** IUnknown methods ***/
7475#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7476#define ID3D12GraphicsCommandList3_AddRef(This) (This)->lpVtbl->AddRef(This)
7477#define ID3D12GraphicsCommandList3_Release(This) (This)->lpVtbl->Release(This)
7478/*** ID3D12Object methods ***/
7479#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
7480#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
7481#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
7482#define ID3D12GraphicsCommandList3_SetName(This,name) (This)->lpVtbl->SetName(This,name)
7483/*** ID3D12DeviceChild methods ***/
7484#define ID3D12GraphicsCommandList3_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
7485/*** ID3D12CommandList methods ***/
7486#define ID3D12GraphicsCommandList3_GetType(This) (This)->lpVtbl->GetType(This)
7487/*** ID3D12GraphicsCommandList methods ***/
7488#define ID3D12GraphicsCommandList3_Close(This) (This)->lpVtbl->Close(This)
7489#define ID3D12GraphicsCommandList3_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
7490#define ID3D12GraphicsCommandList3_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
7491#define ID3D12GraphicsCommandList3_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
7492#define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
7493#define ID3D12GraphicsCommandList3_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
7494#define ID3D12GraphicsCommandList3_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
7495#define ID3D12GraphicsCommandList3_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
7496#define ID3D12GraphicsCommandList3_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
7497#define ID3D12GraphicsCommandList3_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
7498#define ID3D12GraphicsCommandList3_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
7499#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
7500#define ID3D12GraphicsCommandList3_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
7501#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
7502#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
7503#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
7504#define ID3D12GraphicsCommandList3_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
7505#define ID3D12GraphicsCommandList3_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
7506#define ID3D12GraphicsCommandList3_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
7507#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
7508#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
7509#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
7510#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
7511#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
7512#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
7513#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
7514#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
7515#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
7516#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
7517#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
7518#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
7519#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
7520#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
7521#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
7522#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
7523#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
7524#define ID3D12GraphicsCommandList3_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
7525#define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
7526#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
7527#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
7528#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
7529#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
7530#define ID3D12GraphicsCommandList3_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
7531#define ID3D12GraphicsCommandList3_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
7532#define ID3D12GraphicsCommandList3_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
7533#define ID3D12GraphicsCommandList3_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
7534#define ID3D12GraphicsCommandList3_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
7535#define ID3D12GraphicsCommandList3_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
7536#define ID3D12GraphicsCommandList3_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
7537#define ID3D12GraphicsCommandList3_EndEvent(This) (This)->lpVtbl->EndEvent(This)
7538#define ID3D12GraphicsCommandList3_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
7539/*** ID3D12GraphicsCommandList1 methods ***/
7540#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
7541#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
7542#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
7543#define ID3D12GraphicsCommandList3_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
7544#define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
7545#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
7546/*** ID3D12GraphicsCommandList2 methods ***/
7547#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
7548/*** ID3D12GraphicsCommandList3 methods ***/
7549#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
7550#else
7551/*** IUnknown methods ***/
7552static inline HRESULT ID3D12GraphicsCommandList3_QueryInterface(ID3D12GraphicsCommandList3* This,REFIID riid,void **ppvObject) {
7553 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7554}
7555static inline ULONG ID3D12GraphicsCommandList3_AddRef(ID3D12GraphicsCommandList3* This) {
7556 return This->lpVtbl->AddRef(This);
7557}
7558static inline ULONG ID3D12GraphicsCommandList3_Release(ID3D12GraphicsCommandList3* This) {
7559 return This->lpVtbl->Release(This);
7560}
7561/*** ID3D12Object methods ***/
7562static inline HRESULT ID3D12GraphicsCommandList3_GetPrivateData(ID3D12GraphicsCommandList3* This,REFGUID guid,UINT *data_size,void *data) {
7563 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
7564}
7565static inline HRESULT ID3D12GraphicsCommandList3_SetPrivateData(ID3D12GraphicsCommandList3* This,REFGUID guid,UINT data_size,const void *data) {
7566 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
7567}
7568static inline HRESULT ID3D12GraphicsCommandList3_SetPrivateDataInterface(ID3D12GraphicsCommandList3* This,REFGUID guid,const IUnknown *data) {
7569 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
7570}
7571static inline HRESULT ID3D12GraphicsCommandList3_SetName(ID3D12GraphicsCommandList3* This,const WCHAR *name) {
7572 return This->lpVtbl->SetName(This,name);
7573}
7574/*** ID3D12DeviceChild methods ***/
7575static inline HRESULT ID3D12GraphicsCommandList3_GetDevice(ID3D12GraphicsCommandList3* This,REFIID riid,void **device) {
7576 return This->lpVtbl->GetDevice(This,riid,device);
7577}
7578/*** ID3D12CommandList methods ***/
7579static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList3_GetType(ID3D12GraphicsCommandList3* This) {
7580 return This->lpVtbl->GetType(This);
7581}
7582/*** ID3D12GraphicsCommandList methods ***/
7583static inline HRESULT ID3D12GraphicsCommandList3_Close(ID3D12GraphicsCommandList3* This) {
7584 return This->lpVtbl->Close(This);
7585}
7586static inline HRESULT ID3D12GraphicsCommandList3_Reset(ID3D12GraphicsCommandList3* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
7587 return This->lpVtbl->Reset(This,allocator,initial_state);
7588}
7589static inline void ID3D12GraphicsCommandList3_ClearState(ID3D12GraphicsCommandList3* This,ID3D12PipelineState *pipeline_state) {
7590 This->lpVtbl->ClearState(This,pipeline_state);
7591}
7592static inline void ID3D12GraphicsCommandList3_DrawInstanced(ID3D12GraphicsCommandList3* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
7593 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
7594}
7595static inline void ID3D12GraphicsCommandList3_DrawIndexedInstanced(ID3D12GraphicsCommandList3* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
7596 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
7597}
7598static inline void ID3D12GraphicsCommandList3_Dispatch(ID3D12GraphicsCommandList3* This,UINT x,UINT u,UINT z) {
7599 This->lpVtbl->Dispatch(This,x,u,z);
7600}
7601static inline void ID3D12GraphicsCommandList3_CopyBufferRegion(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
7602 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
7603}
7604static inline void ID3D12GraphicsCommandList3_CopyTextureRegion(ID3D12GraphicsCommandList3* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
7605 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
7606}
7607static inline void ID3D12GraphicsCommandList3_CopyResource(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
7608 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
7609}
7610static inline void ID3D12GraphicsCommandList3_CopyTiles(ID3D12GraphicsCommandList3* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
7611 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
7612}
7613static inline void ID3D12GraphicsCommandList3_ResolveSubresource(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
7614 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
7615}
7616static inline void ID3D12GraphicsCommandList3_IASetPrimitiveTopology(ID3D12GraphicsCommandList3* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
7617 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
7618}
7619static inline void ID3D12GraphicsCommandList3_RSSetViewports(ID3D12GraphicsCommandList3* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
7620 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
7621}
7622static inline void ID3D12GraphicsCommandList3_RSSetScissorRects(ID3D12GraphicsCommandList3* This,UINT rect_count,const D3D12_RECT *rects) {
7623 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
7624}
7625static inline void ID3D12GraphicsCommandList3_OMSetBlendFactor(ID3D12GraphicsCommandList3* This,const FLOAT blend_factor[4]) {
7626 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
7627}
7628static inline void ID3D12GraphicsCommandList3_OMSetStencilRef(ID3D12GraphicsCommandList3* This,UINT stencil_ref) {
7629 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
7630}
7631static inline void ID3D12GraphicsCommandList3_SetPipelineState(ID3D12GraphicsCommandList3* This,ID3D12PipelineState *pipeline_state) {
7632 This->lpVtbl->SetPipelineState(This,pipeline_state);
7633}
7634static inline void ID3D12GraphicsCommandList3_ResourceBarrier(ID3D12GraphicsCommandList3* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
7635 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
7636}
7637static inline void ID3D12GraphicsCommandList3_ExecuteBundle(ID3D12GraphicsCommandList3* This,ID3D12GraphicsCommandList *command_list) {
7638 This->lpVtbl->ExecuteBundle(This,command_list);
7639}
7640static inline void ID3D12GraphicsCommandList3_SetDescriptorHeaps(ID3D12GraphicsCommandList3* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
7641 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
7642}
7643static inline void ID3D12GraphicsCommandList3_SetComputeRootSignature(ID3D12GraphicsCommandList3* This,ID3D12RootSignature *root_signature) {
7644 This->lpVtbl->SetComputeRootSignature(This,root_signature);
7645}
7646static inline void ID3D12GraphicsCommandList3_SetGraphicsRootSignature(ID3D12GraphicsCommandList3* This,ID3D12RootSignature *root_signature) {
7647 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
7648}
7649static inline void ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
7650 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
7651}
7652static inline void ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
7653 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
7654}
7655static inline void ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
7656 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
7657}
7658static inline void ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
7659 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
7660}
7661static inline void ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
7662 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
7663}
7664static inline void ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
7665 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
7666}
7667static inline void ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7668 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
7669}
7670static inline void ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7671 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
7672}
7673static inline void ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7674 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
7675}
7676static inline void ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7677 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
7678}
7679static inline void ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7680 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
7681}
7682static inline void ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7683 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
7684}
7685static inline void ID3D12GraphicsCommandList3_IASetIndexBuffer(ID3D12GraphicsCommandList3* This,const D3D12_INDEX_BUFFER_VIEW *view) {
7686 This->lpVtbl->IASetIndexBuffer(This,view);
7687}
7688static inline void ID3D12GraphicsCommandList3_IASetVertexBuffers(ID3D12GraphicsCommandList3* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
7689 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
7690}
7691static inline void ID3D12GraphicsCommandList3_SOSetTargets(ID3D12GraphicsCommandList3* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
7692 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
7693}
7694static inline void ID3D12GraphicsCommandList3_OMSetRenderTargets(ID3D12GraphicsCommandList3* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
7695 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
7696}
7697static inline void ID3D12GraphicsCommandList3_ClearDepthStencilView(ID3D12GraphicsCommandList3* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
7698 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
7699}
7700static inline void ID3D12GraphicsCommandList3_ClearRenderTargetView(ID3D12GraphicsCommandList3* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
7701 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
7702}
7703static inline void ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList3* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
7704 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
7705}
7706static inline void ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList3* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
7707 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
7708}
7709static inline void ID3D12GraphicsCommandList3_DiscardResource(ID3D12GraphicsCommandList3* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
7710 This->lpVtbl->DiscardResource(This,resource,region);
7711}
7712static inline void ID3D12GraphicsCommandList3_BeginQuery(ID3D12GraphicsCommandList3* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
7713 This->lpVtbl->BeginQuery(This,heap,type,index);
7714}
7715static inline void ID3D12GraphicsCommandList3_EndQuery(ID3D12GraphicsCommandList3* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
7716 This->lpVtbl->EndQuery(This,heap,type,index);
7717}
7718static inline void ID3D12GraphicsCommandList3_ResolveQueryData(ID3D12GraphicsCommandList3* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
7719 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
7720}
7721static inline void ID3D12GraphicsCommandList3_SetPredication(ID3D12GraphicsCommandList3* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
7722 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
7723}
7724static inline void ID3D12GraphicsCommandList3_SetMarker(ID3D12GraphicsCommandList3* This,UINT metadata,const void *data,UINT size) {
7725 This->lpVtbl->SetMarker(This,metadata,data,size);
7726}
7727static inline void ID3D12GraphicsCommandList3_BeginEvent(ID3D12GraphicsCommandList3* This,UINT metadata,const void *data,UINT size) {
7728 This->lpVtbl->BeginEvent(This,metadata,data,size);
7729}
7730static inline void ID3D12GraphicsCommandList3_EndEvent(ID3D12GraphicsCommandList3* This) {
7731 This->lpVtbl->EndEvent(This);
7732}
7733static inline void ID3D12GraphicsCommandList3_ExecuteIndirect(ID3D12GraphicsCommandList3* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
7734 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
7735}
7736/*** ID3D12GraphicsCommandList1 methods ***/
7737static inline void ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
7738 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
7739}
7740static inline void ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
7741 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
7742}
7743static inline void ID3D12GraphicsCommandList3_OMSetDepthBounds(ID3D12GraphicsCommandList3* This,FLOAT min,FLOAT max) {
7744 This->lpVtbl->OMSetDepthBounds(This,min,max);
7745}
7746static inline void ID3D12GraphicsCommandList3_SetSamplePositions(ID3D12GraphicsCommandList3* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
7747 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
7748}
7749static inline void ID3D12GraphicsCommandList3_ResolveSubresourceRegion(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
7750 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
7751}
7752static inline void ID3D12GraphicsCommandList3_SetViewInstanceMask(ID3D12GraphicsCommandList3* This,UINT mask) {
7753 This->lpVtbl->SetViewInstanceMask(This,mask);
7754}
7755/*** ID3D12GraphicsCommandList2 methods ***/
7756static inline void ID3D12GraphicsCommandList3_WriteBufferImmediate(ID3D12GraphicsCommandList3* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
7757 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
7758}
7759/*** ID3D12GraphicsCommandList3 methods ***/
7760static inline void ID3D12GraphicsCommandList3_SetProtectedResourceSession(ID3D12GraphicsCommandList3* This,ID3D12ProtectedResourceSession *protected_resource_session) {
7761 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
7762}
7763#endif
7764#endif
7765
7766#endif
7767
7768
7769#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */
7770
7771typedef enum D3D12_TILE_RANGE_FLAGS {
7772 D3D12_TILE_RANGE_FLAG_NONE = 0x0,
7773 D3D12_TILE_RANGE_FLAG_NULL = 0x1,
7774 D3D12_TILE_RANGE_FLAG_SKIP = 0x2,
7775 D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 0x4
7776} D3D12_TILE_RANGE_FLAGS;
7777typedef enum D3D12_TILE_MAPPING_FLAGS {
7778 D3D12_TILE_MAPPING_FLAG_NONE = 0x0,
7779 D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
7780} D3D12_TILE_MAPPING_FLAGS;
7781DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_MAPPING_FLAGS);
7782/*****************************************************************************
7783 * ID3D12CommandQueue interface
7784 */
7785#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
7786#define __ID3D12CommandQueue_INTERFACE_DEFINED__
7787
7788DEFINE_GUID(IID_ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed);
7789#if defined(__cplusplus) && !defined(CINTERFACE)
7790MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
7791ID3D12CommandQueue : public ID3D12Pageable
7792{
7793 virtual void STDMETHODCALLTYPE UpdateTileMappings(
7794 ID3D12Resource *resource,
7795 UINT region_count,
7796 const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
7797 const D3D12_TILE_REGION_SIZE *region_sizes,
7798 ID3D12Heap *heap,
7799 UINT range_count,
7800 const D3D12_TILE_RANGE_FLAGS *range_flags,
7801 const UINT *heap_range_offsets,
7802 const UINT *range_tile_counts,
7803 D3D12_TILE_MAPPING_FLAGS flags) = 0;
7804
7805 virtual void STDMETHODCALLTYPE CopyTileMappings(
7806 ID3D12Resource *dst_resource,
7807 const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
7808 ID3D12Resource *src_resource,
7809 const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
7810 const D3D12_TILE_REGION_SIZE *region_size,
7811 D3D12_TILE_MAPPING_FLAGS flags) = 0;
7812
7813 virtual void STDMETHODCALLTYPE ExecuteCommandLists(
7814 UINT command_list_count,
7815 ID3D12CommandList *const *command_lists) = 0;
7816
7817 virtual void STDMETHODCALLTYPE SetMarker(
7818 UINT metadata,
7819 const void *data,
7820 UINT size) = 0;
7821
7822 virtual void STDMETHODCALLTYPE BeginEvent(
7823 UINT metadata,
7824 const void *data,
7825 UINT size) = 0;
7826
7827 virtual void STDMETHODCALLTYPE EndEvent(
7828 ) = 0;
7829
7830 virtual HRESULT STDMETHODCALLTYPE Signal(
7831 ID3D12Fence *fence,
7832 UINT64 value) = 0;
7833
7834 virtual HRESULT STDMETHODCALLTYPE Wait(
7835 ID3D12Fence *fence,
7836 UINT64 value) = 0;
7837
7838 virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
7839 UINT64 *frequency) = 0;
7840
7841 virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
7842 UINT64 *gpu_timestamp,
7843 UINT64 *cpu_timestamp) = 0;
7844
7845#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
7846 virtual D3D12_COMMAND_QUEUE_DESC* STDMETHODCALLTYPE GetDesc(
7847 D3D12_COMMAND_QUEUE_DESC *__ret) = 0;
7848 D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
7849 )
7850 {
7851 D3D12_COMMAND_QUEUE_DESC __ret;
7852 return *GetDesc(&__ret);
7853 }
7854#else
7855 virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
7856 ) = 0;
7857#endif
7858
7859};
7860#ifdef __CRT_UUID_DECL
7861__CRT_UUID_DECL(ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed)
7862#endif
7863#else
7864typedef struct ID3D12CommandQueueVtbl {
7865 BEGIN_INTERFACE
7866
7867 /*** IUnknown methods ***/
7868 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7869 ID3D12CommandQueue *This,
7870 REFIID riid,
7871 void **ppvObject);
7872
7873 ULONG (STDMETHODCALLTYPE *AddRef)(
7874 ID3D12CommandQueue *This);
7875
7876 ULONG (STDMETHODCALLTYPE *Release)(
7877 ID3D12CommandQueue *This);
7878
7879 /*** ID3D12Object methods ***/
7880 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
7881 ID3D12CommandQueue *This,
7882 REFGUID guid,
7883 UINT *data_size,
7884 void *data);
7885
7886 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
7887 ID3D12CommandQueue *This,
7888 REFGUID guid,
7889 UINT data_size,
7890 const void *data);
7891
7892 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
7893 ID3D12CommandQueue *This,
7894 REFGUID guid,
7895 const IUnknown *data);
7896
7897 HRESULT (STDMETHODCALLTYPE *SetName)(
7898 ID3D12CommandQueue *This,
7899 const WCHAR *name);
7900
7901 /*** ID3D12DeviceChild methods ***/
7902 HRESULT (STDMETHODCALLTYPE *GetDevice)(
7903 ID3D12CommandQueue *This,
7904 REFIID riid,
7905 void **device);
7906
7907 /*** ID3D12CommandQueue methods ***/
7908 void (STDMETHODCALLTYPE *UpdateTileMappings)(
7909 ID3D12CommandQueue *This,
7910 ID3D12Resource *resource,
7911 UINT region_count,
7912 const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
7913 const D3D12_TILE_REGION_SIZE *region_sizes,
7914 ID3D12Heap *heap,
7915 UINT range_count,
7916 const D3D12_TILE_RANGE_FLAGS *range_flags,
7917 const UINT *heap_range_offsets,
7918 const UINT *range_tile_counts,
7919 D3D12_TILE_MAPPING_FLAGS flags);
7920
7921 void (STDMETHODCALLTYPE *CopyTileMappings)(
7922 ID3D12CommandQueue *This,
7923 ID3D12Resource *dst_resource,
7924 const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
7925 ID3D12Resource *src_resource,
7926 const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
7927 const D3D12_TILE_REGION_SIZE *region_size,
7928 D3D12_TILE_MAPPING_FLAGS flags);
7929
7930 void (STDMETHODCALLTYPE *ExecuteCommandLists)(
7931 ID3D12CommandQueue *This,
7932 UINT command_list_count,
7933 ID3D12CommandList *const *command_lists);
7934
7935 void (STDMETHODCALLTYPE *SetMarker)(
7936 ID3D12CommandQueue *This,
7937 UINT metadata,
7938 const void *data,
7939 UINT size);
7940
7941 void (STDMETHODCALLTYPE *BeginEvent)(
7942 ID3D12CommandQueue *This,
7943 UINT metadata,
7944 const void *data,
7945 UINT size);
7946
7947 void (STDMETHODCALLTYPE *EndEvent)(
7948 ID3D12CommandQueue *This);
7949
7950 HRESULT (STDMETHODCALLTYPE *Signal)(
7951 ID3D12CommandQueue *This,
7952 ID3D12Fence *fence,
7953 UINT64 value);
7954
7955 HRESULT (STDMETHODCALLTYPE *Wait)(
7956 ID3D12CommandQueue *This,
7957 ID3D12Fence *fence,
7958 UINT64 value);
7959
7960 HRESULT (STDMETHODCALLTYPE *GetTimestampFrequency)(
7961 ID3D12CommandQueue *This,
7962 UINT64 *frequency);
7963
7964 HRESULT (STDMETHODCALLTYPE *GetClockCalibration)(
7965 ID3D12CommandQueue *This,
7966 UINT64 *gpu_timestamp,
7967 UINT64 *cpu_timestamp);
7968
7969 D3D12_COMMAND_QUEUE_DESC * (STDMETHODCALLTYPE *GetDesc)(
7970 ID3D12CommandQueue *This,
7971 D3D12_COMMAND_QUEUE_DESC *__ret);
7972
7973 END_INTERFACE
7974} ID3D12CommandQueueVtbl;
7975
7976interface ID3D12CommandQueue {
7977 CONST_VTBL ID3D12CommandQueueVtbl* lpVtbl;
7978};
7979
7980#ifdef COBJMACROS
7981#ifndef WIDL_C_INLINE_WRAPPERS
7982/*** IUnknown methods ***/
7983#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7984#define ID3D12CommandQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
7985#define ID3D12CommandQueue_Release(This) (This)->lpVtbl->Release(This)
7986/*** ID3D12Object methods ***/
7987#define ID3D12CommandQueue_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
7988#define ID3D12CommandQueue_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
7989#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
7990#define ID3D12CommandQueue_SetName(This,name) (This)->lpVtbl->SetName(This,name)
7991/*** ID3D12DeviceChild methods ***/
7992#define ID3D12CommandQueue_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
7993/*** ID3D12CommandQueue methods ***/
7994#define ID3D12CommandQueue_UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,heap,range_count,range_flags,heap_range_offsets,range_tile_counts,flags) (This)->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,heap,range_count,range_flags,heap_range_offsets,range_tile_counts,flags)
7995#define ID3D12CommandQueue_CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags) (This)->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags)
7996#define ID3D12CommandQueue_ExecuteCommandLists(This,command_list_count,command_lists) (This)->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists)
7997#define ID3D12CommandQueue_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
7998#define ID3D12CommandQueue_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
7999#define ID3D12CommandQueue_EndEvent(This) (This)->lpVtbl->EndEvent(This)
8000#define ID3D12CommandQueue_Signal(This,fence,value) (This)->lpVtbl->Signal(This,fence,value)
8001#define ID3D12CommandQueue_Wait(This,fence,value) (This)->lpVtbl->Wait(This,fence,value)
8002#define ID3D12CommandQueue_GetTimestampFrequency(This,frequency) (This)->lpVtbl->GetTimestampFrequency(This,frequency)
8003#define ID3D12CommandQueue_GetClockCalibration(This,gpu_timestamp,cpu_timestamp) (This)->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp)
8004#define ID3D12CommandQueue_GetDesc(This) ID3D12CommandQueue_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
8005#else
8006/*** IUnknown methods ***/
8007static inline HRESULT ID3D12CommandQueue_QueryInterface(ID3D12CommandQueue* This,REFIID riid,void **ppvObject) {
8008 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8009}
8010static inline ULONG ID3D12CommandQueue_AddRef(ID3D12CommandQueue* This) {
8011 return This->lpVtbl->AddRef(This);
8012}
8013static inline ULONG ID3D12CommandQueue_Release(ID3D12CommandQueue* This) {
8014 return This->lpVtbl->Release(This);
8015}
8016/*** ID3D12Object methods ***/
8017static inline HRESULT ID3D12CommandQueue_GetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT *data_size,void *data) {
8018 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8019}
8020static inline HRESULT ID3D12CommandQueue_SetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT data_size,const void *data) {
8021 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8022}
8023static inline HRESULT ID3D12CommandQueue_SetPrivateDataInterface(ID3D12CommandQueue* This,REFGUID guid,const IUnknown *data) {
8024 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8025}
8026static inline HRESULT ID3D12CommandQueue_SetName(ID3D12CommandQueue* This,const WCHAR *name) {
8027 return This->lpVtbl->SetName(This,name);
8028}
8029/*** ID3D12DeviceChild methods ***/
8030static inline HRESULT ID3D12CommandQueue_GetDevice(ID3D12CommandQueue* This,REFIID riid,void **device) {
8031 return This->lpVtbl->GetDevice(This,riid,device);
8032}
8033/*** ID3D12CommandQueue methods ***/
8034static inline void ID3D12CommandQueue_UpdateTileMappings(ID3D12CommandQueue* This,ID3D12Resource *resource,UINT region_count,const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,const D3D12_TILE_REGION_SIZE *region_sizes,ID3D12Heap *heap,UINT range_count,const D3D12_TILE_RANGE_FLAGS *range_flags,const UINT *heap_range_offsets,const UINT *range_tile_counts,D3D12_TILE_MAPPING_FLAGS flags) {
8035 This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,heap,range_count,range_flags,heap_range_offsets,range_tile_counts,flags);
8036}
8037static inline void ID3D12CommandQueue_CopyTileMappings(ID3D12CommandQueue* This,ID3D12Resource *dst_resource,const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,ID3D12Resource *src_resource,const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,const D3D12_TILE_REGION_SIZE *region_size,D3D12_TILE_MAPPING_FLAGS flags) {
8038 This->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags);
8039}
8040static inline void ID3D12CommandQueue_ExecuteCommandLists(ID3D12CommandQueue* This,UINT command_list_count,ID3D12CommandList *const *command_lists) {
8041 This->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists);
8042}
8043static inline void ID3D12CommandQueue_SetMarker(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
8044 This->lpVtbl->SetMarker(This,metadata,data,size);
8045}
8046static inline void ID3D12CommandQueue_BeginEvent(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
8047 This->lpVtbl->BeginEvent(This,metadata,data,size);
8048}
8049static inline void ID3D12CommandQueue_EndEvent(ID3D12CommandQueue* This) {
8050 This->lpVtbl->EndEvent(This);
8051}
8052static inline HRESULT ID3D12CommandQueue_Signal(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
8053 return This->lpVtbl->Signal(This,fence,value);
8054}
8055static inline HRESULT ID3D12CommandQueue_Wait(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
8056 return This->lpVtbl->Wait(This,fence,value);
8057}
8058static inline HRESULT ID3D12CommandQueue_GetTimestampFrequency(ID3D12CommandQueue* This,UINT64 *frequency) {
8059 return This->lpVtbl->GetTimestampFrequency(This,frequency);
8060}
8061static inline HRESULT ID3D12CommandQueue_GetClockCalibration(ID3D12CommandQueue* This,UINT64 *gpu_timestamp,UINT64 *cpu_timestamp) {
8062 return This->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp);
8063}
8064static inline D3D12_COMMAND_QUEUE_DESC ID3D12CommandQueue_GetDesc(ID3D12CommandQueue* This) {
8065 D3D12_COMMAND_QUEUE_DESC __ret;
8066 return *This->lpVtbl->GetDesc(This,&__ret);
8067}
8068#endif
8069#endif
8070
8071#endif
8072
8073
8074#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
8075
8076typedef enum D3D12_FENCE_FLAGS {
8077 D3D12_FENCE_FLAG_NONE = 0x0,
8078 D3D12_FENCE_FLAG_SHARED = 0x1,
8079 D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
8080 D3D12_FENCE_FLAG_NON_MONITORED = 0x4
8081} D3D12_FENCE_FLAGS;
8082DEFINE_ENUM_FLAG_OPERATORS(D3D12_FENCE_FLAGS);
8083typedef enum D3D12_QUERY_HEAP_TYPE {
8084 D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
8085 D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
8086 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
8087 D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
8088 D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4,
8089 D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5,
8090 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7
8091} D3D12_QUERY_HEAP_TYPE;
8092typedef struct D3D12_QUERY_HEAP_DESC {
8093 D3D12_QUERY_HEAP_TYPE Type;
8094 UINT Count;
8095 UINT NodeMask;
8096} D3D12_QUERY_HEAP_DESC;
8097typedef enum D3D12_INDIRECT_ARGUMENT_TYPE {
8098 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
8099 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = 1,
8100 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = 2,
8101 D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = 3,
8102 D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = 4,
8103 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = 5,
8104 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = 6,
8105 D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = 7,
8106 D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = 8,
8107 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = 9,
8108 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = 10
8109} D3D12_INDIRECT_ARGUMENT_TYPE;
8110typedef struct D3D12_INDIRECT_ARGUMENT_DESC {
8111 D3D12_INDIRECT_ARGUMENT_TYPE Type;
8112 __C89_NAMELESS union {
8113 struct {
8114 UINT Slot;
8115 } VertexBuffer;
8116 struct {
8117 UINT RootParameterIndex;
8118 UINT DestOffsetIn32BitValues;
8119 UINT Num32BitValuesToSet;
8120 } Constant;
8121 struct {
8122 UINT RootParameterIndex;
8123 } ConstantBufferView;
8124 struct {
8125 UINT RootParameterIndex;
8126 } ShaderResourceView;
8127 struct {
8128 UINT RootParameterIndex;
8129 } UnorderedAccessView;
8130 } __C89_NAMELESSUNIONNAME;
8131} D3D12_INDIRECT_ARGUMENT_DESC;
8132typedef struct D3D12_COMMAND_SIGNATURE_DESC {
8133 UINT ByteStride;
8134 UINT NumArgumentDescs;
8135 const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
8136 UINT NodeMask;
8137} D3D12_COMMAND_SIGNATURE_DESC;
8138/*****************************************************************************
8139 * ID3D12RootSignature interface
8140 */
8141#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
8142#define __ID3D12RootSignature_INTERFACE_DEFINED__
8143
8144DEFINE_GUID(IID_ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14);
8145#if defined(__cplusplus) && !defined(CINTERFACE)
8146MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
8147ID3D12RootSignature : public ID3D12DeviceChild
8148{
8149};
8150#ifdef __CRT_UUID_DECL
8151__CRT_UUID_DECL(ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14)
8152#endif
8153#else
8154typedef struct ID3D12RootSignatureVtbl {
8155 BEGIN_INTERFACE
8156
8157 /*** IUnknown methods ***/
8158 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8159 ID3D12RootSignature *This,
8160 REFIID riid,
8161 void **ppvObject);
8162
8163 ULONG (STDMETHODCALLTYPE *AddRef)(
8164 ID3D12RootSignature *This);
8165
8166 ULONG (STDMETHODCALLTYPE *Release)(
8167 ID3D12RootSignature *This);
8168
8169 /*** ID3D12Object methods ***/
8170 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8171 ID3D12RootSignature *This,
8172 REFGUID guid,
8173 UINT *data_size,
8174 void *data);
8175
8176 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8177 ID3D12RootSignature *This,
8178 REFGUID guid,
8179 UINT data_size,
8180 const void *data);
8181
8182 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8183 ID3D12RootSignature *This,
8184 REFGUID guid,
8185 const IUnknown *data);
8186
8187 HRESULT (STDMETHODCALLTYPE *SetName)(
8188 ID3D12RootSignature *This,
8189 const WCHAR *name);
8190
8191 /*** ID3D12DeviceChild methods ***/
8192 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8193 ID3D12RootSignature *This,
8194 REFIID riid,
8195 void **device);
8196
8197 END_INTERFACE
8198} ID3D12RootSignatureVtbl;
8199
8200interface ID3D12RootSignature {
8201 CONST_VTBL ID3D12RootSignatureVtbl* lpVtbl;
8202};
8203
8204#ifdef COBJMACROS
8205#ifndef WIDL_C_INLINE_WRAPPERS
8206/*** IUnknown methods ***/
8207#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8208#define ID3D12RootSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
8209#define ID3D12RootSignature_Release(This) (This)->lpVtbl->Release(This)
8210/*** ID3D12Object methods ***/
8211#define ID3D12RootSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8212#define ID3D12RootSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8213#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8214#define ID3D12RootSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8215/*** ID3D12DeviceChild methods ***/
8216#define ID3D12RootSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8217#else
8218/*** IUnknown methods ***/
8219static inline HRESULT ID3D12RootSignature_QueryInterface(ID3D12RootSignature* This,REFIID riid,void **ppvObject) {
8220 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8221}
8222static inline ULONG ID3D12RootSignature_AddRef(ID3D12RootSignature* This) {
8223 return This->lpVtbl->AddRef(This);
8224}
8225static inline ULONG ID3D12RootSignature_Release(ID3D12RootSignature* This) {
8226 return This->lpVtbl->Release(This);
8227}
8228/*** ID3D12Object methods ***/
8229static inline HRESULT ID3D12RootSignature_GetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT *data_size,void *data) {
8230 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8231}
8232static inline HRESULT ID3D12RootSignature_SetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT data_size,const void *data) {
8233 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8234}
8235static inline HRESULT ID3D12RootSignature_SetPrivateDataInterface(ID3D12RootSignature* This,REFGUID guid,const IUnknown *data) {
8236 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8237}
8238static inline HRESULT ID3D12RootSignature_SetName(ID3D12RootSignature* This,const WCHAR *name) {
8239 return This->lpVtbl->SetName(This,name);
8240}
8241/*** ID3D12DeviceChild methods ***/
8242static inline HRESULT ID3D12RootSignature_GetDevice(ID3D12RootSignature* This,REFIID riid,void **device) {
8243 return This->lpVtbl->GetDevice(This,riid,device);
8244}
8245#endif
8246#endif
8247
8248#endif
8249
8250
8251#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
8252
8253/*****************************************************************************
8254 * ID3D12PipelineState interface
8255 */
8256#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
8257#define __ID3D12PipelineState_INTERFACE_DEFINED__
8258
8259DEFINE_GUID(IID_ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45);
8260#if defined(__cplusplus) && !defined(CINTERFACE)
8261MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
8262ID3D12PipelineState : public ID3D12Pageable
8263{
8264 virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
8265 ID3DBlob **blob) = 0;
8266
8267};
8268#ifdef __CRT_UUID_DECL
8269__CRT_UUID_DECL(ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45)
8270#endif
8271#else
8272typedef struct ID3D12PipelineStateVtbl {
8273 BEGIN_INTERFACE
8274
8275 /*** IUnknown methods ***/
8276 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8277 ID3D12PipelineState *This,
8278 REFIID riid,
8279 void **ppvObject);
8280
8281 ULONG (STDMETHODCALLTYPE *AddRef)(
8282 ID3D12PipelineState *This);
8283
8284 ULONG (STDMETHODCALLTYPE *Release)(
8285 ID3D12PipelineState *This);
8286
8287 /*** ID3D12Object methods ***/
8288 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8289 ID3D12PipelineState *This,
8290 REFGUID guid,
8291 UINT *data_size,
8292 void *data);
8293
8294 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8295 ID3D12PipelineState *This,
8296 REFGUID guid,
8297 UINT data_size,
8298 const void *data);
8299
8300 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8301 ID3D12PipelineState *This,
8302 REFGUID guid,
8303 const IUnknown *data);
8304
8305 HRESULT (STDMETHODCALLTYPE *SetName)(
8306 ID3D12PipelineState *This,
8307 const WCHAR *name);
8308
8309 /*** ID3D12DeviceChild methods ***/
8310 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8311 ID3D12PipelineState *This,
8312 REFIID riid,
8313 void **device);
8314
8315 /*** ID3D12PipelineState methods ***/
8316 HRESULT (STDMETHODCALLTYPE *GetCachedBlob)(
8317 ID3D12PipelineState *This,
8318 ID3DBlob **blob);
8319
8320 END_INTERFACE
8321} ID3D12PipelineStateVtbl;
8322
8323interface ID3D12PipelineState {
8324 CONST_VTBL ID3D12PipelineStateVtbl* lpVtbl;
8325};
8326
8327#ifdef COBJMACROS
8328#ifndef WIDL_C_INLINE_WRAPPERS
8329/*** IUnknown methods ***/
8330#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8331#define ID3D12PipelineState_AddRef(This) (This)->lpVtbl->AddRef(This)
8332#define ID3D12PipelineState_Release(This) (This)->lpVtbl->Release(This)
8333/*** ID3D12Object methods ***/
8334#define ID3D12PipelineState_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8335#define ID3D12PipelineState_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8336#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8337#define ID3D12PipelineState_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8338/*** ID3D12DeviceChild methods ***/
8339#define ID3D12PipelineState_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8340/*** ID3D12PipelineState methods ***/
8341#define ID3D12PipelineState_GetCachedBlob(This,blob) (This)->lpVtbl->GetCachedBlob(This,blob)
8342#else
8343/*** IUnknown methods ***/
8344static inline HRESULT ID3D12PipelineState_QueryInterface(ID3D12PipelineState* This,REFIID riid,void **ppvObject) {
8345 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8346}
8347static inline ULONG ID3D12PipelineState_AddRef(ID3D12PipelineState* This) {
8348 return This->lpVtbl->AddRef(This);
8349}
8350static inline ULONG ID3D12PipelineState_Release(ID3D12PipelineState* This) {
8351 return This->lpVtbl->Release(This);
8352}
8353/*** ID3D12Object methods ***/
8354static inline HRESULT ID3D12PipelineState_GetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT *data_size,void *data) {
8355 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8356}
8357static inline HRESULT ID3D12PipelineState_SetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT data_size,const void *data) {
8358 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8359}
8360static inline HRESULT ID3D12PipelineState_SetPrivateDataInterface(ID3D12PipelineState* This,REFGUID guid,const IUnknown *data) {
8361 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8362}
8363static inline HRESULT ID3D12PipelineState_SetName(ID3D12PipelineState* This,const WCHAR *name) {
8364 return This->lpVtbl->SetName(This,name);
8365}
8366/*** ID3D12DeviceChild methods ***/
8367static inline HRESULT ID3D12PipelineState_GetDevice(ID3D12PipelineState* This,REFIID riid,void **device) {
8368 return This->lpVtbl->GetDevice(This,riid,device);
8369}
8370/*** ID3D12PipelineState methods ***/
8371static inline HRESULT ID3D12PipelineState_GetCachedBlob(ID3D12PipelineState* This,ID3DBlob **blob) {
8372 return This->lpVtbl->GetCachedBlob(This,blob);
8373}
8374#endif
8375#endif
8376
8377#endif
8378
8379
8380#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
8381
8382/*****************************************************************************
8383 * ID3D12Fence interface
8384 */
8385#ifndef __ID3D12Fence_INTERFACE_DEFINED__
8386#define __ID3D12Fence_INTERFACE_DEFINED__
8387
8388DEFINE_GUID(IID_ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76);
8389#if defined(__cplusplus) && !defined(CINTERFACE)
8390MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
8391ID3D12Fence : public ID3D12Pageable
8392{
8393 virtual UINT64 STDMETHODCALLTYPE GetCompletedValue(
8394 ) = 0;
8395
8396 virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
8397 UINT64 value,
8398 HANDLE event) = 0;
8399
8400 virtual HRESULT STDMETHODCALLTYPE Signal(
8401 UINT64 value) = 0;
8402
8403};
8404#ifdef __CRT_UUID_DECL
8405__CRT_UUID_DECL(ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76)
8406#endif
8407#else
8408typedef struct ID3D12FenceVtbl {
8409 BEGIN_INTERFACE
8410
8411 /*** IUnknown methods ***/
8412 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8413 ID3D12Fence *This,
8414 REFIID riid,
8415 void **ppvObject);
8416
8417 ULONG (STDMETHODCALLTYPE *AddRef)(
8418 ID3D12Fence *This);
8419
8420 ULONG (STDMETHODCALLTYPE *Release)(
8421 ID3D12Fence *This);
8422
8423 /*** ID3D12Object methods ***/
8424 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8425 ID3D12Fence *This,
8426 REFGUID guid,
8427 UINT *data_size,
8428 void *data);
8429
8430 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8431 ID3D12Fence *This,
8432 REFGUID guid,
8433 UINT data_size,
8434 const void *data);
8435
8436 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8437 ID3D12Fence *This,
8438 REFGUID guid,
8439 const IUnknown *data);
8440
8441 HRESULT (STDMETHODCALLTYPE *SetName)(
8442 ID3D12Fence *This,
8443 const WCHAR *name);
8444
8445 /*** ID3D12DeviceChild methods ***/
8446 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8447 ID3D12Fence *This,
8448 REFIID riid,
8449 void **device);
8450
8451 /*** ID3D12Fence methods ***/
8452 UINT64 (STDMETHODCALLTYPE *GetCompletedValue)(
8453 ID3D12Fence *This);
8454
8455 HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)(
8456 ID3D12Fence *This,
8457 UINT64 value,
8458 HANDLE event);
8459
8460 HRESULT (STDMETHODCALLTYPE *Signal)(
8461 ID3D12Fence *This,
8462 UINT64 value);
8463
8464 END_INTERFACE
8465} ID3D12FenceVtbl;
8466
8467interface ID3D12Fence {
8468 CONST_VTBL ID3D12FenceVtbl* lpVtbl;
8469};
8470
8471#ifdef COBJMACROS
8472#ifndef WIDL_C_INLINE_WRAPPERS
8473/*** IUnknown methods ***/
8474#define ID3D12Fence_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8475#define ID3D12Fence_AddRef(This) (This)->lpVtbl->AddRef(This)
8476#define ID3D12Fence_Release(This) (This)->lpVtbl->Release(This)
8477/*** ID3D12Object methods ***/
8478#define ID3D12Fence_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8479#define ID3D12Fence_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8480#define ID3D12Fence_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8481#define ID3D12Fence_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8482/*** ID3D12DeviceChild methods ***/
8483#define ID3D12Fence_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8484/*** ID3D12Fence methods ***/
8485#define ID3D12Fence_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This)
8486#define ID3D12Fence_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event)
8487#define ID3D12Fence_Signal(This,value) (This)->lpVtbl->Signal(This,value)
8488#else
8489/*** IUnknown methods ***/
8490static inline HRESULT ID3D12Fence_QueryInterface(ID3D12Fence* This,REFIID riid,void **ppvObject) {
8491 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8492}
8493static inline ULONG ID3D12Fence_AddRef(ID3D12Fence* This) {
8494 return This->lpVtbl->AddRef(This);
8495}
8496static inline ULONG ID3D12Fence_Release(ID3D12Fence* This) {
8497 return This->lpVtbl->Release(This);
8498}
8499/*** ID3D12Object methods ***/
8500static inline HRESULT ID3D12Fence_GetPrivateData(ID3D12Fence* This,REFGUID guid,UINT *data_size,void *data) {
8501 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8502}
8503static inline HRESULT ID3D12Fence_SetPrivateData(ID3D12Fence* This,REFGUID guid,UINT data_size,const void *data) {
8504 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8505}
8506static inline HRESULT ID3D12Fence_SetPrivateDataInterface(ID3D12Fence* This,REFGUID guid,const IUnknown *data) {
8507 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8508}
8509static inline HRESULT ID3D12Fence_SetName(ID3D12Fence* This,const WCHAR *name) {
8510 return This->lpVtbl->SetName(This,name);
8511}
8512/*** ID3D12DeviceChild methods ***/
8513static inline HRESULT ID3D12Fence_GetDevice(ID3D12Fence* This,REFIID riid,void **device) {
8514 return This->lpVtbl->GetDevice(This,riid,device);
8515}
8516/*** ID3D12Fence methods ***/
8517static inline UINT64 ID3D12Fence_GetCompletedValue(ID3D12Fence* This) {
8518 return This->lpVtbl->GetCompletedValue(This);
8519}
8520static inline HRESULT ID3D12Fence_SetEventOnCompletion(ID3D12Fence* This,UINT64 value,HANDLE event) {
8521 return This->lpVtbl->SetEventOnCompletion(This,value,event);
8522}
8523static inline HRESULT ID3D12Fence_Signal(ID3D12Fence* This,UINT64 value) {
8524 return This->lpVtbl->Signal(This,value);
8525}
8526#endif
8527#endif
8528
8529#endif
8530
8531
8532#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
8533
8534/*****************************************************************************
8535 * ID3D12Fence1 interface
8536 */
8537#ifndef __ID3D12Fence1_INTERFACE_DEFINED__
8538#define __ID3D12Fence1_INTERFACE_DEFINED__
8539
8540DEFINE_GUID(IID_ID3D12Fence1, 0x433685fe, 0xe22b, 0x4ca0, 0xa8,0xdb, 0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);
8541#if defined(__cplusplus) && !defined(CINTERFACE)
8542MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a")
8543ID3D12Fence1 : public ID3D12Fence
8544{
8545 virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags(
8546 ) = 0;
8547
8548};
8549#ifdef __CRT_UUID_DECL
8550__CRT_UUID_DECL(ID3D12Fence1, 0x433685fe, 0xe22b, 0x4ca0, 0xa8,0xdb, 0xb5,0xb4,0xf4,0xdd,0x0e,0x4a)
8551#endif
8552#else
8553typedef struct ID3D12Fence1Vtbl {
8554 BEGIN_INTERFACE
8555
8556 /*** IUnknown methods ***/
8557 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8558 ID3D12Fence1 *This,
8559 REFIID riid,
8560 void **ppvObject);
8561
8562 ULONG (STDMETHODCALLTYPE *AddRef)(
8563 ID3D12Fence1 *This);
8564
8565 ULONG (STDMETHODCALLTYPE *Release)(
8566 ID3D12Fence1 *This);
8567
8568 /*** ID3D12Object methods ***/
8569 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8570 ID3D12Fence1 *This,
8571 REFGUID guid,
8572 UINT *data_size,
8573 void *data);
8574
8575 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8576 ID3D12Fence1 *This,
8577 REFGUID guid,
8578 UINT data_size,
8579 const void *data);
8580
8581 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8582 ID3D12Fence1 *This,
8583 REFGUID guid,
8584 const IUnknown *data);
8585
8586 HRESULT (STDMETHODCALLTYPE *SetName)(
8587 ID3D12Fence1 *This,
8588 const WCHAR *name);
8589
8590 /*** ID3D12DeviceChild methods ***/
8591 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8592 ID3D12Fence1 *This,
8593 REFIID riid,
8594 void **device);
8595
8596 /*** ID3D12Fence methods ***/
8597 UINT64 (STDMETHODCALLTYPE *GetCompletedValue)(
8598 ID3D12Fence1 *This);
8599
8600 HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)(
8601 ID3D12Fence1 *This,
8602 UINT64 value,
8603 HANDLE event);
8604
8605 HRESULT (STDMETHODCALLTYPE *Signal)(
8606 ID3D12Fence1 *This,
8607 UINT64 value);
8608
8609 /*** ID3D12Fence1 methods ***/
8610 D3D12_FENCE_FLAGS (STDMETHODCALLTYPE *GetCreationFlags)(
8611 ID3D12Fence1 *This);
8612
8613 END_INTERFACE
8614} ID3D12Fence1Vtbl;
8615
8616interface ID3D12Fence1 {
8617 CONST_VTBL ID3D12Fence1Vtbl* lpVtbl;
8618};
8619
8620#ifdef COBJMACROS
8621#ifndef WIDL_C_INLINE_WRAPPERS
8622/*** IUnknown methods ***/
8623#define ID3D12Fence1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8624#define ID3D12Fence1_AddRef(This) (This)->lpVtbl->AddRef(This)
8625#define ID3D12Fence1_Release(This) (This)->lpVtbl->Release(This)
8626/*** ID3D12Object methods ***/
8627#define ID3D12Fence1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8628#define ID3D12Fence1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8629#define ID3D12Fence1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8630#define ID3D12Fence1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8631/*** ID3D12DeviceChild methods ***/
8632#define ID3D12Fence1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8633/*** ID3D12Fence methods ***/
8634#define ID3D12Fence1_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This)
8635#define ID3D12Fence1_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event)
8636#define ID3D12Fence1_Signal(This,value) (This)->lpVtbl->Signal(This,value)
8637/*** ID3D12Fence1 methods ***/
8638#define ID3D12Fence1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
8639#else
8640/*** IUnknown methods ***/
8641static inline HRESULT ID3D12Fence1_QueryInterface(ID3D12Fence1* This,REFIID riid,void **ppvObject) {
8642 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8643}
8644static inline ULONG ID3D12Fence1_AddRef(ID3D12Fence1* This) {
8645 return This->lpVtbl->AddRef(This);
8646}
8647static inline ULONG ID3D12Fence1_Release(ID3D12Fence1* This) {
8648 return This->lpVtbl->Release(This);
8649}
8650/*** ID3D12Object methods ***/
8651static inline HRESULT ID3D12Fence1_GetPrivateData(ID3D12Fence1* This,REFGUID guid,UINT *data_size,void *data) {
8652 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8653}
8654static inline HRESULT ID3D12Fence1_SetPrivateData(ID3D12Fence1* This,REFGUID guid,UINT data_size,const void *data) {
8655 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8656}
8657static inline HRESULT ID3D12Fence1_SetPrivateDataInterface(ID3D12Fence1* This,REFGUID guid,const IUnknown *data) {
8658 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8659}
8660static inline HRESULT ID3D12Fence1_SetName(ID3D12Fence1* This,const WCHAR *name) {
8661 return This->lpVtbl->SetName(This,name);
8662}
8663/*** ID3D12DeviceChild methods ***/
8664static inline HRESULT ID3D12Fence1_GetDevice(ID3D12Fence1* This,REFIID riid,void **device) {
8665 return This->lpVtbl->GetDevice(This,riid,device);
8666}
8667/*** ID3D12Fence methods ***/
8668static inline UINT64 ID3D12Fence1_GetCompletedValue(ID3D12Fence1* This) {
8669 return This->lpVtbl->GetCompletedValue(This);
8670}
8671static inline HRESULT ID3D12Fence1_SetEventOnCompletion(ID3D12Fence1* This,UINT64 value,HANDLE event) {
8672 return This->lpVtbl->SetEventOnCompletion(This,value,event);
8673}
8674static inline HRESULT ID3D12Fence1_Signal(ID3D12Fence1* This,UINT64 value) {
8675 return This->lpVtbl->Signal(This,value);
8676}
8677/*** ID3D12Fence1 methods ***/
8678static inline D3D12_FENCE_FLAGS ID3D12Fence1_GetCreationFlags(ID3D12Fence1* This) {
8679 return This->lpVtbl->GetCreationFlags(This);
8680}
8681#endif
8682#endif
8683
8684#endif
8685
8686
8687#endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */
8688
8689/*****************************************************************************
8690 * ID3D12CommandAllocator interface
8691 */
8692#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
8693#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
8694
8695DEFINE_GUID(IID_ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24);
8696#if defined(__cplusplus) && !defined(CINTERFACE)
8697MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
8698ID3D12CommandAllocator : public ID3D12Pageable
8699{
8700 virtual HRESULT STDMETHODCALLTYPE Reset(
8701 ) = 0;
8702
8703};
8704#ifdef __CRT_UUID_DECL
8705__CRT_UUID_DECL(ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24)
8706#endif
8707#else
8708typedef struct ID3D12CommandAllocatorVtbl {
8709 BEGIN_INTERFACE
8710
8711 /*** IUnknown methods ***/
8712 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8713 ID3D12CommandAllocator *This,
8714 REFIID riid,
8715 void **ppvObject);
8716
8717 ULONG (STDMETHODCALLTYPE *AddRef)(
8718 ID3D12CommandAllocator *This);
8719
8720 ULONG (STDMETHODCALLTYPE *Release)(
8721 ID3D12CommandAllocator *This);
8722
8723 /*** ID3D12Object methods ***/
8724 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8725 ID3D12CommandAllocator *This,
8726 REFGUID guid,
8727 UINT *data_size,
8728 void *data);
8729
8730 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8731 ID3D12CommandAllocator *This,
8732 REFGUID guid,
8733 UINT data_size,
8734 const void *data);
8735
8736 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8737 ID3D12CommandAllocator *This,
8738 REFGUID guid,
8739 const IUnknown *data);
8740
8741 HRESULT (STDMETHODCALLTYPE *SetName)(
8742 ID3D12CommandAllocator *This,
8743 const WCHAR *name);
8744
8745 /*** ID3D12DeviceChild methods ***/
8746 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8747 ID3D12CommandAllocator *This,
8748 REFIID riid,
8749 void **device);
8750
8751 /*** ID3D12CommandAllocator methods ***/
8752 HRESULT (STDMETHODCALLTYPE *Reset)(
8753 ID3D12CommandAllocator *This);
8754
8755 END_INTERFACE
8756} ID3D12CommandAllocatorVtbl;
8757
8758interface ID3D12CommandAllocator {
8759 CONST_VTBL ID3D12CommandAllocatorVtbl* lpVtbl;
8760};
8761
8762#ifdef COBJMACROS
8763#ifndef WIDL_C_INLINE_WRAPPERS
8764/*** IUnknown methods ***/
8765#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8766#define ID3D12CommandAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
8767#define ID3D12CommandAllocator_Release(This) (This)->lpVtbl->Release(This)
8768/*** ID3D12Object methods ***/
8769#define ID3D12CommandAllocator_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8770#define ID3D12CommandAllocator_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8771#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8772#define ID3D12CommandAllocator_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8773/*** ID3D12DeviceChild methods ***/
8774#define ID3D12CommandAllocator_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8775/*** ID3D12CommandAllocator methods ***/
8776#define ID3D12CommandAllocator_Reset(This) (This)->lpVtbl->Reset(This)
8777#else
8778/*** IUnknown methods ***/
8779static inline HRESULT ID3D12CommandAllocator_QueryInterface(ID3D12CommandAllocator* This,REFIID riid,void **ppvObject) {
8780 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8781}
8782static inline ULONG ID3D12CommandAllocator_AddRef(ID3D12CommandAllocator* This) {
8783 return This->lpVtbl->AddRef(This);
8784}
8785static inline ULONG ID3D12CommandAllocator_Release(ID3D12CommandAllocator* This) {
8786 return This->lpVtbl->Release(This);
8787}
8788/*** ID3D12Object methods ***/
8789static inline HRESULT ID3D12CommandAllocator_GetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT *data_size,void *data) {
8790 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8791}
8792static inline HRESULT ID3D12CommandAllocator_SetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT data_size,const void *data) {
8793 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8794}
8795static inline HRESULT ID3D12CommandAllocator_SetPrivateDataInterface(ID3D12CommandAllocator* This,REFGUID guid,const IUnknown *data) {
8796 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8797}
8798static inline HRESULT ID3D12CommandAllocator_SetName(ID3D12CommandAllocator* This,const WCHAR *name) {
8799 return This->lpVtbl->SetName(This,name);
8800}
8801/*** ID3D12DeviceChild methods ***/
8802static inline HRESULT ID3D12CommandAllocator_GetDevice(ID3D12CommandAllocator* This,REFIID riid,void **device) {
8803 return This->lpVtbl->GetDevice(This,riid,device);
8804}
8805/*** ID3D12CommandAllocator methods ***/
8806static inline HRESULT ID3D12CommandAllocator_Reset(ID3D12CommandAllocator* This) {
8807 return This->lpVtbl->Reset(This);
8808}
8809#endif
8810#endif
8811
8812#endif
8813
8814
8815#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
8816
8817/*****************************************************************************
8818 * ID3D12Device interface
8819 */
8820#ifndef __ID3D12Device_INTERFACE_DEFINED__
8821#define __ID3D12Device_INTERFACE_DEFINED__
8822
8823DEFINE_GUID(IID_ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7);
8824#if defined(__cplusplus) && !defined(CINTERFACE)
8825MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
8826ID3D12Device : public ID3D12Object
8827{
8828 virtual UINT STDMETHODCALLTYPE GetNodeCount(
8829 ) = 0;
8830
8831 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
8832 const D3D12_COMMAND_QUEUE_DESC *desc,
8833 REFIID riid,
8834 void **command_queue) = 0;
8835
8836 virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
8837 D3D12_COMMAND_LIST_TYPE type,
8838 REFIID riid,
8839 void **command_allocator) = 0;
8840
8841 virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
8842 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
8843 REFIID riid,
8844 void **pipeline_state) = 0;
8845
8846 virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
8847 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
8848 REFIID riid,
8849 void **pipeline_state) = 0;
8850
8851 virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
8852 UINT node_mask,
8853 D3D12_COMMAND_LIST_TYPE type,
8854 ID3D12CommandAllocator *command_allocator,
8855 ID3D12PipelineState *initial_pipeline_state,
8856 REFIID riid,
8857 void **command_list) = 0;
8858
8859 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
8860 D3D12_FEATURE feature,
8861 void *feature_data,
8862 UINT feature_data_size) = 0;
8863
8864 virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
8865 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
8866 REFIID riid,
8867 void **descriptor_heap) = 0;
8868
8869 virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
8870 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
8871
8872 virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
8873 UINT node_mask,
8874 const void *bytecode,
8875 SIZE_T bytecode_length,
8876 REFIID riid,
8877 void **root_signature) = 0;
8878
8879 virtual void STDMETHODCALLTYPE CreateConstantBufferView(
8880 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
8881 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8882
8883 virtual void STDMETHODCALLTYPE CreateShaderResourceView(
8884 ID3D12Resource *resource,
8885 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
8886 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8887
8888 virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
8889 ID3D12Resource *resource,
8890 ID3D12Resource *counter_resource,
8891 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
8892 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8893
8894 virtual void STDMETHODCALLTYPE CreateRenderTargetView(
8895 ID3D12Resource *resource,
8896 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
8897 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8898
8899 virtual void STDMETHODCALLTYPE CreateDepthStencilView(
8900 ID3D12Resource *resource,
8901 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
8902 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8903
8904 virtual void STDMETHODCALLTYPE CreateSampler(
8905 const D3D12_SAMPLER_DESC *desc,
8906 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8907
8908 virtual void STDMETHODCALLTYPE CopyDescriptors(
8909 UINT dst_descriptor_range_count,
8910 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
8911 const UINT *dst_descriptor_range_sizes,
8912 UINT src_descriptor_range_count,
8913 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
8914 const UINT *src_descriptor_range_sizes,
8915 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
8916
8917 virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
8918 UINT descriptor_count,
8919 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
8920 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
8921 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
8922
8923#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
8924 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo(
8925 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
8926 UINT visible_mask,
8927 UINT reource_desc_count,
8928 const D3D12_RESOURCE_DESC *resource_descs) = 0;
8929 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
8930 UINT visible_mask,
8931 UINT reource_desc_count,
8932 const D3D12_RESOURCE_DESC *resource_descs)
8933 {
8934 D3D12_RESOURCE_ALLOCATION_INFO __ret;
8935 return *GetResourceAllocationInfo(&__ret, visible_mask, reource_desc_count, resource_descs);
8936 }
8937#else
8938 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
8939 UINT visible_mask,
8940 UINT reource_desc_count,
8941 const D3D12_RESOURCE_DESC *resource_descs) = 0;
8942#endif
8943
8944#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
8945 virtual D3D12_HEAP_PROPERTIES* STDMETHODCALLTYPE GetCustomHeapProperties(
8946 D3D12_HEAP_PROPERTIES *__ret,
8947 UINT node_mask,
8948 D3D12_HEAP_TYPE heap_type) = 0;
8949 D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
8950 UINT node_mask,
8951 D3D12_HEAP_TYPE heap_type)
8952 {
8953 D3D12_HEAP_PROPERTIES __ret;
8954 return *GetCustomHeapProperties(&__ret, node_mask, heap_type);
8955 }
8956#else
8957 virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
8958 UINT node_mask,
8959 D3D12_HEAP_TYPE heap_type) = 0;
8960#endif
8961
8962 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
8963 const D3D12_HEAP_PROPERTIES *heap_properties,
8964 D3D12_HEAP_FLAGS heap_flags,
8965 const D3D12_RESOURCE_DESC *desc,
8966 D3D12_RESOURCE_STATES initial_state,
8967 const D3D12_CLEAR_VALUE *optimized_clear_value,
8968 REFIID riid,
8969 void **resource) = 0;
8970
8971 virtual HRESULT STDMETHODCALLTYPE CreateHeap(
8972 const D3D12_HEAP_DESC *desc,
8973 REFIID riid,
8974 void **heap) = 0;
8975
8976 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
8977 ID3D12Heap *heap,
8978 UINT64 heap_offset,
8979 const D3D12_RESOURCE_DESC *desc,
8980 D3D12_RESOURCE_STATES initial_state,
8981 const D3D12_CLEAR_VALUE *optimized_clear_value,
8982 REFIID riid,
8983 void **resource) = 0;
8984
8985 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
8986 const D3D12_RESOURCE_DESC *desc,
8987 D3D12_RESOURCE_STATES initial_state,
8988 const D3D12_CLEAR_VALUE *optimized_clear_value,
8989 REFIID riid,
8990 void **resource) = 0;
8991
8992 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
8993 ID3D12DeviceChild *object,
8994 const SECURITY_ATTRIBUTES *attributes,
8995 DWORD access,
8996 const WCHAR *name,
8997 HANDLE *handle) = 0;
8998
8999 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
9000 HANDLE handle,
9001 REFIID riid,
9002 void **object) = 0;
9003
9004 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
9005 const WCHAR *name,
9006 DWORD access,
9007 HANDLE *handle) = 0;
9008
9009 virtual HRESULT STDMETHODCALLTYPE MakeResident(
9010 UINT object_count,
9011 ID3D12Pageable *const *objects) = 0;
9012
9013 virtual HRESULT STDMETHODCALLTYPE Evict(
9014 UINT object_count,
9015 ID3D12Pageable *const *objects) = 0;
9016
9017 virtual HRESULT STDMETHODCALLTYPE CreateFence(
9018 UINT64 initial_value,
9019 D3D12_FENCE_FLAGS flags,
9020 REFIID riid,
9021 void **fence) = 0;
9022
9023 virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
9024 ) = 0;
9025
9026 virtual void STDMETHODCALLTYPE GetCopyableFootprints(
9027 const D3D12_RESOURCE_DESC *desc,
9028 UINT first_sub_resource,
9029 UINT sub_resource_count,
9030 UINT64 base_offset,
9031 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
9032 UINT *row_count,
9033 UINT64 *row_size,
9034 UINT64 *total_bytes) = 0;
9035
9036 virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
9037 const D3D12_QUERY_HEAP_DESC *desc,
9038 REFIID riid,
9039 void **heap) = 0;
9040
9041 virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
9042 WINBOOL enable) = 0;
9043
9044 virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
9045 const D3D12_COMMAND_SIGNATURE_DESC *desc,
9046 ID3D12RootSignature *root_signature,
9047 REFIID riid,
9048 void **command_signature) = 0;
9049
9050 virtual void STDMETHODCALLTYPE GetResourceTiling(
9051 ID3D12Resource *resource,
9052 UINT *total_tile_count,
9053 D3D12_PACKED_MIP_INFO *packed_mip_info,
9054 D3D12_TILE_SHAPE *standard_tile_shape,
9055 UINT *sub_resource_tiling_count,
9056 UINT first_sub_resource_tiling,
9057 D3D12_SUBRESOURCE_TILING *sub_resource_tilings) = 0;
9058
9059#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
9060 virtual LUID* STDMETHODCALLTYPE GetAdapterLuid(
9061 LUID *__ret) = 0;
9062 LUID STDMETHODCALLTYPE GetAdapterLuid(
9063 )
9064 {
9065 LUID __ret;
9066 return *GetAdapterLuid(&__ret);
9067 }
9068#else
9069 virtual LUID STDMETHODCALLTYPE GetAdapterLuid(
9070 ) = 0;
9071#endif
9072
9073};
9074#ifdef __CRT_UUID_DECL
9075__CRT_UUID_DECL(ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7)
9076#endif
9077#else
9078typedef struct ID3D12DeviceVtbl {
9079 BEGIN_INTERFACE
9080
9081 /*** IUnknown methods ***/
9082 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9083 ID3D12Device *This,
9084 REFIID riid,
9085 void **ppvObject);
9086
9087 ULONG (STDMETHODCALLTYPE *AddRef)(
9088 ID3D12Device *This);
9089
9090 ULONG (STDMETHODCALLTYPE *Release)(
9091 ID3D12Device *This);
9092
9093 /*** ID3D12Object methods ***/
9094 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
9095 ID3D12Device *This,
9096 REFGUID guid,
9097 UINT *data_size,
9098 void *data);
9099
9100 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
9101 ID3D12Device *This,
9102 REFGUID guid,
9103 UINT data_size,
9104 const void *data);
9105
9106 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
9107 ID3D12Device *This,
9108 REFGUID guid,
9109 const IUnknown *data);
9110
9111 HRESULT (STDMETHODCALLTYPE *SetName)(
9112 ID3D12Device *This,
9113 const WCHAR *name);
9114
9115 /*** ID3D12Device methods ***/
9116 UINT (STDMETHODCALLTYPE *GetNodeCount)(
9117 ID3D12Device *This);
9118
9119 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
9120 ID3D12Device *This,
9121 const D3D12_COMMAND_QUEUE_DESC *desc,
9122 REFIID riid,
9123 void **command_queue);
9124
9125 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
9126 ID3D12Device *This,
9127 D3D12_COMMAND_LIST_TYPE type,
9128 REFIID riid,
9129 void **command_allocator);
9130
9131 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
9132 ID3D12Device *This,
9133 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
9134 REFIID riid,
9135 void **pipeline_state);
9136
9137 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
9138 ID3D12Device *This,
9139 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
9140 REFIID riid,
9141 void **pipeline_state);
9142
9143 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
9144 ID3D12Device *This,
9145 UINT node_mask,
9146 D3D12_COMMAND_LIST_TYPE type,
9147 ID3D12CommandAllocator *command_allocator,
9148 ID3D12PipelineState *initial_pipeline_state,
9149 REFIID riid,
9150 void **command_list);
9151
9152 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
9153 ID3D12Device *This,
9154 D3D12_FEATURE feature,
9155 void *feature_data,
9156 UINT feature_data_size);
9157
9158 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
9159 ID3D12Device *This,
9160 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
9161 REFIID riid,
9162 void **descriptor_heap);
9163
9164 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
9165 ID3D12Device *This,
9166 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
9167
9168 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
9169 ID3D12Device *This,
9170 UINT node_mask,
9171 const void *bytecode,
9172 SIZE_T bytecode_length,
9173 REFIID riid,
9174 void **root_signature);
9175
9176 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
9177 ID3D12Device *This,
9178 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
9179 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9180
9181 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
9182 ID3D12Device *This,
9183 ID3D12Resource *resource,
9184 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
9185 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9186
9187 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
9188 ID3D12Device *This,
9189 ID3D12Resource *resource,
9190 ID3D12Resource *counter_resource,
9191 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
9192 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9193
9194 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
9195 ID3D12Device *This,
9196 ID3D12Resource *resource,
9197 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
9198 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9199
9200 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
9201 ID3D12Device *This,
9202 ID3D12Resource *resource,
9203 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
9204 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9205
9206 void (STDMETHODCALLTYPE *CreateSampler)(
9207 ID3D12Device *This,
9208 const D3D12_SAMPLER_DESC *desc,
9209 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9210
9211 void (STDMETHODCALLTYPE *CopyDescriptors)(
9212 ID3D12Device *This,
9213 UINT dst_descriptor_range_count,
9214 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
9215 const UINT *dst_descriptor_range_sizes,
9216 UINT src_descriptor_range_count,
9217 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
9218 const UINT *src_descriptor_range_sizes,
9219 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
9220
9221 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
9222 ID3D12Device *This,
9223 UINT descriptor_count,
9224 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
9225 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
9226 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
9227
9228 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
9229 ID3D12Device *This,
9230 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
9231 UINT visible_mask,
9232 UINT reource_desc_count,
9233 const D3D12_RESOURCE_DESC *resource_descs);
9234
9235 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
9236 ID3D12Device *This,
9237 D3D12_HEAP_PROPERTIES *__ret,
9238 UINT node_mask,
9239 D3D12_HEAP_TYPE heap_type);
9240
9241 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
9242 ID3D12Device *This,
9243 const D3D12_HEAP_PROPERTIES *heap_properties,
9244 D3D12_HEAP_FLAGS heap_flags,
9245 const D3D12_RESOURCE_DESC *desc,
9246 D3D12_RESOURCE_STATES initial_state,
9247 const D3D12_CLEAR_VALUE *optimized_clear_value,
9248 REFIID riid,
9249 void **resource);
9250
9251 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
9252 ID3D12Device *This,
9253 const D3D12_HEAP_DESC *desc,
9254 REFIID riid,
9255 void **heap);
9256
9257 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
9258 ID3D12Device *This,
9259 ID3D12Heap *heap,
9260 UINT64 heap_offset,
9261 const D3D12_RESOURCE_DESC *desc,
9262 D3D12_RESOURCE_STATES initial_state,
9263 const D3D12_CLEAR_VALUE *optimized_clear_value,
9264 REFIID riid,
9265 void **resource);
9266
9267 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
9268 ID3D12Device *This,
9269 const D3D12_RESOURCE_DESC *desc,
9270 D3D12_RESOURCE_STATES initial_state,
9271 const D3D12_CLEAR_VALUE *optimized_clear_value,
9272 REFIID riid,
9273 void **resource);
9274
9275 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
9276 ID3D12Device *This,
9277 ID3D12DeviceChild *object,
9278 const SECURITY_ATTRIBUTES *attributes,
9279 DWORD access,
9280 const WCHAR *name,
9281 HANDLE *handle);
9282
9283 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
9284 ID3D12Device *This,
9285 HANDLE handle,
9286 REFIID riid,
9287 void **object);
9288
9289 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
9290 ID3D12Device *This,
9291 const WCHAR *name,
9292 DWORD access,
9293 HANDLE *handle);
9294
9295 HRESULT (STDMETHODCALLTYPE *MakeResident)(
9296 ID3D12Device *This,
9297 UINT object_count,
9298 ID3D12Pageable *const *objects);
9299
9300 HRESULT (STDMETHODCALLTYPE *Evict)(
9301 ID3D12Device *This,
9302 UINT object_count,
9303 ID3D12Pageable *const *objects);
9304
9305 HRESULT (STDMETHODCALLTYPE *CreateFence)(
9306 ID3D12Device *This,
9307 UINT64 initial_value,
9308 D3D12_FENCE_FLAGS flags,
9309 REFIID riid,
9310 void **fence);
9311
9312 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
9313 ID3D12Device *This);
9314
9315 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
9316 ID3D12Device *This,
9317 const D3D12_RESOURCE_DESC *desc,
9318 UINT first_sub_resource,
9319 UINT sub_resource_count,
9320 UINT64 base_offset,
9321 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
9322 UINT *row_count,
9323 UINT64 *row_size,
9324 UINT64 *total_bytes);
9325
9326 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
9327 ID3D12Device *This,
9328 const D3D12_QUERY_HEAP_DESC *desc,
9329 REFIID riid,
9330 void **heap);
9331
9332 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
9333 ID3D12Device *This,
9334 WINBOOL enable);
9335
9336 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
9337 ID3D12Device *This,
9338 const D3D12_COMMAND_SIGNATURE_DESC *desc,
9339 ID3D12RootSignature *root_signature,
9340 REFIID riid,
9341 void **command_signature);
9342
9343 void (STDMETHODCALLTYPE *GetResourceTiling)(
9344 ID3D12Device *This,
9345 ID3D12Resource *resource,
9346 UINT *total_tile_count,
9347 D3D12_PACKED_MIP_INFO *packed_mip_info,
9348 D3D12_TILE_SHAPE *standard_tile_shape,
9349 UINT *sub_resource_tiling_count,
9350 UINT first_sub_resource_tiling,
9351 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
9352
9353 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
9354 ID3D12Device *This,
9355 LUID *__ret);
9356
9357 END_INTERFACE
9358} ID3D12DeviceVtbl;
9359
9360interface ID3D12Device {
9361 CONST_VTBL ID3D12DeviceVtbl* lpVtbl;
9362};
9363
9364#ifdef COBJMACROS
9365#ifndef WIDL_C_INLINE_WRAPPERS
9366/*** IUnknown methods ***/
9367#define ID3D12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9368#define ID3D12Device_AddRef(This) (This)->lpVtbl->AddRef(This)
9369#define ID3D12Device_Release(This) (This)->lpVtbl->Release(This)
9370/*** ID3D12Object methods ***/
9371#define ID3D12Device_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
9372#define ID3D12Device_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
9373#define ID3D12Device_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
9374#define ID3D12Device_SetName(This,name) (This)->lpVtbl->SetName(This,name)
9375/*** ID3D12Device methods ***/
9376#define ID3D12Device_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
9377#define ID3D12Device_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
9378#define ID3D12Device_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
9379#define ID3D12Device_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
9380#define ID3D12Device_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
9381#define ID3D12Device_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
9382#define ID3D12Device_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
9383#define ID3D12Device_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
9384#define ID3D12Device_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
9385#define ID3D12Device_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
9386#define ID3D12Device_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
9387#define ID3D12Device_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
9388#define ID3D12Device_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
9389#define ID3D12Device_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
9390#define ID3D12Device_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
9391#define ID3D12Device_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
9392#define ID3D12Device_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
9393#define ID3D12Device_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
9394#define ID3D12Device_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
9395#define ID3D12Device_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
9396#define ID3D12Device_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
9397#define ID3D12Device_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
9398#define ID3D12Device_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
9399#define ID3D12Device_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
9400#define ID3D12Device_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
9401#define ID3D12Device_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
9402#define ID3D12Device_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
9403#define ID3D12Device_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
9404#define ID3D12Device_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
9405#define ID3D12Device_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
9406#define ID3D12Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
9407#define ID3D12Device_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
9408#define ID3D12Device_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
9409#define ID3D12Device_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
9410#define ID3D12Device_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
9411#define ID3D12Device_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
9412#define ID3D12Device_GetAdapterLuid(This) ID3D12Device_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
9413#else
9414/*** IUnknown methods ***/
9415static inline HRESULT ID3D12Device_QueryInterface(ID3D12Device* This,REFIID riid,void **ppvObject) {
9416 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9417}
9418static inline ULONG ID3D12Device_AddRef(ID3D12Device* This) {
9419 return This->lpVtbl->AddRef(This);
9420}
9421static inline ULONG ID3D12Device_Release(ID3D12Device* This) {
9422 return This->lpVtbl->Release(This);
9423}
9424/*** ID3D12Object methods ***/
9425static inline HRESULT ID3D12Device_GetPrivateData(ID3D12Device* This,REFGUID guid,UINT *data_size,void *data) {
9426 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
9427}
9428static inline HRESULT ID3D12Device_SetPrivateData(ID3D12Device* This,REFGUID guid,UINT data_size,const void *data) {
9429 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
9430}
9431static inline HRESULT ID3D12Device_SetPrivateDataInterface(ID3D12Device* This,REFGUID guid,const IUnknown *data) {
9432 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
9433}
9434static inline HRESULT ID3D12Device_SetName(ID3D12Device* This,const WCHAR *name) {
9435 return This->lpVtbl->SetName(This,name);
9436}
9437/*** ID3D12Device methods ***/
9438static inline UINT ID3D12Device_GetNodeCount(ID3D12Device* This) {
9439 return This->lpVtbl->GetNodeCount(This);
9440}
9441static inline HRESULT ID3D12Device_CreateCommandQueue(ID3D12Device* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
9442 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
9443}
9444static inline HRESULT ID3D12Device_CreateCommandAllocator(ID3D12Device* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
9445 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
9446}
9447static inline HRESULT ID3D12Device_CreateGraphicsPipelineState(ID3D12Device* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9448 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
9449}
9450static inline HRESULT ID3D12Device_CreateComputePipelineState(ID3D12Device* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9451 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
9452}
9453static inline HRESULT ID3D12Device_CreateCommandList(ID3D12Device* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
9454 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
9455}
9456static inline HRESULT ID3D12Device_CheckFeatureSupport(ID3D12Device* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
9457 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
9458}
9459static inline HRESULT ID3D12Device_CreateDescriptorHeap(ID3D12Device* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
9460 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
9461}
9462static inline UINT ID3D12Device_GetDescriptorHandleIncrementSize(ID3D12Device* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
9463 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
9464}
9465static inline HRESULT ID3D12Device_CreateRootSignature(ID3D12Device* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
9466 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
9467}
9468static inline void ID3D12Device_CreateConstantBufferView(ID3D12Device* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9469 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
9470}
9471static inline void ID3D12Device_CreateShaderResourceView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9472 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
9473}
9474static inline void ID3D12Device_CreateUnorderedAccessView(ID3D12Device* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9475 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
9476}
9477static inline void ID3D12Device_CreateRenderTargetView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9478 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
9479}
9480static inline void ID3D12Device_CreateDepthStencilView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9481 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
9482}
9483static inline void ID3D12Device_CreateSampler(ID3D12Device* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9484 This->lpVtbl->CreateSampler(This,desc,descriptor);
9485}
9486static inline void ID3D12Device_CopyDescriptors(ID3D12Device* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
9487 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
9488}
9489static inline void ID3D12Device_CopyDescriptorsSimple(ID3D12Device* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
9490 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
9491}
9492static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device_GetResourceAllocationInfo(ID3D12Device* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
9493 D3D12_RESOURCE_ALLOCATION_INFO __ret;
9494 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
9495}
9496static inline D3D12_HEAP_PROPERTIES ID3D12Device_GetCustomHeapProperties(ID3D12Device* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
9497 D3D12_HEAP_PROPERTIES __ret;
9498 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
9499}
9500static inline HRESULT ID3D12Device_CreateCommittedResource(ID3D12Device* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
9501 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
9502}
9503static inline HRESULT ID3D12Device_CreateHeap(ID3D12Device* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
9504 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
9505}
9506static inline HRESULT ID3D12Device_CreatePlacedResource(ID3D12Device* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
9507 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
9508}
9509static inline HRESULT ID3D12Device_CreateReservedResource(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
9510 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
9511}
9512static inline HRESULT ID3D12Device_CreateSharedHandle(ID3D12Device* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
9513 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
9514}
9515static inline HRESULT ID3D12Device_OpenSharedHandle(ID3D12Device* This,HANDLE handle,REFIID riid,void **object) {
9516 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
9517}
9518static inline HRESULT ID3D12Device_OpenSharedHandleByName(ID3D12Device* This,const WCHAR *name,DWORD access,HANDLE *handle) {
9519 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
9520}
9521static inline HRESULT ID3D12Device_MakeResident(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
9522 return This->lpVtbl->MakeResident(This,object_count,objects);
9523}
9524static inline HRESULT ID3D12Device_Evict(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
9525 return This->lpVtbl->Evict(This,object_count,objects);
9526}
9527static inline HRESULT ID3D12Device_CreateFence(ID3D12Device* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
9528 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
9529}
9530static inline HRESULT ID3D12Device_GetDeviceRemovedReason(ID3D12Device* This) {
9531 return This->lpVtbl->GetDeviceRemovedReason(This);
9532}
9533static inline void ID3D12Device_GetCopyableFootprints(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
9534 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
9535}
9536static inline HRESULT ID3D12Device_CreateQueryHeap(ID3D12Device* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
9537 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
9538}
9539static inline HRESULT ID3D12Device_SetStablePowerState(ID3D12Device* This,WINBOOL enable) {
9540 return This->lpVtbl->SetStablePowerState(This,enable);
9541}
9542static inline HRESULT ID3D12Device_CreateCommandSignature(ID3D12Device* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
9543 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
9544}
9545static inline void ID3D12Device_GetResourceTiling(ID3D12Device* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
9546 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
9547}
9548static inline LUID ID3D12Device_GetAdapterLuid(ID3D12Device* This) {
9549 LUID __ret;
9550 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
9551}
9552#endif
9553#endif
9554
9555#endif
9556
9557
9558#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
9559
9560/*****************************************************************************
9561 * ID3D12PipelineLibrary interface
9562 */
9563#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__
9564#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__
9565
9566DEFINE_GUID(IID_ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4,0xcc, 0x53,0xfb,0x9f,0xf7,0x41,0x4f);
9567#if defined(__cplusplus) && !defined(CINTERFACE)
9568MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f")
9569ID3D12PipelineLibrary : public ID3D12DeviceChild
9570{
9571 virtual HRESULT STDMETHODCALLTYPE StorePipeline(
9572 const WCHAR *name,
9573 ID3D12PipelineState *pipeline) = 0;
9574
9575 virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline(
9576 const WCHAR *name,
9577 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
9578 REFIID riid,
9579 void **pipeline_state) = 0;
9580
9581 virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline(
9582 const WCHAR *name,
9583 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
9584 REFIID riid,
9585 void **pipeline_state) = 0;
9586
9587 virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize(
9588 ) = 0;
9589
9590 virtual HRESULT STDMETHODCALLTYPE Serialize(
9591 void *data,
9592 SIZE_T data_size_in_bytes) = 0;
9593
9594};
9595#ifdef __CRT_UUID_DECL
9596__CRT_UUID_DECL(ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4,0xcc, 0x53,0xfb,0x9f,0xf7,0x41,0x4f)
9597#endif
9598#else
9599typedef struct ID3D12PipelineLibraryVtbl {
9600 BEGIN_INTERFACE
9601
9602 /*** IUnknown methods ***/
9603 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9604 ID3D12PipelineLibrary *This,
9605 REFIID riid,
9606 void **ppvObject);
9607
9608 ULONG (STDMETHODCALLTYPE *AddRef)(
9609 ID3D12PipelineLibrary *This);
9610
9611 ULONG (STDMETHODCALLTYPE *Release)(
9612 ID3D12PipelineLibrary *This);
9613
9614 /*** ID3D12Object methods ***/
9615 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
9616 ID3D12PipelineLibrary *This,
9617 REFGUID guid,
9618 UINT *data_size,
9619 void *data);
9620
9621 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
9622 ID3D12PipelineLibrary *This,
9623 REFGUID guid,
9624 UINT data_size,
9625 const void *data);
9626
9627 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
9628 ID3D12PipelineLibrary *This,
9629 REFGUID guid,
9630 const IUnknown *data);
9631
9632 HRESULT (STDMETHODCALLTYPE *SetName)(
9633 ID3D12PipelineLibrary *This,
9634 const WCHAR *name);
9635
9636 /*** ID3D12DeviceChild methods ***/
9637 HRESULT (STDMETHODCALLTYPE *GetDevice)(
9638 ID3D12PipelineLibrary *This,
9639 REFIID riid,
9640 void **device);
9641
9642 /*** ID3D12PipelineLibrary methods ***/
9643 HRESULT (STDMETHODCALLTYPE *StorePipeline)(
9644 ID3D12PipelineLibrary *This,
9645 const WCHAR *name,
9646 ID3D12PipelineState *pipeline);
9647
9648 HRESULT (STDMETHODCALLTYPE *LoadGraphicsPipeline)(
9649 ID3D12PipelineLibrary *This,
9650 const WCHAR *name,
9651 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
9652 REFIID riid,
9653 void **pipeline_state);
9654
9655 HRESULT (STDMETHODCALLTYPE *LoadComputePipeline)(
9656 ID3D12PipelineLibrary *This,
9657 const WCHAR *name,
9658 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
9659 REFIID riid,
9660 void **pipeline_state);
9661
9662 SIZE_T (STDMETHODCALLTYPE *GetSerializedSize)(
9663 ID3D12PipelineLibrary *This);
9664
9665 HRESULT (STDMETHODCALLTYPE *Serialize)(
9666 ID3D12PipelineLibrary *This,
9667 void *data,
9668 SIZE_T data_size_in_bytes);
9669
9670 END_INTERFACE
9671} ID3D12PipelineLibraryVtbl;
9672
9673interface ID3D12PipelineLibrary {
9674 CONST_VTBL ID3D12PipelineLibraryVtbl* lpVtbl;
9675};
9676
9677#ifdef COBJMACROS
9678#ifndef WIDL_C_INLINE_WRAPPERS
9679/*** IUnknown methods ***/
9680#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9681#define ID3D12PipelineLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
9682#define ID3D12PipelineLibrary_Release(This) (This)->lpVtbl->Release(This)
9683/*** ID3D12Object methods ***/
9684#define ID3D12PipelineLibrary_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
9685#define ID3D12PipelineLibrary_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
9686#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
9687#define ID3D12PipelineLibrary_SetName(This,name) (This)->lpVtbl->SetName(This,name)
9688/*** ID3D12DeviceChild methods ***/
9689#define ID3D12PipelineLibrary_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
9690/*** ID3D12PipelineLibrary methods ***/
9691#define ID3D12PipelineLibrary_StorePipeline(This,name,pipeline) (This)->lpVtbl->StorePipeline(This,name,pipeline)
9692#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state)
9693#define ID3D12PipelineLibrary_LoadComputePipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state)
9694#define ID3D12PipelineLibrary_GetSerializedSize(This) (This)->lpVtbl->GetSerializedSize(This)
9695#define ID3D12PipelineLibrary_Serialize(This,data,data_size_in_bytes) (This)->lpVtbl->Serialize(This,data,data_size_in_bytes)
9696#else
9697/*** IUnknown methods ***/
9698static inline HRESULT ID3D12PipelineLibrary_QueryInterface(ID3D12PipelineLibrary* This,REFIID riid,void **ppvObject) {
9699 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9700}
9701static inline ULONG ID3D12PipelineLibrary_AddRef(ID3D12PipelineLibrary* This) {
9702 return This->lpVtbl->AddRef(This);
9703}
9704static inline ULONG ID3D12PipelineLibrary_Release(ID3D12PipelineLibrary* This) {
9705 return This->lpVtbl->Release(This);
9706}
9707/*** ID3D12Object methods ***/
9708static inline HRESULT ID3D12PipelineLibrary_GetPrivateData(ID3D12PipelineLibrary* This,REFGUID guid,UINT *data_size,void *data) {
9709 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
9710}
9711static inline HRESULT ID3D12PipelineLibrary_SetPrivateData(ID3D12PipelineLibrary* This,REFGUID guid,UINT data_size,const void *data) {
9712 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
9713}
9714static inline HRESULT ID3D12PipelineLibrary_SetPrivateDataInterface(ID3D12PipelineLibrary* This,REFGUID guid,const IUnknown *data) {
9715 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
9716}
9717static inline HRESULT ID3D12PipelineLibrary_SetName(ID3D12PipelineLibrary* This,const WCHAR *name) {
9718 return This->lpVtbl->SetName(This,name);
9719}
9720/*** ID3D12DeviceChild methods ***/
9721static inline HRESULT ID3D12PipelineLibrary_GetDevice(ID3D12PipelineLibrary* This,REFIID riid,void **device) {
9722 return This->lpVtbl->GetDevice(This,riid,device);
9723}
9724/*** ID3D12PipelineLibrary methods ***/
9725static inline HRESULT ID3D12PipelineLibrary_StorePipeline(ID3D12PipelineLibrary* This,const WCHAR *name,ID3D12PipelineState *pipeline) {
9726 return This->lpVtbl->StorePipeline(This,name,pipeline);
9727}
9728static inline HRESULT ID3D12PipelineLibrary_LoadGraphicsPipeline(ID3D12PipelineLibrary* This,const WCHAR *name,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9729 return This->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state);
9730}
9731static inline HRESULT ID3D12PipelineLibrary_LoadComputePipeline(ID3D12PipelineLibrary* This,const WCHAR *name,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9732 return This->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state);
9733}
9734static inline SIZE_T ID3D12PipelineLibrary_GetSerializedSize(ID3D12PipelineLibrary* This) {
9735 return This->lpVtbl->GetSerializedSize(This);
9736}
9737static inline HRESULT ID3D12PipelineLibrary_Serialize(ID3D12PipelineLibrary* This,void *data,SIZE_T data_size_in_bytes) {
9738 return This->lpVtbl->Serialize(This,data,data_size_in_bytes);
9739}
9740#endif
9741#endif
9742
9743#endif
9744
9745
9746#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */
9747
9748/*****************************************************************************
9749 * ID3D12PipelineLibrary1 interface
9750 */
9751#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
9752#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
9753
9754DEFINE_GUID(IID_ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd,0x82, 0xc3,0x7f,0x86,0x96,0x1d,0xc3);
9755#if defined(__cplusplus) && !defined(CINTERFACE)
9756MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3")
9757ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary
9758{
9759 virtual HRESULT STDMETHODCALLTYPE LoadPipeline(
9760 const WCHAR *name,
9761 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
9762 REFIID riid,
9763 void **pipeline_state) = 0;
9764
9765};
9766#ifdef __CRT_UUID_DECL
9767__CRT_UUID_DECL(ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd,0x82, 0xc3,0x7f,0x86,0x96,0x1d,0xc3)
9768#endif
9769#else
9770typedef struct ID3D12PipelineLibrary1Vtbl {
9771 BEGIN_INTERFACE
9772
9773 /*** IUnknown methods ***/
9774 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9775 ID3D12PipelineLibrary1 *This,
9776 REFIID riid,
9777 void **ppvObject);
9778
9779 ULONG (STDMETHODCALLTYPE *AddRef)(
9780 ID3D12PipelineLibrary1 *This);
9781
9782 ULONG (STDMETHODCALLTYPE *Release)(
9783 ID3D12PipelineLibrary1 *This);
9784
9785 /*** ID3D12Object methods ***/
9786 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
9787 ID3D12PipelineLibrary1 *This,
9788 REFGUID guid,
9789 UINT *data_size,
9790 void *data);
9791
9792 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
9793 ID3D12PipelineLibrary1 *This,
9794 REFGUID guid,
9795 UINT data_size,
9796 const void *data);
9797
9798 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
9799 ID3D12PipelineLibrary1 *This,
9800 REFGUID guid,
9801 const IUnknown *data);
9802
9803 HRESULT (STDMETHODCALLTYPE *SetName)(
9804 ID3D12PipelineLibrary1 *This,
9805 const WCHAR *name);
9806
9807 /*** ID3D12DeviceChild methods ***/
9808 HRESULT (STDMETHODCALLTYPE *GetDevice)(
9809 ID3D12PipelineLibrary1 *This,
9810 REFIID riid,
9811 void **device);
9812
9813 /*** ID3D12PipelineLibrary methods ***/
9814 HRESULT (STDMETHODCALLTYPE *StorePipeline)(
9815 ID3D12PipelineLibrary1 *This,
9816 const WCHAR *name,
9817 ID3D12PipelineState *pipeline);
9818
9819 HRESULT (STDMETHODCALLTYPE *LoadGraphicsPipeline)(
9820 ID3D12PipelineLibrary1 *This,
9821 const WCHAR *name,
9822 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
9823 REFIID riid,
9824 void **pipeline_state);
9825
9826 HRESULT (STDMETHODCALLTYPE *LoadComputePipeline)(
9827 ID3D12PipelineLibrary1 *This,
9828 const WCHAR *name,
9829 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
9830 REFIID riid,
9831 void **pipeline_state);
9832
9833 SIZE_T (STDMETHODCALLTYPE *GetSerializedSize)(
9834 ID3D12PipelineLibrary1 *This);
9835
9836 HRESULT (STDMETHODCALLTYPE *Serialize)(
9837 ID3D12PipelineLibrary1 *This,
9838 void *data,
9839 SIZE_T data_size_in_bytes);
9840
9841 /*** ID3D12PipelineLibrary1 methods ***/
9842 HRESULT (STDMETHODCALLTYPE *LoadPipeline)(
9843 ID3D12PipelineLibrary1 *This,
9844 const WCHAR *name,
9845 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
9846 REFIID riid,
9847 void **pipeline_state);
9848
9849 END_INTERFACE
9850} ID3D12PipelineLibrary1Vtbl;
9851
9852interface ID3D12PipelineLibrary1 {
9853 CONST_VTBL ID3D12PipelineLibrary1Vtbl* lpVtbl;
9854};
9855
9856#ifdef COBJMACROS
9857#ifndef WIDL_C_INLINE_WRAPPERS
9858/*** IUnknown methods ***/
9859#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9860#define ID3D12PipelineLibrary1_AddRef(This) (This)->lpVtbl->AddRef(This)
9861#define ID3D12PipelineLibrary1_Release(This) (This)->lpVtbl->Release(This)
9862/*** ID3D12Object methods ***/
9863#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
9864#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
9865#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
9866#define ID3D12PipelineLibrary1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
9867/*** ID3D12DeviceChild methods ***/
9868#define ID3D12PipelineLibrary1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
9869/*** ID3D12PipelineLibrary methods ***/
9870#define ID3D12PipelineLibrary1_StorePipeline(This,name,pipeline) (This)->lpVtbl->StorePipeline(This,name,pipeline)
9871#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state)
9872#define ID3D12PipelineLibrary1_LoadComputePipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state)
9873#define ID3D12PipelineLibrary1_GetSerializedSize(This) (This)->lpVtbl->GetSerializedSize(This)
9874#define ID3D12PipelineLibrary1_Serialize(This,data,data_size_in_bytes) (This)->lpVtbl->Serialize(This,data,data_size_in_bytes)
9875/*** ID3D12PipelineLibrary1 methods ***/
9876#define ID3D12PipelineLibrary1_LoadPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadPipeline(This,name,desc,riid,pipeline_state)
9877#else
9878/*** IUnknown methods ***/
9879static inline HRESULT ID3D12PipelineLibrary1_QueryInterface(ID3D12PipelineLibrary1* This,REFIID riid,void **ppvObject) {
9880 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9881}
9882static inline ULONG ID3D12PipelineLibrary1_AddRef(ID3D12PipelineLibrary1* This) {
9883 return This->lpVtbl->AddRef(This);
9884}
9885static inline ULONG ID3D12PipelineLibrary1_Release(ID3D12PipelineLibrary1* This) {
9886 return This->lpVtbl->Release(This);
9887}
9888/*** ID3D12Object methods ***/
9889static inline HRESULT ID3D12PipelineLibrary1_GetPrivateData(ID3D12PipelineLibrary1* This,REFGUID guid,UINT *data_size,void *data) {
9890 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
9891}
9892static inline HRESULT ID3D12PipelineLibrary1_SetPrivateData(ID3D12PipelineLibrary1* This,REFGUID guid,UINT data_size,const void *data) {
9893 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
9894}
9895static inline HRESULT ID3D12PipelineLibrary1_SetPrivateDataInterface(ID3D12PipelineLibrary1* This,REFGUID guid,const IUnknown *data) {
9896 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
9897}
9898static inline HRESULT ID3D12PipelineLibrary1_SetName(ID3D12PipelineLibrary1* This,const WCHAR *name) {
9899 return This->lpVtbl->SetName(This,name);
9900}
9901/*** ID3D12DeviceChild methods ***/
9902static inline HRESULT ID3D12PipelineLibrary1_GetDevice(ID3D12PipelineLibrary1* This,REFIID riid,void **device) {
9903 return This->lpVtbl->GetDevice(This,riid,device);
9904}
9905/*** ID3D12PipelineLibrary methods ***/
9906static inline HRESULT ID3D12PipelineLibrary1_StorePipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,ID3D12PipelineState *pipeline) {
9907 return This->lpVtbl->StorePipeline(This,name,pipeline);
9908}
9909static inline HRESULT ID3D12PipelineLibrary1_LoadGraphicsPipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9910 return This->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state);
9911}
9912static inline HRESULT ID3D12PipelineLibrary1_LoadComputePipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9913 return This->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state);
9914}
9915static inline SIZE_T ID3D12PipelineLibrary1_GetSerializedSize(ID3D12PipelineLibrary1* This) {
9916 return This->lpVtbl->GetSerializedSize(This);
9917}
9918static inline HRESULT ID3D12PipelineLibrary1_Serialize(ID3D12PipelineLibrary1* This,void *data,SIZE_T data_size_in_bytes) {
9919 return This->lpVtbl->Serialize(This,data,data_size_in_bytes);
9920}
9921/*** ID3D12PipelineLibrary1 methods ***/
9922static inline HRESULT ID3D12PipelineLibrary1_LoadPipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
9923 return This->lpVtbl->LoadPipeline(This,name,desc,riid,pipeline_state);
9924}
9925#endif
9926#endif
9927
9928#endif
9929
9930
9931#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */
9932
9933/*****************************************************************************
9934 * ID3D12Device1 interface
9935 */
9936#ifndef __ID3D12Device1_INTERFACE_DEFINED__
9937#define __ID3D12Device1_INTERFACE_DEFINED__
9938
9939DEFINE_GUID(IID_ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e);
9940#if defined(__cplusplus) && !defined(CINTERFACE)
9941MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
9942ID3D12Device1 : public ID3D12Device
9943{
9944 virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
9945 const void *blob,
9946 SIZE_T blob_size,
9947 REFIID iid,
9948 void **lib) = 0;
9949
9950 virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
9951 ID3D12Fence *const *fences,
9952 const UINT64 *values,
9953 UINT fence_count,
9954 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
9955 HANDLE event) = 0;
9956
9957 virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
9958 UINT object_count,
9959 ID3D12Pageable *const *objects,
9960 const D3D12_RESIDENCY_PRIORITY *priorities) = 0;
9961
9962};
9963#ifdef __CRT_UUID_DECL
9964__CRT_UUID_DECL(ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e)
9965#endif
9966#else
9967typedef struct ID3D12Device1Vtbl {
9968 BEGIN_INTERFACE
9969
9970 /*** IUnknown methods ***/
9971 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9972 ID3D12Device1 *This,
9973 REFIID riid,
9974 void **ppvObject);
9975
9976 ULONG (STDMETHODCALLTYPE *AddRef)(
9977 ID3D12Device1 *This);
9978
9979 ULONG (STDMETHODCALLTYPE *Release)(
9980 ID3D12Device1 *This);
9981
9982 /*** ID3D12Object methods ***/
9983 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
9984 ID3D12Device1 *This,
9985 REFGUID guid,
9986 UINT *data_size,
9987 void *data);
9988
9989 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
9990 ID3D12Device1 *This,
9991 REFGUID guid,
9992 UINT data_size,
9993 const void *data);
9994
9995 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
9996 ID3D12Device1 *This,
9997 REFGUID guid,
9998 const IUnknown *data);
9999
10000 HRESULT (STDMETHODCALLTYPE *SetName)(
10001 ID3D12Device1 *This,
10002 const WCHAR *name);
10003
10004 /*** ID3D12Device methods ***/
10005 UINT (STDMETHODCALLTYPE *GetNodeCount)(
10006 ID3D12Device1 *This);
10007
10008 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
10009 ID3D12Device1 *This,
10010 const D3D12_COMMAND_QUEUE_DESC *desc,
10011 REFIID riid,
10012 void **command_queue);
10013
10014 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
10015 ID3D12Device1 *This,
10016 D3D12_COMMAND_LIST_TYPE type,
10017 REFIID riid,
10018 void **command_allocator);
10019
10020 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
10021 ID3D12Device1 *This,
10022 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
10023 REFIID riid,
10024 void **pipeline_state);
10025
10026 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
10027 ID3D12Device1 *This,
10028 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
10029 REFIID riid,
10030 void **pipeline_state);
10031
10032 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
10033 ID3D12Device1 *This,
10034 UINT node_mask,
10035 D3D12_COMMAND_LIST_TYPE type,
10036 ID3D12CommandAllocator *command_allocator,
10037 ID3D12PipelineState *initial_pipeline_state,
10038 REFIID riid,
10039 void **command_list);
10040
10041 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
10042 ID3D12Device1 *This,
10043 D3D12_FEATURE feature,
10044 void *feature_data,
10045 UINT feature_data_size);
10046
10047 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
10048 ID3D12Device1 *This,
10049 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
10050 REFIID riid,
10051 void **descriptor_heap);
10052
10053 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
10054 ID3D12Device1 *This,
10055 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10056
10057 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
10058 ID3D12Device1 *This,
10059 UINT node_mask,
10060 const void *bytecode,
10061 SIZE_T bytecode_length,
10062 REFIID riid,
10063 void **root_signature);
10064
10065 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
10066 ID3D12Device1 *This,
10067 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
10068 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10069
10070 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
10071 ID3D12Device1 *This,
10072 ID3D12Resource *resource,
10073 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
10074 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10075
10076 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
10077 ID3D12Device1 *This,
10078 ID3D12Resource *resource,
10079 ID3D12Resource *counter_resource,
10080 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
10081 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10082
10083 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
10084 ID3D12Device1 *This,
10085 ID3D12Resource *resource,
10086 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
10087 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10088
10089 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
10090 ID3D12Device1 *This,
10091 ID3D12Resource *resource,
10092 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
10093 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10094
10095 void (STDMETHODCALLTYPE *CreateSampler)(
10096 ID3D12Device1 *This,
10097 const D3D12_SAMPLER_DESC *desc,
10098 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10099
10100 void (STDMETHODCALLTYPE *CopyDescriptors)(
10101 ID3D12Device1 *This,
10102 UINT dst_descriptor_range_count,
10103 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
10104 const UINT *dst_descriptor_range_sizes,
10105 UINT src_descriptor_range_count,
10106 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
10107 const UINT *src_descriptor_range_sizes,
10108 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10109
10110 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
10111 ID3D12Device1 *This,
10112 UINT descriptor_count,
10113 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
10114 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
10115 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10116
10117 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
10118 ID3D12Device1 *This,
10119 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
10120 UINT visible_mask,
10121 UINT reource_desc_count,
10122 const D3D12_RESOURCE_DESC *resource_descs);
10123
10124 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
10125 ID3D12Device1 *This,
10126 D3D12_HEAP_PROPERTIES *__ret,
10127 UINT node_mask,
10128 D3D12_HEAP_TYPE heap_type);
10129
10130 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
10131 ID3D12Device1 *This,
10132 const D3D12_HEAP_PROPERTIES *heap_properties,
10133 D3D12_HEAP_FLAGS heap_flags,
10134 const D3D12_RESOURCE_DESC *desc,
10135 D3D12_RESOURCE_STATES initial_state,
10136 const D3D12_CLEAR_VALUE *optimized_clear_value,
10137 REFIID riid,
10138 void **resource);
10139
10140 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
10141 ID3D12Device1 *This,
10142 const D3D12_HEAP_DESC *desc,
10143 REFIID riid,
10144 void **heap);
10145
10146 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
10147 ID3D12Device1 *This,
10148 ID3D12Heap *heap,
10149 UINT64 heap_offset,
10150 const D3D12_RESOURCE_DESC *desc,
10151 D3D12_RESOURCE_STATES initial_state,
10152 const D3D12_CLEAR_VALUE *optimized_clear_value,
10153 REFIID riid,
10154 void **resource);
10155
10156 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
10157 ID3D12Device1 *This,
10158 const D3D12_RESOURCE_DESC *desc,
10159 D3D12_RESOURCE_STATES initial_state,
10160 const D3D12_CLEAR_VALUE *optimized_clear_value,
10161 REFIID riid,
10162 void **resource);
10163
10164 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
10165 ID3D12Device1 *This,
10166 ID3D12DeviceChild *object,
10167 const SECURITY_ATTRIBUTES *attributes,
10168 DWORD access,
10169 const WCHAR *name,
10170 HANDLE *handle);
10171
10172 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
10173 ID3D12Device1 *This,
10174 HANDLE handle,
10175 REFIID riid,
10176 void **object);
10177
10178 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
10179 ID3D12Device1 *This,
10180 const WCHAR *name,
10181 DWORD access,
10182 HANDLE *handle);
10183
10184 HRESULT (STDMETHODCALLTYPE *MakeResident)(
10185 ID3D12Device1 *This,
10186 UINT object_count,
10187 ID3D12Pageable *const *objects);
10188
10189 HRESULT (STDMETHODCALLTYPE *Evict)(
10190 ID3D12Device1 *This,
10191 UINT object_count,
10192 ID3D12Pageable *const *objects);
10193
10194 HRESULT (STDMETHODCALLTYPE *CreateFence)(
10195 ID3D12Device1 *This,
10196 UINT64 initial_value,
10197 D3D12_FENCE_FLAGS flags,
10198 REFIID riid,
10199 void **fence);
10200
10201 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
10202 ID3D12Device1 *This);
10203
10204 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
10205 ID3D12Device1 *This,
10206 const D3D12_RESOURCE_DESC *desc,
10207 UINT first_sub_resource,
10208 UINT sub_resource_count,
10209 UINT64 base_offset,
10210 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
10211 UINT *row_count,
10212 UINT64 *row_size,
10213 UINT64 *total_bytes);
10214
10215 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
10216 ID3D12Device1 *This,
10217 const D3D12_QUERY_HEAP_DESC *desc,
10218 REFIID riid,
10219 void **heap);
10220
10221 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
10222 ID3D12Device1 *This,
10223 WINBOOL enable);
10224
10225 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
10226 ID3D12Device1 *This,
10227 const D3D12_COMMAND_SIGNATURE_DESC *desc,
10228 ID3D12RootSignature *root_signature,
10229 REFIID riid,
10230 void **command_signature);
10231
10232 void (STDMETHODCALLTYPE *GetResourceTiling)(
10233 ID3D12Device1 *This,
10234 ID3D12Resource *resource,
10235 UINT *total_tile_count,
10236 D3D12_PACKED_MIP_INFO *packed_mip_info,
10237 D3D12_TILE_SHAPE *standard_tile_shape,
10238 UINT *sub_resource_tiling_count,
10239 UINT first_sub_resource_tiling,
10240 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
10241
10242 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
10243 ID3D12Device1 *This,
10244 LUID *__ret);
10245
10246 /*** ID3D12Device1 methods ***/
10247 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
10248 ID3D12Device1 *This,
10249 const void *blob,
10250 SIZE_T blob_size,
10251 REFIID iid,
10252 void **lib);
10253
10254 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
10255 ID3D12Device1 *This,
10256 ID3D12Fence *const *fences,
10257 const UINT64 *values,
10258 UINT fence_count,
10259 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
10260 HANDLE event);
10261
10262 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
10263 ID3D12Device1 *This,
10264 UINT object_count,
10265 ID3D12Pageable *const *objects,
10266 const D3D12_RESIDENCY_PRIORITY *priorities);
10267
10268 END_INTERFACE
10269} ID3D12Device1Vtbl;
10270
10271interface ID3D12Device1 {
10272 CONST_VTBL ID3D12Device1Vtbl* lpVtbl;
10273};
10274
10275#ifdef COBJMACROS
10276#ifndef WIDL_C_INLINE_WRAPPERS
10277/*** IUnknown methods ***/
10278#define ID3D12Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10279#define ID3D12Device1_AddRef(This) (This)->lpVtbl->AddRef(This)
10280#define ID3D12Device1_Release(This) (This)->lpVtbl->Release(This)
10281/*** ID3D12Object methods ***/
10282#define ID3D12Device1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
10283#define ID3D12Device1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
10284#define ID3D12Device1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
10285#define ID3D12Device1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
10286/*** ID3D12Device methods ***/
10287#define ID3D12Device1_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
10288#define ID3D12Device1_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
10289#define ID3D12Device1_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
10290#define ID3D12Device1_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
10291#define ID3D12Device1_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
10292#define ID3D12Device1_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
10293#define ID3D12Device1_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
10294#define ID3D12Device1_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
10295#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
10296#define ID3D12Device1_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
10297#define ID3D12Device1_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
10298#define ID3D12Device1_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
10299#define ID3D12Device1_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
10300#define ID3D12Device1_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
10301#define ID3D12Device1_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
10302#define ID3D12Device1_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
10303#define ID3D12Device1_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
10304#define ID3D12Device1_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
10305#define ID3D12Device1_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device1_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10306#define ID3D12Device1_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device1_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10307#define ID3D12Device1_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
10308#define ID3D12Device1_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
10309#define ID3D12Device1_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
10310#define ID3D12Device1_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
10311#define ID3D12Device1_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
10312#define ID3D12Device1_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
10313#define ID3D12Device1_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
10314#define ID3D12Device1_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
10315#define ID3D12Device1_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
10316#define ID3D12Device1_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
10317#define ID3D12Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
10318#define ID3D12Device1_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
10319#define ID3D12Device1_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
10320#define ID3D12Device1_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
10321#define ID3D12Device1_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
10322#define ID3D12Device1_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
10323#define ID3D12Device1_GetAdapterLuid(This) ID3D12Device1_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10324/*** ID3D12Device1 methods ***/
10325#define ID3D12Device1_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
10326#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
10327#define ID3D12Device1_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
10328#else
10329/*** IUnknown methods ***/
10330static inline HRESULT ID3D12Device1_QueryInterface(ID3D12Device1* This,REFIID riid,void **ppvObject) {
10331 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10332}
10333static inline ULONG ID3D12Device1_AddRef(ID3D12Device1* This) {
10334 return This->lpVtbl->AddRef(This);
10335}
10336static inline ULONG ID3D12Device1_Release(ID3D12Device1* This) {
10337 return This->lpVtbl->Release(This);
10338}
10339/*** ID3D12Object methods ***/
10340static inline HRESULT ID3D12Device1_GetPrivateData(ID3D12Device1* This,REFGUID guid,UINT *data_size,void *data) {
10341 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
10342}
10343static inline HRESULT ID3D12Device1_SetPrivateData(ID3D12Device1* This,REFGUID guid,UINT data_size,const void *data) {
10344 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
10345}
10346static inline HRESULT ID3D12Device1_SetPrivateDataInterface(ID3D12Device1* This,REFGUID guid,const IUnknown *data) {
10347 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
10348}
10349static inline HRESULT ID3D12Device1_SetName(ID3D12Device1* This,const WCHAR *name) {
10350 return This->lpVtbl->SetName(This,name);
10351}
10352/*** ID3D12Device methods ***/
10353static inline UINT ID3D12Device1_GetNodeCount(ID3D12Device1* This) {
10354 return This->lpVtbl->GetNodeCount(This);
10355}
10356static inline HRESULT ID3D12Device1_CreateCommandQueue(ID3D12Device1* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
10357 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
10358}
10359static inline HRESULT ID3D12Device1_CreateCommandAllocator(ID3D12Device1* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
10360 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
10361}
10362static inline HRESULT ID3D12Device1_CreateGraphicsPipelineState(ID3D12Device1* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
10363 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
10364}
10365static inline HRESULT ID3D12Device1_CreateComputePipelineState(ID3D12Device1* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
10366 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
10367}
10368static inline HRESULT ID3D12Device1_CreateCommandList(ID3D12Device1* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
10369 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
10370}
10371static inline HRESULT ID3D12Device1_CheckFeatureSupport(ID3D12Device1* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
10372 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
10373}
10374static inline HRESULT ID3D12Device1_CreateDescriptorHeap(ID3D12Device1* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
10375 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
10376}
10377static inline UINT ID3D12Device1_GetDescriptorHandleIncrementSize(ID3D12Device1* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
10378 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
10379}
10380static inline HRESULT ID3D12Device1_CreateRootSignature(ID3D12Device1* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
10381 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
10382}
10383static inline void ID3D12Device1_CreateConstantBufferView(ID3D12Device1* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10384 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
10385}
10386static inline void ID3D12Device1_CreateShaderResourceView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10387 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
10388}
10389static inline void ID3D12Device1_CreateUnorderedAccessView(ID3D12Device1* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10390 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
10391}
10392static inline void ID3D12Device1_CreateRenderTargetView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10393 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
10394}
10395static inline void ID3D12Device1_CreateDepthStencilView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10396 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
10397}
10398static inline void ID3D12Device1_CreateSampler(ID3D12Device1* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10399 This->lpVtbl->CreateSampler(This,desc,descriptor);
10400}
10401static inline void ID3D12Device1_CopyDescriptors(ID3D12Device1* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
10402 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
10403}
10404static inline void ID3D12Device1_CopyDescriptorsSimple(ID3D12Device1* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
10405 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
10406}
10407static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device1_GetResourceAllocationInfo(ID3D12Device1* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
10408 D3D12_RESOURCE_ALLOCATION_INFO __ret;
10409 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
10410}
10411static inline D3D12_HEAP_PROPERTIES ID3D12Device1_GetCustomHeapProperties(ID3D12Device1* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
10412 D3D12_HEAP_PROPERTIES __ret;
10413 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
10414}
10415static inline HRESULT ID3D12Device1_CreateCommittedResource(ID3D12Device1* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
10416 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
10417}
10418static inline HRESULT ID3D12Device1_CreateHeap(ID3D12Device1* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
10419 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
10420}
10421static inline HRESULT ID3D12Device1_CreatePlacedResource(ID3D12Device1* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
10422 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
10423}
10424static inline HRESULT ID3D12Device1_CreateReservedResource(ID3D12Device1* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
10425 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
10426}
10427static inline HRESULT ID3D12Device1_CreateSharedHandle(ID3D12Device1* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
10428 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
10429}
10430static inline HRESULT ID3D12Device1_OpenSharedHandle(ID3D12Device1* This,HANDLE handle,REFIID riid,void **object) {
10431 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
10432}
10433static inline HRESULT ID3D12Device1_OpenSharedHandleByName(ID3D12Device1* This,const WCHAR *name,DWORD access,HANDLE *handle) {
10434 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
10435}
10436static inline HRESULT ID3D12Device1_MakeResident(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) {
10437 return This->lpVtbl->MakeResident(This,object_count,objects);
10438}
10439static inline HRESULT ID3D12Device1_Evict(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) {
10440 return This->lpVtbl->Evict(This,object_count,objects);
10441}
10442static inline HRESULT ID3D12Device1_CreateFence(ID3D12Device1* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
10443 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
10444}
10445static inline HRESULT ID3D12Device1_GetDeviceRemovedReason(ID3D12Device1* This) {
10446 return This->lpVtbl->GetDeviceRemovedReason(This);
10447}
10448static inline void ID3D12Device1_GetCopyableFootprints(ID3D12Device1* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
10449 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
10450}
10451static inline HRESULT ID3D12Device1_CreateQueryHeap(ID3D12Device1* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
10452 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
10453}
10454static inline HRESULT ID3D12Device1_SetStablePowerState(ID3D12Device1* This,WINBOOL enable) {
10455 return This->lpVtbl->SetStablePowerState(This,enable);
10456}
10457static inline HRESULT ID3D12Device1_CreateCommandSignature(ID3D12Device1* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
10458 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
10459}
10460static inline void ID3D12Device1_GetResourceTiling(ID3D12Device1* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
10461 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
10462}
10463static inline LUID ID3D12Device1_GetAdapterLuid(ID3D12Device1* This) {
10464 LUID __ret;
10465 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
10466}
10467/*** ID3D12Device1 methods ***/
10468static inline HRESULT ID3D12Device1_CreatePipelineLibrary(ID3D12Device1* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
10469 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
10470}
10471static inline HRESULT ID3D12Device1_SetEventOnMultipleFenceCompletion(ID3D12Device1* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
10472 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
10473}
10474static inline HRESULT ID3D12Device1_SetResidencyPriority(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
10475 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
10476}
10477#endif
10478#endif
10479
10480#endif
10481
10482
10483#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
10484
10485/*****************************************************************************
10486 * ID3D12Device2 interface
10487 */
10488#ifndef __ID3D12Device2_INTERFACE_DEFINED__
10489#define __ID3D12Device2_INTERFACE_DEFINED__
10490
10491DEFINE_GUID(IID_ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0,0xbb, 0x1a,0xf5,0xc5,0xb6,0x43,0x28);
10492#if defined(__cplusplus) && !defined(CINTERFACE)
10493MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328")
10494ID3D12Device2 : public ID3D12Device1
10495{
10496 virtual HRESULT STDMETHODCALLTYPE CreatePipelineState(
10497 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
10498 REFIID riid,
10499 void **pipeline_state) = 0;
10500
10501};
10502#ifdef __CRT_UUID_DECL
10503__CRT_UUID_DECL(ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0,0xbb, 0x1a,0xf5,0xc5,0xb6,0x43,0x28)
10504#endif
10505#else
10506typedef struct ID3D12Device2Vtbl {
10507 BEGIN_INTERFACE
10508
10509 /*** IUnknown methods ***/
10510 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10511 ID3D12Device2 *This,
10512 REFIID riid,
10513 void **ppvObject);
10514
10515 ULONG (STDMETHODCALLTYPE *AddRef)(
10516 ID3D12Device2 *This);
10517
10518 ULONG (STDMETHODCALLTYPE *Release)(
10519 ID3D12Device2 *This);
10520
10521 /*** ID3D12Object methods ***/
10522 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
10523 ID3D12Device2 *This,
10524 REFGUID guid,
10525 UINT *data_size,
10526 void *data);
10527
10528 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
10529 ID3D12Device2 *This,
10530 REFGUID guid,
10531 UINT data_size,
10532 const void *data);
10533
10534 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
10535 ID3D12Device2 *This,
10536 REFGUID guid,
10537 const IUnknown *data);
10538
10539 HRESULT (STDMETHODCALLTYPE *SetName)(
10540 ID3D12Device2 *This,
10541 const WCHAR *name);
10542
10543 /*** ID3D12Device methods ***/
10544 UINT (STDMETHODCALLTYPE *GetNodeCount)(
10545 ID3D12Device2 *This);
10546
10547 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
10548 ID3D12Device2 *This,
10549 const D3D12_COMMAND_QUEUE_DESC *desc,
10550 REFIID riid,
10551 void **command_queue);
10552
10553 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
10554 ID3D12Device2 *This,
10555 D3D12_COMMAND_LIST_TYPE type,
10556 REFIID riid,
10557 void **command_allocator);
10558
10559 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
10560 ID3D12Device2 *This,
10561 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
10562 REFIID riid,
10563 void **pipeline_state);
10564
10565 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
10566 ID3D12Device2 *This,
10567 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
10568 REFIID riid,
10569 void **pipeline_state);
10570
10571 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
10572 ID3D12Device2 *This,
10573 UINT node_mask,
10574 D3D12_COMMAND_LIST_TYPE type,
10575 ID3D12CommandAllocator *command_allocator,
10576 ID3D12PipelineState *initial_pipeline_state,
10577 REFIID riid,
10578 void **command_list);
10579
10580 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
10581 ID3D12Device2 *This,
10582 D3D12_FEATURE feature,
10583 void *feature_data,
10584 UINT feature_data_size);
10585
10586 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
10587 ID3D12Device2 *This,
10588 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
10589 REFIID riid,
10590 void **descriptor_heap);
10591
10592 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
10593 ID3D12Device2 *This,
10594 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10595
10596 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
10597 ID3D12Device2 *This,
10598 UINT node_mask,
10599 const void *bytecode,
10600 SIZE_T bytecode_length,
10601 REFIID riid,
10602 void **root_signature);
10603
10604 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
10605 ID3D12Device2 *This,
10606 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
10607 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10608
10609 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
10610 ID3D12Device2 *This,
10611 ID3D12Resource *resource,
10612 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
10613 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10614
10615 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
10616 ID3D12Device2 *This,
10617 ID3D12Resource *resource,
10618 ID3D12Resource *counter_resource,
10619 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
10620 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10621
10622 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
10623 ID3D12Device2 *This,
10624 ID3D12Resource *resource,
10625 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
10626 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10627
10628 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
10629 ID3D12Device2 *This,
10630 ID3D12Resource *resource,
10631 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
10632 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10633
10634 void (STDMETHODCALLTYPE *CreateSampler)(
10635 ID3D12Device2 *This,
10636 const D3D12_SAMPLER_DESC *desc,
10637 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10638
10639 void (STDMETHODCALLTYPE *CopyDescriptors)(
10640 ID3D12Device2 *This,
10641 UINT dst_descriptor_range_count,
10642 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
10643 const UINT *dst_descriptor_range_sizes,
10644 UINT src_descriptor_range_count,
10645 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
10646 const UINT *src_descriptor_range_sizes,
10647 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10648
10649 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
10650 ID3D12Device2 *This,
10651 UINT descriptor_count,
10652 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
10653 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
10654 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10655
10656 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
10657 ID3D12Device2 *This,
10658 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
10659 UINT visible_mask,
10660 UINT reource_desc_count,
10661 const D3D12_RESOURCE_DESC *resource_descs);
10662
10663 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
10664 ID3D12Device2 *This,
10665 D3D12_HEAP_PROPERTIES *__ret,
10666 UINT node_mask,
10667 D3D12_HEAP_TYPE heap_type);
10668
10669 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
10670 ID3D12Device2 *This,
10671 const D3D12_HEAP_PROPERTIES *heap_properties,
10672 D3D12_HEAP_FLAGS heap_flags,
10673 const D3D12_RESOURCE_DESC *desc,
10674 D3D12_RESOURCE_STATES initial_state,
10675 const D3D12_CLEAR_VALUE *optimized_clear_value,
10676 REFIID riid,
10677 void **resource);
10678
10679 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
10680 ID3D12Device2 *This,
10681 const D3D12_HEAP_DESC *desc,
10682 REFIID riid,
10683 void **heap);
10684
10685 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
10686 ID3D12Device2 *This,
10687 ID3D12Heap *heap,
10688 UINT64 heap_offset,
10689 const D3D12_RESOURCE_DESC *desc,
10690 D3D12_RESOURCE_STATES initial_state,
10691 const D3D12_CLEAR_VALUE *optimized_clear_value,
10692 REFIID riid,
10693 void **resource);
10694
10695 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
10696 ID3D12Device2 *This,
10697 const D3D12_RESOURCE_DESC *desc,
10698 D3D12_RESOURCE_STATES initial_state,
10699 const D3D12_CLEAR_VALUE *optimized_clear_value,
10700 REFIID riid,
10701 void **resource);
10702
10703 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
10704 ID3D12Device2 *This,
10705 ID3D12DeviceChild *object,
10706 const SECURITY_ATTRIBUTES *attributes,
10707 DWORD access,
10708 const WCHAR *name,
10709 HANDLE *handle);
10710
10711 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
10712 ID3D12Device2 *This,
10713 HANDLE handle,
10714 REFIID riid,
10715 void **object);
10716
10717 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
10718 ID3D12Device2 *This,
10719 const WCHAR *name,
10720 DWORD access,
10721 HANDLE *handle);
10722
10723 HRESULT (STDMETHODCALLTYPE *MakeResident)(
10724 ID3D12Device2 *This,
10725 UINT object_count,
10726 ID3D12Pageable *const *objects);
10727
10728 HRESULT (STDMETHODCALLTYPE *Evict)(
10729 ID3D12Device2 *This,
10730 UINT object_count,
10731 ID3D12Pageable *const *objects);
10732
10733 HRESULT (STDMETHODCALLTYPE *CreateFence)(
10734 ID3D12Device2 *This,
10735 UINT64 initial_value,
10736 D3D12_FENCE_FLAGS flags,
10737 REFIID riid,
10738 void **fence);
10739
10740 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
10741 ID3D12Device2 *This);
10742
10743 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
10744 ID3D12Device2 *This,
10745 const D3D12_RESOURCE_DESC *desc,
10746 UINT first_sub_resource,
10747 UINT sub_resource_count,
10748 UINT64 base_offset,
10749 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
10750 UINT *row_count,
10751 UINT64 *row_size,
10752 UINT64 *total_bytes);
10753
10754 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
10755 ID3D12Device2 *This,
10756 const D3D12_QUERY_HEAP_DESC *desc,
10757 REFIID riid,
10758 void **heap);
10759
10760 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
10761 ID3D12Device2 *This,
10762 WINBOOL enable);
10763
10764 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
10765 ID3D12Device2 *This,
10766 const D3D12_COMMAND_SIGNATURE_DESC *desc,
10767 ID3D12RootSignature *root_signature,
10768 REFIID riid,
10769 void **command_signature);
10770
10771 void (STDMETHODCALLTYPE *GetResourceTiling)(
10772 ID3D12Device2 *This,
10773 ID3D12Resource *resource,
10774 UINT *total_tile_count,
10775 D3D12_PACKED_MIP_INFO *packed_mip_info,
10776 D3D12_TILE_SHAPE *standard_tile_shape,
10777 UINT *sub_resource_tiling_count,
10778 UINT first_sub_resource_tiling,
10779 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
10780
10781 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
10782 ID3D12Device2 *This,
10783 LUID *__ret);
10784
10785 /*** ID3D12Device1 methods ***/
10786 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
10787 ID3D12Device2 *This,
10788 const void *blob,
10789 SIZE_T blob_size,
10790 REFIID iid,
10791 void **lib);
10792
10793 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
10794 ID3D12Device2 *This,
10795 ID3D12Fence *const *fences,
10796 const UINT64 *values,
10797 UINT fence_count,
10798 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
10799 HANDLE event);
10800
10801 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
10802 ID3D12Device2 *This,
10803 UINT object_count,
10804 ID3D12Pageable *const *objects,
10805 const D3D12_RESIDENCY_PRIORITY *priorities);
10806
10807 /*** ID3D12Device2 methods ***/
10808 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
10809 ID3D12Device2 *This,
10810 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
10811 REFIID riid,
10812 void **pipeline_state);
10813
10814 END_INTERFACE
10815} ID3D12Device2Vtbl;
10816
10817interface ID3D12Device2 {
10818 CONST_VTBL ID3D12Device2Vtbl* lpVtbl;
10819};
10820
10821#ifdef COBJMACROS
10822#ifndef WIDL_C_INLINE_WRAPPERS
10823/*** IUnknown methods ***/
10824#define ID3D12Device2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10825#define ID3D12Device2_AddRef(This) (This)->lpVtbl->AddRef(This)
10826#define ID3D12Device2_Release(This) (This)->lpVtbl->Release(This)
10827/*** ID3D12Object methods ***/
10828#define ID3D12Device2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
10829#define ID3D12Device2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
10830#define ID3D12Device2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
10831#define ID3D12Device2_SetName(This,name) (This)->lpVtbl->SetName(This,name)
10832/*** ID3D12Device methods ***/
10833#define ID3D12Device2_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
10834#define ID3D12Device2_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
10835#define ID3D12Device2_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
10836#define ID3D12Device2_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
10837#define ID3D12Device2_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
10838#define ID3D12Device2_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
10839#define ID3D12Device2_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
10840#define ID3D12Device2_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
10841#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
10842#define ID3D12Device2_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
10843#define ID3D12Device2_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
10844#define ID3D12Device2_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
10845#define ID3D12Device2_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
10846#define ID3D12Device2_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
10847#define ID3D12Device2_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
10848#define ID3D12Device2_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
10849#define ID3D12Device2_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
10850#define ID3D12Device2_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
10851#define ID3D12Device2_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device2_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10852#define ID3D12Device2_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device2_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10853#define ID3D12Device2_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
10854#define ID3D12Device2_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
10855#define ID3D12Device2_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
10856#define ID3D12Device2_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
10857#define ID3D12Device2_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
10858#define ID3D12Device2_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
10859#define ID3D12Device2_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
10860#define ID3D12Device2_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
10861#define ID3D12Device2_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
10862#define ID3D12Device2_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
10863#define ID3D12Device2_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
10864#define ID3D12Device2_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
10865#define ID3D12Device2_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
10866#define ID3D12Device2_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
10867#define ID3D12Device2_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
10868#define ID3D12Device2_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
10869#define ID3D12Device2_GetAdapterLuid(This) ID3D12Device2_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10870/*** ID3D12Device1 methods ***/
10871#define ID3D12Device2_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
10872#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
10873#define ID3D12Device2_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
10874/*** ID3D12Device2 methods ***/
10875#define ID3D12Device2_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
10876#else
10877/*** IUnknown methods ***/
10878static inline HRESULT ID3D12Device2_QueryInterface(ID3D12Device2* This,REFIID riid,void **ppvObject) {
10879 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10880}
10881static inline ULONG ID3D12Device2_AddRef(ID3D12Device2* This) {
10882 return This->lpVtbl->AddRef(This);
10883}
10884static inline ULONG ID3D12Device2_Release(ID3D12Device2* This) {
10885 return This->lpVtbl->Release(This);
10886}
10887/*** ID3D12Object methods ***/
10888static inline HRESULT ID3D12Device2_GetPrivateData(ID3D12Device2* This,REFGUID guid,UINT *data_size,void *data) {
10889 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
10890}
10891static inline HRESULT ID3D12Device2_SetPrivateData(ID3D12Device2* This,REFGUID guid,UINT data_size,const void *data) {
10892 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
10893}
10894static inline HRESULT ID3D12Device2_SetPrivateDataInterface(ID3D12Device2* This,REFGUID guid,const IUnknown *data) {
10895 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
10896}
10897static inline HRESULT ID3D12Device2_SetName(ID3D12Device2* This,const WCHAR *name) {
10898 return This->lpVtbl->SetName(This,name);
10899}
10900/*** ID3D12Device methods ***/
10901static inline UINT ID3D12Device2_GetNodeCount(ID3D12Device2* This) {
10902 return This->lpVtbl->GetNodeCount(This);
10903}
10904static inline HRESULT ID3D12Device2_CreateCommandQueue(ID3D12Device2* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
10905 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
10906}
10907static inline HRESULT ID3D12Device2_CreateCommandAllocator(ID3D12Device2* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
10908 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
10909}
10910static inline HRESULT ID3D12Device2_CreateGraphicsPipelineState(ID3D12Device2* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
10911 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
10912}
10913static inline HRESULT ID3D12Device2_CreateComputePipelineState(ID3D12Device2* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
10914 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
10915}
10916static inline HRESULT ID3D12Device2_CreateCommandList(ID3D12Device2* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
10917 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
10918}
10919static inline HRESULT ID3D12Device2_CheckFeatureSupport(ID3D12Device2* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
10920 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
10921}
10922static inline HRESULT ID3D12Device2_CreateDescriptorHeap(ID3D12Device2* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
10923 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
10924}
10925static inline UINT ID3D12Device2_GetDescriptorHandleIncrementSize(ID3D12Device2* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
10926 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
10927}
10928static inline HRESULT ID3D12Device2_CreateRootSignature(ID3D12Device2* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
10929 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
10930}
10931static inline void ID3D12Device2_CreateConstantBufferView(ID3D12Device2* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10932 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
10933}
10934static inline void ID3D12Device2_CreateShaderResourceView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10935 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
10936}
10937static inline void ID3D12Device2_CreateUnorderedAccessView(ID3D12Device2* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10938 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
10939}
10940static inline void ID3D12Device2_CreateRenderTargetView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10941 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
10942}
10943static inline void ID3D12Device2_CreateDepthStencilView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10944 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
10945}
10946static inline void ID3D12Device2_CreateSampler(ID3D12Device2* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10947 This->lpVtbl->CreateSampler(This,desc,descriptor);
10948}
10949static inline void ID3D12Device2_CopyDescriptors(ID3D12Device2* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
10950 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
10951}
10952static inline void ID3D12Device2_CopyDescriptorsSimple(ID3D12Device2* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
10953 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
10954}
10955static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device2_GetResourceAllocationInfo(ID3D12Device2* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
10956 D3D12_RESOURCE_ALLOCATION_INFO __ret;
10957 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
10958}
10959static inline D3D12_HEAP_PROPERTIES ID3D12Device2_GetCustomHeapProperties(ID3D12Device2* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
10960 D3D12_HEAP_PROPERTIES __ret;
10961 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
10962}
10963static inline HRESULT ID3D12Device2_CreateCommittedResource(ID3D12Device2* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
10964 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
10965}
10966static inline HRESULT ID3D12Device2_CreateHeap(ID3D12Device2* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
10967 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
10968}
10969static inline HRESULT ID3D12Device2_CreatePlacedResource(ID3D12Device2* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
10970 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
10971}
10972static inline HRESULT ID3D12Device2_CreateReservedResource(ID3D12Device2* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
10973 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
10974}
10975static inline HRESULT ID3D12Device2_CreateSharedHandle(ID3D12Device2* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
10976 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
10977}
10978static inline HRESULT ID3D12Device2_OpenSharedHandle(ID3D12Device2* This,HANDLE handle,REFIID riid,void **object) {
10979 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
10980}
10981static inline HRESULT ID3D12Device2_OpenSharedHandleByName(ID3D12Device2* This,const WCHAR *name,DWORD access,HANDLE *handle) {
10982 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
10983}
10984static inline HRESULT ID3D12Device2_MakeResident(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects) {
10985 return This->lpVtbl->MakeResident(This,object_count,objects);
10986}
10987static inline HRESULT ID3D12Device2_Evict(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects) {
10988 return This->lpVtbl->Evict(This,object_count,objects);
10989}
10990static inline HRESULT ID3D12Device2_CreateFence(ID3D12Device2* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
10991 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
10992}
10993static inline HRESULT ID3D12Device2_GetDeviceRemovedReason(ID3D12Device2* This) {
10994 return This->lpVtbl->GetDeviceRemovedReason(This);
10995}
10996static inline void ID3D12Device2_GetCopyableFootprints(ID3D12Device2* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
10997 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
10998}
10999static inline HRESULT ID3D12Device2_CreateQueryHeap(ID3D12Device2* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
11000 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
11001}
11002static inline HRESULT ID3D12Device2_SetStablePowerState(ID3D12Device2* This,WINBOOL enable) {
11003 return This->lpVtbl->SetStablePowerState(This,enable);
11004}
11005static inline HRESULT ID3D12Device2_CreateCommandSignature(ID3D12Device2* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
11006 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
11007}
11008static inline void ID3D12Device2_GetResourceTiling(ID3D12Device2* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
11009 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
11010}
11011static inline LUID ID3D12Device2_GetAdapterLuid(ID3D12Device2* This) {
11012 LUID __ret;
11013 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
11014}
11015/*** ID3D12Device1 methods ***/
11016static inline HRESULT ID3D12Device2_CreatePipelineLibrary(ID3D12Device2* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
11017 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
11018}
11019static inline HRESULT ID3D12Device2_SetEventOnMultipleFenceCompletion(ID3D12Device2* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
11020 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
11021}
11022static inline HRESULT ID3D12Device2_SetResidencyPriority(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
11023 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
11024}
11025/*** ID3D12Device2 methods ***/
11026static inline HRESULT ID3D12Device2_CreatePipelineState(ID3D12Device2* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
11027 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
11028}
11029#endif
11030#endif
11031
11032#endif
11033
11034
11035#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */
11036
11037/*****************************************************************************
11038 * ID3D12Device3 interface
11039 */
11040#ifndef __ID3D12Device3_INTERFACE_DEFINED__
11041#define __ID3D12Device3_INTERFACE_DEFINED__
11042
11043DEFINE_GUID(IID_ID3D12Device3, 0x81dadc15, 0x2bad, 0x4392, 0x93,0xc5, 0x10,0x13,0x45,0xc4,0xaa,0x98);
11044#if defined(__cplusplus) && !defined(CINTERFACE)
11045MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98")
11046ID3D12Device3 : public ID3D12Device2
11047{
11048 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress(
11049 const void *address,
11050 REFIID riid,
11051 void **heap) = 0;
11052
11053 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping(
11054 HANDLE file_mapping,
11055 REFIID riid,
11056 void **heap) = 0;
11057
11058 virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident(
11059 D3D12_RESIDENCY_FLAGS flags,
11060 UINT num_objects,
11061 ID3D12Pageable *const *objects,
11062 ID3D12Fence *fence,
11063 UINT64 fence_value) = 0;
11064
11065};
11066#ifdef __CRT_UUID_DECL
11067__CRT_UUID_DECL(ID3D12Device3, 0x81dadc15, 0x2bad, 0x4392, 0x93,0xc5, 0x10,0x13,0x45,0xc4,0xaa,0x98)
11068#endif
11069#else
11070typedef struct ID3D12Device3Vtbl {
11071 BEGIN_INTERFACE
11072
11073 /*** IUnknown methods ***/
11074 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11075 ID3D12Device3 *This,
11076 REFIID riid,
11077 void **ppvObject);
11078
11079 ULONG (STDMETHODCALLTYPE *AddRef)(
11080 ID3D12Device3 *This);
11081
11082 ULONG (STDMETHODCALLTYPE *Release)(
11083 ID3D12Device3 *This);
11084
11085 /*** ID3D12Object methods ***/
11086 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
11087 ID3D12Device3 *This,
11088 REFGUID guid,
11089 UINT *data_size,
11090 void *data);
11091
11092 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
11093 ID3D12Device3 *This,
11094 REFGUID guid,
11095 UINT data_size,
11096 const void *data);
11097
11098 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
11099 ID3D12Device3 *This,
11100 REFGUID guid,
11101 const IUnknown *data);
11102
11103 HRESULT (STDMETHODCALLTYPE *SetName)(
11104 ID3D12Device3 *This,
11105 const WCHAR *name);
11106
11107 /*** ID3D12Device methods ***/
11108 UINT (STDMETHODCALLTYPE *GetNodeCount)(
11109 ID3D12Device3 *This);
11110
11111 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
11112 ID3D12Device3 *This,
11113 const D3D12_COMMAND_QUEUE_DESC *desc,
11114 REFIID riid,
11115 void **command_queue);
11116
11117 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
11118 ID3D12Device3 *This,
11119 D3D12_COMMAND_LIST_TYPE type,
11120 REFIID riid,
11121 void **command_allocator);
11122
11123 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
11124 ID3D12Device3 *This,
11125 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
11126 REFIID riid,
11127 void **pipeline_state);
11128
11129 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
11130 ID3D12Device3 *This,
11131 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
11132 REFIID riid,
11133 void **pipeline_state);
11134
11135 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
11136 ID3D12Device3 *This,
11137 UINT node_mask,
11138 D3D12_COMMAND_LIST_TYPE type,
11139 ID3D12CommandAllocator *command_allocator,
11140 ID3D12PipelineState *initial_pipeline_state,
11141 REFIID riid,
11142 void **command_list);
11143
11144 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
11145 ID3D12Device3 *This,
11146 D3D12_FEATURE feature,
11147 void *feature_data,
11148 UINT feature_data_size);
11149
11150 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
11151 ID3D12Device3 *This,
11152 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
11153 REFIID riid,
11154 void **descriptor_heap);
11155
11156 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
11157 ID3D12Device3 *This,
11158 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
11159
11160 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
11161 ID3D12Device3 *This,
11162 UINT node_mask,
11163 const void *bytecode,
11164 SIZE_T bytecode_length,
11165 REFIID riid,
11166 void **root_signature);
11167
11168 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
11169 ID3D12Device3 *This,
11170 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
11171 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11172
11173 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
11174 ID3D12Device3 *This,
11175 ID3D12Resource *resource,
11176 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
11177 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11178
11179 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
11180 ID3D12Device3 *This,
11181 ID3D12Resource *resource,
11182 ID3D12Resource *counter_resource,
11183 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
11184 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11185
11186 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
11187 ID3D12Device3 *This,
11188 ID3D12Resource *resource,
11189 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
11190 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11191
11192 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
11193 ID3D12Device3 *This,
11194 ID3D12Resource *resource,
11195 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
11196 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11197
11198 void (STDMETHODCALLTYPE *CreateSampler)(
11199 ID3D12Device3 *This,
11200 const D3D12_SAMPLER_DESC *desc,
11201 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11202
11203 void (STDMETHODCALLTYPE *CopyDescriptors)(
11204 ID3D12Device3 *This,
11205 UINT dst_descriptor_range_count,
11206 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
11207 const UINT *dst_descriptor_range_sizes,
11208 UINT src_descriptor_range_count,
11209 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
11210 const UINT *src_descriptor_range_sizes,
11211 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
11212
11213 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
11214 ID3D12Device3 *This,
11215 UINT descriptor_count,
11216 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
11217 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
11218 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
11219
11220 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
11221 ID3D12Device3 *This,
11222 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
11223 UINT visible_mask,
11224 UINT reource_desc_count,
11225 const D3D12_RESOURCE_DESC *resource_descs);
11226
11227 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
11228 ID3D12Device3 *This,
11229 D3D12_HEAP_PROPERTIES *__ret,
11230 UINT node_mask,
11231 D3D12_HEAP_TYPE heap_type);
11232
11233 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
11234 ID3D12Device3 *This,
11235 const D3D12_HEAP_PROPERTIES *heap_properties,
11236 D3D12_HEAP_FLAGS heap_flags,
11237 const D3D12_RESOURCE_DESC *desc,
11238 D3D12_RESOURCE_STATES initial_state,
11239 const D3D12_CLEAR_VALUE *optimized_clear_value,
11240 REFIID riid,
11241 void **resource);
11242
11243 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
11244 ID3D12Device3 *This,
11245 const D3D12_HEAP_DESC *desc,
11246 REFIID riid,
11247 void **heap);
11248
11249 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
11250 ID3D12Device3 *This,
11251 ID3D12Heap *heap,
11252 UINT64 heap_offset,
11253 const D3D12_RESOURCE_DESC *desc,
11254 D3D12_RESOURCE_STATES initial_state,
11255 const D3D12_CLEAR_VALUE *optimized_clear_value,
11256 REFIID riid,
11257 void **resource);
11258
11259 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
11260 ID3D12Device3 *This,
11261 const D3D12_RESOURCE_DESC *desc,
11262 D3D12_RESOURCE_STATES initial_state,
11263 const D3D12_CLEAR_VALUE *optimized_clear_value,
11264 REFIID riid,
11265 void **resource);
11266
11267 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
11268 ID3D12Device3 *This,
11269 ID3D12DeviceChild *object,
11270 const SECURITY_ATTRIBUTES *attributes,
11271 DWORD access,
11272 const WCHAR *name,
11273 HANDLE *handle);
11274
11275 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
11276 ID3D12Device3 *This,
11277 HANDLE handle,
11278 REFIID riid,
11279 void **object);
11280
11281 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
11282 ID3D12Device3 *This,
11283 const WCHAR *name,
11284 DWORD access,
11285 HANDLE *handle);
11286
11287 HRESULT (STDMETHODCALLTYPE *MakeResident)(
11288 ID3D12Device3 *This,
11289 UINT object_count,
11290 ID3D12Pageable *const *objects);
11291
11292 HRESULT (STDMETHODCALLTYPE *Evict)(
11293 ID3D12Device3 *This,
11294 UINT object_count,
11295 ID3D12Pageable *const *objects);
11296
11297 HRESULT (STDMETHODCALLTYPE *CreateFence)(
11298 ID3D12Device3 *This,
11299 UINT64 initial_value,
11300 D3D12_FENCE_FLAGS flags,
11301 REFIID riid,
11302 void **fence);
11303
11304 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
11305 ID3D12Device3 *This);
11306
11307 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
11308 ID3D12Device3 *This,
11309 const D3D12_RESOURCE_DESC *desc,
11310 UINT first_sub_resource,
11311 UINT sub_resource_count,
11312 UINT64 base_offset,
11313 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
11314 UINT *row_count,
11315 UINT64 *row_size,
11316 UINT64 *total_bytes);
11317
11318 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
11319 ID3D12Device3 *This,
11320 const D3D12_QUERY_HEAP_DESC *desc,
11321 REFIID riid,
11322 void **heap);
11323
11324 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
11325 ID3D12Device3 *This,
11326 WINBOOL enable);
11327
11328 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
11329 ID3D12Device3 *This,
11330 const D3D12_COMMAND_SIGNATURE_DESC *desc,
11331 ID3D12RootSignature *root_signature,
11332 REFIID riid,
11333 void **command_signature);
11334
11335 void (STDMETHODCALLTYPE *GetResourceTiling)(
11336 ID3D12Device3 *This,
11337 ID3D12Resource *resource,
11338 UINT *total_tile_count,
11339 D3D12_PACKED_MIP_INFO *packed_mip_info,
11340 D3D12_TILE_SHAPE *standard_tile_shape,
11341 UINT *sub_resource_tiling_count,
11342 UINT first_sub_resource_tiling,
11343 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
11344
11345 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
11346 ID3D12Device3 *This,
11347 LUID *__ret);
11348
11349 /*** ID3D12Device1 methods ***/
11350 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
11351 ID3D12Device3 *This,
11352 const void *blob,
11353 SIZE_T blob_size,
11354 REFIID iid,
11355 void **lib);
11356
11357 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
11358 ID3D12Device3 *This,
11359 ID3D12Fence *const *fences,
11360 const UINT64 *values,
11361 UINT fence_count,
11362 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
11363 HANDLE event);
11364
11365 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
11366 ID3D12Device3 *This,
11367 UINT object_count,
11368 ID3D12Pageable *const *objects,
11369 const D3D12_RESIDENCY_PRIORITY *priorities);
11370
11371 /*** ID3D12Device2 methods ***/
11372 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
11373 ID3D12Device3 *This,
11374 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
11375 REFIID riid,
11376 void **pipeline_state);
11377
11378 /*** ID3D12Device3 methods ***/
11379 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
11380 ID3D12Device3 *This,
11381 const void *address,
11382 REFIID riid,
11383 void **heap);
11384
11385 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
11386 ID3D12Device3 *This,
11387 HANDLE file_mapping,
11388 REFIID riid,
11389 void **heap);
11390
11391 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
11392 ID3D12Device3 *This,
11393 D3D12_RESIDENCY_FLAGS flags,
11394 UINT num_objects,
11395 ID3D12Pageable *const *objects,
11396 ID3D12Fence *fence,
11397 UINT64 fence_value);
11398
11399 END_INTERFACE
11400} ID3D12Device3Vtbl;
11401
11402interface ID3D12Device3 {
11403 CONST_VTBL ID3D12Device3Vtbl* lpVtbl;
11404};
11405
11406#ifdef COBJMACROS
11407#ifndef WIDL_C_INLINE_WRAPPERS
11408/*** IUnknown methods ***/
11409#define ID3D12Device3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11410#define ID3D12Device3_AddRef(This) (This)->lpVtbl->AddRef(This)
11411#define ID3D12Device3_Release(This) (This)->lpVtbl->Release(This)
11412/*** ID3D12Object methods ***/
11413#define ID3D12Device3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
11414#define ID3D12Device3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
11415#define ID3D12Device3_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
11416#define ID3D12Device3_SetName(This,name) (This)->lpVtbl->SetName(This,name)
11417/*** ID3D12Device methods ***/
11418#define ID3D12Device3_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
11419#define ID3D12Device3_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
11420#define ID3D12Device3_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
11421#define ID3D12Device3_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
11422#define ID3D12Device3_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
11423#define ID3D12Device3_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
11424#define ID3D12Device3_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
11425#define ID3D12Device3_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
11426#define ID3D12Device3_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
11427#define ID3D12Device3_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
11428#define ID3D12Device3_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
11429#define ID3D12Device3_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
11430#define ID3D12Device3_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
11431#define ID3D12Device3_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
11432#define ID3D12Device3_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
11433#define ID3D12Device3_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
11434#define ID3D12Device3_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
11435#define ID3D12Device3_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
11436#define ID3D12Device3_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device3_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
11437#define ID3D12Device3_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device3_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
11438#define ID3D12Device3_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
11439#define ID3D12Device3_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
11440#define ID3D12Device3_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
11441#define ID3D12Device3_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
11442#define ID3D12Device3_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
11443#define ID3D12Device3_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
11444#define ID3D12Device3_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
11445#define ID3D12Device3_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
11446#define ID3D12Device3_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
11447#define ID3D12Device3_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
11448#define ID3D12Device3_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
11449#define ID3D12Device3_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
11450#define ID3D12Device3_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
11451#define ID3D12Device3_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
11452#define ID3D12Device3_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
11453#define ID3D12Device3_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
11454#define ID3D12Device3_GetAdapterLuid(This) ID3D12Device3_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
11455/*** ID3D12Device1 methods ***/
11456#define ID3D12Device3_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
11457#define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
11458#define ID3D12Device3_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
11459/*** ID3D12Device2 methods ***/
11460#define ID3D12Device3_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
11461/*** ID3D12Device3 methods ***/
11462#define ID3D12Device3_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
11463#define ID3D12Device3_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
11464#define ID3D12Device3_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
11465#else
11466/*** IUnknown methods ***/
11467static inline HRESULT ID3D12Device3_QueryInterface(ID3D12Device3* This,REFIID riid,void **ppvObject) {
11468 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11469}
11470static inline ULONG ID3D12Device3_AddRef(ID3D12Device3* This) {
11471 return This->lpVtbl->AddRef(This);
11472}
11473static inline ULONG ID3D12Device3_Release(ID3D12Device3* This) {
11474 return This->lpVtbl->Release(This);
11475}
11476/*** ID3D12Object methods ***/
11477static inline HRESULT ID3D12Device3_GetPrivateData(ID3D12Device3* This,REFGUID guid,UINT *data_size,void *data) {
11478 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
11479}
11480static inline HRESULT ID3D12Device3_SetPrivateData(ID3D12Device3* This,REFGUID guid,UINT data_size,const void *data) {
11481 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
11482}
11483static inline HRESULT ID3D12Device3_SetPrivateDataInterface(ID3D12Device3* This,REFGUID guid,const IUnknown *data) {
11484 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
11485}
11486static inline HRESULT ID3D12Device3_SetName(ID3D12Device3* This,const WCHAR *name) {
11487 return This->lpVtbl->SetName(This,name);
11488}
11489/*** ID3D12Device methods ***/
11490static inline UINT ID3D12Device3_GetNodeCount(ID3D12Device3* This) {
11491 return This->lpVtbl->GetNodeCount(This);
11492}
11493static inline HRESULT ID3D12Device3_CreateCommandQueue(ID3D12Device3* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
11494 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
11495}
11496static inline HRESULT ID3D12Device3_CreateCommandAllocator(ID3D12Device3* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
11497 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
11498}
11499static inline HRESULT ID3D12Device3_CreateGraphicsPipelineState(ID3D12Device3* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
11500 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
11501}
11502static inline HRESULT ID3D12Device3_CreateComputePipelineState(ID3D12Device3* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
11503 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
11504}
11505static inline HRESULT ID3D12Device3_CreateCommandList(ID3D12Device3* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
11506 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
11507}
11508static inline HRESULT ID3D12Device3_CheckFeatureSupport(ID3D12Device3* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
11509 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
11510}
11511static inline HRESULT ID3D12Device3_CreateDescriptorHeap(ID3D12Device3* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
11512 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
11513}
11514static inline UINT ID3D12Device3_GetDescriptorHandleIncrementSize(ID3D12Device3* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
11515 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
11516}
11517static inline HRESULT ID3D12Device3_CreateRootSignature(ID3D12Device3* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
11518 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
11519}
11520static inline void ID3D12Device3_CreateConstantBufferView(ID3D12Device3* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11521 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
11522}
11523static inline void ID3D12Device3_CreateShaderResourceView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11524 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
11525}
11526static inline void ID3D12Device3_CreateUnorderedAccessView(ID3D12Device3* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11527 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
11528}
11529static inline void ID3D12Device3_CreateRenderTargetView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11530 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
11531}
11532static inline void ID3D12Device3_CreateDepthStencilView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11533 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
11534}
11535static inline void ID3D12Device3_CreateSampler(ID3D12Device3* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11536 This->lpVtbl->CreateSampler(This,desc,descriptor);
11537}
11538static inline void ID3D12Device3_CopyDescriptors(ID3D12Device3* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
11539 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
11540}
11541static inline void ID3D12Device3_CopyDescriptorsSimple(ID3D12Device3* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
11542 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
11543}
11544static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device3_GetResourceAllocationInfo(ID3D12Device3* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
11545 D3D12_RESOURCE_ALLOCATION_INFO __ret;
11546 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
11547}
11548static inline D3D12_HEAP_PROPERTIES ID3D12Device3_GetCustomHeapProperties(ID3D12Device3* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
11549 D3D12_HEAP_PROPERTIES __ret;
11550 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
11551}
11552static inline HRESULT ID3D12Device3_CreateCommittedResource(ID3D12Device3* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
11553 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
11554}
11555static inline HRESULT ID3D12Device3_CreateHeap(ID3D12Device3* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
11556 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
11557}
11558static inline HRESULT ID3D12Device3_CreatePlacedResource(ID3D12Device3* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
11559 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
11560}
11561static inline HRESULT ID3D12Device3_CreateReservedResource(ID3D12Device3* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
11562 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
11563}
11564static inline HRESULT ID3D12Device3_CreateSharedHandle(ID3D12Device3* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
11565 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
11566}
11567static inline HRESULT ID3D12Device3_OpenSharedHandle(ID3D12Device3* This,HANDLE handle,REFIID riid,void **object) {
11568 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
11569}
11570static inline HRESULT ID3D12Device3_OpenSharedHandleByName(ID3D12Device3* This,const WCHAR *name,DWORD access,HANDLE *handle) {
11571 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
11572}
11573static inline HRESULT ID3D12Device3_MakeResident(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects) {
11574 return This->lpVtbl->MakeResident(This,object_count,objects);
11575}
11576static inline HRESULT ID3D12Device3_Evict(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects) {
11577 return This->lpVtbl->Evict(This,object_count,objects);
11578}
11579static inline HRESULT ID3D12Device3_CreateFence(ID3D12Device3* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
11580 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
11581}
11582static inline HRESULT ID3D12Device3_GetDeviceRemovedReason(ID3D12Device3* This) {
11583 return This->lpVtbl->GetDeviceRemovedReason(This);
11584}
11585static inline void ID3D12Device3_GetCopyableFootprints(ID3D12Device3* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
11586 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
11587}
11588static inline HRESULT ID3D12Device3_CreateQueryHeap(ID3D12Device3* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
11589 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
11590}
11591static inline HRESULT ID3D12Device3_SetStablePowerState(ID3D12Device3* This,WINBOOL enable) {
11592 return This->lpVtbl->SetStablePowerState(This,enable);
11593}
11594static inline HRESULT ID3D12Device3_CreateCommandSignature(ID3D12Device3* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
11595 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
11596}
11597static inline void ID3D12Device3_GetResourceTiling(ID3D12Device3* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
11598 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
11599}
11600static inline LUID ID3D12Device3_GetAdapterLuid(ID3D12Device3* This) {
11601 LUID __ret;
11602 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
11603}
11604/*** ID3D12Device1 methods ***/
11605static inline HRESULT ID3D12Device3_CreatePipelineLibrary(ID3D12Device3* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
11606 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
11607}
11608static inline HRESULT ID3D12Device3_SetEventOnMultipleFenceCompletion(ID3D12Device3* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
11609 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
11610}
11611static inline HRESULT ID3D12Device3_SetResidencyPriority(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
11612 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
11613}
11614/*** ID3D12Device2 methods ***/
11615static inline HRESULT ID3D12Device3_CreatePipelineState(ID3D12Device3* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
11616 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
11617}
11618/*** ID3D12Device3 methods ***/
11619static inline HRESULT ID3D12Device3_OpenExistingHeapFromAddress(ID3D12Device3* This,const void *address,REFIID riid,void **heap) {
11620 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
11621}
11622static inline HRESULT ID3D12Device3_OpenExistingHeapFromFileMapping(ID3D12Device3* This,HANDLE file_mapping,REFIID riid,void **heap) {
11623 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
11624}
11625static inline HRESULT ID3D12Device3_EnqueueMakeResident(ID3D12Device3* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
11626 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
11627}
11628#endif
11629#endif
11630
11631#endif
11632
11633
11634#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */
11635
11636/*****************************************************************************
11637 * ID3D12RootSignatureDeserializer interface
11638 */
11639#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
11640#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
11641
11642DEFINE_GUID(IID_ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46);
11643#if defined(__cplusplus) && !defined(CINTERFACE)
11644MIDL_INTERFACE("34ab647b-3cc8-46ac-841b-c0965645c046")
11645ID3D12RootSignatureDeserializer : public IUnknown
11646{
11647 virtual const D3D12_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetRootSignatureDesc(
11648 ) = 0;
11649
11650};
11651#ifdef __CRT_UUID_DECL
11652__CRT_UUID_DECL(ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46)
11653#endif
11654#else
11655typedef struct ID3D12RootSignatureDeserializerVtbl {
11656 BEGIN_INTERFACE
11657
11658 /*** IUnknown methods ***/
11659 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11660 ID3D12RootSignatureDeserializer *This,
11661 REFIID riid,
11662 void **ppvObject);
11663
11664 ULONG (STDMETHODCALLTYPE *AddRef)(
11665 ID3D12RootSignatureDeserializer *This);
11666
11667 ULONG (STDMETHODCALLTYPE *Release)(
11668 ID3D12RootSignatureDeserializer *This);
11669
11670 /*** ID3D12RootSignatureDeserializer methods ***/
11671 const D3D12_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetRootSignatureDesc)(
11672 ID3D12RootSignatureDeserializer *This);
11673
11674 END_INTERFACE
11675} ID3D12RootSignatureDeserializerVtbl;
11676
11677interface ID3D12RootSignatureDeserializer {
11678 CONST_VTBL ID3D12RootSignatureDeserializerVtbl* lpVtbl;
11679};
11680
11681#ifdef COBJMACROS
11682#ifndef WIDL_C_INLINE_WRAPPERS
11683/*** IUnknown methods ***/
11684#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11685#define ID3D12RootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
11686#define ID3D12RootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
11687/*** ID3D12RootSignatureDeserializer methods ***/
11688#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) (This)->lpVtbl->GetRootSignatureDesc(This)
11689#else
11690/*** IUnknown methods ***/
11691static inline HRESULT ID3D12RootSignatureDeserializer_QueryInterface(ID3D12RootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
11692 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11693}
11694static inline ULONG ID3D12RootSignatureDeserializer_AddRef(ID3D12RootSignatureDeserializer* This) {
11695 return This->lpVtbl->AddRef(This);
11696}
11697static inline ULONG ID3D12RootSignatureDeserializer_Release(ID3D12RootSignatureDeserializer* This) {
11698 return This->lpVtbl->Release(This);
11699}
11700/*** ID3D12RootSignatureDeserializer methods ***/
11701static inline const D3D12_ROOT_SIGNATURE_DESC * ID3D12RootSignatureDeserializer_GetRootSignatureDesc(ID3D12RootSignatureDeserializer* This) {
11702 return This->lpVtbl->GetRootSignatureDesc(This);
11703}
11704#endif
11705#endif
11706
11707#endif
11708
11709
11710#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
11711
11712/*****************************************************************************
11713 * ID3D12VersionedRootSignatureDeserializer interface
11714 */
11715#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
11716#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
11717
11718DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0);
11719#if defined(__cplusplus) && !defined(CINTERFACE)
11720MIDL_INTERFACE("7f91ce67-090c-4bb7-b78e-ed8ff2e31da0")
11721ID3D12VersionedRootSignatureDeserializer : public IUnknown
11722{
11723 virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
11724 D3D_ROOT_SIGNATURE_VERSION version,
11725 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) = 0;
11726
11727 virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc(
11728 ) = 0;
11729
11730};
11731#ifdef __CRT_UUID_DECL
11732__CRT_UUID_DECL(ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0)
11733#endif
11734#else
11735typedef struct ID3D12VersionedRootSignatureDeserializerVtbl {
11736 BEGIN_INTERFACE
11737
11738 /*** IUnknown methods ***/
11739 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11740 ID3D12VersionedRootSignatureDeserializer *This,
11741 REFIID riid,
11742 void **ppvObject);
11743
11744 ULONG (STDMETHODCALLTYPE *AddRef)(
11745 ID3D12VersionedRootSignatureDeserializer *This);
11746
11747 ULONG (STDMETHODCALLTYPE *Release)(
11748 ID3D12VersionedRootSignatureDeserializer *This);
11749
11750 /*** ID3D12VersionedRootSignatureDeserializer methods ***/
11751 HRESULT (STDMETHODCALLTYPE *GetRootSignatureDescAtVersion)(
11752 ID3D12VersionedRootSignatureDeserializer *This,
11753 D3D_ROOT_SIGNATURE_VERSION version,
11754 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc);
11755
11756 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc)(
11757 ID3D12VersionedRootSignatureDeserializer *This);
11758
11759 END_INTERFACE
11760} ID3D12VersionedRootSignatureDeserializerVtbl;
11761
11762interface ID3D12VersionedRootSignatureDeserializer {
11763 CONST_VTBL ID3D12VersionedRootSignatureDeserializerVtbl* lpVtbl;
11764};
11765
11766#ifdef COBJMACROS
11767#ifndef WIDL_C_INLINE_WRAPPERS
11768/*** IUnknown methods ***/
11769#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11770#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
11771#define ID3D12VersionedRootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
11772/*** ID3D12VersionedRootSignatureDeserializer methods ***/
11773#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,version,desc) (This)->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc)
11774#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) (This)->lpVtbl->GetUnconvertedRootSignatureDesc(This)
11775#else
11776/*** IUnknown methods ***/
11777static inline HRESULT ID3D12VersionedRootSignatureDeserializer_QueryInterface(ID3D12VersionedRootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
11778 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11779}
11780static inline ULONG ID3D12VersionedRootSignatureDeserializer_AddRef(ID3D12VersionedRootSignatureDeserializer* This) {
11781 return This->lpVtbl->AddRef(This);
11782}
11783static inline ULONG ID3D12VersionedRootSignatureDeserializer_Release(ID3D12VersionedRootSignatureDeserializer* This) {
11784 return This->lpVtbl->Release(This);
11785}
11786/*** ID3D12VersionedRootSignatureDeserializer methods ***/
11787static inline HRESULT ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(ID3D12VersionedRootSignatureDeserializer* This,D3D_ROOT_SIGNATURE_VERSION version,const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) {
11788 return This->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc);
11789}
11790static inline const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(ID3D12VersionedRootSignatureDeserializer* This) {
11791 return This->lpVtbl->GetUnconvertedRootSignatureDesc(This);
11792}
11793#endif
11794#endif
11795
11796#endif
11797
11798
11799#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
11800
11801typedef enum D3D12_COMMAND_LIST_FLAGS {
11802 D3D12_COMMAND_LIST_FLAG_NONE = 0x0
11803} D3D12_COMMAND_LIST_FLAGS;
11804DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_FLAGS);
11805typedef enum D3D12_COMMAND_POOL_FLAGS {
11806 D3D12_COMMAND_POOL_FLAG_NONE = 0x0
11807} D3D12_COMMAND_POOL_FLAGS;
11808DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_POOL_FLAGS);
11809typedef enum D3D12_COMMAND_RECORDER_FLAGS {
11810 D3D12_COMMAND_RECORDER_FLAG_NONE = 0x0
11811} D3D12_COMMAND_RECORDER_FLAGS;
11812DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_RECORDER_FLAGS);
11813/*****************************************************************************
11814 * ID3D12Device4 interface
11815 */
11816#ifndef __ID3D12Device4_INTERFACE_DEFINED__
11817#define __ID3D12Device4_INTERFACE_DEFINED__
11818
11819DEFINE_GUID(IID_ID3D12Device4, 0xe865df17, 0xa9ee, 0x46f9, 0xa4,0x63, 0x30,0x98,0x31,0x5a,0xa2,0xe5);
11820#if defined(__cplusplus) && !defined(CINTERFACE)
11821MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5")
11822ID3D12Device4 : public ID3D12Device3
11823{
11824 virtual HRESULT STDMETHODCALLTYPE CreateCommandList1(
11825 UINT node_mask,
11826 D3D12_COMMAND_LIST_TYPE type,
11827 D3D12_COMMAND_LIST_FLAGS flags,
11828 REFIID riid,
11829 void **command_list) = 0;
11830
11831 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession(
11832 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
11833 REFIID riid,
11834 void **session) = 0;
11835
11836 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1(
11837 const D3D12_HEAP_PROPERTIES *heap_properties,
11838 D3D12_HEAP_FLAGS heap_flags,
11839 const D3D12_RESOURCE_DESC *desc,
11840 D3D12_RESOURCE_STATES initial_resource_state,
11841 const D3D12_CLEAR_VALUE *optimized_clear_value,
11842 ID3D12ProtectedResourceSession *protected_session,
11843 REFIID riid_resource,
11844 void **resource) = 0;
11845
11846 virtual HRESULT STDMETHODCALLTYPE CreateHeap1(
11847 const D3D12_HEAP_DESC *desc,
11848 ID3D12ProtectedResourceSession *protected_session,
11849 REFIID riid,
11850 void **heap) = 0;
11851
11852 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1(
11853 const D3D12_RESOURCE_DESC *desc,
11854 D3D12_RESOURCE_STATES initial_state,
11855 const D3D12_CLEAR_VALUE *optimized_clear_value,
11856 ID3D12ProtectedResourceSession *protected_session,
11857 REFIID riid,
11858 void **resource) = 0;
11859
11860#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
11861 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo1(
11862 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
11863 UINT visible_mask,
11864 UINT resource_descs_count,
11865 const D3D12_RESOURCE_DESC *resource_descs,
11866 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0;
11867 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
11868 UINT visible_mask,
11869 UINT resource_descs_count,
11870 const D3D12_RESOURCE_DESC *resource_descs,
11871 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1)
11872 {
11873 D3D12_RESOURCE_ALLOCATION_INFO __ret;
11874 return *GetResourceAllocationInfo1(&__ret, visible_mask, resource_descs_count, resource_descs, resource_allocation_info1);
11875 }
11876#else
11877 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
11878 UINT visible_mask,
11879 UINT resource_descs_count,
11880 const D3D12_RESOURCE_DESC *resource_descs,
11881 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0;
11882#endif
11883
11884};
11885#ifdef __CRT_UUID_DECL
11886__CRT_UUID_DECL(ID3D12Device4, 0xe865df17, 0xa9ee, 0x46f9, 0xa4,0x63, 0x30,0x98,0x31,0x5a,0xa2,0xe5)
11887#endif
11888#else
11889typedef struct ID3D12Device4Vtbl {
11890 BEGIN_INTERFACE
11891
11892 /*** IUnknown methods ***/
11893 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11894 ID3D12Device4 *This,
11895 REFIID riid,
11896 void **ppvObject);
11897
11898 ULONG (STDMETHODCALLTYPE *AddRef)(
11899 ID3D12Device4 *This);
11900
11901 ULONG (STDMETHODCALLTYPE *Release)(
11902 ID3D12Device4 *This);
11903
11904 /*** ID3D12Object methods ***/
11905 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
11906 ID3D12Device4 *This,
11907 REFGUID guid,
11908 UINT *data_size,
11909 void *data);
11910
11911 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
11912 ID3D12Device4 *This,
11913 REFGUID guid,
11914 UINT data_size,
11915 const void *data);
11916
11917 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
11918 ID3D12Device4 *This,
11919 REFGUID guid,
11920 const IUnknown *data);
11921
11922 HRESULT (STDMETHODCALLTYPE *SetName)(
11923 ID3D12Device4 *This,
11924 const WCHAR *name);
11925
11926 /*** ID3D12Device methods ***/
11927 UINT (STDMETHODCALLTYPE *GetNodeCount)(
11928 ID3D12Device4 *This);
11929
11930 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
11931 ID3D12Device4 *This,
11932 const D3D12_COMMAND_QUEUE_DESC *desc,
11933 REFIID riid,
11934 void **command_queue);
11935
11936 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
11937 ID3D12Device4 *This,
11938 D3D12_COMMAND_LIST_TYPE type,
11939 REFIID riid,
11940 void **command_allocator);
11941
11942 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
11943 ID3D12Device4 *This,
11944 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
11945 REFIID riid,
11946 void **pipeline_state);
11947
11948 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
11949 ID3D12Device4 *This,
11950 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
11951 REFIID riid,
11952 void **pipeline_state);
11953
11954 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
11955 ID3D12Device4 *This,
11956 UINT node_mask,
11957 D3D12_COMMAND_LIST_TYPE type,
11958 ID3D12CommandAllocator *command_allocator,
11959 ID3D12PipelineState *initial_pipeline_state,
11960 REFIID riid,
11961 void **command_list);
11962
11963 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
11964 ID3D12Device4 *This,
11965 D3D12_FEATURE feature,
11966 void *feature_data,
11967 UINT feature_data_size);
11968
11969 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
11970 ID3D12Device4 *This,
11971 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
11972 REFIID riid,
11973 void **descriptor_heap);
11974
11975 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
11976 ID3D12Device4 *This,
11977 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
11978
11979 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
11980 ID3D12Device4 *This,
11981 UINT node_mask,
11982 const void *bytecode,
11983 SIZE_T bytecode_length,
11984 REFIID riid,
11985 void **root_signature);
11986
11987 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
11988 ID3D12Device4 *This,
11989 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
11990 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11991
11992 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
11993 ID3D12Device4 *This,
11994 ID3D12Resource *resource,
11995 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
11996 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11997
11998 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
11999 ID3D12Device4 *This,
12000 ID3D12Resource *resource,
12001 ID3D12Resource *counter_resource,
12002 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
12003 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12004
12005 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
12006 ID3D12Device4 *This,
12007 ID3D12Resource *resource,
12008 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
12009 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12010
12011 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
12012 ID3D12Device4 *This,
12013 ID3D12Resource *resource,
12014 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
12015 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12016
12017 void (STDMETHODCALLTYPE *CreateSampler)(
12018 ID3D12Device4 *This,
12019 const D3D12_SAMPLER_DESC *desc,
12020 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12021
12022 void (STDMETHODCALLTYPE *CopyDescriptors)(
12023 ID3D12Device4 *This,
12024 UINT dst_descriptor_range_count,
12025 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
12026 const UINT *dst_descriptor_range_sizes,
12027 UINT src_descriptor_range_count,
12028 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
12029 const UINT *src_descriptor_range_sizes,
12030 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
12031
12032 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
12033 ID3D12Device4 *This,
12034 UINT descriptor_count,
12035 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
12036 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
12037 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
12038
12039 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
12040 ID3D12Device4 *This,
12041 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
12042 UINT visible_mask,
12043 UINT reource_desc_count,
12044 const D3D12_RESOURCE_DESC *resource_descs);
12045
12046 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
12047 ID3D12Device4 *This,
12048 D3D12_HEAP_PROPERTIES *__ret,
12049 UINT node_mask,
12050 D3D12_HEAP_TYPE heap_type);
12051
12052 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
12053 ID3D12Device4 *This,
12054 const D3D12_HEAP_PROPERTIES *heap_properties,
12055 D3D12_HEAP_FLAGS heap_flags,
12056 const D3D12_RESOURCE_DESC *desc,
12057 D3D12_RESOURCE_STATES initial_state,
12058 const D3D12_CLEAR_VALUE *optimized_clear_value,
12059 REFIID riid,
12060 void **resource);
12061
12062 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
12063 ID3D12Device4 *This,
12064 const D3D12_HEAP_DESC *desc,
12065 REFIID riid,
12066 void **heap);
12067
12068 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
12069 ID3D12Device4 *This,
12070 ID3D12Heap *heap,
12071 UINT64 heap_offset,
12072 const D3D12_RESOURCE_DESC *desc,
12073 D3D12_RESOURCE_STATES initial_state,
12074 const D3D12_CLEAR_VALUE *optimized_clear_value,
12075 REFIID riid,
12076 void **resource);
12077
12078 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
12079 ID3D12Device4 *This,
12080 const D3D12_RESOURCE_DESC *desc,
12081 D3D12_RESOURCE_STATES initial_state,
12082 const D3D12_CLEAR_VALUE *optimized_clear_value,
12083 REFIID riid,
12084 void **resource);
12085
12086 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
12087 ID3D12Device4 *This,
12088 ID3D12DeviceChild *object,
12089 const SECURITY_ATTRIBUTES *attributes,
12090 DWORD access,
12091 const WCHAR *name,
12092 HANDLE *handle);
12093
12094 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
12095 ID3D12Device4 *This,
12096 HANDLE handle,
12097 REFIID riid,
12098 void **object);
12099
12100 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
12101 ID3D12Device4 *This,
12102 const WCHAR *name,
12103 DWORD access,
12104 HANDLE *handle);
12105
12106 HRESULT (STDMETHODCALLTYPE *MakeResident)(
12107 ID3D12Device4 *This,
12108 UINT object_count,
12109 ID3D12Pageable *const *objects);
12110
12111 HRESULT (STDMETHODCALLTYPE *Evict)(
12112 ID3D12Device4 *This,
12113 UINT object_count,
12114 ID3D12Pageable *const *objects);
12115
12116 HRESULT (STDMETHODCALLTYPE *CreateFence)(
12117 ID3D12Device4 *This,
12118 UINT64 initial_value,
12119 D3D12_FENCE_FLAGS flags,
12120 REFIID riid,
12121 void **fence);
12122
12123 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
12124 ID3D12Device4 *This);
12125
12126 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
12127 ID3D12Device4 *This,
12128 const D3D12_RESOURCE_DESC *desc,
12129 UINT first_sub_resource,
12130 UINT sub_resource_count,
12131 UINT64 base_offset,
12132 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
12133 UINT *row_count,
12134 UINT64 *row_size,
12135 UINT64 *total_bytes);
12136
12137 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
12138 ID3D12Device4 *This,
12139 const D3D12_QUERY_HEAP_DESC *desc,
12140 REFIID riid,
12141 void **heap);
12142
12143 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
12144 ID3D12Device4 *This,
12145 WINBOOL enable);
12146
12147 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
12148 ID3D12Device4 *This,
12149 const D3D12_COMMAND_SIGNATURE_DESC *desc,
12150 ID3D12RootSignature *root_signature,
12151 REFIID riid,
12152 void **command_signature);
12153
12154 void (STDMETHODCALLTYPE *GetResourceTiling)(
12155 ID3D12Device4 *This,
12156 ID3D12Resource *resource,
12157 UINT *total_tile_count,
12158 D3D12_PACKED_MIP_INFO *packed_mip_info,
12159 D3D12_TILE_SHAPE *standard_tile_shape,
12160 UINT *sub_resource_tiling_count,
12161 UINT first_sub_resource_tiling,
12162 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
12163
12164 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
12165 ID3D12Device4 *This,
12166 LUID *__ret);
12167
12168 /*** ID3D12Device1 methods ***/
12169 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
12170 ID3D12Device4 *This,
12171 const void *blob,
12172 SIZE_T blob_size,
12173 REFIID iid,
12174 void **lib);
12175
12176 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
12177 ID3D12Device4 *This,
12178 ID3D12Fence *const *fences,
12179 const UINT64 *values,
12180 UINT fence_count,
12181 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
12182 HANDLE event);
12183
12184 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
12185 ID3D12Device4 *This,
12186 UINT object_count,
12187 ID3D12Pageable *const *objects,
12188 const D3D12_RESIDENCY_PRIORITY *priorities);
12189
12190 /*** ID3D12Device2 methods ***/
12191 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
12192 ID3D12Device4 *This,
12193 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
12194 REFIID riid,
12195 void **pipeline_state);
12196
12197 /*** ID3D12Device3 methods ***/
12198 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
12199 ID3D12Device4 *This,
12200 const void *address,
12201 REFIID riid,
12202 void **heap);
12203
12204 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
12205 ID3D12Device4 *This,
12206 HANDLE file_mapping,
12207 REFIID riid,
12208 void **heap);
12209
12210 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
12211 ID3D12Device4 *This,
12212 D3D12_RESIDENCY_FLAGS flags,
12213 UINT num_objects,
12214 ID3D12Pageable *const *objects,
12215 ID3D12Fence *fence,
12216 UINT64 fence_value);
12217
12218 /*** ID3D12Device4 methods ***/
12219 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
12220 ID3D12Device4 *This,
12221 UINT node_mask,
12222 D3D12_COMMAND_LIST_TYPE type,
12223 D3D12_COMMAND_LIST_FLAGS flags,
12224 REFIID riid,
12225 void **command_list);
12226
12227 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
12228 ID3D12Device4 *This,
12229 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
12230 REFIID riid,
12231 void **session);
12232
12233 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
12234 ID3D12Device4 *This,
12235 const D3D12_HEAP_PROPERTIES *heap_properties,
12236 D3D12_HEAP_FLAGS heap_flags,
12237 const D3D12_RESOURCE_DESC *desc,
12238 D3D12_RESOURCE_STATES initial_resource_state,
12239 const D3D12_CLEAR_VALUE *optimized_clear_value,
12240 ID3D12ProtectedResourceSession *protected_session,
12241 REFIID riid_resource,
12242 void **resource);
12243
12244 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
12245 ID3D12Device4 *This,
12246 const D3D12_HEAP_DESC *desc,
12247 ID3D12ProtectedResourceSession *protected_session,
12248 REFIID riid,
12249 void **heap);
12250
12251 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
12252 ID3D12Device4 *This,
12253 const D3D12_RESOURCE_DESC *desc,
12254 D3D12_RESOURCE_STATES initial_state,
12255 const D3D12_CLEAR_VALUE *optimized_clear_value,
12256 ID3D12ProtectedResourceSession *protected_session,
12257 REFIID riid,
12258 void **resource);
12259
12260 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
12261 ID3D12Device4 *This,
12262 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
12263 UINT visible_mask,
12264 UINT resource_descs_count,
12265 const D3D12_RESOURCE_DESC *resource_descs,
12266 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
12267
12268 END_INTERFACE
12269} ID3D12Device4Vtbl;
12270
12271interface ID3D12Device4 {
12272 CONST_VTBL ID3D12Device4Vtbl* lpVtbl;
12273};
12274
12275#ifdef COBJMACROS
12276#ifndef WIDL_C_INLINE_WRAPPERS
12277/*** IUnknown methods ***/
12278#define ID3D12Device4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12279#define ID3D12Device4_AddRef(This) (This)->lpVtbl->AddRef(This)
12280#define ID3D12Device4_Release(This) (This)->lpVtbl->Release(This)
12281/*** ID3D12Object methods ***/
12282#define ID3D12Device4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
12283#define ID3D12Device4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
12284#define ID3D12Device4_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
12285#define ID3D12Device4_SetName(This,name) (This)->lpVtbl->SetName(This,name)
12286/*** ID3D12Device methods ***/
12287#define ID3D12Device4_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
12288#define ID3D12Device4_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
12289#define ID3D12Device4_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
12290#define ID3D12Device4_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
12291#define ID3D12Device4_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
12292#define ID3D12Device4_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
12293#define ID3D12Device4_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
12294#define ID3D12Device4_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
12295#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
12296#define ID3D12Device4_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
12297#define ID3D12Device4_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
12298#define ID3D12Device4_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
12299#define ID3D12Device4_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
12300#define ID3D12Device4_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
12301#define ID3D12Device4_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
12302#define ID3D12Device4_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
12303#define ID3D12Device4_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
12304#define ID3D12Device4_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
12305#define ID3D12Device4_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device4_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12306#define ID3D12Device4_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device4_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12307#define ID3D12Device4_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
12308#define ID3D12Device4_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
12309#define ID3D12Device4_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
12310#define ID3D12Device4_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
12311#define ID3D12Device4_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
12312#define ID3D12Device4_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
12313#define ID3D12Device4_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
12314#define ID3D12Device4_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
12315#define ID3D12Device4_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
12316#define ID3D12Device4_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
12317#define ID3D12Device4_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
12318#define ID3D12Device4_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
12319#define ID3D12Device4_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
12320#define ID3D12Device4_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
12321#define ID3D12Device4_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
12322#define ID3D12Device4_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
12323#define ID3D12Device4_GetAdapterLuid(This) ID3D12Device4_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12324/*** ID3D12Device1 methods ***/
12325#define ID3D12Device4_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
12326#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
12327#define ID3D12Device4_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
12328/*** ID3D12Device2 methods ***/
12329#define ID3D12Device4_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
12330/*** ID3D12Device3 methods ***/
12331#define ID3D12Device4_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
12332#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
12333#define ID3D12Device4_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
12334/*** ID3D12Device4 methods ***/
12335#define ID3D12Device4_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
12336#define ID3D12Device4_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
12337#define ID3D12Device4_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
12338#define ID3D12Device4_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
12339#define ID3D12Device4_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource)
12340#define ID3D12Device4_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device4_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12341#else
12342/*** IUnknown methods ***/
12343static inline HRESULT ID3D12Device4_QueryInterface(ID3D12Device4* This,REFIID riid,void **ppvObject) {
12344 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12345}
12346static inline ULONG ID3D12Device4_AddRef(ID3D12Device4* This) {
12347 return This->lpVtbl->AddRef(This);
12348}
12349static inline ULONG ID3D12Device4_Release(ID3D12Device4* This) {
12350 return This->lpVtbl->Release(This);
12351}
12352/*** ID3D12Object methods ***/
12353static inline HRESULT ID3D12Device4_GetPrivateData(ID3D12Device4* This,REFGUID guid,UINT *data_size,void *data) {
12354 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
12355}
12356static inline HRESULT ID3D12Device4_SetPrivateData(ID3D12Device4* This,REFGUID guid,UINT data_size,const void *data) {
12357 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
12358}
12359static inline HRESULT ID3D12Device4_SetPrivateDataInterface(ID3D12Device4* This,REFGUID guid,const IUnknown *data) {
12360 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
12361}
12362static inline HRESULT ID3D12Device4_SetName(ID3D12Device4* This,const WCHAR *name) {
12363 return This->lpVtbl->SetName(This,name);
12364}
12365/*** ID3D12Device methods ***/
12366static inline UINT ID3D12Device4_GetNodeCount(ID3D12Device4* This) {
12367 return This->lpVtbl->GetNodeCount(This);
12368}
12369static inline HRESULT ID3D12Device4_CreateCommandQueue(ID3D12Device4* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
12370 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
12371}
12372static inline HRESULT ID3D12Device4_CreateCommandAllocator(ID3D12Device4* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
12373 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
12374}
12375static inline HRESULT ID3D12Device4_CreateGraphicsPipelineState(ID3D12Device4* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
12376 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
12377}
12378static inline HRESULT ID3D12Device4_CreateComputePipelineState(ID3D12Device4* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
12379 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
12380}
12381static inline HRESULT ID3D12Device4_CreateCommandList(ID3D12Device4* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
12382 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
12383}
12384static inline HRESULT ID3D12Device4_CheckFeatureSupport(ID3D12Device4* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
12385 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
12386}
12387static inline HRESULT ID3D12Device4_CreateDescriptorHeap(ID3D12Device4* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
12388 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
12389}
12390static inline UINT ID3D12Device4_GetDescriptorHandleIncrementSize(ID3D12Device4* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
12391 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
12392}
12393static inline HRESULT ID3D12Device4_CreateRootSignature(ID3D12Device4* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
12394 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
12395}
12396static inline void ID3D12Device4_CreateConstantBufferView(ID3D12Device4* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12397 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
12398}
12399static inline void ID3D12Device4_CreateShaderResourceView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12400 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
12401}
12402static inline void ID3D12Device4_CreateUnorderedAccessView(ID3D12Device4* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12403 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
12404}
12405static inline void ID3D12Device4_CreateRenderTargetView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12406 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
12407}
12408static inline void ID3D12Device4_CreateDepthStencilView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12409 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
12410}
12411static inline void ID3D12Device4_CreateSampler(ID3D12Device4* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12412 This->lpVtbl->CreateSampler(This,desc,descriptor);
12413}
12414static inline void ID3D12Device4_CopyDescriptors(ID3D12Device4* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
12415 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
12416}
12417static inline void ID3D12Device4_CopyDescriptorsSimple(ID3D12Device4* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
12418 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
12419}
12420static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device4_GetResourceAllocationInfo(ID3D12Device4* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
12421 D3D12_RESOURCE_ALLOCATION_INFO __ret;
12422 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
12423}
12424static inline D3D12_HEAP_PROPERTIES ID3D12Device4_GetCustomHeapProperties(ID3D12Device4* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
12425 D3D12_HEAP_PROPERTIES __ret;
12426 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
12427}
12428static inline HRESULT ID3D12Device4_CreateCommittedResource(ID3D12Device4* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
12429 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
12430}
12431static inline HRESULT ID3D12Device4_CreateHeap(ID3D12Device4* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
12432 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
12433}
12434static inline HRESULT ID3D12Device4_CreatePlacedResource(ID3D12Device4* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
12435 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
12436}
12437static inline HRESULT ID3D12Device4_CreateReservedResource(ID3D12Device4* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
12438 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
12439}
12440static inline HRESULT ID3D12Device4_CreateSharedHandle(ID3D12Device4* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
12441 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
12442}
12443static inline HRESULT ID3D12Device4_OpenSharedHandle(ID3D12Device4* This,HANDLE handle,REFIID riid,void **object) {
12444 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
12445}
12446static inline HRESULT ID3D12Device4_OpenSharedHandleByName(ID3D12Device4* This,const WCHAR *name,DWORD access,HANDLE *handle) {
12447 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
12448}
12449static inline HRESULT ID3D12Device4_MakeResident(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects) {
12450 return This->lpVtbl->MakeResident(This,object_count,objects);
12451}
12452static inline HRESULT ID3D12Device4_Evict(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects) {
12453 return This->lpVtbl->Evict(This,object_count,objects);
12454}
12455static inline HRESULT ID3D12Device4_CreateFence(ID3D12Device4* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
12456 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
12457}
12458static inline HRESULT ID3D12Device4_GetDeviceRemovedReason(ID3D12Device4* This) {
12459 return This->lpVtbl->GetDeviceRemovedReason(This);
12460}
12461static inline void ID3D12Device4_GetCopyableFootprints(ID3D12Device4* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
12462 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
12463}
12464static inline HRESULT ID3D12Device4_CreateQueryHeap(ID3D12Device4* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
12465 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
12466}
12467static inline HRESULT ID3D12Device4_SetStablePowerState(ID3D12Device4* This,WINBOOL enable) {
12468 return This->lpVtbl->SetStablePowerState(This,enable);
12469}
12470static inline HRESULT ID3D12Device4_CreateCommandSignature(ID3D12Device4* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
12471 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
12472}
12473static inline void ID3D12Device4_GetResourceTiling(ID3D12Device4* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
12474 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
12475}
12476static inline LUID ID3D12Device4_GetAdapterLuid(ID3D12Device4* This) {
12477 LUID __ret;
12478 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
12479}
12480/*** ID3D12Device1 methods ***/
12481static inline HRESULT ID3D12Device4_CreatePipelineLibrary(ID3D12Device4* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
12482 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
12483}
12484static inline HRESULT ID3D12Device4_SetEventOnMultipleFenceCompletion(ID3D12Device4* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
12485 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
12486}
12487static inline HRESULT ID3D12Device4_SetResidencyPriority(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
12488 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
12489}
12490/*** ID3D12Device2 methods ***/
12491static inline HRESULT ID3D12Device4_CreatePipelineState(ID3D12Device4* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
12492 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
12493}
12494/*** ID3D12Device3 methods ***/
12495static inline HRESULT ID3D12Device4_OpenExistingHeapFromAddress(ID3D12Device4* This,const void *address,REFIID riid,void **heap) {
12496 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
12497}
12498static inline HRESULT ID3D12Device4_OpenExistingHeapFromFileMapping(ID3D12Device4* This,HANDLE file_mapping,REFIID riid,void **heap) {
12499 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
12500}
12501static inline HRESULT ID3D12Device4_EnqueueMakeResident(ID3D12Device4* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
12502 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
12503}
12504/*** ID3D12Device4 methods ***/
12505static inline HRESULT ID3D12Device4_CreateCommandList1(ID3D12Device4* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
12506 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
12507}
12508static inline HRESULT ID3D12Device4_CreateProtectedResourceSession(ID3D12Device4* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
12509 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
12510}
12511static inline HRESULT ID3D12Device4_CreateCommittedResource1(ID3D12Device4* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
12512 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
12513}
12514static inline HRESULT ID3D12Device4_CreateHeap1(ID3D12Device4* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
12515 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
12516}
12517static inline HRESULT ID3D12Device4_CreateReservedResource1(ID3D12Device4* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) {
12518 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
12519}
12520static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device4_GetResourceAllocationInfo1(ID3D12Device4* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
12521 D3D12_RESOURCE_ALLOCATION_INFO __ret;
12522 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
12523}
12524#endif
12525#endif
12526
12527#endif
12528
12529
12530#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
12531
12532typedef enum D3D12_LIFETIME_STATE {
12533 D3D12_LIFETIME_STATE_IN_USE = 0x0,
12534 D3D12_LIFETIME_STATE_NOT_IN_USE = 0x1
12535} D3D12_LIFETIME_STATE;
12536/*****************************************************************************
12537 * ID3D12LifetimeOwner interface
12538 */
12539#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__
12540#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__
12541
12542DEFINE_GUID(IID_ID3D12LifetimeOwner, 0xe667af9f, 0xcd56, 0x4f46, 0x83,0xce, 0x03,0x2e,0x59,0x5d,0x70,0xa8);
12543#if defined(__cplusplus) && !defined(CINTERFACE)
12544MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8")
12545ID3D12LifetimeOwner : public IUnknown
12546{
12547 virtual void STDMETHODCALLTYPE LifetimeStateUpdated(
12548 D3D12_LIFETIME_STATE NewState) = 0;
12549
12550};
12551#ifdef __CRT_UUID_DECL
12552__CRT_UUID_DECL(ID3D12LifetimeOwner, 0xe667af9f, 0xcd56, 0x4f46, 0x83,0xce, 0x03,0x2e,0x59,0x5d,0x70,0xa8)
12553#endif
12554#else
12555typedef struct ID3D12LifetimeOwnerVtbl {
12556 BEGIN_INTERFACE
12557
12558 /*** IUnknown methods ***/
12559 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12560 ID3D12LifetimeOwner *This,
12561 REFIID riid,
12562 void **ppvObject);
12563
12564 ULONG (STDMETHODCALLTYPE *AddRef)(
12565 ID3D12LifetimeOwner *This);
12566
12567 ULONG (STDMETHODCALLTYPE *Release)(
12568 ID3D12LifetimeOwner *This);
12569
12570 /*** ID3D12LifetimeOwner methods ***/
12571 void (STDMETHODCALLTYPE *LifetimeStateUpdated)(
12572 ID3D12LifetimeOwner *This,
12573 D3D12_LIFETIME_STATE NewState);
12574
12575 END_INTERFACE
12576} ID3D12LifetimeOwnerVtbl;
12577
12578interface ID3D12LifetimeOwner {
12579 CONST_VTBL ID3D12LifetimeOwnerVtbl* lpVtbl;
12580};
12581
12582#ifdef COBJMACROS
12583#ifndef WIDL_C_INLINE_WRAPPERS
12584/*** IUnknown methods ***/
12585#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12586#define ID3D12LifetimeOwner_AddRef(This) (This)->lpVtbl->AddRef(This)
12587#define ID3D12LifetimeOwner_Release(This) (This)->lpVtbl->Release(This)
12588/*** ID3D12LifetimeOwner methods ***/
12589#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) (This)->lpVtbl->LifetimeStateUpdated(This,NewState)
12590#else
12591/*** IUnknown methods ***/
12592static inline HRESULT ID3D12LifetimeOwner_QueryInterface(ID3D12LifetimeOwner* This,REFIID riid,void **ppvObject) {
12593 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12594}
12595static inline ULONG ID3D12LifetimeOwner_AddRef(ID3D12LifetimeOwner* This) {
12596 return This->lpVtbl->AddRef(This);
12597}
12598static inline ULONG ID3D12LifetimeOwner_Release(ID3D12LifetimeOwner* This) {
12599 return This->lpVtbl->Release(This);
12600}
12601/*** ID3D12LifetimeOwner methods ***/
12602static inline void ID3D12LifetimeOwner_LifetimeStateUpdated(ID3D12LifetimeOwner* This,D3D12_LIFETIME_STATE NewState) {
12603 This->lpVtbl->LifetimeStateUpdated(This,NewState);
12604}
12605#endif
12606#endif
12607
12608#endif
12609
12610
12611#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */
12612
12613/*****************************************************************************
12614 * ID3D12SwapChainAssistant interface
12615 */
12616#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
12617#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
12618
12619DEFINE_GUID(IID_ID3D12SwapChainAssistant, 0xf1df64b6, 0x57fd, 0x49cd, 0x88,0x07, 0xc0,0xeb,0x88,0xb4,0x5c,0x8f);
12620#if defined(__cplusplus) && !defined(CINTERFACE)
12621MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f")
12622ID3D12SwapChainAssistant : public IUnknown
12623{
12624#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
12625 virtual LUID* STDMETHODCALLTYPE GetLUID(
12626 LUID *__ret) = 0;
12627 LUID STDMETHODCALLTYPE GetLUID(
12628 )
12629 {
12630 LUID __ret;
12631 return *GetLUID(&__ret);
12632 }
12633#else
12634 virtual LUID STDMETHODCALLTYPE GetLUID(
12635 ) = 0;
12636#endif
12637
12638 virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject(
12639 REFIID riid,
12640 void **ppv) = 0;
12641
12642 virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue(
12643 REFIID riid_resource,
12644 void **resource,
12645 REFIID riid_queue,
12646 void **queue) = 0;
12647
12648 virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync(
12649 ) = 0;
12650
12651};
12652#ifdef __CRT_UUID_DECL
12653__CRT_UUID_DECL(ID3D12SwapChainAssistant, 0xf1df64b6, 0x57fd, 0x49cd, 0x88,0x07, 0xc0,0xeb,0x88,0xb4,0x5c,0x8f)
12654#endif
12655#else
12656typedef struct ID3D12SwapChainAssistantVtbl {
12657 BEGIN_INTERFACE
12658
12659 /*** IUnknown methods ***/
12660 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12661 ID3D12SwapChainAssistant *This,
12662 REFIID riid,
12663 void **ppvObject);
12664
12665 ULONG (STDMETHODCALLTYPE *AddRef)(
12666 ID3D12SwapChainAssistant *This);
12667
12668 ULONG (STDMETHODCALLTYPE *Release)(
12669 ID3D12SwapChainAssistant *This);
12670
12671 /*** ID3D12SwapChainAssistant methods ***/
12672 LUID * (STDMETHODCALLTYPE *GetLUID)(
12673 ID3D12SwapChainAssistant *This,
12674 LUID *__ret);
12675
12676 HRESULT (STDMETHODCALLTYPE *GetSwapChainObject)(
12677 ID3D12SwapChainAssistant *This,
12678 REFIID riid,
12679 void **ppv);
12680
12681 HRESULT (STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue)(
12682 ID3D12SwapChainAssistant *This,
12683 REFIID riid_resource,
12684 void **resource,
12685 REFIID riid_queue,
12686 void **queue);
12687
12688 HRESULT (STDMETHODCALLTYPE *InsertImplicitSync)(
12689 ID3D12SwapChainAssistant *This);
12690
12691 END_INTERFACE
12692} ID3D12SwapChainAssistantVtbl;
12693
12694interface ID3D12SwapChainAssistant {
12695 CONST_VTBL ID3D12SwapChainAssistantVtbl* lpVtbl;
12696};
12697
12698#ifdef COBJMACROS
12699#ifndef WIDL_C_INLINE_WRAPPERS
12700/*** IUnknown methods ***/
12701#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12702#define ID3D12SwapChainAssistant_AddRef(This) (This)->lpVtbl->AddRef(This)
12703#define ID3D12SwapChainAssistant_Release(This) (This)->lpVtbl->Release(This)
12704/*** ID3D12SwapChainAssistant methods ***/
12705#define ID3D12SwapChainAssistant_GetLUID(This) ID3D12SwapChainAssistant_GetLUID_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12706#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) (This)->lpVtbl->GetSwapChainObject(This,riid,ppv)
12707#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue) (This)->lpVtbl->GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue)
12708#define ID3D12SwapChainAssistant_InsertImplicitSync(This) (This)->lpVtbl->InsertImplicitSync(This)
12709#else
12710/*** IUnknown methods ***/
12711static inline HRESULT ID3D12SwapChainAssistant_QueryInterface(ID3D12SwapChainAssistant* This,REFIID riid,void **ppvObject) {
12712 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12713}
12714static inline ULONG ID3D12SwapChainAssistant_AddRef(ID3D12SwapChainAssistant* This) {
12715 return This->lpVtbl->AddRef(This);
12716}
12717static inline ULONG ID3D12SwapChainAssistant_Release(ID3D12SwapChainAssistant* This) {
12718 return This->lpVtbl->Release(This);
12719}
12720/*** ID3D12SwapChainAssistant methods ***/
12721static inline LUID ID3D12SwapChainAssistant_GetLUID(ID3D12SwapChainAssistant* This) {
12722 LUID __ret;
12723 return *This->lpVtbl->GetLUID(This,&__ret);
12724}
12725static inline HRESULT ID3D12SwapChainAssistant_GetSwapChainObject(ID3D12SwapChainAssistant* This,REFIID riid,void **ppv) {
12726 return This->lpVtbl->GetSwapChainObject(This,riid,ppv);
12727}
12728static inline HRESULT ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(ID3D12SwapChainAssistant* This,REFIID riid_resource,void **resource,REFIID riid_queue,void **queue) {
12729 return This->lpVtbl->GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue);
12730}
12731static inline HRESULT ID3D12SwapChainAssistant_InsertImplicitSync(ID3D12SwapChainAssistant* This) {
12732 return This->lpVtbl->InsertImplicitSync(This);
12733}
12734#endif
12735#endif
12736
12737#endif
12738
12739
12740#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
12741
12742/*****************************************************************************
12743 * ID3D12LifetimeTracker interface
12744 */
12745#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__
12746#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__
12747
12748DEFINE_GUID(IID_ID3D12LifetimeTracker, 0x3fd03d36, 0x4eb1, 0x424a, 0xa5,0x82, 0x49,0x4e,0xcb,0x8b,0xa8,0x13);
12749#if defined(__cplusplus) && !defined(CINTERFACE)
12750MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813")
12751ID3D12LifetimeTracker : public ID3D12DeviceChild
12752{
12753 virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject(
12754 ID3D12DeviceChild *object) = 0;
12755
12756};
12757#ifdef __CRT_UUID_DECL
12758__CRT_UUID_DECL(ID3D12LifetimeTracker, 0x3fd03d36, 0x4eb1, 0x424a, 0xa5,0x82, 0x49,0x4e,0xcb,0x8b,0xa8,0x13)
12759#endif
12760#else
12761typedef struct ID3D12LifetimeTrackerVtbl {
12762 BEGIN_INTERFACE
12763
12764 /*** IUnknown methods ***/
12765 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12766 ID3D12LifetimeTracker *This,
12767 REFIID riid,
12768 void **ppvObject);
12769
12770 ULONG (STDMETHODCALLTYPE *AddRef)(
12771 ID3D12LifetimeTracker *This);
12772
12773 ULONG (STDMETHODCALLTYPE *Release)(
12774 ID3D12LifetimeTracker *This);
12775
12776 /*** ID3D12Object methods ***/
12777 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
12778 ID3D12LifetimeTracker *This,
12779 REFGUID guid,
12780 UINT *data_size,
12781 void *data);
12782
12783 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
12784 ID3D12LifetimeTracker *This,
12785 REFGUID guid,
12786 UINT data_size,
12787 const void *data);
12788
12789 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
12790 ID3D12LifetimeTracker *This,
12791 REFGUID guid,
12792 const IUnknown *data);
12793
12794 HRESULT (STDMETHODCALLTYPE *SetName)(
12795 ID3D12LifetimeTracker *This,
12796 const WCHAR *name);
12797
12798 /*** ID3D12DeviceChild methods ***/
12799 HRESULT (STDMETHODCALLTYPE *GetDevice)(
12800 ID3D12LifetimeTracker *This,
12801 REFIID riid,
12802 void **device);
12803
12804 /*** ID3D12LifetimeTracker methods ***/
12805 HRESULT (STDMETHODCALLTYPE *DestroyOwnedObject)(
12806 ID3D12LifetimeTracker *This,
12807 ID3D12DeviceChild *object);
12808
12809 END_INTERFACE
12810} ID3D12LifetimeTrackerVtbl;
12811
12812interface ID3D12LifetimeTracker {
12813 CONST_VTBL ID3D12LifetimeTrackerVtbl* lpVtbl;
12814};
12815
12816#ifdef COBJMACROS
12817#ifndef WIDL_C_INLINE_WRAPPERS
12818/*** IUnknown methods ***/
12819#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12820#define ID3D12LifetimeTracker_AddRef(This) (This)->lpVtbl->AddRef(This)
12821#define ID3D12LifetimeTracker_Release(This) (This)->lpVtbl->Release(This)
12822/*** ID3D12Object methods ***/
12823#define ID3D12LifetimeTracker_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
12824#define ID3D12LifetimeTracker_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
12825#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
12826#define ID3D12LifetimeTracker_SetName(This,name) (This)->lpVtbl->SetName(This,name)
12827/*** ID3D12DeviceChild methods ***/
12828#define ID3D12LifetimeTracker_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
12829/*** ID3D12LifetimeTracker methods ***/
12830#define ID3D12LifetimeTracker_DestroyOwnedObject(This,object) (This)->lpVtbl->DestroyOwnedObject(This,object)
12831#else
12832/*** IUnknown methods ***/
12833static inline HRESULT ID3D12LifetimeTracker_QueryInterface(ID3D12LifetimeTracker* This,REFIID riid,void **ppvObject) {
12834 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12835}
12836static inline ULONG ID3D12LifetimeTracker_AddRef(ID3D12LifetimeTracker* This) {
12837 return This->lpVtbl->AddRef(This);
12838}
12839static inline ULONG ID3D12LifetimeTracker_Release(ID3D12LifetimeTracker* This) {
12840 return This->lpVtbl->Release(This);
12841}
12842/*** ID3D12Object methods ***/
12843static inline HRESULT ID3D12LifetimeTracker_GetPrivateData(ID3D12LifetimeTracker* This,REFGUID guid,UINT *data_size,void *data) {
12844 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
12845}
12846static inline HRESULT ID3D12LifetimeTracker_SetPrivateData(ID3D12LifetimeTracker* This,REFGUID guid,UINT data_size,const void *data) {
12847 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
12848}
12849static inline HRESULT ID3D12LifetimeTracker_SetPrivateDataInterface(ID3D12LifetimeTracker* This,REFGUID guid,const IUnknown *data) {
12850 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
12851}
12852static inline HRESULT ID3D12LifetimeTracker_SetName(ID3D12LifetimeTracker* This,const WCHAR *name) {
12853 return This->lpVtbl->SetName(This,name);
12854}
12855/*** ID3D12DeviceChild methods ***/
12856static inline HRESULT ID3D12LifetimeTracker_GetDevice(ID3D12LifetimeTracker* This,REFIID riid,void **device) {
12857 return This->lpVtbl->GetDevice(This,riid,device);
12858}
12859/*** ID3D12LifetimeTracker methods ***/
12860static inline HRESULT ID3D12LifetimeTracker_DestroyOwnedObject(ID3D12LifetimeTracker* This,ID3D12DeviceChild *object) {
12861 return This->lpVtbl->DestroyOwnedObject(This,object);
12862}
12863#endif
12864#endif
12865
12866#endif
12867
12868
12869#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */
12870
12871typedef enum D3D12_META_COMMAND_PARAMETER_TYPE {
12872 D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0x0,
12873 D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 0x1,
12874 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 0x2,
12875 D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 0x3,
12876 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 0x4
12877} D3D12_META_COMMAND_PARAMETER_TYPE;
12878typedef enum D3D12_META_COMMAND_PARAMETER_FLAGS {
12879 D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1,
12880 D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2
12881} D3D12_META_COMMAND_PARAMETER_FLAGS;
12882DEFINE_ENUM_FLAG_OPERATORS(D3D12_META_COMMAND_PARAMETER_FLAGS);
12883typedef enum D3D12_META_COMMAND_PARAMETER_STAGE {
12884 D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0x0,
12885 D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 0x1,
12886 D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 0x2
12887} D3D12_META_COMMAND_PARAMETER_STAGE;
12888typedef struct D3D12_META_COMMAND_PARAMETER_DESC {
12889 const WCHAR *Name;
12890 D3D12_META_COMMAND_PARAMETER_TYPE Type;
12891 D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
12892 D3D12_RESOURCE_STATES RequiredResourceState;
12893 UINT StructureOffset;
12894} D3D12_META_COMMAND_PARAMETER_DESC;
12895typedef enum D3D12_GRAPHICS_STATES {
12896 D3D12_GRAPHICS_STATE_NONE = 0x0,
12897 D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = 0x1,
12898 D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = 0x2,
12899 D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = 0x4,
12900 D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = 0x8,
12901 D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = 0x10,
12902 D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = 0x20,
12903 D3D12_GRAPHICS_STATE_RS_VIEWPORTS = 0x40,
12904 D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = 0x80,
12905 D3D12_GRAPHICS_STATE_PREDICATION = 0x100,
12906 D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = 0x200,
12907 D3D12_GRAPHICS_STATE_OM_STENCIL_REF = 0x400,
12908 D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = 0x800,
12909 D3D12_GRAPHICS_STATE_PIPELINE_STATE = 0x1000,
12910 D3D12_GRAPHICS_STATE_SO_TARGETS = 0x2000,
12911 D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = 0x4000,
12912 D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = 0x8000,
12913 D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = 0x10000
12914} D3D12_GRAPHICS_STATES;
12915DEFINE_ENUM_FLAG_OPERATORS(D3D12_GRAPHICS_STATES);
12916typedef struct D3D12_META_COMMAND_DESC {
12917 GUID Id;
12918 const WCHAR *Name;
12919 D3D12_GRAPHICS_STATES InitializationDirtyState;
12920 D3D12_GRAPHICS_STATES ExecutionDirtyState;
12921} D3D12_META_COMMAND_DESC;
12922/*****************************************************************************
12923 * ID3D12StateObject interface
12924 */
12925#ifndef __ID3D12StateObject_INTERFACE_DEFINED__
12926#define __ID3D12StateObject_INTERFACE_DEFINED__
12927
12928DEFINE_GUID(IID_ID3D12StateObject, 0x47016943, 0xfca8, 0x4594, 0x93,0xea, 0xaf,0x25,0x8b,0x55,0x34,0x6d);
12929#if defined(__cplusplus) && !defined(CINTERFACE)
12930MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d")
12931ID3D12StateObject : public ID3D12Pageable
12932{
12933};
12934#ifdef __CRT_UUID_DECL
12935__CRT_UUID_DECL(ID3D12StateObject, 0x47016943, 0xfca8, 0x4594, 0x93,0xea, 0xaf,0x25,0x8b,0x55,0x34,0x6d)
12936#endif
12937#else
12938typedef struct ID3D12StateObjectVtbl {
12939 BEGIN_INTERFACE
12940
12941 /*** IUnknown methods ***/
12942 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12943 ID3D12StateObject *This,
12944 REFIID riid,
12945 void **ppvObject);
12946
12947 ULONG (STDMETHODCALLTYPE *AddRef)(
12948 ID3D12StateObject *This);
12949
12950 ULONG (STDMETHODCALLTYPE *Release)(
12951 ID3D12StateObject *This);
12952
12953 /*** ID3D12Object methods ***/
12954 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
12955 ID3D12StateObject *This,
12956 REFGUID guid,
12957 UINT *data_size,
12958 void *data);
12959
12960 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
12961 ID3D12StateObject *This,
12962 REFGUID guid,
12963 UINT data_size,
12964 const void *data);
12965
12966 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
12967 ID3D12StateObject *This,
12968 REFGUID guid,
12969 const IUnknown *data);
12970
12971 HRESULT (STDMETHODCALLTYPE *SetName)(
12972 ID3D12StateObject *This,
12973 const WCHAR *name);
12974
12975 /*** ID3D12DeviceChild methods ***/
12976 HRESULT (STDMETHODCALLTYPE *GetDevice)(
12977 ID3D12StateObject *This,
12978 REFIID riid,
12979 void **device);
12980
12981 END_INTERFACE
12982} ID3D12StateObjectVtbl;
12983
12984interface ID3D12StateObject {
12985 CONST_VTBL ID3D12StateObjectVtbl* lpVtbl;
12986};
12987
12988#ifdef COBJMACROS
12989#ifndef WIDL_C_INLINE_WRAPPERS
12990/*** IUnknown methods ***/
12991#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12992#define ID3D12StateObject_AddRef(This) (This)->lpVtbl->AddRef(This)
12993#define ID3D12StateObject_Release(This) (This)->lpVtbl->Release(This)
12994/*** ID3D12Object methods ***/
12995#define ID3D12StateObject_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
12996#define ID3D12StateObject_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
12997#define ID3D12StateObject_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
12998#define ID3D12StateObject_SetName(This,name) (This)->lpVtbl->SetName(This,name)
12999/*** ID3D12DeviceChild methods ***/
13000#define ID3D12StateObject_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
13001#else
13002/*** IUnknown methods ***/
13003static inline HRESULT ID3D12StateObject_QueryInterface(ID3D12StateObject* This,REFIID riid,void **ppvObject) {
13004 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13005}
13006static inline ULONG ID3D12StateObject_AddRef(ID3D12StateObject* This) {
13007 return This->lpVtbl->AddRef(This);
13008}
13009static inline ULONG ID3D12StateObject_Release(ID3D12StateObject* This) {
13010 return This->lpVtbl->Release(This);
13011}
13012/*** ID3D12Object methods ***/
13013static inline HRESULT ID3D12StateObject_GetPrivateData(ID3D12StateObject* This,REFGUID guid,UINT *data_size,void *data) {
13014 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
13015}
13016static inline HRESULT ID3D12StateObject_SetPrivateData(ID3D12StateObject* This,REFGUID guid,UINT data_size,const void *data) {
13017 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
13018}
13019static inline HRESULT ID3D12StateObject_SetPrivateDataInterface(ID3D12StateObject* This,REFGUID guid,const IUnknown *data) {
13020 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
13021}
13022static inline HRESULT ID3D12StateObject_SetName(ID3D12StateObject* This,const WCHAR *name) {
13023 return This->lpVtbl->SetName(This,name);
13024}
13025/*** ID3D12DeviceChild methods ***/
13026static inline HRESULT ID3D12StateObject_GetDevice(ID3D12StateObject* This,REFIID riid,void **device) {
13027 return This->lpVtbl->GetDevice(This,riid,device);
13028}
13029#endif
13030#endif
13031
13032#endif
13033
13034
13035#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */
13036
13037/*****************************************************************************
13038 * ID3D12StateObjectProperties interface
13039 */
13040#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__
13041#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__
13042
13043DEFINE_GUID(IID_ID3D12StateObjectProperties, 0xde5fa827, 0x9bf9, 0x4f26, 0x89,0xff, 0xd7,0xf5,0x6f,0xde,0x38,0x60);
13044#if defined(__cplusplus) && !defined(CINTERFACE)
13045MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860")
13046ID3D12StateObjectProperties : public IUnknown
13047{
13048 virtual void * STDMETHODCALLTYPE GetShaderIdentifier(
13049 const WCHAR *export_name) = 0;
13050
13051 virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize(
13052 const WCHAR *export_name) = 0;
13053
13054 virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize(
13055 ) = 0;
13056
13057 virtual void STDMETHODCALLTYPE SetPipelineStackSize(
13058 UINT64 pipeline_stack_size_in_bytes) = 0;
13059
13060};
13061#ifdef __CRT_UUID_DECL
13062__CRT_UUID_DECL(ID3D12StateObjectProperties, 0xde5fa827, 0x9bf9, 0x4f26, 0x89,0xff, 0xd7,0xf5,0x6f,0xde,0x38,0x60)
13063#endif
13064#else
13065typedef struct ID3D12StateObjectPropertiesVtbl {
13066 BEGIN_INTERFACE
13067
13068 /*** IUnknown methods ***/
13069 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13070 ID3D12StateObjectProperties *This,
13071 REFIID riid,
13072 void **ppvObject);
13073
13074 ULONG (STDMETHODCALLTYPE *AddRef)(
13075 ID3D12StateObjectProperties *This);
13076
13077 ULONG (STDMETHODCALLTYPE *Release)(
13078 ID3D12StateObjectProperties *This);
13079
13080 /*** ID3D12StateObjectProperties methods ***/
13081 void * (STDMETHODCALLTYPE *GetShaderIdentifier)(
13082 ID3D12StateObjectProperties *This,
13083 const WCHAR *export_name);
13084
13085 UINT64 (STDMETHODCALLTYPE *GetShaderStackSize)(
13086 ID3D12StateObjectProperties *This,
13087 const WCHAR *export_name);
13088
13089 UINT64 (STDMETHODCALLTYPE *GetPipelineStackSize)(
13090 ID3D12StateObjectProperties *This);
13091
13092 void (STDMETHODCALLTYPE *SetPipelineStackSize)(
13093 ID3D12StateObjectProperties *This,
13094 UINT64 pipeline_stack_size_in_bytes);
13095
13096 END_INTERFACE
13097} ID3D12StateObjectPropertiesVtbl;
13098
13099interface ID3D12StateObjectProperties {
13100 CONST_VTBL ID3D12StateObjectPropertiesVtbl* lpVtbl;
13101};
13102
13103#ifdef COBJMACROS
13104#ifndef WIDL_C_INLINE_WRAPPERS
13105/*** IUnknown methods ***/
13106#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13107#define ID3D12StateObjectProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
13108#define ID3D12StateObjectProperties_Release(This) (This)->lpVtbl->Release(This)
13109/*** ID3D12StateObjectProperties methods ***/
13110#define ID3D12StateObjectProperties_GetShaderIdentifier(This,export_name) (This)->lpVtbl->GetShaderIdentifier(This,export_name)
13111#define ID3D12StateObjectProperties_GetShaderStackSize(This,export_name) (This)->lpVtbl->GetShaderStackSize(This,export_name)
13112#define ID3D12StateObjectProperties_GetPipelineStackSize(This) (This)->lpVtbl->GetPipelineStackSize(This)
13113#define ID3D12StateObjectProperties_SetPipelineStackSize(This,pipeline_stack_size_in_bytes) (This)->lpVtbl->SetPipelineStackSize(This,pipeline_stack_size_in_bytes)
13114#else
13115/*** IUnknown methods ***/
13116static inline HRESULT ID3D12StateObjectProperties_QueryInterface(ID3D12StateObjectProperties* This,REFIID riid,void **ppvObject) {
13117 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13118}
13119static inline ULONG ID3D12StateObjectProperties_AddRef(ID3D12StateObjectProperties* This) {
13120 return This->lpVtbl->AddRef(This);
13121}
13122static inline ULONG ID3D12StateObjectProperties_Release(ID3D12StateObjectProperties* This) {
13123 return This->lpVtbl->Release(This);
13124}
13125/*** ID3D12StateObjectProperties methods ***/
13126static inline void * ID3D12StateObjectProperties_GetShaderIdentifier(ID3D12StateObjectProperties* This,const WCHAR *export_name) {
13127 return This->lpVtbl->GetShaderIdentifier(This,export_name);
13128}
13129static inline UINT64 ID3D12StateObjectProperties_GetShaderStackSize(ID3D12StateObjectProperties* This,const WCHAR *export_name) {
13130 return This->lpVtbl->GetShaderStackSize(This,export_name);
13131}
13132static inline UINT64 ID3D12StateObjectProperties_GetPipelineStackSize(ID3D12StateObjectProperties* This) {
13133 return This->lpVtbl->GetPipelineStackSize(This);
13134}
13135static inline void ID3D12StateObjectProperties_SetPipelineStackSize(ID3D12StateObjectProperties* This,UINT64 pipeline_stack_size_in_bytes) {
13136 This->lpVtbl->SetPipelineStackSize(This,pipeline_stack_size_in_bytes);
13137}
13138#endif
13139#endif
13140
13141#endif
13142
13143
13144#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */
13145
13146typedef enum D3D12_STATE_SUBOBJECT_TYPE {
13147 D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0x0,
13148 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 0x1,
13149 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 0x2,
13150 D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 0x3,
13151 D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 0x5,
13152 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 0x6,
13153 D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 0x7,
13154 D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 0x8,
13155 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 0x9,
13156 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 0xa,
13157 D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 0xb,
13158 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 0xc,
13159 D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = 0xd
13160} D3D12_STATE_SUBOBJECT_TYPE;
13161typedef struct D3D12_STATE_SUBOBJECT {
13162 D3D12_STATE_SUBOBJECT_TYPE Type;
13163 const void *pDesc;
13164} D3D12_STATE_SUBOBJECT;
13165typedef enum D3D12_STATE_OBJECT_FLAGS {
13166 D3D12_STATE_OBJECT_FLAG_NONE = 0x0,
13167 D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
13168 D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
13169 D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4
13170} D3D12_STATE_OBJECT_FLAGS;
13171DEFINE_ENUM_FLAG_OPERATORS(D3D12_STATE_OBJECT_FLAGS);
13172typedef struct D3D12_STATE_OBJECT_CONFIG {
13173 D3D12_STATE_OBJECT_FLAGS Flags;
13174} D3D12_STATE_OBJECT_CONFIG;
13175typedef struct D3D12_GLOBAL_ROOT_SIGNATURE {
13176 ID3D12RootSignature *pGlobalRootSignature;
13177} D3D12_GLOBAL_ROOT_SIGNATURE;
13178typedef struct D3D12_LOCAL_ROOT_SIGNATURE {
13179 ID3D12RootSignature *pLocalRootSignature;
13180} D3D12_LOCAL_ROOT_SIGNATURE;
13181typedef struct D3D12_NODE_MASK {
13182 UINT NodeMask;
13183} D3D12_NODE_MASK;
13184typedef enum D3D12_EXPORT_FLAGS {
13185 D3D12_EXPORT_FLAG_NONE = 0x0
13186} D3D12_EXPORT_FLAGS;
13187DEFINE_ENUM_FLAG_OPERATORS(D3D12_EXPORT_FLAGS);
13188typedef struct D3D12_EXPORT_DESC {
13189 const WCHAR *Name;
13190 const WCHAR *ExportToRename;
13191 D3D12_EXPORT_FLAGS Flags;
13192} D3D12_EXPORT_DESC;
13193typedef struct D3D12_DXIL_LIBRARY_DESC {
13194 D3D12_SHADER_BYTECODE DXILLibrary;
13195 UINT NumExports;
13196 D3D12_EXPORT_DESC *pExports;
13197} D3D12_DXIL_LIBRARY_DESC;
13198typedef struct D3D12_EXISTING_COLLECTION_DESC {
13199 ID3D12StateObject *pExistingCollection;
13200 UINT NumExports;
13201 D3D12_EXPORT_DESC *pExports;
13202} D3D12_EXISTING_COLLECTION_DESC;
13203typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
13204 const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate;
13205 UINT NumExports;
13206 const WCHAR **pExports;
13207} D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
13208typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
13209 const WCHAR *SubobjectToAssociate;
13210 UINT NumExports;
13211 const WCHAR **pExports;
13212} D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
13213typedef enum D3D12_HIT_GROUP_TYPE {
13214 D3D12_HIT_GROUP_TYPE_TRIANGLES = 0x0,
13215 D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1
13216} D3D12_HIT_GROUP_TYPE;
13217typedef struct D3D12_HIT_GROUP_DESC {
13218 const WCHAR *HitGroupExport;
13219 D3D12_HIT_GROUP_TYPE Type;
13220 const WCHAR *AnyHitShaderImport;
13221 const WCHAR *ClosestHitShaderImport;
13222 const WCHAR *IntersectionShaderImport;
13223} D3D12_HIT_GROUP_DESC;
13224typedef struct D3D12_RAYTRACING_SHADER_CONFIG {
13225 UINT MaxPayloadSizeInBytes;
13226 UINT MaxAttributeSizeInBytes;
13227} D3D12_RAYTRACING_SHADER_CONFIG;
13228typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG {
13229 UINT MaxTraceRecursionDepth;
13230} D3D12_RAYTRACING_PIPELINE_CONFIG;
13231typedef enum D3D12_RAYTRACING_PIPELINE_FLAGS {
13232 D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0x0,
13233 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100,
13234 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200
13235} D3D12_RAYTRACING_PIPELINE_FLAGS;
13236DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_PIPELINE_FLAGS);
13237typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 {
13238 UINT MaxTraceRecursionDepth;
13239 D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
13240} D3D12_RAYTRACING_PIPELINE_CONFIG1;
13241typedef enum D3D12_STATE_OBJECT_TYPE {
13242 D3D12_STATE_OBJECT_TYPE_COLLECTION = 0x0,
13243 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 0x3
13244} D3D12_STATE_OBJECT_TYPE;
13245typedef struct D3D12_STATE_OBJECT_DESC {
13246 D3D12_STATE_OBJECT_TYPE Type;
13247 UINT NumSubobjects;
13248 const D3D12_STATE_SUBOBJECT *pSubobjects;
13249} D3D12_STATE_OBJECT_DESC;
13250typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS {
13251 D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0x0,
13252 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
13253 D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
13254} D3D12_RAYTRACING_GEOMETRY_FLAGS;
13255DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_GEOMETRY_FLAGS);
13256typedef enum D3D12_RAYTRACING_GEOMETRY_TYPE {
13257 D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0x0,
13258 D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = 0x1
13259} D3D12_RAYTRACING_GEOMETRY_TYPE;
13260typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS {
13261 D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0x0,
13262 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
13263 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
13264 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
13265 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8
13266} D3D12_RAYTRACING_INSTANCE_FLAGS;
13267DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_INSTANCE_FLAGS);
13268typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
13269 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13270 UINT64 StrideInBytes;
13271} D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
13272typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
13273 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13274 UINT64 SizeInBytes;
13275} D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
13276typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
13277 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13278 UINT64 SizeInBytes;
13279 UINT64 StrideInBytes;
13280} D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
13281typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
13282 D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
13283 DXGI_FORMAT IndexFormat;
13284 DXGI_FORMAT VertexFormat;
13285 UINT IndexCount;
13286 UINT VertexCount;
13287 D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
13288 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
13289} D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
13290typedef struct D3D12_RAYTRACING_AABB {
13291 FLOAT MinX;
13292 FLOAT MinY;
13293 FLOAT MinZ;
13294 FLOAT MaxX;
13295 FLOAT MaxY;
13296 FLOAT MaxZ;
13297} D3D12_RAYTRACING_AABB;
13298typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
13299 UINT64 AABBCount;
13300 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
13301} D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
13302typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
13303 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0x0,
13304 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
13305 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
13306 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
13307 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
13308 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
13309 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20
13310} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
13311DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS);
13312typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {
13313 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0x0,
13314 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
13315 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
13316 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
13317 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
13318} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
13319typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE {
13320 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0x0,
13321 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1
13322} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
13323typedef enum D3D12_ELEMENTS_LAYOUT {
13324 D3D12_ELEMENTS_LAYOUT_ARRAY = 0x0,
13325 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
13326} D3D12_ELEMENTS_LAYOUT;
13327typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE {
13328 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0x0,
13329 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
13330 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
13331 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3
13332} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
13333typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
13334 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
13335 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
13336} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
13337typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {
13338 UINT64 CompactedSizeInBytes;
13339} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
13340typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {
13341 UINT64 DecodedSizeInBytes;
13342} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
13343typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {
13344 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
13345 UINT NumDescs;
13346} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
13347typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {
13348 UINT64 SerializedSizeInBytes;
13349 UINT64 NumBottomLevelAccelerationStructurePointers;
13350} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
13351typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
13352 GUID DriverOpaqueGUID;
13353 BYTE DriverOpaqueVersioningData[16];
13354} D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
13355typedef enum D3D12_SERIALIZED_DATA_TYPE {
13356 D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0x0
13357} D3D12_SERIALIZED_DATA_TYPE;
13358typedef enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
13359 D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0x0,
13360 D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
13361 D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
13362 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
13363 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4
13364} D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
13365typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
13366 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
13367 UINT64 SerializedSizeInBytesIncludingHeader;
13368 UINT64 DeserializedSizeInBytes;
13369 UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
13370} D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
13371typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {
13372 UINT64 CurrentSizeInBytes;
13373} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
13374typedef struct D3D12_RAYTRACING_INSTANCE_DESC {
13375 FLOAT Transform[3][4];
13376 UINT InstanceID : 24;
13377 UINT InstanceMask : 8;
13378 UINT InstanceContributionToHitGroupIndex : 24;
13379 UINT Flags : 8;
13380 D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
13381} D3D12_RAYTRACING_INSTANCE_DESC;
13382typedef struct D3D12_RAYTRACING_GEOMETRY_DESC {
13383 D3D12_RAYTRACING_GEOMETRY_TYPE Type;
13384 D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
13385 __C89_NAMELESS union {
13386 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
13387 D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
13388 } __C89_NAMELESSUNIONNAME;
13389} D3D12_RAYTRACING_GEOMETRY_DESC;
13390typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
13391 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
13392 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
13393 UINT NumDescs;
13394 D3D12_ELEMENTS_LAYOUT DescsLayout;
13395 __C89_NAMELESS union {
13396 D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
13397 const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
13398 const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs;
13399 } __C89_NAMELESSUNIONNAME;
13400} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
13401typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
13402 D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
13403 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
13404 D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
13405 D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
13406} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
13407typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
13408 UINT64 ResultDataMaxSizeInBytes;
13409 UINT64 ScratchDataSizeInBytes;
13410 UINT64 UpdateScratchDataSizeInBytes;
13411} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
13412typedef enum D3D12_RAY_FLAGS {
13413 D3D12_RAY_FLAG_NONE = 0x0,
13414 D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
13415 D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
13416 D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
13417 D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
13418 D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
13419 D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
13420 D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
13421 D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
13422 D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100,
13423 D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200
13424} D3D12_RAY_FLAGS;
13425DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAY_FLAGS);
13426typedef enum D3D12_HIT_KIND {
13427 D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
13428 D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff
13429} D3D12_HIT_KIND;
13430/*****************************************************************************
13431 * ID3D12Device5 interface
13432 */
13433#ifndef __ID3D12Device5_INTERFACE_DEFINED__
13434#define __ID3D12Device5_INTERFACE_DEFINED__
13435
13436DEFINE_GUID(IID_ID3D12Device5, 0x8b4f173b, 0x2fea, 0x4b80, 0x8f,0x58, 0x43,0x07,0x19,0x1a,0xb9,0x5d);
13437#if defined(__cplusplus) && !defined(CINTERFACE)
13438MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d")
13439ID3D12Device5 : public ID3D12Device4
13440{
13441 virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker(
13442 ID3D12LifetimeOwner *owner,
13443 REFIID riid,
13444 void **tracker) = 0;
13445
13446 virtual void STDMETHODCALLTYPE RemoveDevice(
13447 ) = 0;
13448
13449 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands(
13450 UINT *meta_commands_count,
13451 D3D12_META_COMMAND_DESC *descs) = 0;
13452
13453 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters(
13454 REFGUID command_id,
13455 D3D12_META_COMMAND_PARAMETER_STAGE stage,
13456 UINT *total_structure_size_in_bytes,
13457 UINT *parameter_count,
13458 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) = 0;
13459
13460 virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand(
13461 REFGUID command_id,
13462 UINT node_mask,
13463 const void *creation_parameters_data,
13464 SIZE_T creation_parameters_data_size_in_bytes,
13465 REFIID riid,
13466 void **meta_command) = 0;
13467
13468 virtual HRESULT STDMETHODCALLTYPE CreateStateObject(
13469 const D3D12_STATE_OBJECT_DESC *desc,
13470 REFIID riid,
13471 void **state_object) = 0;
13472
13473 virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo(
13474 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
13475 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) = 0;
13476
13477 virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier(
13478 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
13479 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) = 0;
13480
13481};
13482#ifdef __CRT_UUID_DECL
13483__CRT_UUID_DECL(ID3D12Device5, 0x8b4f173b, 0x2fea, 0x4b80, 0x8f,0x58, 0x43,0x07,0x19,0x1a,0xb9,0x5d)
13484#endif
13485#else
13486typedef struct ID3D12Device5Vtbl {
13487 BEGIN_INTERFACE
13488
13489 /*** IUnknown methods ***/
13490 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13491 ID3D12Device5 *This,
13492 REFIID riid,
13493 void **ppvObject);
13494
13495 ULONG (STDMETHODCALLTYPE *AddRef)(
13496 ID3D12Device5 *This);
13497
13498 ULONG (STDMETHODCALLTYPE *Release)(
13499 ID3D12Device5 *This);
13500
13501 /*** ID3D12Object methods ***/
13502 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
13503 ID3D12Device5 *This,
13504 REFGUID guid,
13505 UINT *data_size,
13506 void *data);
13507
13508 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
13509 ID3D12Device5 *This,
13510 REFGUID guid,
13511 UINT data_size,
13512 const void *data);
13513
13514 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
13515 ID3D12Device5 *This,
13516 REFGUID guid,
13517 const IUnknown *data);
13518
13519 HRESULT (STDMETHODCALLTYPE *SetName)(
13520 ID3D12Device5 *This,
13521 const WCHAR *name);
13522
13523 /*** ID3D12Device methods ***/
13524 UINT (STDMETHODCALLTYPE *GetNodeCount)(
13525 ID3D12Device5 *This);
13526
13527 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
13528 ID3D12Device5 *This,
13529 const D3D12_COMMAND_QUEUE_DESC *desc,
13530 REFIID riid,
13531 void **command_queue);
13532
13533 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
13534 ID3D12Device5 *This,
13535 D3D12_COMMAND_LIST_TYPE type,
13536 REFIID riid,
13537 void **command_allocator);
13538
13539 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
13540 ID3D12Device5 *This,
13541 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
13542 REFIID riid,
13543 void **pipeline_state);
13544
13545 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
13546 ID3D12Device5 *This,
13547 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
13548 REFIID riid,
13549 void **pipeline_state);
13550
13551 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
13552 ID3D12Device5 *This,
13553 UINT node_mask,
13554 D3D12_COMMAND_LIST_TYPE type,
13555 ID3D12CommandAllocator *command_allocator,
13556 ID3D12PipelineState *initial_pipeline_state,
13557 REFIID riid,
13558 void **command_list);
13559
13560 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
13561 ID3D12Device5 *This,
13562 D3D12_FEATURE feature,
13563 void *feature_data,
13564 UINT feature_data_size);
13565
13566 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
13567 ID3D12Device5 *This,
13568 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
13569 REFIID riid,
13570 void **descriptor_heap);
13571
13572 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
13573 ID3D12Device5 *This,
13574 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
13575
13576 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
13577 ID3D12Device5 *This,
13578 UINT node_mask,
13579 const void *bytecode,
13580 SIZE_T bytecode_length,
13581 REFIID riid,
13582 void **root_signature);
13583
13584 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
13585 ID3D12Device5 *This,
13586 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
13587 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13588
13589 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
13590 ID3D12Device5 *This,
13591 ID3D12Resource *resource,
13592 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
13593 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13594
13595 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
13596 ID3D12Device5 *This,
13597 ID3D12Resource *resource,
13598 ID3D12Resource *counter_resource,
13599 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
13600 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13601
13602 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
13603 ID3D12Device5 *This,
13604 ID3D12Resource *resource,
13605 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
13606 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13607
13608 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
13609 ID3D12Device5 *This,
13610 ID3D12Resource *resource,
13611 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
13612 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13613
13614 void (STDMETHODCALLTYPE *CreateSampler)(
13615 ID3D12Device5 *This,
13616 const D3D12_SAMPLER_DESC *desc,
13617 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13618
13619 void (STDMETHODCALLTYPE *CopyDescriptors)(
13620 ID3D12Device5 *This,
13621 UINT dst_descriptor_range_count,
13622 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
13623 const UINT *dst_descriptor_range_sizes,
13624 UINT src_descriptor_range_count,
13625 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
13626 const UINT *src_descriptor_range_sizes,
13627 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
13628
13629 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
13630 ID3D12Device5 *This,
13631 UINT descriptor_count,
13632 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
13633 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
13634 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
13635
13636 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
13637 ID3D12Device5 *This,
13638 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
13639 UINT visible_mask,
13640 UINT reource_desc_count,
13641 const D3D12_RESOURCE_DESC *resource_descs);
13642
13643 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
13644 ID3D12Device5 *This,
13645 D3D12_HEAP_PROPERTIES *__ret,
13646 UINT node_mask,
13647 D3D12_HEAP_TYPE heap_type);
13648
13649 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
13650 ID3D12Device5 *This,
13651 const D3D12_HEAP_PROPERTIES *heap_properties,
13652 D3D12_HEAP_FLAGS heap_flags,
13653 const D3D12_RESOURCE_DESC *desc,
13654 D3D12_RESOURCE_STATES initial_state,
13655 const D3D12_CLEAR_VALUE *optimized_clear_value,
13656 REFIID riid,
13657 void **resource);
13658
13659 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
13660 ID3D12Device5 *This,
13661 const D3D12_HEAP_DESC *desc,
13662 REFIID riid,
13663 void **heap);
13664
13665 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
13666 ID3D12Device5 *This,
13667 ID3D12Heap *heap,
13668 UINT64 heap_offset,
13669 const D3D12_RESOURCE_DESC *desc,
13670 D3D12_RESOURCE_STATES initial_state,
13671 const D3D12_CLEAR_VALUE *optimized_clear_value,
13672 REFIID riid,
13673 void **resource);
13674
13675 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
13676 ID3D12Device5 *This,
13677 const D3D12_RESOURCE_DESC *desc,
13678 D3D12_RESOURCE_STATES initial_state,
13679 const D3D12_CLEAR_VALUE *optimized_clear_value,
13680 REFIID riid,
13681 void **resource);
13682
13683 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
13684 ID3D12Device5 *This,
13685 ID3D12DeviceChild *object,
13686 const SECURITY_ATTRIBUTES *attributes,
13687 DWORD access,
13688 const WCHAR *name,
13689 HANDLE *handle);
13690
13691 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
13692 ID3D12Device5 *This,
13693 HANDLE handle,
13694 REFIID riid,
13695 void **object);
13696
13697 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
13698 ID3D12Device5 *This,
13699 const WCHAR *name,
13700 DWORD access,
13701 HANDLE *handle);
13702
13703 HRESULT (STDMETHODCALLTYPE *MakeResident)(
13704 ID3D12Device5 *This,
13705 UINT object_count,
13706 ID3D12Pageable *const *objects);
13707
13708 HRESULT (STDMETHODCALLTYPE *Evict)(
13709 ID3D12Device5 *This,
13710 UINT object_count,
13711 ID3D12Pageable *const *objects);
13712
13713 HRESULT (STDMETHODCALLTYPE *CreateFence)(
13714 ID3D12Device5 *This,
13715 UINT64 initial_value,
13716 D3D12_FENCE_FLAGS flags,
13717 REFIID riid,
13718 void **fence);
13719
13720 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
13721 ID3D12Device5 *This);
13722
13723 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
13724 ID3D12Device5 *This,
13725 const D3D12_RESOURCE_DESC *desc,
13726 UINT first_sub_resource,
13727 UINT sub_resource_count,
13728 UINT64 base_offset,
13729 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
13730 UINT *row_count,
13731 UINT64 *row_size,
13732 UINT64 *total_bytes);
13733
13734 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
13735 ID3D12Device5 *This,
13736 const D3D12_QUERY_HEAP_DESC *desc,
13737 REFIID riid,
13738 void **heap);
13739
13740 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
13741 ID3D12Device5 *This,
13742 WINBOOL enable);
13743
13744 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
13745 ID3D12Device5 *This,
13746 const D3D12_COMMAND_SIGNATURE_DESC *desc,
13747 ID3D12RootSignature *root_signature,
13748 REFIID riid,
13749 void **command_signature);
13750
13751 void (STDMETHODCALLTYPE *GetResourceTiling)(
13752 ID3D12Device5 *This,
13753 ID3D12Resource *resource,
13754 UINT *total_tile_count,
13755 D3D12_PACKED_MIP_INFO *packed_mip_info,
13756 D3D12_TILE_SHAPE *standard_tile_shape,
13757 UINT *sub_resource_tiling_count,
13758 UINT first_sub_resource_tiling,
13759 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
13760
13761 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
13762 ID3D12Device5 *This,
13763 LUID *__ret);
13764
13765 /*** ID3D12Device1 methods ***/
13766 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
13767 ID3D12Device5 *This,
13768 const void *blob,
13769 SIZE_T blob_size,
13770 REFIID iid,
13771 void **lib);
13772
13773 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
13774 ID3D12Device5 *This,
13775 ID3D12Fence *const *fences,
13776 const UINT64 *values,
13777 UINT fence_count,
13778 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
13779 HANDLE event);
13780
13781 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
13782 ID3D12Device5 *This,
13783 UINT object_count,
13784 ID3D12Pageable *const *objects,
13785 const D3D12_RESIDENCY_PRIORITY *priorities);
13786
13787 /*** ID3D12Device2 methods ***/
13788 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
13789 ID3D12Device5 *This,
13790 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
13791 REFIID riid,
13792 void **pipeline_state);
13793
13794 /*** ID3D12Device3 methods ***/
13795 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
13796 ID3D12Device5 *This,
13797 const void *address,
13798 REFIID riid,
13799 void **heap);
13800
13801 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
13802 ID3D12Device5 *This,
13803 HANDLE file_mapping,
13804 REFIID riid,
13805 void **heap);
13806
13807 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
13808 ID3D12Device5 *This,
13809 D3D12_RESIDENCY_FLAGS flags,
13810 UINT num_objects,
13811 ID3D12Pageable *const *objects,
13812 ID3D12Fence *fence,
13813 UINT64 fence_value);
13814
13815 /*** ID3D12Device4 methods ***/
13816 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
13817 ID3D12Device5 *This,
13818 UINT node_mask,
13819 D3D12_COMMAND_LIST_TYPE type,
13820 D3D12_COMMAND_LIST_FLAGS flags,
13821 REFIID riid,
13822 void **command_list);
13823
13824 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
13825 ID3D12Device5 *This,
13826 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
13827 REFIID riid,
13828 void **session);
13829
13830 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
13831 ID3D12Device5 *This,
13832 const D3D12_HEAP_PROPERTIES *heap_properties,
13833 D3D12_HEAP_FLAGS heap_flags,
13834 const D3D12_RESOURCE_DESC *desc,
13835 D3D12_RESOURCE_STATES initial_resource_state,
13836 const D3D12_CLEAR_VALUE *optimized_clear_value,
13837 ID3D12ProtectedResourceSession *protected_session,
13838 REFIID riid_resource,
13839 void **resource);
13840
13841 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
13842 ID3D12Device5 *This,
13843 const D3D12_HEAP_DESC *desc,
13844 ID3D12ProtectedResourceSession *protected_session,
13845 REFIID riid,
13846 void **heap);
13847
13848 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
13849 ID3D12Device5 *This,
13850 const D3D12_RESOURCE_DESC *desc,
13851 D3D12_RESOURCE_STATES initial_state,
13852 const D3D12_CLEAR_VALUE *optimized_clear_value,
13853 ID3D12ProtectedResourceSession *protected_session,
13854 REFIID riid,
13855 void **resource);
13856
13857 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
13858 ID3D12Device5 *This,
13859 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
13860 UINT visible_mask,
13861 UINT resource_descs_count,
13862 const D3D12_RESOURCE_DESC *resource_descs,
13863 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
13864
13865 /*** ID3D12Device5 methods ***/
13866 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
13867 ID3D12Device5 *This,
13868 ID3D12LifetimeOwner *owner,
13869 REFIID riid,
13870 void **tracker);
13871
13872 void (STDMETHODCALLTYPE *RemoveDevice)(
13873 ID3D12Device5 *This);
13874
13875 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
13876 ID3D12Device5 *This,
13877 UINT *meta_commands_count,
13878 D3D12_META_COMMAND_DESC *descs);
13879
13880 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
13881 ID3D12Device5 *This,
13882 REFGUID command_id,
13883 D3D12_META_COMMAND_PARAMETER_STAGE stage,
13884 UINT *total_structure_size_in_bytes,
13885 UINT *parameter_count,
13886 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
13887
13888 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
13889 ID3D12Device5 *This,
13890 REFGUID command_id,
13891 UINT node_mask,
13892 const void *creation_parameters_data,
13893 SIZE_T creation_parameters_data_size_in_bytes,
13894 REFIID riid,
13895 void **meta_command);
13896
13897 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
13898 ID3D12Device5 *This,
13899 const D3D12_STATE_OBJECT_DESC *desc,
13900 REFIID riid,
13901 void **state_object);
13902
13903 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
13904 ID3D12Device5 *This,
13905 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
13906 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
13907
13908 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
13909 ID3D12Device5 *This,
13910 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
13911 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
13912
13913 END_INTERFACE
13914} ID3D12Device5Vtbl;
13915
13916interface ID3D12Device5 {
13917 CONST_VTBL ID3D12Device5Vtbl* lpVtbl;
13918};
13919
13920#ifdef COBJMACROS
13921#ifndef WIDL_C_INLINE_WRAPPERS
13922/*** IUnknown methods ***/
13923#define ID3D12Device5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13924#define ID3D12Device5_AddRef(This) (This)->lpVtbl->AddRef(This)
13925#define ID3D12Device5_Release(This) (This)->lpVtbl->Release(This)
13926/*** ID3D12Object methods ***/
13927#define ID3D12Device5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
13928#define ID3D12Device5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
13929#define ID3D12Device5_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
13930#define ID3D12Device5_SetName(This,name) (This)->lpVtbl->SetName(This,name)
13931/*** ID3D12Device methods ***/
13932#define ID3D12Device5_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
13933#define ID3D12Device5_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
13934#define ID3D12Device5_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
13935#define ID3D12Device5_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
13936#define ID3D12Device5_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
13937#define ID3D12Device5_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
13938#define ID3D12Device5_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
13939#define ID3D12Device5_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
13940#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
13941#define ID3D12Device5_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
13942#define ID3D12Device5_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
13943#define ID3D12Device5_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
13944#define ID3D12Device5_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
13945#define ID3D12Device5_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
13946#define ID3D12Device5_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
13947#define ID3D12Device5_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
13948#define ID3D12Device5_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
13949#define ID3D12Device5_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
13950#define ID3D12Device5_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device5_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
13951#define ID3D12Device5_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device5_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
13952#define ID3D12Device5_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
13953#define ID3D12Device5_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
13954#define ID3D12Device5_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
13955#define ID3D12Device5_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
13956#define ID3D12Device5_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
13957#define ID3D12Device5_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
13958#define ID3D12Device5_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
13959#define ID3D12Device5_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
13960#define ID3D12Device5_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
13961#define ID3D12Device5_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
13962#define ID3D12Device5_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
13963#define ID3D12Device5_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
13964#define ID3D12Device5_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
13965#define ID3D12Device5_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
13966#define ID3D12Device5_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
13967#define ID3D12Device5_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
13968#define ID3D12Device5_GetAdapterLuid(This) ID3D12Device5_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
13969/*** ID3D12Device1 methods ***/
13970#define ID3D12Device5_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
13971#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
13972#define ID3D12Device5_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
13973/*** ID3D12Device2 methods ***/
13974#define ID3D12Device5_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
13975/*** ID3D12Device3 methods ***/
13976#define ID3D12Device5_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
13977#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
13978#define ID3D12Device5_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
13979/*** ID3D12Device4 methods ***/
13980#define ID3D12Device5_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
13981#define ID3D12Device5_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
13982#define ID3D12Device5_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
13983#define ID3D12Device5_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
13984#define ID3D12Device5_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource)
13985#define ID3D12Device5_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device5_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
13986/*** ID3D12Device5 methods ***/
13987#define ID3D12Device5_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
13988#define ID3D12Device5_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
13989#define ID3D12Device5_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
13990#define ID3D12Device5_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs)
13991#define ID3D12Device5_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command)
13992#define ID3D12Device5_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
13993#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
13994#define ID3D12Device5_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
13995#else
13996/*** IUnknown methods ***/
13997static inline HRESULT ID3D12Device5_QueryInterface(ID3D12Device5* This,REFIID riid,void **ppvObject) {
13998 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13999}
14000static inline ULONG ID3D12Device5_AddRef(ID3D12Device5* This) {
14001 return This->lpVtbl->AddRef(This);
14002}
14003static inline ULONG ID3D12Device5_Release(ID3D12Device5* This) {
14004 return This->lpVtbl->Release(This);
14005}
14006/*** ID3D12Object methods ***/
14007static inline HRESULT ID3D12Device5_GetPrivateData(ID3D12Device5* This,REFGUID guid,UINT *data_size,void *data) {
14008 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
14009}
14010static inline HRESULT ID3D12Device5_SetPrivateData(ID3D12Device5* This,REFGUID guid,UINT data_size,const void *data) {
14011 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
14012}
14013static inline HRESULT ID3D12Device5_SetPrivateDataInterface(ID3D12Device5* This,REFGUID guid,const IUnknown *data) {
14014 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
14015}
14016static inline HRESULT ID3D12Device5_SetName(ID3D12Device5* This,const WCHAR *name) {
14017 return This->lpVtbl->SetName(This,name);
14018}
14019/*** ID3D12Device methods ***/
14020static inline UINT ID3D12Device5_GetNodeCount(ID3D12Device5* This) {
14021 return This->lpVtbl->GetNodeCount(This);
14022}
14023static inline HRESULT ID3D12Device5_CreateCommandQueue(ID3D12Device5* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
14024 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
14025}
14026static inline HRESULT ID3D12Device5_CreateCommandAllocator(ID3D12Device5* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
14027 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
14028}
14029static inline HRESULT ID3D12Device5_CreateGraphicsPipelineState(ID3D12Device5* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
14030 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
14031}
14032static inline HRESULT ID3D12Device5_CreateComputePipelineState(ID3D12Device5* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
14033 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
14034}
14035static inline HRESULT ID3D12Device5_CreateCommandList(ID3D12Device5* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
14036 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
14037}
14038static inline HRESULT ID3D12Device5_CheckFeatureSupport(ID3D12Device5* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
14039 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
14040}
14041static inline HRESULT ID3D12Device5_CreateDescriptorHeap(ID3D12Device5* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
14042 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
14043}
14044static inline UINT ID3D12Device5_GetDescriptorHandleIncrementSize(ID3D12Device5* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
14045 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
14046}
14047static inline HRESULT ID3D12Device5_CreateRootSignature(ID3D12Device5* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
14048 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
14049}
14050static inline void ID3D12Device5_CreateConstantBufferView(ID3D12Device5* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14051 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
14052}
14053static inline void ID3D12Device5_CreateShaderResourceView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14054 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
14055}
14056static inline void ID3D12Device5_CreateUnorderedAccessView(ID3D12Device5* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14057 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
14058}
14059static inline void ID3D12Device5_CreateRenderTargetView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14060 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
14061}
14062static inline void ID3D12Device5_CreateDepthStencilView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14063 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
14064}
14065static inline void ID3D12Device5_CreateSampler(ID3D12Device5* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14066 This->lpVtbl->CreateSampler(This,desc,descriptor);
14067}
14068static inline void ID3D12Device5_CopyDescriptors(ID3D12Device5* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
14069 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
14070}
14071static inline void ID3D12Device5_CopyDescriptorsSimple(ID3D12Device5* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
14072 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
14073}
14074static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device5_GetResourceAllocationInfo(ID3D12Device5* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
14075 D3D12_RESOURCE_ALLOCATION_INFO __ret;
14076 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
14077}
14078static inline D3D12_HEAP_PROPERTIES ID3D12Device5_GetCustomHeapProperties(ID3D12Device5* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
14079 D3D12_HEAP_PROPERTIES __ret;
14080 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
14081}
14082static inline HRESULT ID3D12Device5_CreateCommittedResource(ID3D12Device5* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
14083 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
14084}
14085static inline HRESULT ID3D12Device5_CreateHeap(ID3D12Device5* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
14086 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
14087}
14088static inline HRESULT ID3D12Device5_CreatePlacedResource(ID3D12Device5* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
14089 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
14090}
14091static inline HRESULT ID3D12Device5_CreateReservedResource(ID3D12Device5* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
14092 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
14093}
14094static inline HRESULT ID3D12Device5_CreateSharedHandle(ID3D12Device5* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
14095 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
14096}
14097static inline HRESULT ID3D12Device5_OpenSharedHandle(ID3D12Device5* This,HANDLE handle,REFIID riid,void **object) {
14098 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
14099}
14100static inline HRESULT ID3D12Device5_OpenSharedHandleByName(ID3D12Device5* This,const WCHAR *name,DWORD access,HANDLE *handle) {
14101 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
14102}
14103static inline HRESULT ID3D12Device5_MakeResident(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects) {
14104 return This->lpVtbl->MakeResident(This,object_count,objects);
14105}
14106static inline HRESULT ID3D12Device5_Evict(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects) {
14107 return This->lpVtbl->Evict(This,object_count,objects);
14108}
14109static inline HRESULT ID3D12Device5_CreateFence(ID3D12Device5* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
14110 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
14111}
14112static inline HRESULT ID3D12Device5_GetDeviceRemovedReason(ID3D12Device5* This) {
14113 return This->lpVtbl->GetDeviceRemovedReason(This);
14114}
14115static inline void ID3D12Device5_GetCopyableFootprints(ID3D12Device5* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
14116 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
14117}
14118static inline HRESULT ID3D12Device5_CreateQueryHeap(ID3D12Device5* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
14119 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
14120}
14121static inline HRESULT ID3D12Device5_SetStablePowerState(ID3D12Device5* This,WINBOOL enable) {
14122 return This->lpVtbl->SetStablePowerState(This,enable);
14123}
14124static inline HRESULT ID3D12Device5_CreateCommandSignature(ID3D12Device5* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
14125 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
14126}
14127static inline void ID3D12Device5_GetResourceTiling(ID3D12Device5* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
14128 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
14129}
14130static inline LUID ID3D12Device5_GetAdapterLuid(ID3D12Device5* This) {
14131 LUID __ret;
14132 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
14133}
14134/*** ID3D12Device1 methods ***/
14135static inline HRESULT ID3D12Device5_CreatePipelineLibrary(ID3D12Device5* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
14136 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
14137}
14138static inline HRESULT ID3D12Device5_SetEventOnMultipleFenceCompletion(ID3D12Device5* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
14139 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
14140}
14141static inline HRESULT ID3D12Device5_SetResidencyPriority(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
14142 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
14143}
14144/*** ID3D12Device2 methods ***/
14145static inline HRESULT ID3D12Device5_CreatePipelineState(ID3D12Device5* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
14146 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
14147}
14148/*** ID3D12Device3 methods ***/
14149static inline HRESULT ID3D12Device5_OpenExistingHeapFromAddress(ID3D12Device5* This,const void *address,REFIID riid,void **heap) {
14150 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
14151}
14152static inline HRESULT ID3D12Device5_OpenExistingHeapFromFileMapping(ID3D12Device5* This,HANDLE file_mapping,REFIID riid,void **heap) {
14153 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
14154}
14155static inline HRESULT ID3D12Device5_EnqueueMakeResident(ID3D12Device5* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
14156 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
14157}
14158/*** ID3D12Device4 methods ***/
14159static inline HRESULT ID3D12Device5_CreateCommandList1(ID3D12Device5* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
14160 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
14161}
14162static inline HRESULT ID3D12Device5_CreateProtectedResourceSession(ID3D12Device5* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
14163 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
14164}
14165static inline HRESULT ID3D12Device5_CreateCommittedResource1(ID3D12Device5* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
14166 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
14167}
14168static inline HRESULT ID3D12Device5_CreateHeap1(ID3D12Device5* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
14169 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
14170}
14171static inline HRESULT ID3D12Device5_CreateReservedResource1(ID3D12Device5* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) {
14172 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
14173}
14174static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device5_GetResourceAllocationInfo1(ID3D12Device5* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
14175 D3D12_RESOURCE_ALLOCATION_INFO __ret;
14176 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
14177}
14178/*** ID3D12Device5 methods ***/
14179static inline HRESULT ID3D12Device5_CreateLifetimeTracker(ID3D12Device5* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
14180 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
14181}
14182static inline void ID3D12Device5_RemoveDevice(ID3D12Device5* This) {
14183 This->lpVtbl->RemoveDevice(This);
14184}
14185static inline HRESULT ID3D12Device5_EnumerateMetaCommands(ID3D12Device5* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
14186 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
14187}
14188static inline HRESULT ID3D12Device5_EnumerateMetaCommandParameters(ID3D12Device5* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) {
14189 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
14190}
14191static inline HRESULT ID3D12Device5_CreateMetaCommand(ID3D12Device5* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) {
14192 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
14193}
14194static inline HRESULT ID3D12Device5_CreateStateObject(ID3D12Device5* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
14195 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
14196}
14197static inline void ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device5* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
14198 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
14199}
14200static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device5_CheckDriverMatchingIdentifier(ID3D12Device5* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) {
14201 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
14202}
14203#endif
14204#endif
14205
14206#endif
14207
14208
14209#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */
14210
14211typedef enum D3D12_AUTO_BREADCRUMB_OP {
14212 D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0x0,
14213 D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 0x1,
14214 D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 0x2,
14215 D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 0x3,
14216 D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 0x4,
14217 D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 0x5,
14218 D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 0x6,
14219 D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 0x7,
14220 D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 0x8,
14221 D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 0x9,
14222 D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 0xa,
14223 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 0xb,
14224 D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 0xc,
14225 D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 0xd,
14226 D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 0xe,
14227 D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 0xf,
14228 D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 0x10,
14229 D3D12_AUTO_BREADCRUMB_OP_PRESENT = 0x11,
14230 D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 0x12,
14231 D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 0x13,
14232 D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 0x14,
14233 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 0x15,
14234 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 0x16,
14235 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 0x17,
14236 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 0x18,
14237 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 0x19,
14238 D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 0x1a,
14239 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 0x1b,
14240 D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 0x1c,
14241 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 0x1d,
14242 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 0x1e,
14243 D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 0x1f,
14244 D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 0x20,
14245 D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 0x21,
14246 D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 0x22,
14247 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 0x23,
14248 D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 0x24,
14249 D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 0x25,
14250 D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 0x26,
14251 D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 0x27,
14252 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 0x28,
14253 D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 0x29,
14254 D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 0x2a,
14255 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 0x2b,
14256 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 0x2c
14257} D3D12_AUTO_BREADCRUMB_OP;
14258typedef struct D3D12_AUTO_BREADCRUMB_NODE {
14259 const char *pCommandListDebugNameA;
14260 const WCHAR *pCommandListDebugNameW;
14261 const char *pCommandQueueDebugNameA;
14262 const WCHAR *pCommandQueueDebugNameW;
14263 ID3D12GraphicsCommandList *pCommandList;
14264 ID3D12CommandQueue *pCommandQueue;
14265 UINT32 BreadcrumbCount;
14266 const UINT32 *pLastBreadcrumbValue;
14267 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
14268 const struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
14269} D3D12_AUTO_BREADCRUMB_NODE;
14270typedef struct D3D12_DRED_BREADCRUMB_CONTEXT {
14271 UINT BreadcrumbIndex;
14272 const WCHAR *pContextString;
14273} D3D12_DRED_BREADCRUMB_CONTEXT;
14274typedef struct D3D12_AUTO_BREADCRUMB_NODE1 {
14275 const char *pCommandListDebugNameA;
14276 const WCHAR *pCommandListDebugNameW;
14277 const char *pCommandQueueDebugNameA;
14278 const WCHAR *pCommandQueueDebugNameW;
14279 ID3D12GraphicsCommandList *pCommandList;
14280 ID3D12CommandQueue *pCommandQueue;
14281 UINT BreadcrumbCount;
14282 const UINT *pLastBreadcrumbValue;
14283 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
14284 const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext;
14285 UINT BreadcrumbContextsCount;
14286 D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
14287} D3D12_AUTO_BREADCRUMB_NODE1;
14288typedef enum D3D12_DRED_VERSION {
14289 D3D12_DRED_VERSION_1_0 = 0x1,
14290 D3D12_DRED_VERSION_1_1 = 0x2,
14291 D3D12_DRED_VERSION_1_2 = 0x3,
14292 D3D12_DRED_VERSION_1_3 = 0x4
14293} D3D12_DRED_VERSION;
14294typedef enum D3D12_DRED_FLAGS {
14295 D3D12_DRED_FLAG_NONE = 0x0,
14296 D3D12_DRED_FLAG_FORCE_ENABLE = 0x1,
14297 D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 0x2
14298} D3D12_DRED_FLAGS;
14299DEFINE_ENUM_FLAG_OPERATORS(D3D12_DRED_FLAGS);
14300typedef enum D3D12_DRED_ENABLEMENT {
14301 D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0x0,
14302 D3D12_DRED_ENABLEMENT_FORCED_OFF = 0x1,
14303 D3D12_DRED_ENABLEMENT_FORCED_ON = 0x2
14304} D3D12_DRED_ENABLEMENT;
14305typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA {
14306 D3D12_DRED_FLAGS Flags;
14307 D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
14308} D3D12_DEVICE_REMOVED_EXTENDED_DATA;
14309typedef enum D3D12_DRED_ALLOCATION_TYPE {
14310 D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 0x13,
14311 D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 0x14,
14312 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 0x15,
14313 D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 0x16,
14314 D3D12_DRED_ALLOCATION_TYPE_FENCE = 0x17,
14315 D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 0x18,
14316 D3D12_DRED_ALLOCATION_TYPE_HEAP = 0x19,
14317 D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 0x1b,
14318 D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 0x1c,
14319 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 0x1d,
14320 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 0x1e,
14321 D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 0x20,
14322 D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 0x22,
14323 D3D12_DRED_ALLOCATION_TYPE_PASS = 0x23,
14324 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 0x24,
14325 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 0x25,
14326 D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 0x26,
14327 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 0x27,
14328 D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 0x28,
14329 D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 0x29,
14330 D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 0x2a,
14331 D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 0x2b,
14332 D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 0x2c,
14333 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 0x2d,
14334 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 0x2e,
14335 D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 0x2f,
14336 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 0x30,
14337 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 0x31,
14338 D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff
14339} D3D12_DRED_ALLOCATION_TYPE;
14340typedef struct D3D12_DRED_ALLOCATION_NODE {
14341 const char *ObjectNameA;
14342 const WCHAR *ObjectNameW;
14343 D3D12_DRED_ALLOCATION_TYPE AllocationType;
14344 const struct D3D12_DRED_ALLOCATION_NODE *pNext;
14345} D3D12_DRED_ALLOCATION_NODE;
14346typedef struct D3D12_DRED_ALLOCATION_NODE1 {
14347 const char *ObjectNameA;
14348 const WCHAR *ObjectNameW;
14349 D3D12_DRED_ALLOCATION_TYPE AllocationType;
14350 const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
14351 const IUnknown *pObject;
14352} D3D12_DRED_ALLOCATION_NODE1;
14353typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
14354 const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
14355} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
14356typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
14357 const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode;
14358} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
14359typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT {
14360 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14361 const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
14362 const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
14363} D3D12_DRED_PAGE_FAULT_OUTPUT;
14364typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1 {
14365 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14366 const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
14367 const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
14368} D3D12_DRED_PAGE_FAULT_OUTPUT1;
14369typedef enum D3D12_DRED_PAGE_FAULT_FLAGS {
14370 D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0x0
14371} D3D12_DRED_PAGE_FAULT_FLAGS;
14372DEFINE_ENUM_FLAG_OPERATORS(D3D12_DRED_PAGE_FAULT_FLAGS);
14373typedef enum D3D12_DRED_DEVICE_STATE {
14374 D3D12_DRED_DEVICE_STATE_UNKNOWN = 0x0,
14375 D3D12_DRED_DEVICE_STATE_HUNG = 0x3,
14376 D3D12_DRED_DEVICE_STATE_FAULT = 0x6,
14377 D3D12_DRED_DEVICE_STATE_PAGEFAULT = 0x7
14378} D3D12_DRED_DEVICE_STATE;
14379typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2 {
14380 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14381 const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
14382 const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
14383 D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
14384} D3D12_DRED_PAGE_FAULT_OUTPUT2;
14385typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
14386 HRESULT DeviceRemovedReason;
14387 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
14388 D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
14389} D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
14390typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
14391 HRESULT DeviceRemovedReason;
14392 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
14393 D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
14394} D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
14395typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
14396 HRESULT DeviceRemovedReason;
14397 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
14398 D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
14399 D3D12_DRED_DEVICE_STATE DeviceState;
14400} D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
14401typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
14402 D3D12_DRED_VERSION Version;
14403 __C89_NAMELESS union {
14404 D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
14405 D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
14406 D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
14407 D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
14408 } __C89_NAMELESSUNIONNAME;
14409} D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
14410/*****************************************************************************
14411 * ID3D12DeviceRemovedExtendedDataSettings interface
14412 */
14413#ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
14414#define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
14415
14416DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings, 0x82bc481c, 0x6b9b, 0x4030, 0xae,0xdb, 0x7e,0xe3,0xd1,0xdf,0x1e,0x63);
14417#if defined(__cplusplus) && !defined(CINTERFACE)
14418MIDL_INTERFACE("82bc481c-6b9b-4030-aedb-7ee3d1df1e63")
14419ID3D12DeviceRemovedExtendedDataSettings : public IUnknown
14420{
14421 virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement(
14422 D3D12_DRED_ENABLEMENT enablement) = 0;
14423
14424 virtual void STDMETHODCALLTYPE SetPageFaultEnablement(
14425 D3D12_DRED_ENABLEMENT enablement) = 0;
14426
14427 virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement(
14428 D3D12_DRED_ENABLEMENT enablement) = 0;
14429
14430};
14431#ifdef __CRT_UUID_DECL
14432__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedDataSettings, 0x82bc481c, 0x6b9b, 0x4030, 0xae,0xdb, 0x7e,0xe3,0xd1,0xdf,0x1e,0x63)
14433#endif
14434#else
14435typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl {
14436 BEGIN_INTERFACE
14437
14438 /*** IUnknown methods ***/
14439 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14440 ID3D12DeviceRemovedExtendedDataSettings *This,
14441 REFIID riid,
14442 void **ppvObject);
14443
14444 ULONG (STDMETHODCALLTYPE *AddRef)(
14445 ID3D12DeviceRemovedExtendedDataSettings *This);
14446
14447 ULONG (STDMETHODCALLTYPE *Release)(
14448 ID3D12DeviceRemovedExtendedDataSettings *This);
14449
14450 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14451 void (STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement)(
14452 ID3D12DeviceRemovedExtendedDataSettings *This,
14453 D3D12_DRED_ENABLEMENT enablement);
14454
14455 void (STDMETHODCALLTYPE *SetPageFaultEnablement)(
14456 ID3D12DeviceRemovedExtendedDataSettings *This,
14457 D3D12_DRED_ENABLEMENT enablement);
14458
14459 void (STDMETHODCALLTYPE *SetWatsonDumpEnablement)(
14460 ID3D12DeviceRemovedExtendedDataSettings *This,
14461 D3D12_DRED_ENABLEMENT enablement);
14462
14463 END_INTERFACE
14464} ID3D12DeviceRemovedExtendedDataSettingsVtbl;
14465
14466interface ID3D12DeviceRemovedExtendedDataSettings {
14467 CONST_VTBL ID3D12DeviceRemovedExtendedDataSettingsVtbl* lpVtbl;
14468};
14469
14470#ifdef COBJMACROS
14471#ifndef WIDL_C_INLINE_WRAPPERS
14472/*** IUnknown methods ***/
14473#define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14474#define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
14475#define ID3D12DeviceRemovedExtendedDataSettings_Release(This) (This)->lpVtbl->Release(This)
14476/*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14477#define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,enablement) (This)->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement)
14478#define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,enablement) (This)->lpVtbl->SetPageFaultEnablement(This,enablement)
14479#define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,enablement) (This)->lpVtbl->SetWatsonDumpEnablement(This,enablement)
14480#else
14481/*** IUnknown methods ***/
14482static inline HRESULT ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(ID3D12DeviceRemovedExtendedDataSettings* This,REFIID riid,void **ppvObject) {
14483 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14484}
14485static inline ULONG ID3D12DeviceRemovedExtendedDataSettings_AddRef(ID3D12DeviceRemovedExtendedDataSettings* This) {
14486 return This->lpVtbl->AddRef(This);
14487}
14488static inline ULONG ID3D12DeviceRemovedExtendedDataSettings_Release(ID3D12DeviceRemovedExtendedDataSettings* This) {
14489 return This->lpVtbl->Release(This);
14490}
14491/*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14492static inline void ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) {
14493 This->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement);
14494}
14495static inline void ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) {
14496 This->lpVtbl->SetPageFaultEnablement(This,enablement);
14497}
14498static inline void ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) {
14499 This->lpVtbl->SetWatsonDumpEnablement(This,enablement);
14500}
14501#endif
14502#endif
14503
14504#endif
14505
14506
14507#endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */
14508
14509/*****************************************************************************
14510 * ID3D12DeviceRemovedExtendedDataSettings1 interface
14511 */
14512#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
14513#define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
14514
14515DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1, 0xdbd5ae51, 0x3317, 0x4f0a, 0xad,0xf9, 0x1d,0x7c,0xed,0xca,0xae,0x0b);
14516#if defined(__cplusplus) && !defined(CINTERFACE)
14517MIDL_INTERFACE("dbd5ae51-3317-4f0a-adf9-1d7cedcaae0b")
14518ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings
14519{
14520 virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement(
14521 D3D12_DRED_ENABLEMENT enablement) = 0;
14522
14523};
14524#ifdef __CRT_UUID_DECL
14525__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedDataSettings1, 0xdbd5ae51, 0x3317, 0x4f0a, 0xad,0xf9, 0x1d,0x7c,0xed,0xca,0xae,0x0b)
14526#endif
14527#else
14528typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl {
14529 BEGIN_INTERFACE
14530
14531 /*** IUnknown methods ***/
14532 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14533 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14534 REFIID riid,
14535 void **ppvObject);
14536
14537 ULONG (STDMETHODCALLTYPE *AddRef)(
14538 ID3D12DeviceRemovedExtendedDataSettings1 *This);
14539
14540 ULONG (STDMETHODCALLTYPE *Release)(
14541 ID3D12DeviceRemovedExtendedDataSettings1 *This);
14542
14543 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14544 void (STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement)(
14545 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14546 D3D12_DRED_ENABLEMENT enablement);
14547
14548 void (STDMETHODCALLTYPE *SetPageFaultEnablement)(
14549 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14550 D3D12_DRED_ENABLEMENT enablement);
14551
14552 void (STDMETHODCALLTYPE *SetWatsonDumpEnablement)(
14553 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14554 D3D12_DRED_ENABLEMENT enablement);
14555
14556 /*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/
14557 void (STDMETHODCALLTYPE *SetBreadcrumbContextEnablement)(
14558 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14559 D3D12_DRED_ENABLEMENT enablement);
14560
14561 END_INTERFACE
14562} ID3D12DeviceRemovedExtendedDataSettings1Vtbl;
14563
14564interface ID3D12DeviceRemovedExtendedDataSettings1 {
14565 CONST_VTBL ID3D12DeviceRemovedExtendedDataSettings1Vtbl* lpVtbl;
14566};
14567
14568#ifdef COBJMACROS
14569#ifndef WIDL_C_INLINE_WRAPPERS
14570/*** IUnknown methods ***/
14571#define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14572#define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) (This)->lpVtbl->AddRef(This)
14573#define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) (This)->lpVtbl->Release(This)
14574/*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14575#define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,enablement) (This)->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement)
14576#define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,enablement) (This)->lpVtbl->SetPageFaultEnablement(This,enablement)
14577#define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,enablement) (This)->lpVtbl->SetWatsonDumpEnablement(This,enablement)
14578/*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/
14579#define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,enablement) (This)->lpVtbl->SetBreadcrumbContextEnablement(This,enablement)
14580#else
14581/*** IUnknown methods ***/
14582static inline HRESULT ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(ID3D12DeviceRemovedExtendedDataSettings1* This,REFIID riid,void **ppvObject) {
14583 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14584}
14585static inline ULONG ID3D12DeviceRemovedExtendedDataSettings1_AddRef(ID3D12DeviceRemovedExtendedDataSettings1* This) {
14586 return This->lpVtbl->AddRef(This);
14587}
14588static inline ULONG ID3D12DeviceRemovedExtendedDataSettings1_Release(ID3D12DeviceRemovedExtendedDataSettings1* This) {
14589 return This->lpVtbl->Release(This);
14590}
14591/*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14592static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) {
14593 This->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement);
14594}
14595static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) {
14596 This->lpVtbl->SetPageFaultEnablement(This,enablement);
14597}
14598static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) {
14599 This->lpVtbl->SetWatsonDumpEnablement(This,enablement);
14600}
14601/*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/
14602static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) {
14603 This->lpVtbl->SetBreadcrumbContextEnablement(This,enablement);
14604}
14605#endif
14606#endif
14607
14608#endif
14609
14610
14611#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */
14612
14613/*****************************************************************************
14614 * ID3D12DeviceRemovedExtendedData interface
14615 */
14616#ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
14617#define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
14618
14619DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData, 0x98931d33, 0x5ae8, 0x4791, 0xaa,0x3c, 0x1a,0x73,0xa2,0x93,0x4e,0x71);
14620#if defined(__cplusplus) && !defined(CINTERFACE)
14621MIDL_INTERFACE("98931d33-5ae8-4791-aa3c-1a73a2934e71")
14622ID3D12DeviceRemovedExtendedData : public IUnknown
14623{
14624 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput(
14625 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) = 0;
14626
14627 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput(
14628 D3D12_DRED_PAGE_FAULT_OUTPUT *output) = 0;
14629
14630};
14631#ifdef __CRT_UUID_DECL
14632__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData, 0x98931d33, 0x5ae8, 0x4791, 0xaa,0x3c, 0x1a,0x73,0xa2,0x93,0x4e,0x71)
14633#endif
14634#else
14635typedef struct ID3D12DeviceRemovedExtendedDataVtbl {
14636 BEGIN_INTERFACE
14637
14638 /*** IUnknown methods ***/
14639 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14640 ID3D12DeviceRemovedExtendedData *This,
14641 REFIID riid,
14642 void **ppvObject);
14643
14644 ULONG (STDMETHODCALLTYPE *AddRef)(
14645 ID3D12DeviceRemovedExtendedData *This);
14646
14647 ULONG (STDMETHODCALLTYPE *Release)(
14648 ID3D12DeviceRemovedExtendedData *This);
14649
14650 /*** ID3D12DeviceRemovedExtendedData methods ***/
14651 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)(
14652 ID3D12DeviceRemovedExtendedData *This,
14653 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output);
14654
14655 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)(
14656 ID3D12DeviceRemovedExtendedData *This,
14657 D3D12_DRED_PAGE_FAULT_OUTPUT *output);
14658
14659 END_INTERFACE
14660} ID3D12DeviceRemovedExtendedDataVtbl;
14661
14662interface ID3D12DeviceRemovedExtendedData {
14663 CONST_VTBL ID3D12DeviceRemovedExtendedDataVtbl* lpVtbl;
14664};
14665
14666#ifdef COBJMACROS
14667#ifndef WIDL_C_INLINE_WRAPPERS
14668/*** IUnknown methods ***/
14669#define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14670#define ID3D12DeviceRemovedExtendedData_AddRef(This) (This)->lpVtbl->AddRef(This)
14671#define ID3D12DeviceRemovedExtendedData_Release(This) (This)->lpVtbl->Release(This)
14672/*** ID3D12DeviceRemovedExtendedData methods ***/
14673#define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output)
14674#define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output)
14675#else
14676/*** IUnknown methods ***/
14677static inline HRESULT ID3D12DeviceRemovedExtendedData_QueryInterface(ID3D12DeviceRemovedExtendedData* This,REFIID riid,void **ppvObject) {
14678 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14679}
14680static inline ULONG ID3D12DeviceRemovedExtendedData_AddRef(ID3D12DeviceRemovedExtendedData* This) {
14681 return This->lpVtbl->AddRef(This);
14682}
14683static inline ULONG ID3D12DeviceRemovedExtendedData_Release(ID3D12DeviceRemovedExtendedData* This) {
14684 return This->lpVtbl->Release(This);
14685}
14686/*** ID3D12DeviceRemovedExtendedData methods ***/
14687static inline HRESULT ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) {
14688 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output);
14689}
14690static inline HRESULT ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) {
14691 return This->lpVtbl->GetPageFaultAllocationOutput(This,output);
14692}
14693#endif
14694#endif
14695
14696#endif
14697
14698
14699#endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */
14700
14701/*****************************************************************************
14702 * ID3D12DeviceRemovedExtendedData1 interface
14703 */
14704#ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
14705#define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
14706
14707DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1, 0x9727a022, 0xcf1d, 0x4dda, 0x9e,0xba, 0xef,0xfa,0x65,0x3f,0xc5,0x06);
14708#if defined(__cplusplus) && !defined(CINTERFACE)
14709MIDL_INTERFACE("9727a022-cf1d-4dda-9eba-effa653fc506")
14710ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData
14711{
14712 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1(
14713 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) = 0;
14714
14715 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1(
14716 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) = 0;
14717
14718};
14719#ifdef __CRT_UUID_DECL
14720__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData1, 0x9727a022, 0xcf1d, 0x4dda, 0x9e,0xba, 0xef,0xfa,0x65,0x3f,0xc5,0x06)
14721#endif
14722#else
14723typedef struct ID3D12DeviceRemovedExtendedData1Vtbl {
14724 BEGIN_INTERFACE
14725
14726 /*** IUnknown methods ***/
14727 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14728 ID3D12DeviceRemovedExtendedData1 *This,
14729 REFIID riid,
14730 void **ppvObject);
14731
14732 ULONG (STDMETHODCALLTYPE *AddRef)(
14733 ID3D12DeviceRemovedExtendedData1 *This);
14734
14735 ULONG (STDMETHODCALLTYPE *Release)(
14736 ID3D12DeviceRemovedExtendedData1 *This);
14737
14738 /*** ID3D12DeviceRemovedExtendedData methods ***/
14739 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)(
14740 ID3D12DeviceRemovedExtendedData1 *This,
14741 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output);
14742
14743 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)(
14744 ID3D12DeviceRemovedExtendedData1 *This,
14745 D3D12_DRED_PAGE_FAULT_OUTPUT *output);
14746
14747 /*** ID3D12DeviceRemovedExtendedData1 methods ***/
14748 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1)(
14749 ID3D12DeviceRemovedExtendedData1 *This,
14750 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output);
14751
14752 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput1)(
14753 ID3D12DeviceRemovedExtendedData1 *This,
14754 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output);
14755
14756 END_INTERFACE
14757} ID3D12DeviceRemovedExtendedData1Vtbl;
14758
14759interface ID3D12DeviceRemovedExtendedData1 {
14760 CONST_VTBL ID3D12DeviceRemovedExtendedData1Vtbl* lpVtbl;
14761};
14762
14763#ifdef COBJMACROS
14764#ifndef WIDL_C_INLINE_WRAPPERS
14765/*** IUnknown methods ***/
14766#define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14767#define ID3D12DeviceRemovedExtendedData1_AddRef(This) (This)->lpVtbl->AddRef(This)
14768#define ID3D12DeviceRemovedExtendedData1_Release(This) (This)->lpVtbl->Release(This)
14769/*** ID3D12DeviceRemovedExtendedData methods ***/
14770#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output)
14771#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output)
14772/*** ID3D12DeviceRemovedExtendedData1 methods ***/
14773#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput1(This,output)
14774#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput1(This,output)
14775#else
14776/*** IUnknown methods ***/
14777static inline HRESULT ID3D12DeviceRemovedExtendedData1_QueryInterface(ID3D12DeviceRemovedExtendedData1* This,REFIID riid,void **ppvObject) {
14778 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14779}
14780static inline ULONG ID3D12DeviceRemovedExtendedData1_AddRef(ID3D12DeviceRemovedExtendedData1* This) {
14781 return This->lpVtbl->AddRef(This);
14782}
14783static inline ULONG ID3D12DeviceRemovedExtendedData1_Release(ID3D12DeviceRemovedExtendedData1* This) {
14784 return This->lpVtbl->Release(This);
14785}
14786/*** ID3D12DeviceRemovedExtendedData methods ***/
14787static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) {
14788 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output);
14789}
14790static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) {
14791 return This->lpVtbl->GetPageFaultAllocationOutput(This,output);
14792}
14793/*** ID3D12DeviceRemovedExtendedData1 methods ***/
14794static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) {
14795 return This->lpVtbl->GetAutoBreadcrumbsOutput1(This,output);
14796}
14797static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) {
14798 return This->lpVtbl->GetPageFaultAllocationOutput1(This,output);
14799}
14800#endif
14801#endif
14802
14803#endif
14804
14805
14806#endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */
14807
14808/*****************************************************************************
14809 * ID3D12DeviceRemovedExtendedData2 interface
14810 */
14811#ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
14812#define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
14813
14814DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2, 0x67fc5816, 0xe4ca, 0x4915, 0xbf,0x18, 0x42,0x54,0x12,0x72,0xda,0x54);
14815#if defined(__cplusplus) && !defined(CINTERFACE)
14816MIDL_INTERFACE("67fc5816-e4ca-4915-bf18-42541272da54")
14817ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1
14818{
14819 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2(
14820 D3D12_DRED_PAGE_FAULT_OUTPUT2 *output) = 0;
14821
14822 virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState(
14823 ) = 0;
14824
14825};
14826#ifdef __CRT_UUID_DECL
14827__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData2, 0x67fc5816, 0xe4ca, 0x4915, 0xbf,0x18, 0x42,0x54,0x12,0x72,0xda,0x54)
14828#endif
14829#else
14830typedef struct ID3D12DeviceRemovedExtendedData2Vtbl {
14831 BEGIN_INTERFACE
14832
14833 /*** IUnknown methods ***/
14834 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14835 ID3D12DeviceRemovedExtendedData2 *This,
14836 REFIID riid,
14837 void **ppvObject);
14838
14839 ULONG (STDMETHODCALLTYPE *AddRef)(
14840 ID3D12DeviceRemovedExtendedData2 *This);
14841
14842 ULONG (STDMETHODCALLTYPE *Release)(
14843 ID3D12DeviceRemovedExtendedData2 *This);
14844
14845 /*** ID3D12DeviceRemovedExtendedData methods ***/
14846 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)(
14847 ID3D12DeviceRemovedExtendedData2 *This,
14848 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output);
14849
14850 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)(
14851 ID3D12DeviceRemovedExtendedData2 *This,
14852 D3D12_DRED_PAGE_FAULT_OUTPUT *output);
14853
14854 /*** ID3D12DeviceRemovedExtendedData1 methods ***/
14855 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1)(
14856 ID3D12DeviceRemovedExtendedData2 *This,
14857 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output);
14858
14859 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput1)(
14860 ID3D12DeviceRemovedExtendedData2 *This,
14861 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output);
14862
14863 /*** ID3D12DeviceRemovedExtendedData2 methods ***/
14864 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput2)(
14865 ID3D12DeviceRemovedExtendedData2 *This,
14866 D3D12_DRED_PAGE_FAULT_OUTPUT2 *output);
14867
14868 D3D12_DRED_DEVICE_STATE (STDMETHODCALLTYPE *GetDeviceState)(
14869 ID3D12DeviceRemovedExtendedData2 *This);
14870
14871 END_INTERFACE
14872} ID3D12DeviceRemovedExtendedData2Vtbl;
14873
14874interface ID3D12DeviceRemovedExtendedData2 {
14875 CONST_VTBL ID3D12DeviceRemovedExtendedData2Vtbl* lpVtbl;
14876};
14877
14878#ifdef COBJMACROS
14879#ifndef WIDL_C_INLINE_WRAPPERS
14880/*** IUnknown methods ***/
14881#define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14882#define ID3D12DeviceRemovedExtendedData2_AddRef(This) (This)->lpVtbl->AddRef(This)
14883#define ID3D12DeviceRemovedExtendedData2_Release(This) (This)->lpVtbl->Release(This)
14884/*** ID3D12DeviceRemovedExtendedData methods ***/
14885#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output)
14886#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output)
14887/*** ID3D12DeviceRemovedExtendedData1 methods ***/
14888#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput1(This,output)
14889#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput1(This,output)
14890/*** ID3D12DeviceRemovedExtendedData2 methods ***/
14891#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput2(This,output)
14892#define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) (This)->lpVtbl->GetDeviceState(This)
14893#else
14894/*** IUnknown methods ***/
14895static inline HRESULT ID3D12DeviceRemovedExtendedData2_QueryInterface(ID3D12DeviceRemovedExtendedData2* This,REFIID riid,void **ppvObject) {
14896 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14897}
14898static inline ULONG ID3D12DeviceRemovedExtendedData2_AddRef(ID3D12DeviceRemovedExtendedData2* This) {
14899 return This->lpVtbl->AddRef(This);
14900}
14901static inline ULONG ID3D12DeviceRemovedExtendedData2_Release(ID3D12DeviceRemovedExtendedData2* This) {
14902 return This->lpVtbl->Release(This);
14903}
14904/*** ID3D12DeviceRemovedExtendedData methods ***/
14905static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) {
14906 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output);
14907}
14908static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) {
14909 return This->lpVtbl->GetPageFaultAllocationOutput(This,output);
14910}
14911/*** ID3D12DeviceRemovedExtendedData1 methods ***/
14912static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) {
14913 return This->lpVtbl->GetAutoBreadcrumbsOutput1(This,output);
14914}
14915static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) {
14916 return This->lpVtbl->GetPageFaultAllocationOutput1(This,output);
14917}
14918/*** ID3D12DeviceRemovedExtendedData2 methods ***/
14919static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT2 *output) {
14920 return This->lpVtbl->GetPageFaultAllocationOutput2(This,output);
14921}
14922static inline D3D12_DRED_DEVICE_STATE ID3D12DeviceRemovedExtendedData2_GetDeviceState(ID3D12DeviceRemovedExtendedData2* This) {
14923 return This->lpVtbl->GetDeviceState(This);
14924}
14925#endif
14926#endif
14927
14928#endif
14929
14930
14931#endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */
14932
14933typedef enum D3D12_BACKGROUND_PROCESSING_MODE {
14934 D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0x0,
14935 D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = 0x1,
14936 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = 0x2,
14937 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = 0x3
14938} D3D12_BACKGROUND_PROCESSING_MODE;
14939typedef enum D3D12_MEASUREMENTS_ACTION {
14940 D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0x0,
14941 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = 0x1,
14942 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = 0x2,
14943 D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = 0x3
14944} D3D12_MEASUREMENTS_ACTION;
14945/*****************************************************************************
14946 * ID3D12Device6 interface
14947 */
14948#ifndef __ID3D12Device6_INTERFACE_DEFINED__
14949#define __ID3D12Device6_INTERFACE_DEFINED__
14950
14951DEFINE_GUID(IID_ID3D12Device6, 0xc70b221b, 0x40e4, 0x4a17, 0x89,0xaf, 0x02,0x5a,0x07,0x27,0xa6,0xdc);
14952#if defined(__cplusplus) && !defined(CINTERFACE)
14953MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc")
14954ID3D12Device6 : public ID3D12Device5
14955{
14956 virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode(
14957 D3D12_BACKGROUND_PROCESSING_MODE mode,
14958 D3D12_MEASUREMENTS_ACTION action,
14959 HANDLE event,
14960 WINBOOL *further_measurements_desired) = 0;
14961
14962};
14963#ifdef __CRT_UUID_DECL
14964__CRT_UUID_DECL(ID3D12Device6, 0xc70b221b, 0x40e4, 0x4a17, 0x89,0xaf, 0x02,0x5a,0x07,0x27,0xa6,0xdc)
14965#endif
14966#else
14967typedef struct ID3D12Device6Vtbl {
14968 BEGIN_INTERFACE
14969
14970 /*** IUnknown methods ***/
14971 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14972 ID3D12Device6 *This,
14973 REFIID riid,
14974 void **ppvObject);
14975
14976 ULONG (STDMETHODCALLTYPE *AddRef)(
14977 ID3D12Device6 *This);
14978
14979 ULONG (STDMETHODCALLTYPE *Release)(
14980 ID3D12Device6 *This);
14981
14982 /*** ID3D12Object methods ***/
14983 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
14984 ID3D12Device6 *This,
14985 REFGUID guid,
14986 UINT *data_size,
14987 void *data);
14988
14989 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
14990 ID3D12Device6 *This,
14991 REFGUID guid,
14992 UINT data_size,
14993 const void *data);
14994
14995 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
14996 ID3D12Device6 *This,
14997 REFGUID guid,
14998 const IUnknown *data);
14999
15000 HRESULT (STDMETHODCALLTYPE *SetName)(
15001 ID3D12Device6 *This,
15002 const WCHAR *name);
15003
15004 /*** ID3D12Device methods ***/
15005 UINT (STDMETHODCALLTYPE *GetNodeCount)(
15006 ID3D12Device6 *This);
15007
15008 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
15009 ID3D12Device6 *This,
15010 const D3D12_COMMAND_QUEUE_DESC *desc,
15011 REFIID riid,
15012 void **command_queue);
15013
15014 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
15015 ID3D12Device6 *This,
15016 D3D12_COMMAND_LIST_TYPE type,
15017 REFIID riid,
15018 void **command_allocator);
15019
15020 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
15021 ID3D12Device6 *This,
15022 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
15023 REFIID riid,
15024 void **pipeline_state);
15025
15026 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
15027 ID3D12Device6 *This,
15028 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
15029 REFIID riid,
15030 void **pipeline_state);
15031
15032 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
15033 ID3D12Device6 *This,
15034 UINT node_mask,
15035 D3D12_COMMAND_LIST_TYPE type,
15036 ID3D12CommandAllocator *command_allocator,
15037 ID3D12PipelineState *initial_pipeline_state,
15038 REFIID riid,
15039 void **command_list);
15040
15041 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
15042 ID3D12Device6 *This,
15043 D3D12_FEATURE feature,
15044 void *feature_data,
15045 UINT feature_data_size);
15046
15047 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
15048 ID3D12Device6 *This,
15049 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
15050 REFIID riid,
15051 void **descriptor_heap);
15052
15053 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
15054 ID3D12Device6 *This,
15055 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
15056
15057 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
15058 ID3D12Device6 *This,
15059 UINT node_mask,
15060 const void *bytecode,
15061 SIZE_T bytecode_length,
15062 REFIID riid,
15063 void **root_signature);
15064
15065 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
15066 ID3D12Device6 *This,
15067 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
15068 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15069
15070 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
15071 ID3D12Device6 *This,
15072 ID3D12Resource *resource,
15073 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
15074 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15075
15076 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
15077 ID3D12Device6 *This,
15078 ID3D12Resource *resource,
15079 ID3D12Resource *counter_resource,
15080 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
15081 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15082
15083 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
15084 ID3D12Device6 *This,
15085 ID3D12Resource *resource,
15086 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
15087 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15088
15089 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
15090 ID3D12Device6 *This,
15091 ID3D12Resource *resource,
15092 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
15093 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15094
15095 void (STDMETHODCALLTYPE *CreateSampler)(
15096 ID3D12Device6 *This,
15097 const D3D12_SAMPLER_DESC *desc,
15098 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15099
15100 void (STDMETHODCALLTYPE *CopyDescriptors)(
15101 ID3D12Device6 *This,
15102 UINT dst_descriptor_range_count,
15103 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
15104 const UINT *dst_descriptor_range_sizes,
15105 UINT src_descriptor_range_count,
15106 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
15107 const UINT *src_descriptor_range_sizes,
15108 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
15109
15110 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
15111 ID3D12Device6 *This,
15112 UINT descriptor_count,
15113 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
15114 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
15115 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
15116
15117 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
15118 ID3D12Device6 *This,
15119 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
15120 UINT visible_mask,
15121 UINT reource_desc_count,
15122 const D3D12_RESOURCE_DESC *resource_descs);
15123
15124 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
15125 ID3D12Device6 *This,
15126 D3D12_HEAP_PROPERTIES *__ret,
15127 UINT node_mask,
15128 D3D12_HEAP_TYPE heap_type);
15129
15130 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
15131 ID3D12Device6 *This,
15132 const D3D12_HEAP_PROPERTIES *heap_properties,
15133 D3D12_HEAP_FLAGS heap_flags,
15134 const D3D12_RESOURCE_DESC *desc,
15135 D3D12_RESOURCE_STATES initial_state,
15136 const D3D12_CLEAR_VALUE *optimized_clear_value,
15137 REFIID riid,
15138 void **resource);
15139
15140 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
15141 ID3D12Device6 *This,
15142 const D3D12_HEAP_DESC *desc,
15143 REFIID riid,
15144 void **heap);
15145
15146 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
15147 ID3D12Device6 *This,
15148 ID3D12Heap *heap,
15149 UINT64 heap_offset,
15150 const D3D12_RESOURCE_DESC *desc,
15151 D3D12_RESOURCE_STATES initial_state,
15152 const D3D12_CLEAR_VALUE *optimized_clear_value,
15153 REFIID riid,
15154 void **resource);
15155
15156 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
15157 ID3D12Device6 *This,
15158 const D3D12_RESOURCE_DESC *desc,
15159 D3D12_RESOURCE_STATES initial_state,
15160 const D3D12_CLEAR_VALUE *optimized_clear_value,
15161 REFIID riid,
15162 void **resource);
15163
15164 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
15165 ID3D12Device6 *This,
15166 ID3D12DeviceChild *object,
15167 const SECURITY_ATTRIBUTES *attributes,
15168 DWORD access,
15169 const WCHAR *name,
15170 HANDLE *handle);
15171
15172 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
15173 ID3D12Device6 *This,
15174 HANDLE handle,
15175 REFIID riid,
15176 void **object);
15177
15178 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
15179 ID3D12Device6 *This,
15180 const WCHAR *name,
15181 DWORD access,
15182 HANDLE *handle);
15183
15184 HRESULT (STDMETHODCALLTYPE *MakeResident)(
15185 ID3D12Device6 *This,
15186 UINT object_count,
15187 ID3D12Pageable *const *objects);
15188
15189 HRESULT (STDMETHODCALLTYPE *Evict)(
15190 ID3D12Device6 *This,
15191 UINT object_count,
15192 ID3D12Pageable *const *objects);
15193
15194 HRESULT (STDMETHODCALLTYPE *CreateFence)(
15195 ID3D12Device6 *This,
15196 UINT64 initial_value,
15197 D3D12_FENCE_FLAGS flags,
15198 REFIID riid,
15199 void **fence);
15200
15201 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
15202 ID3D12Device6 *This);
15203
15204 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
15205 ID3D12Device6 *This,
15206 const D3D12_RESOURCE_DESC *desc,
15207 UINT first_sub_resource,
15208 UINT sub_resource_count,
15209 UINT64 base_offset,
15210 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
15211 UINT *row_count,
15212 UINT64 *row_size,
15213 UINT64 *total_bytes);
15214
15215 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
15216 ID3D12Device6 *This,
15217 const D3D12_QUERY_HEAP_DESC *desc,
15218 REFIID riid,
15219 void **heap);
15220
15221 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
15222 ID3D12Device6 *This,
15223 WINBOOL enable);
15224
15225 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
15226 ID3D12Device6 *This,
15227 const D3D12_COMMAND_SIGNATURE_DESC *desc,
15228 ID3D12RootSignature *root_signature,
15229 REFIID riid,
15230 void **command_signature);
15231
15232 void (STDMETHODCALLTYPE *GetResourceTiling)(
15233 ID3D12Device6 *This,
15234 ID3D12Resource *resource,
15235 UINT *total_tile_count,
15236 D3D12_PACKED_MIP_INFO *packed_mip_info,
15237 D3D12_TILE_SHAPE *standard_tile_shape,
15238 UINT *sub_resource_tiling_count,
15239 UINT first_sub_resource_tiling,
15240 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
15241
15242 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
15243 ID3D12Device6 *This,
15244 LUID *__ret);
15245
15246 /*** ID3D12Device1 methods ***/
15247 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
15248 ID3D12Device6 *This,
15249 const void *blob,
15250 SIZE_T blob_size,
15251 REFIID iid,
15252 void **lib);
15253
15254 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
15255 ID3D12Device6 *This,
15256 ID3D12Fence *const *fences,
15257 const UINT64 *values,
15258 UINT fence_count,
15259 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
15260 HANDLE event);
15261
15262 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
15263 ID3D12Device6 *This,
15264 UINT object_count,
15265 ID3D12Pageable *const *objects,
15266 const D3D12_RESIDENCY_PRIORITY *priorities);
15267
15268 /*** ID3D12Device2 methods ***/
15269 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
15270 ID3D12Device6 *This,
15271 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
15272 REFIID riid,
15273 void **pipeline_state);
15274
15275 /*** ID3D12Device3 methods ***/
15276 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
15277 ID3D12Device6 *This,
15278 const void *address,
15279 REFIID riid,
15280 void **heap);
15281
15282 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
15283 ID3D12Device6 *This,
15284 HANDLE file_mapping,
15285 REFIID riid,
15286 void **heap);
15287
15288 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
15289 ID3D12Device6 *This,
15290 D3D12_RESIDENCY_FLAGS flags,
15291 UINT num_objects,
15292 ID3D12Pageable *const *objects,
15293 ID3D12Fence *fence,
15294 UINT64 fence_value);
15295
15296 /*** ID3D12Device4 methods ***/
15297 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
15298 ID3D12Device6 *This,
15299 UINT node_mask,
15300 D3D12_COMMAND_LIST_TYPE type,
15301 D3D12_COMMAND_LIST_FLAGS flags,
15302 REFIID riid,
15303 void **command_list);
15304
15305 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
15306 ID3D12Device6 *This,
15307 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
15308 REFIID riid,
15309 void **session);
15310
15311 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
15312 ID3D12Device6 *This,
15313 const D3D12_HEAP_PROPERTIES *heap_properties,
15314 D3D12_HEAP_FLAGS heap_flags,
15315 const D3D12_RESOURCE_DESC *desc,
15316 D3D12_RESOURCE_STATES initial_resource_state,
15317 const D3D12_CLEAR_VALUE *optimized_clear_value,
15318 ID3D12ProtectedResourceSession *protected_session,
15319 REFIID riid_resource,
15320 void **resource);
15321
15322 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
15323 ID3D12Device6 *This,
15324 const D3D12_HEAP_DESC *desc,
15325 ID3D12ProtectedResourceSession *protected_session,
15326 REFIID riid,
15327 void **heap);
15328
15329 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
15330 ID3D12Device6 *This,
15331 const D3D12_RESOURCE_DESC *desc,
15332 D3D12_RESOURCE_STATES initial_state,
15333 const D3D12_CLEAR_VALUE *optimized_clear_value,
15334 ID3D12ProtectedResourceSession *protected_session,
15335 REFIID riid,
15336 void **resource);
15337
15338 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
15339 ID3D12Device6 *This,
15340 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
15341 UINT visible_mask,
15342 UINT resource_descs_count,
15343 const D3D12_RESOURCE_DESC *resource_descs,
15344 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
15345
15346 /*** ID3D12Device5 methods ***/
15347 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
15348 ID3D12Device6 *This,
15349 ID3D12LifetimeOwner *owner,
15350 REFIID riid,
15351 void **tracker);
15352
15353 void (STDMETHODCALLTYPE *RemoveDevice)(
15354 ID3D12Device6 *This);
15355
15356 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
15357 ID3D12Device6 *This,
15358 UINT *meta_commands_count,
15359 D3D12_META_COMMAND_DESC *descs);
15360
15361 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
15362 ID3D12Device6 *This,
15363 REFGUID command_id,
15364 D3D12_META_COMMAND_PARAMETER_STAGE stage,
15365 UINT *total_structure_size_in_bytes,
15366 UINT *parameter_count,
15367 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
15368
15369 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
15370 ID3D12Device6 *This,
15371 REFGUID command_id,
15372 UINT node_mask,
15373 const void *creation_parameters_data,
15374 SIZE_T creation_parameters_data_size_in_bytes,
15375 REFIID riid,
15376 void **meta_command);
15377
15378 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
15379 ID3D12Device6 *This,
15380 const D3D12_STATE_OBJECT_DESC *desc,
15381 REFIID riid,
15382 void **state_object);
15383
15384 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
15385 ID3D12Device6 *This,
15386 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
15387 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
15388
15389 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
15390 ID3D12Device6 *This,
15391 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
15392 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
15393
15394 /*** ID3D12Device6 methods ***/
15395 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
15396 ID3D12Device6 *This,
15397 D3D12_BACKGROUND_PROCESSING_MODE mode,
15398 D3D12_MEASUREMENTS_ACTION action,
15399 HANDLE event,
15400 WINBOOL *further_measurements_desired);
15401
15402 END_INTERFACE
15403} ID3D12Device6Vtbl;
15404
15405interface ID3D12Device6 {
15406 CONST_VTBL ID3D12Device6Vtbl* lpVtbl;
15407};
15408
15409#ifdef COBJMACROS
15410#ifndef WIDL_C_INLINE_WRAPPERS
15411/*** IUnknown methods ***/
15412#define ID3D12Device6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15413#define ID3D12Device6_AddRef(This) (This)->lpVtbl->AddRef(This)
15414#define ID3D12Device6_Release(This) (This)->lpVtbl->Release(This)
15415/*** ID3D12Object methods ***/
15416#define ID3D12Device6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
15417#define ID3D12Device6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
15418#define ID3D12Device6_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
15419#define ID3D12Device6_SetName(This,name) (This)->lpVtbl->SetName(This,name)
15420/*** ID3D12Device methods ***/
15421#define ID3D12Device6_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
15422#define ID3D12Device6_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
15423#define ID3D12Device6_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
15424#define ID3D12Device6_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
15425#define ID3D12Device6_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
15426#define ID3D12Device6_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
15427#define ID3D12Device6_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
15428#define ID3D12Device6_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
15429#define ID3D12Device6_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
15430#define ID3D12Device6_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
15431#define ID3D12Device6_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
15432#define ID3D12Device6_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
15433#define ID3D12Device6_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
15434#define ID3D12Device6_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
15435#define ID3D12Device6_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
15436#define ID3D12Device6_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
15437#define ID3D12Device6_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
15438#define ID3D12Device6_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
15439#define ID3D12Device6_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device6_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15440#define ID3D12Device6_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device6_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15441#define ID3D12Device6_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
15442#define ID3D12Device6_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
15443#define ID3D12Device6_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
15444#define ID3D12Device6_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
15445#define ID3D12Device6_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
15446#define ID3D12Device6_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
15447#define ID3D12Device6_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
15448#define ID3D12Device6_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
15449#define ID3D12Device6_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
15450#define ID3D12Device6_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
15451#define ID3D12Device6_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
15452#define ID3D12Device6_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
15453#define ID3D12Device6_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
15454#define ID3D12Device6_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
15455#define ID3D12Device6_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
15456#define ID3D12Device6_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
15457#define ID3D12Device6_GetAdapterLuid(This) ID3D12Device6_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15458/*** ID3D12Device1 methods ***/
15459#define ID3D12Device6_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
15460#define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
15461#define ID3D12Device6_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
15462/*** ID3D12Device2 methods ***/
15463#define ID3D12Device6_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
15464/*** ID3D12Device3 methods ***/
15465#define ID3D12Device6_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
15466#define ID3D12Device6_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
15467#define ID3D12Device6_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
15468/*** ID3D12Device4 methods ***/
15469#define ID3D12Device6_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
15470#define ID3D12Device6_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
15471#define ID3D12Device6_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
15472#define ID3D12Device6_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
15473#define ID3D12Device6_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource)
15474#define ID3D12Device6_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device6_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15475/*** ID3D12Device5 methods ***/
15476#define ID3D12Device6_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
15477#define ID3D12Device6_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
15478#define ID3D12Device6_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
15479#define ID3D12Device6_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs)
15480#define ID3D12Device6_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command)
15481#define ID3D12Device6_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
15482#define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
15483#define ID3D12Device6_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
15484/*** ID3D12Device6 methods ***/
15485#define ID3D12Device6_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
15486#else
15487/*** IUnknown methods ***/
15488static inline HRESULT ID3D12Device6_QueryInterface(ID3D12Device6* This,REFIID riid,void **ppvObject) {
15489 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15490}
15491static inline ULONG ID3D12Device6_AddRef(ID3D12Device6* This) {
15492 return This->lpVtbl->AddRef(This);
15493}
15494static inline ULONG ID3D12Device6_Release(ID3D12Device6* This) {
15495 return This->lpVtbl->Release(This);
15496}
15497/*** ID3D12Object methods ***/
15498static inline HRESULT ID3D12Device6_GetPrivateData(ID3D12Device6* This,REFGUID guid,UINT *data_size,void *data) {
15499 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
15500}
15501static inline HRESULT ID3D12Device6_SetPrivateData(ID3D12Device6* This,REFGUID guid,UINT data_size,const void *data) {
15502 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
15503}
15504static inline HRESULT ID3D12Device6_SetPrivateDataInterface(ID3D12Device6* This,REFGUID guid,const IUnknown *data) {
15505 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
15506}
15507static inline HRESULT ID3D12Device6_SetName(ID3D12Device6* This,const WCHAR *name) {
15508 return This->lpVtbl->SetName(This,name);
15509}
15510/*** ID3D12Device methods ***/
15511static inline UINT ID3D12Device6_GetNodeCount(ID3D12Device6* This) {
15512 return This->lpVtbl->GetNodeCount(This);
15513}
15514static inline HRESULT ID3D12Device6_CreateCommandQueue(ID3D12Device6* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
15515 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
15516}
15517static inline HRESULT ID3D12Device6_CreateCommandAllocator(ID3D12Device6* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
15518 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
15519}
15520static inline HRESULT ID3D12Device6_CreateGraphicsPipelineState(ID3D12Device6* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
15521 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
15522}
15523static inline HRESULT ID3D12Device6_CreateComputePipelineState(ID3D12Device6* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
15524 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
15525}
15526static inline HRESULT ID3D12Device6_CreateCommandList(ID3D12Device6* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
15527 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
15528}
15529static inline HRESULT ID3D12Device6_CheckFeatureSupport(ID3D12Device6* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
15530 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
15531}
15532static inline HRESULT ID3D12Device6_CreateDescriptorHeap(ID3D12Device6* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
15533 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
15534}
15535static inline UINT ID3D12Device6_GetDescriptorHandleIncrementSize(ID3D12Device6* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
15536 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
15537}
15538static inline HRESULT ID3D12Device6_CreateRootSignature(ID3D12Device6* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
15539 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
15540}
15541static inline void ID3D12Device6_CreateConstantBufferView(ID3D12Device6* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15542 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
15543}
15544static inline void ID3D12Device6_CreateShaderResourceView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15545 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
15546}
15547static inline void ID3D12Device6_CreateUnorderedAccessView(ID3D12Device6* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15548 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
15549}
15550static inline void ID3D12Device6_CreateRenderTargetView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15551 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
15552}
15553static inline void ID3D12Device6_CreateDepthStencilView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15554 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
15555}
15556static inline void ID3D12Device6_CreateSampler(ID3D12Device6* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15557 This->lpVtbl->CreateSampler(This,desc,descriptor);
15558}
15559static inline void ID3D12Device6_CopyDescriptors(ID3D12Device6* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
15560 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
15561}
15562static inline void ID3D12Device6_CopyDescriptorsSimple(ID3D12Device6* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
15563 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
15564}
15565static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device6_GetResourceAllocationInfo(ID3D12Device6* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
15566 D3D12_RESOURCE_ALLOCATION_INFO __ret;
15567 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
15568}
15569static inline D3D12_HEAP_PROPERTIES ID3D12Device6_GetCustomHeapProperties(ID3D12Device6* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
15570 D3D12_HEAP_PROPERTIES __ret;
15571 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
15572}
15573static inline HRESULT ID3D12Device6_CreateCommittedResource(ID3D12Device6* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
15574 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
15575}
15576static inline HRESULT ID3D12Device6_CreateHeap(ID3D12Device6* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
15577 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
15578}
15579static inline HRESULT ID3D12Device6_CreatePlacedResource(ID3D12Device6* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
15580 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
15581}
15582static inline HRESULT ID3D12Device6_CreateReservedResource(ID3D12Device6* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
15583 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
15584}
15585static inline HRESULT ID3D12Device6_CreateSharedHandle(ID3D12Device6* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
15586 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
15587}
15588static inline HRESULT ID3D12Device6_OpenSharedHandle(ID3D12Device6* This,HANDLE handle,REFIID riid,void **object) {
15589 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
15590}
15591static inline HRESULT ID3D12Device6_OpenSharedHandleByName(ID3D12Device6* This,const WCHAR *name,DWORD access,HANDLE *handle) {
15592 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
15593}
15594static inline HRESULT ID3D12Device6_MakeResident(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects) {
15595 return This->lpVtbl->MakeResident(This,object_count,objects);
15596}
15597static inline HRESULT ID3D12Device6_Evict(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects) {
15598 return This->lpVtbl->Evict(This,object_count,objects);
15599}
15600static inline HRESULT ID3D12Device6_CreateFence(ID3D12Device6* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
15601 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
15602}
15603static inline HRESULT ID3D12Device6_GetDeviceRemovedReason(ID3D12Device6* This) {
15604 return This->lpVtbl->GetDeviceRemovedReason(This);
15605}
15606static inline void ID3D12Device6_GetCopyableFootprints(ID3D12Device6* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
15607 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
15608}
15609static inline HRESULT ID3D12Device6_CreateQueryHeap(ID3D12Device6* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
15610 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
15611}
15612static inline HRESULT ID3D12Device6_SetStablePowerState(ID3D12Device6* This,WINBOOL enable) {
15613 return This->lpVtbl->SetStablePowerState(This,enable);
15614}
15615static inline HRESULT ID3D12Device6_CreateCommandSignature(ID3D12Device6* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
15616 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
15617}
15618static inline void ID3D12Device6_GetResourceTiling(ID3D12Device6* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
15619 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
15620}
15621static inline LUID ID3D12Device6_GetAdapterLuid(ID3D12Device6* This) {
15622 LUID __ret;
15623 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
15624}
15625/*** ID3D12Device1 methods ***/
15626static inline HRESULT ID3D12Device6_CreatePipelineLibrary(ID3D12Device6* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
15627 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
15628}
15629static inline HRESULT ID3D12Device6_SetEventOnMultipleFenceCompletion(ID3D12Device6* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
15630 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
15631}
15632static inline HRESULT ID3D12Device6_SetResidencyPriority(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
15633 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
15634}
15635/*** ID3D12Device2 methods ***/
15636static inline HRESULT ID3D12Device6_CreatePipelineState(ID3D12Device6* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
15637 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
15638}
15639/*** ID3D12Device3 methods ***/
15640static inline HRESULT ID3D12Device6_OpenExistingHeapFromAddress(ID3D12Device6* This,const void *address,REFIID riid,void **heap) {
15641 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
15642}
15643static inline HRESULT ID3D12Device6_OpenExistingHeapFromFileMapping(ID3D12Device6* This,HANDLE file_mapping,REFIID riid,void **heap) {
15644 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
15645}
15646static inline HRESULT ID3D12Device6_EnqueueMakeResident(ID3D12Device6* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
15647 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
15648}
15649/*** ID3D12Device4 methods ***/
15650static inline HRESULT ID3D12Device6_CreateCommandList1(ID3D12Device6* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
15651 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
15652}
15653static inline HRESULT ID3D12Device6_CreateProtectedResourceSession(ID3D12Device6* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
15654 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
15655}
15656static inline HRESULT ID3D12Device6_CreateCommittedResource1(ID3D12Device6* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
15657 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
15658}
15659static inline HRESULT ID3D12Device6_CreateHeap1(ID3D12Device6* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
15660 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
15661}
15662static inline HRESULT ID3D12Device6_CreateReservedResource1(ID3D12Device6* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) {
15663 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
15664}
15665static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device6_GetResourceAllocationInfo1(ID3D12Device6* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
15666 D3D12_RESOURCE_ALLOCATION_INFO __ret;
15667 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
15668}
15669/*** ID3D12Device5 methods ***/
15670static inline HRESULT ID3D12Device6_CreateLifetimeTracker(ID3D12Device6* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
15671 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
15672}
15673static inline void ID3D12Device6_RemoveDevice(ID3D12Device6* This) {
15674 This->lpVtbl->RemoveDevice(This);
15675}
15676static inline HRESULT ID3D12Device6_EnumerateMetaCommands(ID3D12Device6* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
15677 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
15678}
15679static inline HRESULT ID3D12Device6_EnumerateMetaCommandParameters(ID3D12Device6* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) {
15680 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
15681}
15682static inline HRESULT ID3D12Device6_CreateMetaCommand(ID3D12Device6* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) {
15683 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
15684}
15685static inline HRESULT ID3D12Device6_CreateStateObject(ID3D12Device6* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
15686 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
15687}
15688static inline void ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device6* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
15689 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
15690}
15691static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device6_CheckDriverMatchingIdentifier(ID3D12Device6* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) {
15692 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
15693}
15694/*** ID3D12Device6 methods ***/
15695static inline HRESULT ID3D12Device6_SetBackgroundProcessingMode(ID3D12Device6* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
15696 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
15697}
15698#endif
15699#endif
15700
15701#endif
15702
15703
15704#endif /* __ID3D12Device6_INTERFACE_DEFINED__ */
15705
15706DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62b0084e, 0xc70e, 0x4daa, 0xa1, 0x09, 0x30, 0xff, 0x8d, 0x5a, 0x04, 0x82);
15707typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
15708 UINT NodeIndex;
15709 UINT Count;
15710} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT;
15711typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
15712 UINT NodeIndex;
15713 UINT Count;
15714 GUID *pTypes;
15715} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES;
15716typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
15717 UINT NodeMask;
15718 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
15719 GUID ProtectionType;
15720} D3D12_PROTECTED_RESOURCE_SESSION_DESC1;
15721/*****************************************************************************
15722 * ID3D12ProtectedResourceSession1 interface
15723 */
15724#ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
15725#define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
15726
15727DEFINE_GUID(IID_ID3D12ProtectedResourceSession1, 0xd6f12dd6, 0x76fb, 0x406e, 0x89,0x61, 0x42,0x96,0xee,0xfc,0x04,0x09);
15728#if defined(__cplusplus) && !defined(CINTERFACE)
15729MIDL_INTERFACE("d6f12dd6-76fb-406e-8961-4296eefc0409")
15730ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession
15731{
15732#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
15733 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1* STDMETHODCALLTYPE GetDesc1(
15734 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *__ret) = 0;
15735 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1(
15736 )
15737 {
15738 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 __ret;
15739 return *GetDesc1(&__ret);
15740 }
15741#else
15742 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1(
15743 ) = 0;
15744#endif
15745
15746};
15747#ifdef __CRT_UUID_DECL
15748__CRT_UUID_DECL(ID3D12ProtectedResourceSession1, 0xd6f12dd6, 0x76fb, 0x406e, 0x89,0x61, 0x42,0x96,0xee,0xfc,0x04,0x09)
15749#endif
15750#else
15751typedef struct ID3D12ProtectedResourceSession1Vtbl {
15752 BEGIN_INTERFACE
15753
15754 /*** IUnknown methods ***/
15755 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15756 ID3D12ProtectedResourceSession1 *This,
15757 REFIID riid,
15758 void **ppvObject);
15759
15760 ULONG (STDMETHODCALLTYPE *AddRef)(
15761 ID3D12ProtectedResourceSession1 *This);
15762
15763 ULONG (STDMETHODCALLTYPE *Release)(
15764 ID3D12ProtectedResourceSession1 *This);
15765
15766 /*** ID3D12Object methods ***/
15767 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
15768 ID3D12ProtectedResourceSession1 *This,
15769 REFGUID guid,
15770 UINT *data_size,
15771 void *data);
15772
15773 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
15774 ID3D12ProtectedResourceSession1 *This,
15775 REFGUID guid,
15776 UINT data_size,
15777 const void *data);
15778
15779 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
15780 ID3D12ProtectedResourceSession1 *This,
15781 REFGUID guid,
15782 const IUnknown *data);
15783
15784 HRESULT (STDMETHODCALLTYPE *SetName)(
15785 ID3D12ProtectedResourceSession1 *This,
15786 const WCHAR *name);
15787
15788 /*** ID3D12DeviceChild methods ***/
15789 HRESULT (STDMETHODCALLTYPE *GetDevice)(
15790 ID3D12ProtectedResourceSession1 *This,
15791 REFIID riid,
15792 void **device);
15793
15794 /*** ID3D12ProtectedSession methods ***/
15795 HRESULT (STDMETHODCALLTYPE *GetStatusFence)(
15796 ID3D12ProtectedResourceSession1 *This,
15797 REFIID riid,
15798 void **fence);
15799
15800 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)(
15801 ID3D12ProtectedResourceSession1 *This);
15802
15803 /*** ID3D12ProtectedResourceSession methods ***/
15804 D3D12_PROTECTED_RESOURCE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)(
15805 ID3D12ProtectedResourceSession1 *This,
15806 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret);
15807
15808 /*** ID3D12ProtectedResourceSession1 methods ***/
15809 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * (STDMETHODCALLTYPE *GetDesc1)(
15810 ID3D12ProtectedResourceSession1 *This,
15811 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *__ret);
15812
15813 END_INTERFACE
15814} ID3D12ProtectedResourceSession1Vtbl;
15815
15816interface ID3D12ProtectedResourceSession1 {
15817 CONST_VTBL ID3D12ProtectedResourceSession1Vtbl* lpVtbl;
15818};
15819
15820#ifdef COBJMACROS
15821#ifndef WIDL_C_INLINE_WRAPPERS
15822/*** IUnknown methods ***/
15823#define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15824#define ID3D12ProtectedResourceSession1_AddRef(This) (This)->lpVtbl->AddRef(This)
15825#define ID3D12ProtectedResourceSession1_Release(This) (This)->lpVtbl->Release(This)
15826/*** ID3D12Object methods ***/
15827#define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
15828#define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
15829#define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
15830#define ID3D12ProtectedResourceSession1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
15831/*** ID3D12DeviceChild methods ***/
15832#define ID3D12ProtectedResourceSession1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
15833/*** ID3D12ProtectedSession methods ***/
15834#define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence)
15835#define ID3D12ProtectedResourceSession1_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This)
15836/*** ID3D12ProtectedResourceSession methods ***/
15837#define ID3D12ProtectedResourceSession1_GetDesc(This) ID3D12ProtectedResourceSession1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15838/*** ID3D12ProtectedResourceSession1 methods ***/
15839#define ID3D12ProtectedResourceSession1_GetDesc1(This) ID3D12ProtectedResourceSession1_GetDesc1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15840#else
15841/*** IUnknown methods ***/
15842static inline HRESULT ID3D12ProtectedResourceSession1_QueryInterface(ID3D12ProtectedResourceSession1* This,REFIID riid,void **ppvObject) {
15843 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15844}
15845static inline ULONG ID3D12ProtectedResourceSession1_AddRef(ID3D12ProtectedResourceSession1* This) {
15846 return This->lpVtbl->AddRef(This);
15847}
15848static inline ULONG ID3D12ProtectedResourceSession1_Release(ID3D12ProtectedResourceSession1* This) {
15849 return This->lpVtbl->Release(This);
15850}
15851/*** ID3D12Object methods ***/
15852static inline HRESULT ID3D12ProtectedResourceSession1_GetPrivateData(ID3D12ProtectedResourceSession1* This,REFGUID guid,UINT *data_size,void *data) {
15853 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
15854}
15855static inline HRESULT ID3D12ProtectedResourceSession1_SetPrivateData(ID3D12ProtectedResourceSession1* This,REFGUID guid,UINT data_size,const void *data) {
15856 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
15857}
15858static inline HRESULT ID3D12ProtectedResourceSession1_SetPrivateDataInterface(ID3D12ProtectedResourceSession1* This,REFGUID guid,const IUnknown *data) {
15859 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
15860}
15861static inline HRESULT ID3D12ProtectedResourceSession1_SetName(ID3D12ProtectedResourceSession1* This,const WCHAR *name) {
15862 return This->lpVtbl->SetName(This,name);
15863}
15864/*** ID3D12DeviceChild methods ***/
15865static inline HRESULT ID3D12ProtectedResourceSession1_GetDevice(ID3D12ProtectedResourceSession1* This,REFIID riid,void **device) {
15866 return This->lpVtbl->GetDevice(This,riid,device);
15867}
15868/*** ID3D12ProtectedSession methods ***/
15869static inline HRESULT ID3D12ProtectedResourceSession1_GetStatusFence(ID3D12ProtectedResourceSession1* This,REFIID riid,void **fence) {
15870 return This->lpVtbl->GetStatusFence(This,riid,fence);
15871}
15872static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedResourceSession1_GetSessionStatus(ID3D12ProtectedResourceSession1* This) {
15873 return This->lpVtbl->GetSessionStatus(This);
15874}
15875/*** ID3D12ProtectedResourceSession methods ***/
15876static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC ID3D12ProtectedResourceSession1_GetDesc(ID3D12ProtectedResourceSession1* This) {
15877 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret;
15878 return *This->lpVtbl->GetDesc(This,&__ret);
15879}
15880/*** ID3D12ProtectedResourceSession1 methods ***/
15881static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ID3D12ProtectedResourceSession1_GetDesc1(ID3D12ProtectedResourceSession1* This) {
15882 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 __ret;
15883 return *This->lpVtbl->GetDesc1(This,&__ret);
15884}
15885#endif
15886#endif
15887
15888#endif
15889
15890
15891#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */
15892
15893/*****************************************************************************
15894 * ID3D12Device7 interface
15895 */
15896#ifndef __ID3D12Device7_INTERFACE_DEFINED__
15897#define __ID3D12Device7_INTERFACE_DEFINED__
15898
15899DEFINE_GUID(IID_ID3D12Device7, 0x5c014b53, 0x68a1, 0x4b9b, 0x8b,0xd1, 0xdd,0x60,0x46,0xb9,0x35,0x8b);
15900#if defined(__cplusplus) && !defined(CINTERFACE)
15901MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b")
15902ID3D12Device7 : public ID3D12Device6
15903{
15904 virtual HRESULT STDMETHODCALLTYPE AddToStateObject(
15905 const D3D12_STATE_OBJECT_DESC *addition,
15906 ID3D12StateObject *state_object_to_grow_from,
15907 REFIID riid,
15908 void **new_state_object) = 0;
15909
15910 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1(
15911 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
15912 REFIID riid,
15913 void **session) = 0;
15914
15915};
15916#ifdef __CRT_UUID_DECL
15917__CRT_UUID_DECL(ID3D12Device7, 0x5c014b53, 0x68a1, 0x4b9b, 0x8b,0xd1, 0xdd,0x60,0x46,0xb9,0x35,0x8b)
15918#endif
15919#else
15920typedef struct ID3D12Device7Vtbl {
15921 BEGIN_INTERFACE
15922
15923 /*** IUnknown methods ***/
15924 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15925 ID3D12Device7 *This,
15926 REFIID riid,
15927 void **ppvObject);
15928
15929 ULONG (STDMETHODCALLTYPE *AddRef)(
15930 ID3D12Device7 *This);
15931
15932 ULONG (STDMETHODCALLTYPE *Release)(
15933 ID3D12Device7 *This);
15934
15935 /*** ID3D12Object methods ***/
15936 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
15937 ID3D12Device7 *This,
15938 REFGUID guid,
15939 UINT *data_size,
15940 void *data);
15941
15942 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
15943 ID3D12Device7 *This,
15944 REFGUID guid,
15945 UINT data_size,
15946 const void *data);
15947
15948 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
15949 ID3D12Device7 *This,
15950 REFGUID guid,
15951 const IUnknown *data);
15952
15953 HRESULT (STDMETHODCALLTYPE *SetName)(
15954 ID3D12Device7 *This,
15955 const WCHAR *name);
15956
15957 /*** ID3D12Device methods ***/
15958 UINT (STDMETHODCALLTYPE *GetNodeCount)(
15959 ID3D12Device7 *This);
15960
15961 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
15962 ID3D12Device7 *This,
15963 const D3D12_COMMAND_QUEUE_DESC *desc,
15964 REFIID riid,
15965 void **command_queue);
15966
15967 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
15968 ID3D12Device7 *This,
15969 D3D12_COMMAND_LIST_TYPE type,
15970 REFIID riid,
15971 void **command_allocator);
15972
15973 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
15974 ID3D12Device7 *This,
15975 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
15976 REFIID riid,
15977 void **pipeline_state);
15978
15979 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
15980 ID3D12Device7 *This,
15981 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
15982 REFIID riid,
15983 void **pipeline_state);
15984
15985 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
15986 ID3D12Device7 *This,
15987 UINT node_mask,
15988 D3D12_COMMAND_LIST_TYPE type,
15989 ID3D12CommandAllocator *command_allocator,
15990 ID3D12PipelineState *initial_pipeline_state,
15991 REFIID riid,
15992 void **command_list);
15993
15994 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
15995 ID3D12Device7 *This,
15996 D3D12_FEATURE feature,
15997 void *feature_data,
15998 UINT feature_data_size);
15999
16000 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
16001 ID3D12Device7 *This,
16002 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
16003 REFIID riid,
16004 void **descriptor_heap);
16005
16006 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
16007 ID3D12Device7 *This,
16008 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16009
16010 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
16011 ID3D12Device7 *This,
16012 UINT node_mask,
16013 const void *bytecode,
16014 SIZE_T bytecode_length,
16015 REFIID riid,
16016 void **root_signature);
16017
16018 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
16019 ID3D12Device7 *This,
16020 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
16021 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16022
16023 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
16024 ID3D12Device7 *This,
16025 ID3D12Resource *resource,
16026 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
16027 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16028
16029 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
16030 ID3D12Device7 *This,
16031 ID3D12Resource *resource,
16032 ID3D12Resource *counter_resource,
16033 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
16034 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16035
16036 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
16037 ID3D12Device7 *This,
16038 ID3D12Resource *resource,
16039 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
16040 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16041
16042 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
16043 ID3D12Device7 *This,
16044 ID3D12Resource *resource,
16045 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
16046 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16047
16048 void (STDMETHODCALLTYPE *CreateSampler)(
16049 ID3D12Device7 *This,
16050 const D3D12_SAMPLER_DESC *desc,
16051 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16052
16053 void (STDMETHODCALLTYPE *CopyDescriptors)(
16054 ID3D12Device7 *This,
16055 UINT dst_descriptor_range_count,
16056 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
16057 const UINT *dst_descriptor_range_sizes,
16058 UINT src_descriptor_range_count,
16059 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
16060 const UINT *src_descriptor_range_sizes,
16061 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16062
16063 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
16064 ID3D12Device7 *This,
16065 UINT descriptor_count,
16066 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
16067 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
16068 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16069
16070 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
16071 ID3D12Device7 *This,
16072 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
16073 UINT visible_mask,
16074 UINT reource_desc_count,
16075 const D3D12_RESOURCE_DESC *resource_descs);
16076
16077 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
16078 ID3D12Device7 *This,
16079 D3D12_HEAP_PROPERTIES *__ret,
16080 UINT node_mask,
16081 D3D12_HEAP_TYPE heap_type);
16082
16083 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
16084 ID3D12Device7 *This,
16085 const D3D12_HEAP_PROPERTIES *heap_properties,
16086 D3D12_HEAP_FLAGS heap_flags,
16087 const D3D12_RESOURCE_DESC *desc,
16088 D3D12_RESOURCE_STATES initial_state,
16089 const D3D12_CLEAR_VALUE *optimized_clear_value,
16090 REFIID riid,
16091 void **resource);
16092
16093 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
16094 ID3D12Device7 *This,
16095 const D3D12_HEAP_DESC *desc,
16096 REFIID riid,
16097 void **heap);
16098
16099 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
16100 ID3D12Device7 *This,
16101 ID3D12Heap *heap,
16102 UINT64 heap_offset,
16103 const D3D12_RESOURCE_DESC *desc,
16104 D3D12_RESOURCE_STATES initial_state,
16105 const D3D12_CLEAR_VALUE *optimized_clear_value,
16106 REFIID riid,
16107 void **resource);
16108
16109 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
16110 ID3D12Device7 *This,
16111 const D3D12_RESOURCE_DESC *desc,
16112 D3D12_RESOURCE_STATES initial_state,
16113 const D3D12_CLEAR_VALUE *optimized_clear_value,
16114 REFIID riid,
16115 void **resource);
16116
16117 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
16118 ID3D12Device7 *This,
16119 ID3D12DeviceChild *object,
16120 const SECURITY_ATTRIBUTES *attributes,
16121 DWORD access,
16122 const WCHAR *name,
16123 HANDLE *handle);
16124
16125 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
16126 ID3D12Device7 *This,
16127 HANDLE handle,
16128 REFIID riid,
16129 void **object);
16130
16131 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
16132 ID3D12Device7 *This,
16133 const WCHAR *name,
16134 DWORD access,
16135 HANDLE *handle);
16136
16137 HRESULT (STDMETHODCALLTYPE *MakeResident)(
16138 ID3D12Device7 *This,
16139 UINT object_count,
16140 ID3D12Pageable *const *objects);
16141
16142 HRESULT (STDMETHODCALLTYPE *Evict)(
16143 ID3D12Device7 *This,
16144 UINT object_count,
16145 ID3D12Pageable *const *objects);
16146
16147 HRESULT (STDMETHODCALLTYPE *CreateFence)(
16148 ID3D12Device7 *This,
16149 UINT64 initial_value,
16150 D3D12_FENCE_FLAGS flags,
16151 REFIID riid,
16152 void **fence);
16153
16154 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
16155 ID3D12Device7 *This);
16156
16157 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
16158 ID3D12Device7 *This,
16159 const D3D12_RESOURCE_DESC *desc,
16160 UINT first_sub_resource,
16161 UINT sub_resource_count,
16162 UINT64 base_offset,
16163 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
16164 UINT *row_count,
16165 UINT64 *row_size,
16166 UINT64 *total_bytes);
16167
16168 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
16169 ID3D12Device7 *This,
16170 const D3D12_QUERY_HEAP_DESC *desc,
16171 REFIID riid,
16172 void **heap);
16173
16174 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
16175 ID3D12Device7 *This,
16176 WINBOOL enable);
16177
16178 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
16179 ID3D12Device7 *This,
16180 const D3D12_COMMAND_SIGNATURE_DESC *desc,
16181 ID3D12RootSignature *root_signature,
16182 REFIID riid,
16183 void **command_signature);
16184
16185 void (STDMETHODCALLTYPE *GetResourceTiling)(
16186 ID3D12Device7 *This,
16187 ID3D12Resource *resource,
16188 UINT *total_tile_count,
16189 D3D12_PACKED_MIP_INFO *packed_mip_info,
16190 D3D12_TILE_SHAPE *standard_tile_shape,
16191 UINT *sub_resource_tiling_count,
16192 UINT first_sub_resource_tiling,
16193 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
16194
16195 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
16196 ID3D12Device7 *This,
16197 LUID *__ret);
16198
16199 /*** ID3D12Device1 methods ***/
16200 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
16201 ID3D12Device7 *This,
16202 const void *blob,
16203 SIZE_T blob_size,
16204 REFIID iid,
16205 void **lib);
16206
16207 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
16208 ID3D12Device7 *This,
16209 ID3D12Fence *const *fences,
16210 const UINT64 *values,
16211 UINT fence_count,
16212 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
16213 HANDLE event);
16214
16215 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
16216 ID3D12Device7 *This,
16217 UINT object_count,
16218 ID3D12Pageable *const *objects,
16219 const D3D12_RESIDENCY_PRIORITY *priorities);
16220
16221 /*** ID3D12Device2 methods ***/
16222 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
16223 ID3D12Device7 *This,
16224 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
16225 REFIID riid,
16226 void **pipeline_state);
16227
16228 /*** ID3D12Device3 methods ***/
16229 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
16230 ID3D12Device7 *This,
16231 const void *address,
16232 REFIID riid,
16233 void **heap);
16234
16235 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
16236 ID3D12Device7 *This,
16237 HANDLE file_mapping,
16238 REFIID riid,
16239 void **heap);
16240
16241 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
16242 ID3D12Device7 *This,
16243 D3D12_RESIDENCY_FLAGS flags,
16244 UINT num_objects,
16245 ID3D12Pageable *const *objects,
16246 ID3D12Fence *fence,
16247 UINT64 fence_value);
16248
16249 /*** ID3D12Device4 methods ***/
16250 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
16251 ID3D12Device7 *This,
16252 UINT node_mask,
16253 D3D12_COMMAND_LIST_TYPE type,
16254 D3D12_COMMAND_LIST_FLAGS flags,
16255 REFIID riid,
16256 void **command_list);
16257
16258 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
16259 ID3D12Device7 *This,
16260 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
16261 REFIID riid,
16262 void **session);
16263
16264 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
16265 ID3D12Device7 *This,
16266 const D3D12_HEAP_PROPERTIES *heap_properties,
16267 D3D12_HEAP_FLAGS heap_flags,
16268 const D3D12_RESOURCE_DESC *desc,
16269 D3D12_RESOURCE_STATES initial_resource_state,
16270 const D3D12_CLEAR_VALUE *optimized_clear_value,
16271 ID3D12ProtectedResourceSession *protected_session,
16272 REFIID riid_resource,
16273 void **resource);
16274
16275 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
16276 ID3D12Device7 *This,
16277 const D3D12_HEAP_DESC *desc,
16278 ID3D12ProtectedResourceSession *protected_session,
16279 REFIID riid,
16280 void **heap);
16281
16282 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
16283 ID3D12Device7 *This,
16284 const D3D12_RESOURCE_DESC *desc,
16285 D3D12_RESOURCE_STATES initial_state,
16286 const D3D12_CLEAR_VALUE *optimized_clear_value,
16287 ID3D12ProtectedResourceSession *protected_session,
16288 REFIID riid,
16289 void **resource);
16290
16291 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
16292 ID3D12Device7 *This,
16293 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
16294 UINT visible_mask,
16295 UINT resource_descs_count,
16296 const D3D12_RESOURCE_DESC *resource_descs,
16297 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
16298
16299 /*** ID3D12Device5 methods ***/
16300 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
16301 ID3D12Device7 *This,
16302 ID3D12LifetimeOwner *owner,
16303 REFIID riid,
16304 void **tracker);
16305
16306 void (STDMETHODCALLTYPE *RemoveDevice)(
16307 ID3D12Device7 *This);
16308
16309 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
16310 ID3D12Device7 *This,
16311 UINT *meta_commands_count,
16312 D3D12_META_COMMAND_DESC *descs);
16313
16314 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
16315 ID3D12Device7 *This,
16316 REFGUID command_id,
16317 D3D12_META_COMMAND_PARAMETER_STAGE stage,
16318 UINT *total_structure_size_in_bytes,
16319 UINT *parameter_count,
16320 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
16321
16322 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
16323 ID3D12Device7 *This,
16324 REFGUID command_id,
16325 UINT node_mask,
16326 const void *creation_parameters_data,
16327 SIZE_T creation_parameters_data_size_in_bytes,
16328 REFIID riid,
16329 void **meta_command);
16330
16331 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
16332 ID3D12Device7 *This,
16333 const D3D12_STATE_OBJECT_DESC *desc,
16334 REFIID riid,
16335 void **state_object);
16336
16337 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
16338 ID3D12Device7 *This,
16339 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
16340 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
16341
16342 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
16343 ID3D12Device7 *This,
16344 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
16345 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
16346
16347 /*** ID3D12Device6 methods ***/
16348 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
16349 ID3D12Device7 *This,
16350 D3D12_BACKGROUND_PROCESSING_MODE mode,
16351 D3D12_MEASUREMENTS_ACTION action,
16352 HANDLE event,
16353 WINBOOL *further_measurements_desired);
16354
16355 /*** ID3D12Device7 methods ***/
16356 HRESULT (STDMETHODCALLTYPE *AddToStateObject)(
16357 ID3D12Device7 *This,
16358 const D3D12_STATE_OBJECT_DESC *addition,
16359 ID3D12StateObject *state_object_to_grow_from,
16360 REFIID riid,
16361 void **new_state_object);
16362
16363 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)(
16364 ID3D12Device7 *This,
16365 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
16366 REFIID riid,
16367 void **session);
16368
16369 END_INTERFACE
16370} ID3D12Device7Vtbl;
16371
16372interface ID3D12Device7 {
16373 CONST_VTBL ID3D12Device7Vtbl* lpVtbl;
16374};
16375
16376#ifdef COBJMACROS
16377#ifndef WIDL_C_INLINE_WRAPPERS
16378/*** IUnknown methods ***/
16379#define ID3D12Device7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16380#define ID3D12Device7_AddRef(This) (This)->lpVtbl->AddRef(This)
16381#define ID3D12Device7_Release(This) (This)->lpVtbl->Release(This)
16382/*** ID3D12Object methods ***/
16383#define ID3D12Device7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
16384#define ID3D12Device7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
16385#define ID3D12Device7_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
16386#define ID3D12Device7_SetName(This,name) (This)->lpVtbl->SetName(This,name)
16387/*** ID3D12Device methods ***/
16388#define ID3D12Device7_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
16389#define ID3D12Device7_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
16390#define ID3D12Device7_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
16391#define ID3D12Device7_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
16392#define ID3D12Device7_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
16393#define ID3D12Device7_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
16394#define ID3D12Device7_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
16395#define ID3D12Device7_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
16396#define ID3D12Device7_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
16397#define ID3D12Device7_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
16398#define ID3D12Device7_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
16399#define ID3D12Device7_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
16400#define ID3D12Device7_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
16401#define ID3D12Device7_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
16402#define ID3D12Device7_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
16403#define ID3D12Device7_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
16404#define ID3D12Device7_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
16405#define ID3D12Device7_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
16406#define ID3D12Device7_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device7_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
16407#define ID3D12Device7_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device7_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
16408#define ID3D12Device7_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
16409#define ID3D12Device7_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
16410#define ID3D12Device7_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
16411#define ID3D12Device7_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
16412#define ID3D12Device7_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
16413#define ID3D12Device7_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
16414#define ID3D12Device7_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
16415#define ID3D12Device7_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
16416#define ID3D12Device7_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
16417#define ID3D12Device7_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
16418#define ID3D12Device7_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
16419#define ID3D12Device7_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
16420#define ID3D12Device7_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
16421#define ID3D12Device7_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
16422#define ID3D12Device7_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
16423#define ID3D12Device7_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
16424#define ID3D12Device7_GetAdapterLuid(This) ID3D12Device7_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
16425/*** ID3D12Device1 methods ***/
16426#define ID3D12Device7_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
16427#define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
16428#define ID3D12Device7_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
16429/*** ID3D12Device2 methods ***/
16430#define ID3D12Device7_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
16431/*** ID3D12Device3 methods ***/
16432#define ID3D12Device7_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
16433#define ID3D12Device7_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
16434#define ID3D12Device7_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
16435/*** ID3D12Device4 methods ***/
16436#define ID3D12Device7_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
16437#define ID3D12Device7_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
16438#define ID3D12Device7_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
16439#define ID3D12Device7_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
16440#define ID3D12Device7_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource)
16441#define ID3D12Device7_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device7_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
16442/*** ID3D12Device5 methods ***/
16443#define ID3D12Device7_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
16444#define ID3D12Device7_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
16445#define ID3D12Device7_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
16446#define ID3D12Device7_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs)
16447#define ID3D12Device7_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command)
16448#define ID3D12Device7_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
16449#define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
16450#define ID3D12Device7_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
16451/*** ID3D12Device6 methods ***/
16452#define ID3D12Device7_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
16453/*** ID3D12Device7 methods ***/
16454#define ID3D12Device7_AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) (This)->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object)
16455#define ID3D12Device7_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session)
16456#else
16457/*** IUnknown methods ***/
16458static inline HRESULT ID3D12Device7_QueryInterface(ID3D12Device7* This,REFIID riid,void **ppvObject) {
16459 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16460}
16461static inline ULONG ID3D12Device7_AddRef(ID3D12Device7* This) {
16462 return This->lpVtbl->AddRef(This);
16463}
16464static inline ULONG ID3D12Device7_Release(ID3D12Device7* This) {
16465 return This->lpVtbl->Release(This);
16466}
16467/*** ID3D12Object methods ***/
16468static inline HRESULT ID3D12Device7_GetPrivateData(ID3D12Device7* This,REFGUID guid,UINT *data_size,void *data) {
16469 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
16470}
16471static inline HRESULT ID3D12Device7_SetPrivateData(ID3D12Device7* This,REFGUID guid,UINT data_size,const void *data) {
16472 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
16473}
16474static inline HRESULT ID3D12Device7_SetPrivateDataInterface(ID3D12Device7* This,REFGUID guid,const IUnknown *data) {
16475 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
16476}
16477static inline HRESULT ID3D12Device7_SetName(ID3D12Device7* This,const WCHAR *name) {
16478 return This->lpVtbl->SetName(This,name);
16479}
16480/*** ID3D12Device methods ***/
16481static inline UINT ID3D12Device7_GetNodeCount(ID3D12Device7* This) {
16482 return This->lpVtbl->GetNodeCount(This);
16483}
16484static inline HRESULT ID3D12Device7_CreateCommandQueue(ID3D12Device7* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
16485 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
16486}
16487static inline HRESULT ID3D12Device7_CreateCommandAllocator(ID3D12Device7* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
16488 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
16489}
16490static inline HRESULT ID3D12Device7_CreateGraphicsPipelineState(ID3D12Device7* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
16491 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
16492}
16493static inline HRESULT ID3D12Device7_CreateComputePipelineState(ID3D12Device7* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
16494 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
16495}
16496static inline HRESULT ID3D12Device7_CreateCommandList(ID3D12Device7* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
16497 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
16498}
16499static inline HRESULT ID3D12Device7_CheckFeatureSupport(ID3D12Device7* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
16500 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
16501}
16502static inline HRESULT ID3D12Device7_CreateDescriptorHeap(ID3D12Device7* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
16503 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
16504}
16505static inline UINT ID3D12Device7_GetDescriptorHandleIncrementSize(ID3D12Device7* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
16506 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
16507}
16508static inline HRESULT ID3D12Device7_CreateRootSignature(ID3D12Device7* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
16509 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
16510}
16511static inline void ID3D12Device7_CreateConstantBufferView(ID3D12Device7* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16512 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
16513}
16514static inline void ID3D12Device7_CreateShaderResourceView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16515 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
16516}
16517static inline void ID3D12Device7_CreateUnorderedAccessView(ID3D12Device7* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16518 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
16519}
16520static inline void ID3D12Device7_CreateRenderTargetView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16521 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
16522}
16523static inline void ID3D12Device7_CreateDepthStencilView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16524 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
16525}
16526static inline void ID3D12Device7_CreateSampler(ID3D12Device7* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16527 This->lpVtbl->CreateSampler(This,desc,descriptor);
16528}
16529static inline void ID3D12Device7_CopyDescriptors(ID3D12Device7* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
16530 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
16531}
16532static inline void ID3D12Device7_CopyDescriptorsSimple(ID3D12Device7* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
16533 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
16534}
16535static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device7_GetResourceAllocationInfo(ID3D12Device7* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
16536 D3D12_RESOURCE_ALLOCATION_INFO __ret;
16537 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
16538}
16539static inline D3D12_HEAP_PROPERTIES ID3D12Device7_GetCustomHeapProperties(ID3D12Device7* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
16540 D3D12_HEAP_PROPERTIES __ret;
16541 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
16542}
16543static inline HRESULT ID3D12Device7_CreateCommittedResource(ID3D12Device7* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
16544 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
16545}
16546static inline HRESULT ID3D12Device7_CreateHeap(ID3D12Device7* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
16547 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
16548}
16549static inline HRESULT ID3D12Device7_CreatePlacedResource(ID3D12Device7* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
16550 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
16551}
16552static inline HRESULT ID3D12Device7_CreateReservedResource(ID3D12Device7* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
16553 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
16554}
16555static inline HRESULT ID3D12Device7_CreateSharedHandle(ID3D12Device7* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
16556 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
16557}
16558static inline HRESULT ID3D12Device7_OpenSharedHandle(ID3D12Device7* This,HANDLE handle,REFIID riid,void **object) {
16559 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
16560}
16561static inline HRESULT ID3D12Device7_OpenSharedHandleByName(ID3D12Device7* This,const WCHAR *name,DWORD access,HANDLE *handle) {
16562 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
16563}
16564static inline HRESULT ID3D12Device7_MakeResident(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects) {
16565 return This->lpVtbl->MakeResident(This,object_count,objects);
16566}
16567static inline HRESULT ID3D12Device7_Evict(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects) {
16568 return This->lpVtbl->Evict(This,object_count,objects);
16569}
16570static inline HRESULT ID3D12Device7_CreateFence(ID3D12Device7* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
16571 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
16572}
16573static inline HRESULT ID3D12Device7_GetDeviceRemovedReason(ID3D12Device7* This) {
16574 return This->lpVtbl->GetDeviceRemovedReason(This);
16575}
16576static inline void ID3D12Device7_GetCopyableFootprints(ID3D12Device7* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
16577 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
16578}
16579static inline HRESULT ID3D12Device7_CreateQueryHeap(ID3D12Device7* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
16580 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
16581}
16582static inline HRESULT ID3D12Device7_SetStablePowerState(ID3D12Device7* This,WINBOOL enable) {
16583 return This->lpVtbl->SetStablePowerState(This,enable);
16584}
16585static inline HRESULT ID3D12Device7_CreateCommandSignature(ID3D12Device7* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
16586 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
16587}
16588static inline void ID3D12Device7_GetResourceTiling(ID3D12Device7* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
16589 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
16590}
16591static inline LUID ID3D12Device7_GetAdapterLuid(ID3D12Device7* This) {
16592 LUID __ret;
16593 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
16594}
16595/*** ID3D12Device1 methods ***/
16596static inline HRESULT ID3D12Device7_CreatePipelineLibrary(ID3D12Device7* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
16597 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
16598}
16599static inline HRESULT ID3D12Device7_SetEventOnMultipleFenceCompletion(ID3D12Device7* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
16600 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
16601}
16602static inline HRESULT ID3D12Device7_SetResidencyPriority(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
16603 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
16604}
16605/*** ID3D12Device2 methods ***/
16606static inline HRESULT ID3D12Device7_CreatePipelineState(ID3D12Device7* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
16607 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
16608}
16609/*** ID3D12Device3 methods ***/
16610static inline HRESULT ID3D12Device7_OpenExistingHeapFromAddress(ID3D12Device7* This,const void *address,REFIID riid,void **heap) {
16611 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
16612}
16613static inline HRESULT ID3D12Device7_OpenExistingHeapFromFileMapping(ID3D12Device7* This,HANDLE file_mapping,REFIID riid,void **heap) {
16614 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
16615}
16616static inline HRESULT ID3D12Device7_EnqueueMakeResident(ID3D12Device7* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
16617 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
16618}
16619/*** ID3D12Device4 methods ***/
16620static inline HRESULT ID3D12Device7_CreateCommandList1(ID3D12Device7* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
16621 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
16622}
16623static inline HRESULT ID3D12Device7_CreateProtectedResourceSession(ID3D12Device7* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
16624 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
16625}
16626static inline HRESULT ID3D12Device7_CreateCommittedResource1(ID3D12Device7* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
16627 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
16628}
16629static inline HRESULT ID3D12Device7_CreateHeap1(ID3D12Device7* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
16630 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
16631}
16632static inline HRESULT ID3D12Device7_CreateReservedResource1(ID3D12Device7* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) {
16633 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
16634}
16635static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device7_GetResourceAllocationInfo1(ID3D12Device7* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
16636 D3D12_RESOURCE_ALLOCATION_INFO __ret;
16637 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
16638}
16639/*** ID3D12Device5 methods ***/
16640static inline HRESULT ID3D12Device7_CreateLifetimeTracker(ID3D12Device7* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
16641 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
16642}
16643static inline void ID3D12Device7_RemoveDevice(ID3D12Device7* This) {
16644 This->lpVtbl->RemoveDevice(This);
16645}
16646static inline HRESULT ID3D12Device7_EnumerateMetaCommands(ID3D12Device7* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
16647 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
16648}
16649static inline HRESULT ID3D12Device7_EnumerateMetaCommandParameters(ID3D12Device7* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) {
16650 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
16651}
16652static inline HRESULT ID3D12Device7_CreateMetaCommand(ID3D12Device7* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) {
16653 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
16654}
16655static inline HRESULT ID3D12Device7_CreateStateObject(ID3D12Device7* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
16656 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
16657}
16658static inline void ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device7* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
16659 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
16660}
16661static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device7_CheckDriverMatchingIdentifier(ID3D12Device7* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) {
16662 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
16663}
16664/*** ID3D12Device6 methods ***/
16665static inline HRESULT ID3D12Device7_SetBackgroundProcessingMode(ID3D12Device7* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
16666 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
16667}
16668/*** ID3D12Device7 methods ***/
16669static inline HRESULT ID3D12Device7_AddToStateObject(ID3D12Device7* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) {
16670 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object);
16671}
16672static inline HRESULT ID3D12Device7_CreateProtectedResourceSession1(ID3D12Device7* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) {
16673 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session);
16674}
16675#endif
16676#endif
16677
16678#endif
16679
16680
16681#endif /* __ID3D12Device7_INTERFACE_DEFINED__ */
16682
16683/*****************************************************************************
16684 * ID3D12Device8 interface
16685 */
16686#ifndef __ID3D12Device8_INTERFACE_DEFINED__
16687#define __ID3D12Device8_INTERFACE_DEFINED__
16688
16689DEFINE_GUID(IID_ID3D12Device8, 0x9218e6bb, 0xf944, 0x4f7e, 0xa7,0x5c, 0xb1,0xb2,0xc7,0xb7,0x01,0xf3);
16690#if defined(__cplusplus) && !defined(CINTERFACE)
16691MIDL_INTERFACE("9218e6bb-f944-4f7e-a75c-b1b2c7b701f3")
16692ID3D12Device8 : public ID3D12Device7
16693{
16694#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
16695 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo2(
16696 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
16697 UINT visible_mask,
16698 UINT resource_descs_count,
16699 const D3D12_RESOURCE_DESC1 *resource_descs,
16700 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0;
16701 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
16702 UINT visible_mask,
16703 UINT resource_descs_count,
16704 const D3D12_RESOURCE_DESC1 *resource_descs,
16705 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1)
16706 {
16707 D3D12_RESOURCE_ALLOCATION_INFO __ret;
16708 return *GetResourceAllocationInfo2(&__ret, visible_mask, resource_descs_count, resource_descs, resource_allocation_info1);
16709 }
16710#else
16711 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
16712 UINT visible_mask,
16713 UINT resource_descs_count,
16714 const D3D12_RESOURCE_DESC1 *resource_descs,
16715 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0;
16716#endif
16717
16718 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2(
16719 const D3D12_HEAP_PROPERTIES *heap_properties,
16720 D3D12_HEAP_FLAGS heap_flags,
16721 const D3D12_RESOURCE_DESC1 *desc,
16722 D3D12_RESOURCE_STATES initial_resource_state,
16723 const D3D12_CLEAR_VALUE *optimized_clear_value,
16724 ID3D12ProtectedResourceSession *protected_session,
16725 REFIID riid_resource,
16726 void **resource) = 0;
16727
16728 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1(
16729 ID3D12Heap *heap,
16730 UINT64 heap_offset,
16731 const D3D12_RESOURCE_DESC1 *desc,
16732 D3D12_RESOURCE_STATES initial_state,
16733 const D3D12_CLEAR_VALUE *optimized_clear_value,
16734 REFIID riid,
16735 void **resource) = 0;
16736
16737 virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView(
16738 ID3D12Resource *targeted_resource,
16739 ID3D12Resource *feedback_resource,
16740 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) = 0;
16741
16742 virtual void STDMETHODCALLTYPE GetCopyableFootprints1(
16743 const D3D12_RESOURCE_DESC1 *resource_desc,
16744 UINT first_subresource,
16745 UINT subresources_count,
16746 UINT64 base_offset,
16747 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
16748 UINT *rows_count,
16749 UINT64 *row_size_in_bytes,
16750 UINT64 *total_bytes) = 0;
16751
16752};
16753#ifdef __CRT_UUID_DECL
16754__CRT_UUID_DECL(ID3D12Device8, 0x9218e6bb, 0xf944, 0x4f7e, 0xa7,0x5c, 0xb1,0xb2,0xc7,0xb7,0x01,0xf3)
16755#endif
16756#else
16757typedef struct ID3D12Device8Vtbl {
16758 BEGIN_INTERFACE
16759
16760 /*** IUnknown methods ***/
16761 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16762 ID3D12Device8 *This,
16763 REFIID riid,
16764 void **ppvObject);
16765
16766 ULONG (STDMETHODCALLTYPE *AddRef)(
16767 ID3D12Device8 *This);
16768
16769 ULONG (STDMETHODCALLTYPE *Release)(
16770 ID3D12Device8 *This);
16771
16772 /*** ID3D12Object methods ***/
16773 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
16774 ID3D12Device8 *This,
16775 REFGUID guid,
16776 UINT *data_size,
16777 void *data);
16778
16779 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
16780 ID3D12Device8 *This,
16781 REFGUID guid,
16782 UINT data_size,
16783 const void *data);
16784
16785 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
16786 ID3D12Device8 *This,
16787 REFGUID guid,
16788 const IUnknown *data);
16789
16790 HRESULT (STDMETHODCALLTYPE *SetName)(
16791 ID3D12Device8 *This,
16792 const WCHAR *name);
16793
16794 /*** ID3D12Device methods ***/
16795 UINT (STDMETHODCALLTYPE *GetNodeCount)(
16796 ID3D12Device8 *This);
16797
16798 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
16799 ID3D12Device8 *This,
16800 const D3D12_COMMAND_QUEUE_DESC *desc,
16801 REFIID riid,
16802 void **command_queue);
16803
16804 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
16805 ID3D12Device8 *This,
16806 D3D12_COMMAND_LIST_TYPE type,
16807 REFIID riid,
16808 void **command_allocator);
16809
16810 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
16811 ID3D12Device8 *This,
16812 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
16813 REFIID riid,
16814 void **pipeline_state);
16815
16816 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
16817 ID3D12Device8 *This,
16818 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
16819 REFIID riid,
16820 void **pipeline_state);
16821
16822 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
16823 ID3D12Device8 *This,
16824 UINT node_mask,
16825 D3D12_COMMAND_LIST_TYPE type,
16826 ID3D12CommandAllocator *command_allocator,
16827 ID3D12PipelineState *initial_pipeline_state,
16828 REFIID riid,
16829 void **command_list);
16830
16831 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
16832 ID3D12Device8 *This,
16833 D3D12_FEATURE feature,
16834 void *feature_data,
16835 UINT feature_data_size);
16836
16837 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
16838 ID3D12Device8 *This,
16839 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
16840 REFIID riid,
16841 void **descriptor_heap);
16842
16843 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
16844 ID3D12Device8 *This,
16845 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16846
16847 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
16848 ID3D12Device8 *This,
16849 UINT node_mask,
16850 const void *bytecode,
16851 SIZE_T bytecode_length,
16852 REFIID riid,
16853 void **root_signature);
16854
16855 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
16856 ID3D12Device8 *This,
16857 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
16858 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16859
16860 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
16861 ID3D12Device8 *This,
16862 ID3D12Resource *resource,
16863 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
16864 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16865
16866 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
16867 ID3D12Device8 *This,
16868 ID3D12Resource *resource,
16869 ID3D12Resource *counter_resource,
16870 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
16871 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16872
16873 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
16874 ID3D12Device8 *This,
16875 ID3D12Resource *resource,
16876 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
16877 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16878
16879 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
16880 ID3D12Device8 *This,
16881 ID3D12Resource *resource,
16882 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
16883 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16884
16885 void (STDMETHODCALLTYPE *CreateSampler)(
16886 ID3D12Device8 *This,
16887 const D3D12_SAMPLER_DESC *desc,
16888 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16889
16890 void (STDMETHODCALLTYPE *CopyDescriptors)(
16891 ID3D12Device8 *This,
16892 UINT dst_descriptor_range_count,
16893 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
16894 const UINT *dst_descriptor_range_sizes,
16895 UINT src_descriptor_range_count,
16896 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
16897 const UINT *src_descriptor_range_sizes,
16898 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16899
16900 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
16901 ID3D12Device8 *This,
16902 UINT descriptor_count,
16903 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
16904 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
16905 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16906
16907 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
16908 ID3D12Device8 *This,
16909 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
16910 UINT visible_mask,
16911 UINT reource_desc_count,
16912 const D3D12_RESOURCE_DESC *resource_descs);
16913
16914 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
16915 ID3D12Device8 *This,
16916 D3D12_HEAP_PROPERTIES *__ret,
16917 UINT node_mask,
16918 D3D12_HEAP_TYPE heap_type);
16919
16920 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
16921 ID3D12Device8 *This,
16922 const D3D12_HEAP_PROPERTIES *heap_properties,
16923 D3D12_HEAP_FLAGS heap_flags,
16924 const D3D12_RESOURCE_DESC *desc,
16925 D3D12_RESOURCE_STATES initial_state,
16926 const D3D12_CLEAR_VALUE *optimized_clear_value,
16927 REFIID riid,
16928 void **resource);
16929
16930 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
16931 ID3D12Device8 *This,
16932 const D3D12_HEAP_DESC *desc,
16933 REFIID riid,
16934 void **heap);
16935
16936 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
16937 ID3D12Device8 *This,
16938 ID3D12Heap *heap,
16939 UINT64 heap_offset,
16940 const D3D12_RESOURCE_DESC *desc,
16941 D3D12_RESOURCE_STATES initial_state,
16942 const D3D12_CLEAR_VALUE *optimized_clear_value,
16943 REFIID riid,
16944 void **resource);
16945
16946 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
16947 ID3D12Device8 *This,
16948 const D3D12_RESOURCE_DESC *desc,
16949 D3D12_RESOURCE_STATES initial_state,
16950 const D3D12_CLEAR_VALUE *optimized_clear_value,
16951 REFIID riid,
16952 void **resource);
16953
16954 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
16955 ID3D12Device8 *This,
16956 ID3D12DeviceChild *object,
16957 const SECURITY_ATTRIBUTES *attributes,
16958 DWORD access,
16959 const WCHAR *name,
16960 HANDLE *handle);
16961
16962 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
16963 ID3D12Device8 *This,
16964 HANDLE handle,
16965 REFIID riid,
16966 void **object);
16967
16968 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
16969 ID3D12Device8 *This,
16970 const WCHAR *name,
16971 DWORD access,
16972 HANDLE *handle);
16973
16974 HRESULT (STDMETHODCALLTYPE *MakeResident)(
16975 ID3D12Device8 *This,
16976 UINT object_count,
16977 ID3D12Pageable *const *objects);
16978
16979 HRESULT (STDMETHODCALLTYPE *Evict)(
16980 ID3D12Device8 *This,
16981 UINT object_count,
16982 ID3D12Pageable *const *objects);
16983
16984 HRESULT (STDMETHODCALLTYPE *CreateFence)(
16985 ID3D12Device8 *This,
16986 UINT64 initial_value,
16987 D3D12_FENCE_FLAGS flags,
16988 REFIID riid,
16989 void **fence);
16990
16991 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
16992 ID3D12Device8 *This);
16993
16994 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
16995 ID3D12Device8 *This,
16996 const D3D12_RESOURCE_DESC *desc,
16997 UINT first_sub_resource,
16998 UINT sub_resource_count,
16999 UINT64 base_offset,
17000 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
17001 UINT *row_count,
17002 UINT64 *row_size,
17003 UINT64 *total_bytes);
17004
17005 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
17006 ID3D12Device8 *This,
17007 const D3D12_QUERY_HEAP_DESC *desc,
17008 REFIID riid,
17009 void **heap);
17010
17011 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
17012 ID3D12Device8 *This,
17013 WINBOOL enable);
17014
17015 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
17016 ID3D12Device8 *This,
17017 const D3D12_COMMAND_SIGNATURE_DESC *desc,
17018 ID3D12RootSignature *root_signature,
17019 REFIID riid,
17020 void **command_signature);
17021
17022 void (STDMETHODCALLTYPE *GetResourceTiling)(
17023 ID3D12Device8 *This,
17024 ID3D12Resource *resource,
17025 UINT *total_tile_count,
17026 D3D12_PACKED_MIP_INFO *packed_mip_info,
17027 D3D12_TILE_SHAPE *standard_tile_shape,
17028 UINT *sub_resource_tiling_count,
17029 UINT first_sub_resource_tiling,
17030 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
17031
17032 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
17033 ID3D12Device8 *This,
17034 LUID *__ret);
17035
17036 /*** ID3D12Device1 methods ***/
17037 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
17038 ID3D12Device8 *This,
17039 const void *blob,
17040 SIZE_T blob_size,
17041 REFIID iid,
17042 void **lib);
17043
17044 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
17045 ID3D12Device8 *This,
17046 ID3D12Fence *const *fences,
17047 const UINT64 *values,
17048 UINT fence_count,
17049 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
17050 HANDLE event);
17051
17052 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
17053 ID3D12Device8 *This,
17054 UINT object_count,
17055 ID3D12Pageable *const *objects,
17056 const D3D12_RESIDENCY_PRIORITY *priorities);
17057
17058 /*** ID3D12Device2 methods ***/
17059 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
17060 ID3D12Device8 *This,
17061 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
17062 REFIID riid,
17063 void **pipeline_state);
17064
17065 /*** ID3D12Device3 methods ***/
17066 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
17067 ID3D12Device8 *This,
17068 const void *address,
17069 REFIID riid,
17070 void **heap);
17071
17072 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
17073 ID3D12Device8 *This,
17074 HANDLE file_mapping,
17075 REFIID riid,
17076 void **heap);
17077
17078 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
17079 ID3D12Device8 *This,
17080 D3D12_RESIDENCY_FLAGS flags,
17081 UINT num_objects,
17082 ID3D12Pageable *const *objects,
17083 ID3D12Fence *fence,
17084 UINT64 fence_value);
17085
17086 /*** ID3D12Device4 methods ***/
17087 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
17088 ID3D12Device8 *This,
17089 UINT node_mask,
17090 D3D12_COMMAND_LIST_TYPE type,
17091 D3D12_COMMAND_LIST_FLAGS flags,
17092 REFIID riid,
17093 void **command_list);
17094
17095 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
17096 ID3D12Device8 *This,
17097 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
17098 REFIID riid,
17099 void **session);
17100
17101 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
17102 ID3D12Device8 *This,
17103 const D3D12_HEAP_PROPERTIES *heap_properties,
17104 D3D12_HEAP_FLAGS heap_flags,
17105 const D3D12_RESOURCE_DESC *desc,
17106 D3D12_RESOURCE_STATES initial_resource_state,
17107 const D3D12_CLEAR_VALUE *optimized_clear_value,
17108 ID3D12ProtectedResourceSession *protected_session,
17109 REFIID riid_resource,
17110 void **resource);
17111
17112 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
17113 ID3D12Device8 *This,
17114 const D3D12_HEAP_DESC *desc,
17115 ID3D12ProtectedResourceSession *protected_session,
17116 REFIID riid,
17117 void **heap);
17118
17119 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
17120 ID3D12Device8 *This,
17121 const D3D12_RESOURCE_DESC *desc,
17122 D3D12_RESOURCE_STATES initial_state,
17123 const D3D12_CLEAR_VALUE *optimized_clear_value,
17124 ID3D12ProtectedResourceSession *protected_session,
17125 REFIID riid,
17126 void **resource);
17127
17128 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
17129 ID3D12Device8 *This,
17130 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
17131 UINT visible_mask,
17132 UINT resource_descs_count,
17133 const D3D12_RESOURCE_DESC *resource_descs,
17134 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
17135
17136 /*** ID3D12Device5 methods ***/
17137 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
17138 ID3D12Device8 *This,
17139 ID3D12LifetimeOwner *owner,
17140 REFIID riid,
17141 void **tracker);
17142
17143 void (STDMETHODCALLTYPE *RemoveDevice)(
17144 ID3D12Device8 *This);
17145
17146 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
17147 ID3D12Device8 *This,
17148 UINT *meta_commands_count,
17149 D3D12_META_COMMAND_DESC *descs);
17150
17151 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
17152 ID3D12Device8 *This,
17153 REFGUID command_id,
17154 D3D12_META_COMMAND_PARAMETER_STAGE stage,
17155 UINT *total_structure_size_in_bytes,
17156 UINT *parameter_count,
17157 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
17158
17159 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
17160 ID3D12Device8 *This,
17161 REFGUID command_id,
17162 UINT node_mask,
17163 const void *creation_parameters_data,
17164 SIZE_T creation_parameters_data_size_in_bytes,
17165 REFIID riid,
17166 void **meta_command);
17167
17168 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
17169 ID3D12Device8 *This,
17170 const D3D12_STATE_OBJECT_DESC *desc,
17171 REFIID riid,
17172 void **state_object);
17173
17174 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
17175 ID3D12Device8 *This,
17176 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
17177 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
17178
17179 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
17180 ID3D12Device8 *This,
17181 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
17182 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
17183
17184 /*** ID3D12Device6 methods ***/
17185 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
17186 ID3D12Device8 *This,
17187 D3D12_BACKGROUND_PROCESSING_MODE mode,
17188 D3D12_MEASUREMENTS_ACTION action,
17189 HANDLE event,
17190 WINBOOL *further_measurements_desired);
17191
17192 /*** ID3D12Device7 methods ***/
17193 HRESULT (STDMETHODCALLTYPE *AddToStateObject)(
17194 ID3D12Device8 *This,
17195 const D3D12_STATE_OBJECT_DESC *addition,
17196 ID3D12StateObject *state_object_to_grow_from,
17197 REFIID riid,
17198 void **new_state_object);
17199
17200 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)(
17201 ID3D12Device8 *This,
17202 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
17203 REFIID riid,
17204 void **session);
17205
17206 /*** ID3D12Device8 methods ***/
17207 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)(
17208 ID3D12Device8 *This,
17209 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
17210 UINT visible_mask,
17211 UINT resource_descs_count,
17212 const D3D12_RESOURCE_DESC1 *resource_descs,
17213 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
17214
17215 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)(
17216 ID3D12Device8 *This,
17217 const D3D12_HEAP_PROPERTIES *heap_properties,
17218 D3D12_HEAP_FLAGS heap_flags,
17219 const D3D12_RESOURCE_DESC1 *desc,
17220 D3D12_RESOURCE_STATES initial_resource_state,
17221 const D3D12_CLEAR_VALUE *optimized_clear_value,
17222 ID3D12ProtectedResourceSession *protected_session,
17223 REFIID riid_resource,
17224 void **resource);
17225
17226 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)(
17227 ID3D12Device8 *This,
17228 ID3D12Heap *heap,
17229 UINT64 heap_offset,
17230 const D3D12_RESOURCE_DESC1 *desc,
17231 D3D12_RESOURCE_STATES initial_state,
17232 const D3D12_CLEAR_VALUE *optimized_clear_value,
17233 REFIID riid,
17234 void **resource);
17235
17236 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)(
17237 ID3D12Device8 *This,
17238 ID3D12Resource *targeted_resource,
17239 ID3D12Resource *feedback_resource,
17240 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor);
17241
17242 void (STDMETHODCALLTYPE *GetCopyableFootprints1)(
17243 ID3D12Device8 *This,
17244 const D3D12_RESOURCE_DESC1 *resource_desc,
17245 UINT first_subresource,
17246 UINT subresources_count,
17247 UINT64 base_offset,
17248 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
17249 UINT *rows_count,
17250 UINT64 *row_size_in_bytes,
17251 UINT64 *total_bytes);
17252
17253 END_INTERFACE
17254} ID3D12Device8Vtbl;
17255
17256interface ID3D12Device8 {
17257 CONST_VTBL ID3D12Device8Vtbl* lpVtbl;
17258};
17259
17260#ifdef COBJMACROS
17261#ifndef WIDL_C_INLINE_WRAPPERS
17262/*** IUnknown methods ***/
17263#define ID3D12Device8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17264#define ID3D12Device8_AddRef(This) (This)->lpVtbl->AddRef(This)
17265#define ID3D12Device8_Release(This) (This)->lpVtbl->Release(This)
17266/*** ID3D12Object methods ***/
17267#define ID3D12Device8_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
17268#define ID3D12Device8_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
17269#define ID3D12Device8_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
17270#define ID3D12Device8_SetName(This,name) (This)->lpVtbl->SetName(This,name)
17271/*** ID3D12Device methods ***/
17272#define ID3D12Device8_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
17273#define ID3D12Device8_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
17274#define ID3D12Device8_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
17275#define ID3D12Device8_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
17276#define ID3D12Device8_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
17277#define ID3D12Device8_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
17278#define ID3D12Device8_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
17279#define ID3D12Device8_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
17280#define ID3D12Device8_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
17281#define ID3D12Device8_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
17282#define ID3D12Device8_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
17283#define ID3D12Device8_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
17284#define ID3D12Device8_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
17285#define ID3D12Device8_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
17286#define ID3D12Device8_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
17287#define ID3D12Device8_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
17288#define ID3D12Device8_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
17289#define ID3D12Device8_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
17290#define ID3D12Device8_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device8_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17291#define ID3D12Device8_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device8_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17292#define ID3D12Device8_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
17293#define ID3D12Device8_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
17294#define ID3D12Device8_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
17295#define ID3D12Device8_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
17296#define ID3D12Device8_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
17297#define ID3D12Device8_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
17298#define ID3D12Device8_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
17299#define ID3D12Device8_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
17300#define ID3D12Device8_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
17301#define ID3D12Device8_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
17302#define ID3D12Device8_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
17303#define ID3D12Device8_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
17304#define ID3D12Device8_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
17305#define ID3D12Device8_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
17306#define ID3D12Device8_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
17307#define ID3D12Device8_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
17308#define ID3D12Device8_GetAdapterLuid(This) ID3D12Device8_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17309/*** ID3D12Device1 methods ***/
17310#define ID3D12Device8_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
17311#define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
17312#define ID3D12Device8_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
17313/*** ID3D12Device2 methods ***/
17314#define ID3D12Device8_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
17315/*** ID3D12Device3 methods ***/
17316#define ID3D12Device8_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
17317#define ID3D12Device8_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
17318#define ID3D12Device8_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
17319/*** ID3D12Device4 methods ***/
17320#define ID3D12Device8_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
17321#define ID3D12Device8_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
17322#define ID3D12Device8_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
17323#define ID3D12Device8_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
17324#define ID3D12Device8_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource)
17325#define ID3D12Device8_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device8_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17326/*** ID3D12Device5 methods ***/
17327#define ID3D12Device8_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
17328#define ID3D12Device8_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
17329#define ID3D12Device8_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
17330#define ID3D12Device8_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs)
17331#define ID3D12Device8_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command)
17332#define ID3D12Device8_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
17333#define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
17334#define ID3D12Device8_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
17335/*** ID3D12Device6 methods ***/
17336#define ID3D12Device8_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
17337/*** ID3D12Device7 methods ***/
17338#define ID3D12Device8_AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) (This)->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object)
17339#define ID3D12Device8_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session)
17340/*** ID3D12Device8 methods ***/
17341#define ID3D12Device8_GetResourceAllocationInfo2(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device8_GetResourceAllocationInfo2_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17342#define ID3D12Device8_CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
17343#define ID3D12Device8_CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
17344#define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor)
17345#define ID3D12Device8_GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) (This)->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes)
17346#else
17347/*** IUnknown methods ***/
17348static inline HRESULT ID3D12Device8_QueryInterface(ID3D12Device8* This,REFIID riid,void **ppvObject) {
17349 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17350}
17351static inline ULONG ID3D12Device8_AddRef(ID3D12Device8* This) {
17352 return This->lpVtbl->AddRef(This);
17353}
17354static inline ULONG ID3D12Device8_Release(ID3D12Device8* This) {
17355 return This->lpVtbl->Release(This);
17356}
17357/*** ID3D12Object methods ***/
17358static inline HRESULT ID3D12Device8_GetPrivateData(ID3D12Device8* This,REFGUID guid,UINT *data_size,void *data) {
17359 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
17360}
17361static inline HRESULT ID3D12Device8_SetPrivateData(ID3D12Device8* This,REFGUID guid,UINT data_size,const void *data) {
17362 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
17363}
17364static inline HRESULT ID3D12Device8_SetPrivateDataInterface(ID3D12Device8* This,REFGUID guid,const IUnknown *data) {
17365 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
17366}
17367static inline HRESULT ID3D12Device8_SetName(ID3D12Device8* This,const WCHAR *name) {
17368 return This->lpVtbl->SetName(This,name);
17369}
17370/*** ID3D12Device methods ***/
17371static inline UINT ID3D12Device8_GetNodeCount(ID3D12Device8* This) {
17372 return This->lpVtbl->GetNodeCount(This);
17373}
17374static inline HRESULT ID3D12Device8_CreateCommandQueue(ID3D12Device8* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
17375 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
17376}
17377static inline HRESULT ID3D12Device8_CreateCommandAllocator(ID3D12Device8* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
17378 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
17379}
17380static inline HRESULT ID3D12Device8_CreateGraphicsPipelineState(ID3D12Device8* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
17381 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
17382}
17383static inline HRESULT ID3D12Device8_CreateComputePipelineState(ID3D12Device8* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
17384 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
17385}
17386static inline HRESULT ID3D12Device8_CreateCommandList(ID3D12Device8* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
17387 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
17388}
17389static inline HRESULT ID3D12Device8_CheckFeatureSupport(ID3D12Device8* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
17390 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
17391}
17392static inline HRESULT ID3D12Device8_CreateDescriptorHeap(ID3D12Device8* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
17393 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
17394}
17395static inline UINT ID3D12Device8_GetDescriptorHandleIncrementSize(ID3D12Device8* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
17396 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
17397}
17398static inline HRESULT ID3D12Device8_CreateRootSignature(ID3D12Device8* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
17399 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
17400}
17401static inline void ID3D12Device8_CreateConstantBufferView(ID3D12Device8* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17402 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
17403}
17404static inline void ID3D12Device8_CreateShaderResourceView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17405 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
17406}
17407static inline void ID3D12Device8_CreateUnorderedAccessView(ID3D12Device8* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17408 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
17409}
17410static inline void ID3D12Device8_CreateRenderTargetView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17411 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
17412}
17413static inline void ID3D12Device8_CreateDepthStencilView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17414 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
17415}
17416static inline void ID3D12Device8_CreateSampler(ID3D12Device8* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17417 This->lpVtbl->CreateSampler(This,desc,descriptor);
17418}
17419static inline void ID3D12Device8_CopyDescriptors(ID3D12Device8* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
17420 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
17421}
17422static inline void ID3D12Device8_CopyDescriptorsSimple(ID3D12Device8* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
17423 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
17424}
17425static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device8_GetResourceAllocationInfo(ID3D12Device8* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
17426 D3D12_RESOURCE_ALLOCATION_INFO __ret;
17427 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
17428}
17429static inline D3D12_HEAP_PROPERTIES ID3D12Device8_GetCustomHeapProperties(ID3D12Device8* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
17430 D3D12_HEAP_PROPERTIES __ret;
17431 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
17432}
17433static inline HRESULT ID3D12Device8_CreateCommittedResource(ID3D12Device8* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
17434 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
17435}
17436static inline HRESULT ID3D12Device8_CreateHeap(ID3D12Device8* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
17437 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
17438}
17439static inline HRESULT ID3D12Device8_CreatePlacedResource(ID3D12Device8* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
17440 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
17441}
17442static inline HRESULT ID3D12Device8_CreateReservedResource(ID3D12Device8* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
17443 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
17444}
17445static inline HRESULT ID3D12Device8_CreateSharedHandle(ID3D12Device8* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
17446 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
17447}
17448static inline HRESULT ID3D12Device8_OpenSharedHandle(ID3D12Device8* This,HANDLE handle,REFIID riid,void **object) {
17449 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
17450}
17451static inline HRESULT ID3D12Device8_OpenSharedHandleByName(ID3D12Device8* This,const WCHAR *name,DWORD access,HANDLE *handle) {
17452 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
17453}
17454static inline HRESULT ID3D12Device8_MakeResident(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects) {
17455 return This->lpVtbl->MakeResident(This,object_count,objects);
17456}
17457static inline HRESULT ID3D12Device8_Evict(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects) {
17458 return This->lpVtbl->Evict(This,object_count,objects);
17459}
17460static inline HRESULT ID3D12Device8_CreateFence(ID3D12Device8* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
17461 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
17462}
17463static inline HRESULT ID3D12Device8_GetDeviceRemovedReason(ID3D12Device8* This) {
17464 return This->lpVtbl->GetDeviceRemovedReason(This);
17465}
17466static inline void ID3D12Device8_GetCopyableFootprints(ID3D12Device8* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
17467 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
17468}
17469static inline HRESULT ID3D12Device8_CreateQueryHeap(ID3D12Device8* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
17470 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
17471}
17472static inline HRESULT ID3D12Device8_SetStablePowerState(ID3D12Device8* This,WINBOOL enable) {
17473 return This->lpVtbl->SetStablePowerState(This,enable);
17474}
17475static inline HRESULT ID3D12Device8_CreateCommandSignature(ID3D12Device8* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
17476 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
17477}
17478static inline void ID3D12Device8_GetResourceTiling(ID3D12Device8* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
17479 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
17480}
17481static inline LUID ID3D12Device8_GetAdapterLuid(ID3D12Device8* This) {
17482 LUID __ret;
17483 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
17484}
17485/*** ID3D12Device1 methods ***/
17486static inline HRESULT ID3D12Device8_CreatePipelineLibrary(ID3D12Device8* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
17487 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
17488}
17489static inline HRESULT ID3D12Device8_SetEventOnMultipleFenceCompletion(ID3D12Device8* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
17490 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
17491}
17492static inline HRESULT ID3D12Device8_SetResidencyPriority(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
17493 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
17494}
17495/*** ID3D12Device2 methods ***/
17496static inline HRESULT ID3D12Device8_CreatePipelineState(ID3D12Device8* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
17497 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
17498}
17499/*** ID3D12Device3 methods ***/
17500static inline HRESULT ID3D12Device8_OpenExistingHeapFromAddress(ID3D12Device8* This,const void *address,REFIID riid,void **heap) {
17501 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
17502}
17503static inline HRESULT ID3D12Device8_OpenExistingHeapFromFileMapping(ID3D12Device8* This,HANDLE file_mapping,REFIID riid,void **heap) {
17504 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
17505}
17506static inline HRESULT ID3D12Device8_EnqueueMakeResident(ID3D12Device8* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
17507 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
17508}
17509/*** ID3D12Device4 methods ***/
17510static inline HRESULT ID3D12Device8_CreateCommandList1(ID3D12Device8* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
17511 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
17512}
17513static inline HRESULT ID3D12Device8_CreateProtectedResourceSession(ID3D12Device8* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
17514 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
17515}
17516static inline HRESULT ID3D12Device8_CreateCommittedResource1(ID3D12Device8* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
17517 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
17518}
17519static inline HRESULT ID3D12Device8_CreateHeap1(ID3D12Device8* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
17520 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
17521}
17522static inline HRESULT ID3D12Device8_CreateReservedResource1(ID3D12Device8* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) {
17523 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
17524}
17525static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device8_GetResourceAllocationInfo1(ID3D12Device8* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
17526 D3D12_RESOURCE_ALLOCATION_INFO __ret;
17527 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
17528}
17529/*** ID3D12Device5 methods ***/
17530static inline HRESULT ID3D12Device8_CreateLifetimeTracker(ID3D12Device8* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
17531 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
17532}
17533static inline void ID3D12Device8_RemoveDevice(ID3D12Device8* This) {
17534 This->lpVtbl->RemoveDevice(This);
17535}
17536static inline HRESULT ID3D12Device8_EnumerateMetaCommands(ID3D12Device8* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
17537 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
17538}
17539static inline HRESULT ID3D12Device8_EnumerateMetaCommandParameters(ID3D12Device8* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) {
17540 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
17541}
17542static inline HRESULT ID3D12Device8_CreateMetaCommand(ID3D12Device8* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) {
17543 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
17544}
17545static inline HRESULT ID3D12Device8_CreateStateObject(ID3D12Device8* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
17546 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
17547}
17548static inline void ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device8* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
17549 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
17550}
17551static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device8_CheckDriverMatchingIdentifier(ID3D12Device8* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) {
17552 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
17553}
17554/*** ID3D12Device6 methods ***/
17555static inline HRESULT ID3D12Device8_SetBackgroundProcessingMode(ID3D12Device8* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
17556 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
17557}
17558/*** ID3D12Device7 methods ***/
17559static inline HRESULT ID3D12Device8_AddToStateObject(ID3D12Device8* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) {
17560 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object);
17561}
17562static inline HRESULT ID3D12Device8_CreateProtectedResourceSession1(ID3D12Device8* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) {
17563 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session);
17564}
17565/*** ID3D12Device8 methods ***/
17566static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device8_GetResourceAllocationInfo2(ID3D12Device8* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC1 *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
17567 D3D12_RESOURCE_ALLOCATION_INFO __ret;
17568 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
17569}
17570static inline HRESULT ID3D12Device8_CreateCommittedResource2(ID3D12Device8* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
17571 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
17572}
17573static inline HRESULT ID3D12Device8_CreatePlacedResource1(ID3D12Device8* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
17574 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
17575}
17576static inline void ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device8* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) {
17577 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor);
17578}
17579static inline void ID3D12Device8_GetCopyableFootprints1(ID3D12Device8* This,const D3D12_RESOURCE_DESC1 *resource_desc,UINT first_subresource,UINT subresources_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *rows_count,UINT64 *row_size_in_bytes,UINT64 *total_bytes) {
17580 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes);
17581}
17582#endif
17583#endif
17584
17585#endif
17586
17587
17588#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */
17589
17590/*****************************************************************************
17591 * ID3D12Resource1 interface
17592 */
17593#ifndef __ID3D12Resource1_INTERFACE_DEFINED__
17594#define __ID3D12Resource1_INTERFACE_DEFINED__
17595
17596DEFINE_GUID(IID_ID3D12Resource1, 0x9d5e227a, 0x4430, 0x4161, 0x88,0xb3, 0x3e,0xca,0x6b,0xb1,0x6e,0x19);
17597#if defined(__cplusplus) && !defined(CINTERFACE)
17598MIDL_INTERFACE("9d5e227a-4430-4161-88b3-3eca6bb16e19")
17599ID3D12Resource1 : public ID3D12Resource
17600{
17601 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
17602 REFIID riid,
17603 void **protected_session) = 0;
17604
17605};
17606#ifdef __CRT_UUID_DECL
17607__CRT_UUID_DECL(ID3D12Resource1, 0x9d5e227a, 0x4430, 0x4161, 0x88,0xb3, 0x3e,0xca,0x6b,0xb1,0x6e,0x19)
17608#endif
17609#else
17610typedef struct ID3D12Resource1Vtbl {
17611 BEGIN_INTERFACE
17612
17613 /*** IUnknown methods ***/
17614 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17615 ID3D12Resource1 *This,
17616 REFIID riid,
17617 void **ppvObject);
17618
17619 ULONG (STDMETHODCALLTYPE *AddRef)(
17620 ID3D12Resource1 *This);
17621
17622 ULONG (STDMETHODCALLTYPE *Release)(
17623 ID3D12Resource1 *This);
17624
17625 /*** ID3D12Object methods ***/
17626 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
17627 ID3D12Resource1 *This,
17628 REFGUID guid,
17629 UINT *data_size,
17630 void *data);
17631
17632 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
17633 ID3D12Resource1 *This,
17634 REFGUID guid,
17635 UINT data_size,
17636 const void *data);
17637
17638 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
17639 ID3D12Resource1 *This,
17640 REFGUID guid,
17641 const IUnknown *data);
17642
17643 HRESULT (STDMETHODCALLTYPE *SetName)(
17644 ID3D12Resource1 *This,
17645 const WCHAR *name);
17646
17647 /*** ID3D12DeviceChild methods ***/
17648 HRESULT (STDMETHODCALLTYPE *GetDevice)(
17649 ID3D12Resource1 *This,
17650 REFIID riid,
17651 void **device);
17652
17653 /*** ID3D12Resource methods ***/
17654 HRESULT (STDMETHODCALLTYPE *Map)(
17655 ID3D12Resource1 *This,
17656 UINT sub_resource,
17657 const D3D12_RANGE *read_range,
17658 void **data);
17659
17660 void (STDMETHODCALLTYPE *Unmap)(
17661 ID3D12Resource1 *This,
17662 UINT sub_resource,
17663 const D3D12_RANGE *written_range);
17664
17665 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)(
17666 ID3D12Resource1 *This,
17667 D3D12_RESOURCE_DESC *__ret);
17668
17669 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)(
17670 ID3D12Resource1 *This);
17671
17672 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)(
17673 ID3D12Resource1 *This,
17674 UINT dst_sub_resource,
17675 const D3D12_BOX *dst_box,
17676 const void *src_data,
17677 UINT src_row_pitch,
17678 UINT src_slice_pitch);
17679
17680 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)(
17681 ID3D12Resource1 *This,
17682 void *dst_data,
17683 UINT dst_row_pitch,
17684 UINT dst_slice_pitch,
17685 UINT src_sub_resource,
17686 const D3D12_BOX *src_box);
17687
17688 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)(
17689 ID3D12Resource1 *This,
17690 D3D12_HEAP_PROPERTIES *heap_properties,
17691 D3D12_HEAP_FLAGS *flags);
17692
17693 /*** ID3D12Resource1 methods ***/
17694 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)(
17695 ID3D12Resource1 *This,
17696 REFIID riid,
17697 void **protected_session);
17698
17699 END_INTERFACE
17700} ID3D12Resource1Vtbl;
17701
17702interface ID3D12Resource1 {
17703 CONST_VTBL ID3D12Resource1Vtbl* lpVtbl;
17704};
17705
17706#ifdef COBJMACROS
17707#ifndef WIDL_C_INLINE_WRAPPERS
17708/*** IUnknown methods ***/
17709#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17710#define ID3D12Resource1_AddRef(This) (This)->lpVtbl->AddRef(This)
17711#define ID3D12Resource1_Release(This) (This)->lpVtbl->Release(This)
17712/*** ID3D12Object methods ***/
17713#define ID3D12Resource1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
17714#define ID3D12Resource1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
17715#define ID3D12Resource1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
17716#define ID3D12Resource1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
17717/*** ID3D12DeviceChild methods ***/
17718#define ID3D12Resource1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
17719/*** ID3D12Resource methods ***/
17720#define ID3D12Resource1_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data)
17721#define ID3D12Resource1_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range)
17722#define ID3D12Resource1_GetDesc(This) ID3D12Resource1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17723#define ID3D12Resource1_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This)
17724#define ID3D12Resource1_WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch)
17725#define ID3D12Resource1_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box)
17726#define ID3D12Resource1_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags)
17727/*** ID3D12Resource1 methods ***/
17728#define ID3D12Resource1_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session)
17729#else
17730/*** IUnknown methods ***/
17731static inline HRESULT ID3D12Resource1_QueryInterface(ID3D12Resource1* This,REFIID riid,void **ppvObject) {
17732 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17733}
17734static inline ULONG ID3D12Resource1_AddRef(ID3D12Resource1* This) {
17735 return This->lpVtbl->AddRef(This);
17736}
17737static inline ULONG ID3D12Resource1_Release(ID3D12Resource1* This) {
17738 return This->lpVtbl->Release(This);
17739}
17740/*** ID3D12Object methods ***/
17741static inline HRESULT ID3D12Resource1_GetPrivateData(ID3D12Resource1* This,REFGUID guid,UINT *data_size,void *data) {
17742 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
17743}
17744static inline HRESULT ID3D12Resource1_SetPrivateData(ID3D12Resource1* This,REFGUID guid,UINT data_size,const void *data) {
17745 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
17746}
17747static inline HRESULT ID3D12Resource1_SetPrivateDataInterface(ID3D12Resource1* This,REFGUID guid,const IUnknown *data) {
17748 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
17749}
17750static inline HRESULT ID3D12Resource1_SetName(ID3D12Resource1* This,const WCHAR *name) {
17751 return This->lpVtbl->SetName(This,name);
17752}
17753/*** ID3D12DeviceChild methods ***/
17754static inline HRESULT ID3D12Resource1_GetDevice(ID3D12Resource1* This,REFIID riid,void **device) {
17755 return This->lpVtbl->GetDevice(This,riid,device);
17756}
17757/*** ID3D12Resource methods ***/
17758static inline HRESULT ID3D12Resource1_Map(ID3D12Resource1* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) {
17759 return This->lpVtbl->Map(This,sub_resource,read_range,data);
17760}
17761static inline void ID3D12Resource1_Unmap(ID3D12Resource1* This,UINT sub_resource,const D3D12_RANGE *written_range) {
17762 This->lpVtbl->Unmap(This,sub_resource,written_range);
17763}
17764static inline D3D12_RESOURCE_DESC ID3D12Resource1_GetDesc(ID3D12Resource1* This) {
17765 D3D12_RESOURCE_DESC __ret;
17766 return *This->lpVtbl->GetDesc(This,&__ret);
17767}
17768static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource1_GetGPUVirtualAddress(ID3D12Resource1* This) {
17769 return This->lpVtbl->GetGPUVirtualAddress(This);
17770}
17771static inline HRESULT ID3D12Resource1_WriteToSubresource(ID3D12Resource1* This,UINT dst_sub_resource,const D3D12_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_slice_pitch) {
17772 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch);
17773}
17774static inline HRESULT ID3D12Resource1_ReadFromSubresource(ID3D12Resource1* This,void *dst_data,UINT dst_row_pitch,UINT dst_slice_pitch,UINT src_sub_resource,const D3D12_BOX *src_box) {
17775 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box);
17776}
17777static inline HRESULT ID3D12Resource1_GetHeapProperties(ID3D12Resource1* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) {
17778 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags);
17779}
17780/*** ID3D12Resource1 methods ***/
17781static inline HRESULT ID3D12Resource1_GetProtectedResourceSession(ID3D12Resource1* This,REFIID riid,void **protected_session) {
17782 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session);
17783}
17784#endif
17785#endif
17786
17787#endif
17788
17789
17790#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */
17791
17792/*****************************************************************************
17793 * ID3D12Resource2 interface
17794 */
17795#ifndef __ID3D12Resource2_INTERFACE_DEFINED__
17796#define __ID3D12Resource2_INTERFACE_DEFINED__
17797
17798DEFINE_GUID(IID_ID3D12Resource2, 0xbe36ec3b, 0xea85, 0x4aeb, 0xa4,0x5a, 0xe9,0xd7,0x64,0x04,0xa4,0x95);
17799#if defined(__cplusplus) && !defined(CINTERFACE)
17800MIDL_INTERFACE("be36ec3b-ea85-4aeb-a45a-e9d76404a495")
17801ID3D12Resource2 : public ID3D12Resource1
17802{
17803#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
17804 virtual D3D12_RESOURCE_DESC1* STDMETHODCALLTYPE GetDesc1(
17805 D3D12_RESOURCE_DESC1 *__ret) = 0;
17806 D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1(
17807 )
17808 {
17809 D3D12_RESOURCE_DESC1 __ret;
17810 return *GetDesc1(&__ret);
17811 }
17812#else
17813 virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1(
17814 ) = 0;
17815#endif
17816
17817};
17818#ifdef __CRT_UUID_DECL
17819__CRT_UUID_DECL(ID3D12Resource2, 0xbe36ec3b, 0xea85, 0x4aeb, 0xa4,0x5a, 0xe9,0xd7,0x64,0x04,0xa4,0x95)
17820#endif
17821#else
17822typedef struct ID3D12Resource2Vtbl {
17823 BEGIN_INTERFACE
17824
17825 /*** IUnknown methods ***/
17826 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17827 ID3D12Resource2 *This,
17828 REFIID riid,
17829 void **ppvObject);
17830
17831 ULONG (STDMETHODCALLTYPE *AddRef)(
17832 ID3D12Resource2 *This);
17833
17834 ULONG (STDMETHODCALLTYPE *Release)(
17835 ID3D12Resource2 *This);
17836
17837 /*** ID3D12Object methods ***/
17838 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
17839 ID3D12Resource2 *This,
17840 REFGUID guid,
17841 UINT *data_size,
17842 void *data);
17843
17844 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
17845 ID3D12Resource2 *This,
17846 REFGUID guid,
17847 UINT data_size,
17848 const void *data);
17849
17850 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
17851 ID3D12Resource2 *This,
17852 REFGUID guid,
17853 const IUnknown *data);
17854
17855 HRESULT (STDMETHODCALLTYPE *SetName)(
17856 ID3D12Resource2 *This,
17857 const WCHAR *name);
17858
17859 /*** ID3D12DeviceChild methods ***/
17860 HRESULT (STDMETHODCALLTYPE *GetDevice)(
17861 ID3D12Resource2 *This,
17862 REFIID riid,
17863 void **device);
17864
17865 /*** ID3D12Resource methods ***/
17866 HRESULT (STDMETHODCALLTYPE *Map)(
17867 ID3D12Resource2 *This,
17868 UINT sub_resource,
17869 const D3D12_RANGE *read_range,
17870 void **data);
17871
17872 void (STDMETHODCALLTYPE *Unmap)(
17873 ID3D12Resource2 *This,
17874 UINT sub_resource,
17875 const D3D12_RANGE *written_range);
17876
17877 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)(
17878 ID3D12Resource2 *This,
17879 D3D12_RESOURCE_DESC *__ret);
17880
17881 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)(
17882 ID3D12Resource2 *This);
17883
17884 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)(
17885 ID3D12Resource2 *This,
17886 UINT dst_sub_resource,
17887 const D3D12_BOX *dst_box,
17888 const void *src_data,
17889 UINT src_row_pitch,
17890 UINT src_slice_pitch);
17891
17892 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)(
17893 ID3D12Resource2 *This,
17894 void *dst_data,
17895 UINT dst_row_pitch,
17896 UINT dst_slice_pitch,
17897 UINT src_sub_resource,
17898 const D3D12_BOX *src_box);
17899
17900 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)(
17901 ID3D12Resource2 *This,
17902 D3D12_HEAP_PROPERTIES *heap_properties,
17903 D3D12_HEAP_FLAGS *flags);
17904
17905 /*** ID3D12Resource1 methods ***/
17906 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)(
17907 ID3D12Resource2 *This,
17908 REFIID riid,
17909 void **protected_session);
17910
17911 /*** ID3D12Resource2 methods ***/
17912 D3D12_RESOURCE_DESC1 * (STDMETHODCALLTYPE *GetDesc1)(
17913 ID3D12Resource2 *This,
17914 D3D12_RESOURCE_DESC1 *__ret);
17915
17916 END_INTERFACE
17917} ID3D12Resource2Vtbl;
17918
17919interface ID3D12Resource2 {
17920 CONST_VTBL ID3D12Resource2Vtbl* lpVtbl;
17921};
17922
17923#ifdef COBJMACROS
17924#ifndef WIDL_C_INLINE_WRAPPERS
17925/*** IUnknown methods ***/
17926#define ID3D12Resource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17927#define ID3D12Resource2_AddRef(This) (This)->lpVtbl->AddRef(This)
17928#define ID3D12Resource2_Release(This) (This)->lpVtbl->Release(This)
17929/*** ID3D12Object methods ***/
17930#define ID3D12Resource2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
17931#define ID3D12Resource2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
17932#define ID3D12Resource2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
17933#define ID3D12Resource2_SetName(This,name) (This)->lpVtbl->SetName(This,name)
17934/*** ID3D12DeviceChild methods ***/
17935#define ID3D12Resource2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
17936/*** ID3D12Resource methods ***/
17937#define ID3D12Resource2_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data)
17938#define ID3D12Resource2_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range)
17939#define ID3D12Resource2_GetDesc(This) ID3D12Resource2_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17940#define ID3D12Resource2_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This)
17941#define ID3D12Resource2_WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch)
17942#define ID3D12Resource2_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box)
17943#define ID3D12Resource2_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags)
17944/*** ID3D12Resource1 methods ***/
17945#define ID3D12Resource2_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session)
17946/*** ID3D12Resource2 methods ***/
17947#define ID3D12Resource2_GetDesc1(This) ID3D12Resource2_GetDesc1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17948#else
17949/*** IUnknown methods ***/
17950static inline HRESULT ID3D12Resource2_QueryInterface(ID3D12Resource2* This,REFIID riid,void **ppvObject) {
17951 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17952}
17953static inline ULONG ID3D12Resource2_AddRef(ID3D12Resource2* This) {
17954 return This->lpVtbl->AddRef(This);
17955}
17956static inline ULONG ID3D12Resource2_Release(ID3D12Resource2* This) {
17957 return This->lpVtbl->Release(This);
17958}
17959/*** ID3D12Object methods ***/
17960static inline HRESULT ID3D12Resource2_GetPrivateData(ID3D12Resource2* This,REFGUID guid,UINT *data_size,void *data) {
17961 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
17962}
17963static inline HRESULT ID3D12Resource2_SetPrivateData(ID3D12Resource2* This,REFGUID guid,UINT data_size,const void *data) {
17964 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
17965}
17966static inline HRESULT ID3D12Resource2_SetPrivateDataInterface(ID3D12Resource2* This,REFGUID guid,const IUnknown *data) {
17967 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
17968}
17969static inline HRESULT ID3D12Resource2_SetName(ID3D12Resource2* This,const WCHAR *name) {
17970 return This->lpVtbl->SetName(This,name);
17971}
17972/*** ID3D12DeviceChild methods ***/
17973static inline HRESULT ID3D12Resource2_GetDevice(ID3D12Resource2* This,REFIID riid,void **device) {
17974 return This->lpVtbl->GetDevice(This,riid,device);
17975}
17976/*** ID3D12Resource methods ***/
17977static inline HRESULT ID3D12Resource2_Map(ID3D12Resource2* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) {
17978 return This->lpVtbl->Map(This,sub_resource,read_range,data);
17979}
17980static inline void ID3D12Resource2_Unmap(ID3D12Resource2* This,UINT sub_resource,const D3D12_RANGE *written_range) {
17981 This->lpVtbl->Unmap(This,sub_resource,written_range);
17982}
17983static inline D3D12_RESOURCE_DESC ID3D12Resource2_GetDesc(ID3D12Resource2* This) {
17984 D3D12_RESOURCE_DESC __ret;
17985 return *This->lpVtbl->GetDesc(This,&__ret);
17986}
17987static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource2_GetGPUVirtualAddress(ID3D12Resource2* This) {
17988 return This->lpVtbl->GetGPUVirtualAddress(This);
17989}
17990static inline HRESULT ID3D12Resource2_WriteToSubresource(ID3D12Resource2* This,UINT dst_sub_resource,const D3D12_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_slice_pitch) {
17991 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch);
17992}
17993static inline HRESULT ID3D12Resource2_ReadFromSubresource(ID3D12Resource2* This,void *dst_data,UINT dst_row_pitch,UINT dst_slice_pitch,UINT src_sub_resource,const D3D12_BOX *src_box) {
17994 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box);
17995}
17996static inline HRESULT ID3D12Resource2_GetHeapProperties(ID3D12Resource2* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) {
17997 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags);
17998}
17999/*** ID3D12Resource1 methods ***/
18000static inline HRESULT ID3D12Resource2_GetProtectedResourceSession(ID3D12Resource2* This,REFIID riid,void **protected_session) {
18001 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session);
18002}
18003/*** ID3D12Resource2 methods ***/
18004static inline D3D12_RESOURCE_DESC1 ID3D12Resource2_GetDesc1(ID3D12Resource2* This) {
18005 D3D12_RESOURCE_DESC1 __ret;
18006 return *This->lpVtbl->GetDesc1(This,&__ret);
18007}
18008#endif
18009#endif
18010
18011#endif
18012
18013
18014#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */
18015
18016/*****************************************************************************
18017 * ID3D12Heap1 interface
18018 */
18019#ifndef __ID3D12Heap1_INTERFACE_DEFINED__
18020#define __ID3D12Heap1_INTERFACE_DEFINED__
18021
18022DEFINE_GUID(IID_ID3D12Heap1, 0x572f7389, 0x2168, 0x49e3, 0x96,0x93, 0xd6,0xdf,0x58,0x71,0xbf,0x6d);
18023#if defined(__cplusplus) && !defined(CINTERFACE)
18024MIDL_INTERFACE("572f7389-2168-49e3-9693-d6df5871bf6d")
18025ID3D12Heap1 : public ID3D12Heap
18026{
18027 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
18028 REFIID riid,
18029 void **protected_session) = 0;
18030
18031};
18032#ifdef __CRT_UUID_DECL
18033__CRT_UUID_DECL(ID3D12Heap1, 0x572f7389, 0x2168, 0x49e3, 0x96,0x93, 0xd6,0xdf,0x58,0x71,0xbf,0x6d)
18034#endif
18035#else
18036typedef struct ID3D12Heap1Vtbl {
18037 BEGIN_INTERFACE
18038
18039 /*** IUnknown methods ***/
18040 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18041 ID3D12Heap1 *This,
18042 REFIID riid,
18043 void **ppvObject);
18044
18045 ULONG (STDMETHODCALLTYPE *AddRef)(
18046 ID3D12Heap1 *This);
18047
18048 ULONG (STDMETHODCALLTYPE *Release)(
18049 ID3D12Heap1 *This);
18050
18051 /*** ID3D12Object methods ***/
18052 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
18053 ID3D12Heap1 *This,
18054 REFGUID guid,
18055 UINT *data_size,
18056 void *data);
18057
18058 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
18059 ID3D12Heap1 *This,
18060 REFGUID guid,
18061 UINT data_size,
18062 const void *data);
18063
18064 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
18065 ID3D12Heap1 *This,
18066 REFGUID guid,
18067 const IUnknown *data);
18068
18069 HRESULT (STDMETHODCALLTYPE *SetName)(
18070 ID3D12Heap1 *This,
18071 const WCHAR *name);
18072
18073 /*** ID3D12DeviceChild methods ***/
18074 HRESULT (STDMETHODCALLTYPE *GetDevice)(
18075 ID3D12Heap1 *This,
18076 REFIID riid,
18077 void **device);
18078
18079 /*** ID3D12Heap methods ***/
18080 D3D12_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
18081 ID3D12Heap1 *This,
18082 D3D12_HEAP_DESC *__ret);
18083
18084 /*** ID3D12Heap1 methods ***/
18085 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)(
18086 ID3D12Heap1 *This,
18087 REFIID riid,
18088 void **protected_session);
18089
18090 END_INTERFACE
18091} ID3D12Heap1Vtbl;
18092
18093interface ID3D12Heap1 {
18094 CONST_VTBL ID3D12Heap1Vtbl* lpVtbl;
18095};
18096
18097#ifdef COBJMACROS
18098#ifndef WIDL_C_INLINE_WRAPPERS
18099/*** IUnknown methods ***/
18100#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18101#define ID3D12Heap1_AddRef(This) (This)->lpVtbl->AddRef(This)
18102#define ID3D12Heap1_Release(This) (This)->lpVtbl->Release(This)
18103/*** ID3D12Object methods ***/
18104#define ID3D12Heap1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
18105#define ID3D12Heap1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
18106#define ID3D12Heap1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
18107#define ID3D12Heap1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
18108/*** ID3D12DeviceChild methods ***/
18109#define ID3D12Heap1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
18110/*** ID3D12Heap methods ***/
18111#define ID3D12Heap1_GetDesc(This) ID3D12Heap1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
18112/*** ID3D12Heap1 methods ***/
18113#define ID3D12Heap1_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session)
18114#else
18115/*** IUnknown methods ***/
18116static inline HRESULT ID3D12Heap1_QueryInterface(ID3D12Heap1* This,REFIID riid,void **ppvObject) {
18117 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18118}
18119static inline ULONG ID3D12Heap1_AddRef(ID3D12Heap1* This) {
18120 return This->lpVtbl->AddRef(This);
18121}
18122static inline ULONG ID3D12Heap1_Release(ID3D12Heap1* This) {
18123 return This->lpVtbl->Release(This);
18124}
18125/*** ID3D12Object methods ***/
18126static inline HRESULT ID3D12Heap1_GetPrivateData(ID3D12Heap1* This,REFGUID guid,UINT *data_size,void *data) {
18127 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
18128}
18129static inline HRESULT ID3D12Heap1_SetPrivateData(ID3D12Heap1* This,REFGUID guid,UINT data_size,const void *data) {
18130 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
18131}
18132static inline HRESULT ID3D12Heap1_SetPrivateDataInterface(ID3D12Heap1* This,REFGUID guid,const IUnknown *data) {
18133 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
18134}
18135static inline HRESULT ID3D12Heap1_SetName(ID3D12Heap1* This,const WCHAR *name) {
18136 return This->lpVtbl->SetName(This,name);
18137}
18138/*** ID3D12DeviceChild methods ***/
18139static inline HRESULT ID3D12Heap1_GetDevice(ID3D12Heap1* This,REFIID riid,void **device) {
18140 return This->lpVtbl->GetDevice(This,riid,device);
18141}
18142/*** ID3D12Heap methods ***/
18143static inline D3D12_HEAP_DESC ID3D12Heap1_GetDesc(ID3D12Heap1* This) {
18144 D3D12_HEAP_DESC __ret;
18145 return *This->lpVtbl->GetDesc(This,&__ret);
18146}
18147/*** ID3D12Heap1 methods ***/
18148static inline HRESULT ID3D12Heap1_GetProtectedResourceSession(ID3D12Heap1* This,REFIID riid,void **protected_session) {
18149 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session);
18150}
18151#endif
18152#endif
18153
18154#endif
18155
18156
18157#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */
18158
18159typedef enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE {
18160 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0x0,
18161 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = 0x1,
18162 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = 0x2,
18163 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = 0x3
18164} D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
18165typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
18166 D3D12_CLEAR_VALUE ClearValue;
18167} D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
18168typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS {
18169 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
18170 __C89_NAMELESS union {
18171 D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
18172 } __C89_NAMELESSUNIONNAME;
18173} D3D12_RENDER_PASS_BEGINNING_ACCESS;
18174typedef enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE {
18175 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0x0,
18176 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = 0x1,
18177 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = 0x2,
18178 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = 0x3
18179} D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
18180typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
18181 UINT SrcSubresource;
18182 UINT DstSubresource;
18183 UINT DstX;
18184 UINT DstY;
18185 D3D12_RECT SrcRect;
18186} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
18187typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
18188 ID3D12Resource *pSrcResource;
18189 ID3D12Resource *pDstResource;
18190 UINT SubresourceCount;
18191 const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
18192 DXGI_FORMAT Format;
18193 D3D12_RESOLVE_MODE ResolveMode;
18194 WINBOOL PreserveResolveSource;
18195} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
18196typedef struct D3D12_RENDER_PASS_ENDING_ACCESS {
18197 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
18198 __C89_NAMELESS union {
18199 D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
18200 } __C89_NAMELESSUNIONNAME;
18201} D3D12_RENDER_PASS_ENDING_ACCESS;
18202typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC {
18203 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
18204 D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
18205 D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
18206} D3D12_RENDER_PASS_RENDER_TARGET_DESC;
18207typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
18208 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
18209 D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
18210 D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
18211 D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
18212 D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
18213} D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
18214typedef enum D3D12_RENDER_PASS_FLAGS {
18215 D3D12_RENDER_PASS_FLAG_NONE = 0x0,
18216 D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
18217 D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
18218 D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4
18219} D3D12_RENDER_PASS_FLAGS;
18220DEFINE_ENUM_FLAG_OPERATORS(D3D12_RENDER_PASS_FLAGS);
18221/*****************************************************************************
18222 * ID3D12MetaCommand interface
18223 */
18224#ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__
18225#define __ID3D12MetaCommand_INTERFACE_DEFINED__
18226
18227DEFINE_GUID(IID_ID3D12MetaCommand, 0xdbb84c27, 0x36ce, 0x4fc9, 0xb8,0x01, 0xf0,0x48,0xc4,0x6a,0xc5,0x70);
18228#if defined(__cplusplus) && !defined(CINTERFACE)
18229MIDL_INTERFACE("dbb84c27-36ce-4fc9-b801-f048c46ac570")
18230ID3D12MetaCommand : public ID3D12Pageable
18231{
18232 virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize(
18233 D3D12_META_COMMAND_PARAMETER_STAGE stage,
18234 UINT parameter_index) = 0;
18235
18236};
18237#ifdef __CRT_UUID_DECL
18238__CRT_UUID_DECL(ID3D12MetaCommand, 0xdbb84c27, 0x36ce, 0x4fc9, 0xb8,0x01, 0xf0,0x48,0xc4,0x6a,0xc5,0x70)
18239#endif
18240#else
18241typedef struct ID3D12MetaCommandVtbl {
18242 BEGIN_INTERFACE
18243
18244 /*** IUnknown methods ***/
18245 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18246 ID3D12MetaCommand *This,
18247 REFIID riid,
18248 void **ppvObject);
18249
18250 ULONG (STDMETHODCALLTYPE *AddRef)(
18251 ID3D12MetaCommand *This);
18252
18253 ULONG (STDMETHODCALLTYPE *Release)(
18254 ID3D12MetaCommand *This);
18255
18256 /*** ID3D12Object methods ***/
18257 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
18258 ID3D12MetaCommand *This,
18259 REFGUID guid,
18260 UINT *data_size,
18261 void *data);
18262
18263 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
18264 ID3D12MetaCommand *This,
18265 REFGUID guid,
18266 UINT data_size,
18267 const void *data);
18268
18269 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
18270 ID3D12MetaCommand *This,
18271 REFGUID guid,
18272 const IUnknown *data);
18273
18274 HRESULT (STDMETHODCALLTYPE *SetName)(
18275 ID3D12MetaCommand *This,
18276 const WCHAR *name);
18277
18278 /*** ID3D12DeviceChild methods ***/
18279 HRESULT (STDMETHODCALLTYPE *GetDevice)(
18280 ID3D12MetaCommand *This,
18281 REFIID riid,
18282 void **device);
18283
18284 /*** ID3D12MetaCommand methods ***/
18285 UINT64 (STDMETHODCALLTYPE *GetRequiredParameterResourceSize)(
18286 ID3D12MetaCommand *This,
18287 D3D12_META_COMMAND_PARAMETER_STAGE stage,
18288 UINT parameter_index);
18289
18290 END_INTERFACE
18291} ID3D12MetaCommandVtbl;
18292
18293interface ID3D12MetaCommand {
18294 CONST_VTBL ID3D12MetaCommandVtbl* lpVtbl;
18295};
18296
18297#ifdef COBJMACROS
18298#ifndef WIDL_C_INLINE_WRAPPERS
18299/*** IUnknown methods ***/
18300#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18301#define ID3D12MetaCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
18302#define ID3D12MetaCommand_Release(This) (This)->lpVtbl->Release(This)
18303/*** ID3D12Object methods ***/
18304#define ID3D12MetaCommand_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
18305#define ID3D12MetaCommand_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
18306#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
18307#define ID3D12MetaCommand_SetName(This,name) (This)->lpVtbl->SetName(This,name)
18308/*** ID3D12DeviceChild methods ***/
18309#define ID3D12MetaCommand_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
18310/*** ID3D12MetaCommand methods ***/
18311#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,stage,parameter_index) (This)->lpVtbl->GetRequiredParameterResourceSize(This,stage,parameter_index)
18312#else
18313/*** IUnknown methods ***/
18314static inline HRESULT ID3D12MetaCommand_QueryInterface(ID3D12MetaCommand* This,REFIID riid,void **ppvObject) {
18315 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18316}
18317static inline ULONG ID3D12MetaCommand_AddRef(ID3D12MetaCommand* This) {
18318 return This->lpVtbl->AddRef(This);
18319}
18320static inline ULONG ID3D12MetaCommand_Release(ID3D12MetaCommand* This) {
18321 return This->lpVtbl->Release(This);
18322}
18323/*** ID3D12Object methods ***/
18324static inline HRESULT ID3D12MetaCommand_GetPrivateData(ID3D12MetaCommand* This,REFGUID guid,UINT *data_size,void *data) {
18325 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
18326}
18327static inline HRESULT ID3D12MetaCommand_SetPrivateData(ID3D12MetaCommand* This,REFGUID guid,UINT data_size,const void *data) {
18328 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
18329}
18330static inline HRESULT ID3D12MetaCommand_SetPrivateDataInterface(ID3D12MetaCommand* This,REFGUID guid,const IUnknown *data) {
18331 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
18332}
18333static inline HRESULT ID3D12MetaCommand_SetName(ID3D12MetaCommand* This,const WCHAR *name) {
18334 return This->lpVtbl->SetName(This,name);
18335}
18336/*** ID3D12DeviceChild methods ***/
18337static inline HRESULT ID3D12MetaCommand_GetDevice(ID3D12MetaCommand* This,REFIID riid,void **device) {
18338 return This->lpVtbl->GetDevice(This,riid,device);
18339}
18340/*** ID3D12MetaCommand methods ***/
18341static inline UINT64 ID3D12MetaCommand_GetRequiredParameterResourceSize(ID3D12MetaCommand* This,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT parameter_index) {
18342 return This->lpVtbl->GetRequiredParameterResourceSize(This,stage,parameter_index);
18343}
18344#endif
18345#endif
18346
18347#endif
18348
18349
18350#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */
18351
18352typedef struct D3D12_DISPATCH_RAYS_DESC {
18353 D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
18354 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
18355 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
18356 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
18357 UINT Width;
18358 UINT Height;
18359 UINT Depth;
18360} D3D12_DISPATCH_RAYS_DESC;
18361/*****************************************************************************
18362 * ID3D12GraphicsCommandList4 interface
18363 */
18364#ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
18365#define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
18366
18367DEFINE_GUID(IID_ID3D12GraphicsCommandList4, 0x8754318e, 0xd3a9, 0x4541, 0x98,0xcf, 0x64,0x5b,0x50,0xdc,0x48,0x74);
18368#if defined(__cplusplus) && !defined(CINTERFACE)
18369MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874")
18370ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3
18371{
18372 virtual void STDMETHODCALLTYPE BeginRenderPass(
18373 UINT render_targets_count,
18374 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
18375 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
18376 D3D12_RENDER_PASS_FLAGS flags) = 0;
18377
18378 virtual void STDMETHODCALLTYPE EndRenderPass(
18379 ) = 0;
18380
18381 virtual void STDMETHODCALLTYPE InitializeMetaCommand(
18382 ID3D12MetaCommand *meta_command,
18383 const void *initialization_parameters_data,
18384 SIZE_T initialization_parameters_data_size_in_bytes) = 0;
18385
18386 virtual void STDMETHODCALLTYPE ExecuteMetaCommand(
18387 ID3D12MetaCommand *meta_command,
18388 const void *execution_parameters_data,
18389 SIZE_T execution_parameters_data_size_in_bytes) = 0;
18390
18391 virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure(
18392 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
18393 UINT postbuild_info_descs_count,
18394 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) = 0;
18395
18396 virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo(
18397 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
18398 UINT src_acceleration_structures_count,
18399 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) = 0;
18400
18401 virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure(
18402 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
18403 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
18404 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) = 0;
18405
18406 virtual void STDMETHODCALLTYPE SetPipelineState1(
18407 ID3D12StateObject *state_object) = 0;
18408
18409 virtual void STDMETHODCALLTYPE DispatchRays(
18410 const D3D12_DISPATCH_RAYS_DESC *desc) = 0;
18411
18412};
18413#ifdef __CRT_UUID_DECL
18414__CRT_UUID_DECL(ID3D12GraphicsCommandList4, 0x8754318e, 0xd3a9, 0x4541, 0x98,0xcf, 0x64,0x5b,0x50,0xdc,0x48,0x74)
18415#endif
18416#else
18417typedef struct ID3D12GraphicsCommandList4Vtbl {
18418 BEGIN_INTERFACE
18419
18420 /*** IUnknown methods ***/
18421 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18422 ID3D12GraphicsCommandList4 *This,
18423 REFIID riid,
18424 void **ppvObject);
18425
18426 ULONG (STDMETHODCALLTYPE *AddRef)(
18427 ID3D12GraphicsCommandList4 *This);
18428
18429 ULONG (STDMETHODCALLTYPE *Release)(
18430 ID3D12GraphicsCommandList4 *This);
18431
18432 /*** ID3D12Object methods ***/
18433 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
18434 ID3D12GraphicsCommandList4 *This,
18435 REFGUID guid,
18436 UINT *data_size,
18437 void *data);
18438
18439 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
18440 ID3D12GraphicsCommandList4 *This,
18441 REFGUID guid,
18442 UINT data_size,
18443 const void *data);
18444
18445 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
18446 ID3D12GraphicsCommandList4 *This,
18447 REFGUID guid,
18448 const IUnknown *data);
18449
18450 HRESULT (STDMETHODCALLTYPE *SetName)(
18451 ID3D12GraphicsCommandList4 *This,
18452 const WCHAR *name);
18453
18454 /*** ID3D12DeviceChild methods ***/
18455 HRESULT (STDMETHODCALLTYPE *GetDevice)(
18456 ID3D12GraphicsCommandList4 *This,
18457 REFIID riid,
18458 void **device);
18459
18460 /*** ID3D12CommandList methods ***/
18461 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
18462 ID3D12GraphicsCommandList4 *This);
18463
18464 /*** ID3D12GraphicsCommandList methods ***/
18465 HRESULT (STDMETHODCALLTYPE *Close)(
18466 ID3D12GraphicsCommandList4 *This);
18467
18468 HRESULT (STDMETHODCALLTYPE *Reset)(
18469 ID3D12GraphicsCommandList4 *This,
18470 ID3D12CommandAllocator *allocator,
18471 ID3D12PipelineState *initial_state);
18472
18473 void (STDMETHODCALLTYPE *ClearState)(
18474 ID3D12GraphicsCommandList4 *This,
18475 ID3D12PipelineState *pipeline_state);
18476
18477 void (STDMETHODCALLTYPE *DrawInstanced)(
18478 ID3D12GraphicsCommandList4 *This,
18479 UINT vertex_count_per_instance,
18480 UINT instance_count,
18481 UINT start_vertex_location,
18482 UINT start_instance_location);
18483
18484 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
18485 ID3D12GraphicsCommandList4 *This,
18486 UINT index_count_per_instance,
18487 UINT instance_count,
18488 UINT start_vertex_location,
18489 INT base_vertex_location,
18490 UINT start_instance_location);
18491
18492 void (STDMETHODCALLTYPE *Dispatch)(
18493 ID3D12GraphicsCommandList4 *This,
18494 UINT x,
18495 UINT u,
18496 UINT z);
18497
18498 void (STDMETHODCALLTYPE *CopyBufferRegion)(
18499 ID3D12GraphicsCommandList4 *This,
18500 ID3D12Resource *dst_buffer,
18501 UINT64 dst_offset,
18502 ID3D12Resource *src_buffer,
18503 UINT64 src_offset,
18504 UINT64 byte_count);
18505
18506 void (STDMETHODCALLTYPE *CopyTextureRegion)(
18507 ID3D12GraphicsCommandList4 *This,
18508 const D3D12_TEXTURE_COPY_LOCATION *dst,
18509 UINT dst_x,
18510 UINT dst_y,
18511 UINT dst_z,
18512 const D3D12_TEXTURE_COPY_LOCATION *src,
18513 const D3D12_BOX *src_box);
18514
18515 void (STDMETHODCALLTYPE *CopyResource)(
18516 ID3D12GraphicsCommandList4 *This,
18517 ID3D12Resource *dst_resource,
18518 ID3D12Resource *src_resource);
18519
18520 void (STDMETHODCALLTYPE *CopyTiles)(
18521 ID3D12GraphicsCommandList4 *This,
18522 ID3D12Resource *tiled_resource,
18523 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
18524 const D3D12_TILE_REGION_SIZE *tile_region_size,
18525 ID3D12Resource *buffer,
18526 UINT64 buffer_offset,
18527 D3D12_TILE_COPY_FLAGS flags);
18528
18529 void (STDMETHODCALLTYPE *ResolveSubresource)(
18530 ID3D12GraphicsCommandList4 *This,
18531 ID3D12Resource *dst_resource,
18532 UINT dst_sub_resource,
18533 ID3D12Resource *src_resource,
18534 UINT src_sub_resource,
18535 DXGI_FORMAT format);
18536
18537 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
18538 ID3D12GraphicsCommandList4 *This,
18539 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
18540
18541 void (STDMETHODCALLTYPE *RSSetViewports)(
18542 ID3D12GraphicsCommandList4 *This,
18543 UINT viewport_count,
18544 const D3D12_VIEWPORT *viewports);
18545
18546 void (STDMETHODCALLTYPE *RSSetScissorRects)(
18547 ID3D12GraphicsCommandList4 *This,
18548 UINT rect_count,
18549 const D3D12_RECT *rects);
18550
18551 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
18552 ID3D12GraphicsCommandList4 *This,
18553 const FLOAT blend_factor[4]);
18554
18555 void (STDMETHODCALLTYPE *OMSetStencilRef)(
18556 ID3D12GraphicsCommandList4 *This,
18557 UINT stencil_ref);
18558
18559 void (STDMETHODCALLTYPE *SetPipelineState)(
18560 ID3D12GraphicsCommandList4 *This,
18561 ID3D12PipelineState *pipeline_state);
18562
18563 void (STDMETHODCALLTYPE *ResourceBarrier)(
18564 ID3D12GraphicsCommandList4 *This,
18565 UINT barrier_count,
18566 const D3D12_RESOURCE_BARRIER *barriers);
18567
18568 void (STDMETHODCALLTYPE *ExecuteBundle)(
18569 ID3D12GraphicsCommandList4 *This,
18570 ID3D12GraphicsCommandList *command_list);
18571
18572 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
18573 ID3D12GraphicsCommandList4 *This,
18574 UINT heap_count,
18575 ID3D12DescriptorHeap *const *heaps);
18576
18577 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
18578 ID3D12GraphicsCommandList4 *This,
18579 ID3D12RootSignature *root_signature);
18580
18581 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
18582 ID3D12GraphicsCommandList4 *This,
18583 ID3D12RootSignature *root_signature);
18584
18585 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
18586 ID3D12GraphicsCommandList4 *This,
18587 UINT root_parameter_index,
18588 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
18589
18590 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
18591 ID3D12GraphicsCommandList4 *This,
18592 UINT root_parameter_index,
18593 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
18594
18595 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
18596 ID3D12GraphicsCommandList4 *This,
18597 UINT root_parameter_index,
18598 UINT data,
18599 UINT dst_offset);
18600
18601 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
18602 ID3D12GraphicsCommandList4 *This,
18603 UINT root_parameter_index,
18604 UINT data,
18605 UINT dst_offset);
18606
18607 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
18608 ID3D12GraphicsCommandList4 *This,
18609 UINT root_parameter_index,
18610 UINT constant_count,
18611 const void *data,
18612 UINT dst_offset);
18613
18614 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
18615 ID3D12GraphicsCommandList4 *This,
18616 UINT root_parameter_index,
18617 UINT constant_count,
18618 const void *data,
18619 UINT dst_offset);
18620
18621 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
18622 ID3D12GraphicsCommandList4 *This,
18623 UINT root_parameter_index,
18624 D3D12_GPU_VIRTUAL_ADDRESS address);
18625
18626 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
18627 ID3D12GraphicsCommandList4 *This,
18628 UINT root_parameter_index,
18629 D3D12_GPU_VIRTUAL_ADDRESS address);
18630
18631 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
18632 ID3D12GraphicsCommandList4 *This,
18633 UINT root_parameter_index,
18634 D3D12_GPU_VIRTUAL_ADDRESS address);
18635
18636 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
18637 ID3D12GraphicsCommandList4 *This,
18638 UINT root_parameter_index,
18639 D3D12_GPU_VIRTUAL_ADDRESS address);
18640
18641 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
18642 ID3D12GraphicsCommandList4 *This,
18643 UINT root_parameter_index,
18644 D3D12_GPU_VIRTUAL_ADDRESS address);
18645
18646 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
18647 ID3D12GraphicsCommandList4 *This,
18648 UINT root_parameter_index,
18649 D3D12_GPU_VIRTUAL_ADDRESS address);
18650
18651 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
18652 ID3D12GraphicsCommandList4 *This,
18653 const D3D12_INDEX_BUFFER_VIEW *view);
18654
18655 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
18656 ID3D12GraphicsCommandList4 *This,
18657 UINT start_slot,
18658 UINT view_count,
18659 const D3D12_VERTEX_BUFFER_VIEW *views);
18660
18661 void (STDMETHODCALLTYPE *SOSetTargets)(
18662 ID3D12GraphicsCommandList4 *This,
18663 UINT start_slot,
18664 UINT view_count,
18665 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
18666
18667 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
18668 ID3D12GraphicsCommandList4 *This,
18669 UINT render_target_descriptor_count,
18670 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
18671 WINBOOL single_descriptor_handle,
18672 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
18673
18674 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
18675 ID3D12GraphicsCommandList4 *This,
18676 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
18677 D3D12_CLEAR_FLAGS flags,
18678 FLOAT depth,
18679 UINT8 stencil,
18680 UINT rect_count,
18681 const D3D12_RECT *rects);
18682
18683 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
18684 ID3D12GraphicsCommandList4 *This,
18685 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
18686 const FLOAT color[4],
18687 UINT rect_count,
18688 const D3D12_RECT *rects);
18689
18690 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
18691 ID3D12GraphicsCommandList4 *This,
18692 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
18693 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
18694 ID3D12Resource *resource,
18695 const UINT values[4],
18696 UINT rect_count,
18697 const D3D12_RECT *rects);
18698
18699 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
18700 ID3D12GraphicsCommandList4 *This,
18701 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
18702 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
18703 ID3D12Resource *resource,
18704 const float values[4],
18705 UINT rect_count,
18706 const D3D12_RECT *rects);
18707
18708 void (STDMETHODCALLTYPE *DiscardResource)(
18709 ID3D12GraphicsCommandList4 *This,
18710 ID3D12Resource *resource,
18711 const D3D12_DISCARD_REGION *region);
18712
18713 void (STDMETHODCALLTYPE *BeginQuery)(
18714 ID3D12GraphicsCommandList4 *This,
18715 ID3D12QueryHeap *heap,
18716 D3D12_QUERY_TYPE type,
18717 UINT index);
18718
18719 void (STDMETHODCALLTYPE *EndQuery)(
18720 ID3D12GraphicsCommandList4 *This,
18721 ID3D12QueryHeap *heap,
18722 D3D12_QUERY_TYPE type,
18723 UINT index);
18724
18725 void (STDMETHODCALLTYPE *ResolveQueryData)(
18726 ID3D12GraphicsCommandList4 *This,
18727 ID3D12QueryHeap *heap,
18728 D3D12_QUERY_TYPE type,
18729 UINT start_index,
18730 UINT query_count,
18731 ID3D12Resource *dst_buffer,
18732 UINT64 aligned_dst_buffer_offset);
18733
18734 void (STDMETHODCALLTYPE *SetPredication)(
18735 ID3D12GraphicsCommandList4 *This,
18736 ID3D12Resource *buffer,
18737 UINT64 aligned_buffer_offset,
18738 D3D12_PREDICATION_OP operation);
18739
18740 void (STDMETHODCALLTYPE *SetMarker)(
18741 ID3D12GraphicsCommandList4 *This,
18742 UINT metadata,
18743 const void *data,
18744 UINT size);
18745
18746 void (STDMETHODCALLTYPE *BeginEvent)(
18747 ID3D12GraphicsCommandList4 *This,
18748 UINT metadata,
18749 const void *data,
18750 UINT size);
18751
18752 void (STDMETHODCALLTYPE *EndEvent)(
18753 ID3D12GraphicsCommandList4 *This);
18754
18755 void (STDMETHODCALLTYPE *ExecuteIndirect)(
18756 ID3D12GraphicsCommandList4 *This,
18757 ID3D12CommandSignature *command_signature,
18758 UINT max_command_count,
18759 ID3D12Resource *arg_buffer,
18760 UINT64 arg_buffer_offset,
18761 ID3D12Resource *count_buffer,
18762 UINT64 count_buffer_offset);
18763
18764 /*** ID3D12GraphicsCommandList1 methods ***/
18765 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
18766 ID3D12GraphicsCommandList4 *This,
18767 ID3D12Resource *dst_buffer,
18768 UINT64 dst_offset,
18769 ID3D12Resource *src_buffer,
18770 UINT64 src_offset,
18771 UINT dependent_resource_count,
18772 ID3D12Resource *const *dependent_resources,
18773 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
18774
18775 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
18776 ID3D12GraphicsCommandList4 *This,
18777 ID3D12Resource *dst_buffer,
18778 UINT64 dst_offset,
18779 ID3D12Resource *src_buffer,
18780 UINT64 src_offset,
18781 UINT dependent_resource_count,
18782 ID3D12Resource *const *dependent_resources,
18783 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
18784
18785 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
18786 ID3D12GraphicsCommandList4 *This,
18787 FLOAT min,
18788 FLOAT max);
18789
18790 void (STDMETHODCALLTYPE *SetSamplePositions)(
18791 ID3D12GraphicsCommandList4 *This,
18792 UINT sample_count,
18793 UINT pixel_count,
18794 D3D12_SAMPLE_POSITION *sample_positions);
18795
18796 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
18797 ID3D12GraphicsCommandList4 *This,
18798 ID3D12Resource *dst_resource,
18799 UINT dst_sub_resource_idx,
18800 UINT dst_x,
18801 UINT dst_y,
18802 ID3D12Resource *src_resource,
18803 UINT src_sub_resource_idx,
18804 D3D12_RECT *src_rect,
18805 DXGI_FORMAT format,
18806 D3D12_RESOLVE_MODE mode);
18807
18808 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
18809 ID3D12GraphicsCommandList4 *This,
18810 UINT mask);
18811
18812 /*** ID3D12GraphicsCommandList2 methods ***/
18813 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
18814 ID3D12GraphicsCommandList4 *This,
18815 UINT count,
18816 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
18817 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
18818
18819 /*** ID3D12GraphicsCommandList3 methods ***/
18820 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
18821 ID3D12GraphicsCommandList4 *This,
18822 ID3D12ProtectedResourceSession *protected_resource_session);
18823
18824 /*** ID3D12GraphicsCommandList4 methods ***/
18825 void (STDMETHODCALLTYPE *BeginRenderPass)(
18826 ID3D12GraphicsCommandList4 *This,
18827 UINT render_targets_count,
18828 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
18829 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
18830 D3D12_RENDER_PASS_FLAGS flags);
18831
18832 void (STDMETHODCALLTYPE *EndRenderPass)(
18833 ID3D12GraphicsCommandList4 *This);
18834
18835 void (STDMETHODCALLTYPE *InitializeMetaCommand)(
18836 ID3D12GraphicsCommandList4 *This,
18837 ID3D12MetaCommand *meta_command,
18838 const void *initialization_parameters_data,
18839 SIZE_T initialization_parameters_data_size_in_bytes);
18840
18841 void (STDMETHODCALLTYPE *ExecuteMetaCommand)(
18842 ID3D12GraphicsCommandList4 *This,
18843 ID3D12MetaCommand *meta_command,
18844 const void *execution_parameters_data,
18845 SIZE_T execution_parameters_data_size_in_bytes);
18846
18847 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)(
18848 ID3D12GraphicsCommandList4 *This,
18849 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
18850 UINT postbuild_info_descs_count,
18851 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
18852
18853 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)(
18854 ID3D12GraphicsCommandList4 *This,
18855 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
18856 UINT src_acceleration_structures_count,
18857 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
18858
18859 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)(
18860 ID3D12GraphicsCommandList4 *This,
18861 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
18862 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
18863 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
18864
18865 void (STDMETHODCALLTYPE *SetPipelineState1)(
18866 ID3D12GraphicsCommandList4 *This,
18867 ID3D12StateObject *state_object);
18868
18869 void (STDMETHODCALLTYPE *DispatchRays)(
18870 ID3D12GraphicsCommandList4 *This,
18871 const D3D12_DISPATCH_RAYS_DESC *desc);
18872
18873 END_INTERFACE
18874} ID3D12GraphicsCommandList4Vtbl;
18875
18876interface ID3D12GraphicsCommandList4 {
18877 CONST_VTBL ID3D12GraphicsCommandList4Vtbl* lpVtbl;
18878};
18879
18880#ifdef COBJMACROS
18881#ifndef WIDL_C_INLINE_WRAPPERS
18882/*** IUnknown methods ***/
18883#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18884#define ID3D12GraphicsCommandList4_AddRef(This) (This)->lpVtbl->AddRef(This)
18885#define ID3D12GraphicsCommandList4_Release(This) (This)->lpVtbl->Release(This)
18886/*** ID3D12Object methods ***/
18887#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
18888#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
18889#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
18890#define ID3D12GraphicsCommandList4_SetName(This,name) (This)->lpVtbl->SetName(This,name)
18891/*** ID3D12DeviceChild methods ***/
18892#define ID3D12GraphicsCommandList4_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
18893/*** ID3D12CommandList methods ***/
18894#define ID3D12GraphicsCommandList4_GetType(This) (This)->lpVtbl->GetType(This)
18895/*** ID3D12GraphicsCommandList methods ***/
18896#define ID3D12GraphicsCommandList4_Close(This) (This)->lpVtbl->Close(This)
18897#define ID3D12GraphicsCommandList4_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
18898#define ID3D12GraphicsCommandList4_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
18899#define ID3D12GraphicsCommandList4_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
18900#define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
18901#define ID3D12GraphicsCommandList4_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
18902#define ID3D12GraphicsCommandList4_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
18903#define ID3D12GraphicsCommandList4_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
18904#define ID3D12GraphicsCommandList4_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
18905#define ID3D12GraphicsCommandList4_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
18906#define ID3D12GraphicsCommandList4_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
18907#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
18908#define ID3D12GraphicsCommandList4_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
18909#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
18910#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
18911#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
18912#define ID3D12GraphicsCommandList4_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
18913#define ID3D12GraphicsCommandList4_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
18914#define ID3D12GraphicsCommandList4_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
18915#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
18916#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
18917#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
18918#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
18919#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
18920#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
18921#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
18922#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
18923#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
18924#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
18925#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
18926#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
18927#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
18928#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
18929#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
18930#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
18931#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
18932#define ID3D12GraphicsCommandList4_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
18933#define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
18934#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
18935#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
18936#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
18937#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
18938#define ID3D12GraphicsCommandList4_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
18939#define ID3D12GraphicsCommandList4_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
18940#define ID3D12GraphicsCommandList4_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
18941#define ID3D12GraphicsCommandList4_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
18942#define ID3D12GraphicsCommandList4_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
18943#define ID3D12GraphicsCommandList4_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
18944#define ID3D12GraphicsCommandList4_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
18945#define ID3D12GraphicsCommandList4_EndEvent(This) (This)->lpVtbl->EndEvent(This)
18946#define ID3D12GraphicsCommandList4_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
18947/*** ID3D12GraphicsCommandList1 methods ***/
18948#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
18949#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
18950#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
18951#define ID3D12GraphicsCommandList4_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
18952#define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
18953#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
18954/*** ID3D12GraphicsCommandList2 methods ***/
18955#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
18956/*** ID3D12GraphicsCommandList3 methods ***/
18957#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
18958/*** ID3D12GraphicsCommandList4 methods ***/
18959#define ID3D12GraphicsCommandList4_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags)
18960#define ID3D12GraphicsCommandList4_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This)
18961#define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) (This)->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes)
18962#define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) (This)->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes)
18963#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs)
18964#define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) (This)->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data)
18965#define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) (This)->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode)
18966#define ID3D12GraphicsCommandList4_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object)
18967#define ID3D12GraphicsCommandList4_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc)
18968#else
18969/*** IUnknown methods ***/
18970static inline HRESULT ID3D12GraphicsCommandList4_QueryInterface(ID3D12GraphicsCommandList4* This,REFIID riid,void **ppvObject) {
18971 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18972}
18973static inline ULONG ID3D12GraphicsCommandList4_AddRef(ID3D12GraphicsCommandList4* This) {
18974 return This->lpVtbl->AddRef(This);
18975}
18976static inline ULONG ID3D12GraphicsCommandList4_Release(ID3D12GraphicsCommandList4* This) {
18977 return This->lpVtbl->Release(This);
18978}
18979/*** ID3D12Object methods ***/
18980static inline HRESULT ID3D12GraphicsCommandList4_GetPrivateData(ID3D12GraphicsCommandList4* This,REFGUID guid,UINT *data_size,void *data) {
18981 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
18982}
18983static inline HRESULT ID3D12GraphicsCommandList4_SetPrivateData(ID3D12GraphicsCommandList4* This,REFGUID guid,UINT data_size,const void *data) {
18984 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
18985}
18986static inline HRESULT ID3D12GraphicsCommandList4_SetPrivateDataInterface(ID3D12GraphicsCommandList4* This,REFGUID guid,const IUnknown *data) {
18987 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
18988}
18989static inline HRESULT ID3D12GraphicsCommandList4_SetName(ID3D12GraphicsCommandList4* This,const WCHAR *name) {
18990 return This->lpVtbl->SetName(This,name);
18991}
18992/*** ID3D12DeviceChild methods ***/
18993static inline HRESULT ID3D12GraphicsCommandList4_GetDevice(ID3D12GraphicsCommandList4* This,REFIID riid,void **device) {
18994 return This->lpVtbl->GetDevice(This,riid,device);
18995}
18996/*** ID3D12CommandList methods ***/
18997static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList4_GetType(ID3D12GraphicsCommandList4* This) {
18998 return This->lpVtbl->GetType(This);
18999}
19000/*** ID3D12GraphicsCommandList methods ***/
19001static inline HRESULT ID3D12GraphicsCommandList4_Close(ID3D12GraphicsCommandList4* This) {
19002 return This->lpVtbl->Close(This);
19003}
19004static inline HRESULT ID3D12GraphicsCommandList4_Reset(ID3D12GraphicsCommandList4* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
19005 return This->lpVtbl->Reset(This,allocator,initial_state);
19006}
19007static inline void ID3D12GraphicsCommandList4_ClearState(ID3D12GraphicsCommandList4* This,ID3D12PipelineState *pipeline_state) {
19008 This->lpVtbl->ClearState(This,pipeline_state);
19009}
19010static inline void ID3D12GraphicsCommandList4_DrawInstanced(ID3D12GraphicsCommandList4* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
19011 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
19012}
19013static inline void ID3D12GraphicsCommandList4_DrawIndexedInstanced(ID3D12GraphicsCommandList4* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
19014 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
19015}
19016static inline void ID3D12GraphicsCommandList4_Dispatch(ID3D12GraphicsCommandList4* This,UINT x,UINT u,UINT z) {
19017 This->lpVtbl->Dispatch(This,x,u,z);
19018}
19019static inline void ID3D12GraphicsCommandList4_CopyBufferRegion(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
19020 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
19021}
19022static inline void ID3D12GraphicsCommandList4_CopyTextureRegion(ID3D12GraphicsCommandList4* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
19023 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
19024}
19025static inline void ID3D12GraphicsCommandList4_CopyResource(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
19026 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
19027}
19028static inline void ID3D12GraphicsCommandList4_CopyTiles(ID3D12GraphicsCommandList4* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
19029 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
19030}
19031static inline void ID3D12GraphicsCommandList4_ResolveSubresource(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
19032 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
19033}
19034static inline void ID3D12GraphicsCommandList4_IASetPrimitiveTopology(ID3D12GraphicsCommandList4* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
19035 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
19036}
19037static inline void ID3D12GraphicsCommandList4_RSSetViewports(ID3D12GraphicsCommandList4* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
19038 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
19039}
19040static inline void ID3D12GraphicsCommandList4_RSSetScissorRects(ID3D12GraphicsCommandList4* This,UINT rect_count,const D3D12_RECT *rects) {
19041 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
19042}
19043static inline void ID3D12GraphicsCommandList4_OMSetBlendFactor(ID3D12GraphicsCommandList4* This,const FLOAT blend_factor[4]) {
19044 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
19045}
19046static inline void ID3D12GraphicsCommandList4_OMSetStencilRef(ID3D12GraphicsCommandList4* This,UINT stencil_ref) {
19047 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
19048}
19049static inline void ID3D12GraphicsCommandList4_SetPipelineState(ID3D12GraphicsCommandList4* This,ID3D12PipelineState *pipeline_state) {
19050 This->lpVtbl->SetPipelineState(This,pipeline_state);
19051}
19052static inline void ID3D12GraphicsCommandList4_ResourceBarrier(ID3D12GraphicsCommandList4* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
19053 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
19054}
19055static inline void ID3D12GraphicsCommandList4_ExecuteBundle(ID3D12GraphicsCommandList4* This,ID3D12GraphicsCommandList *command_list) {
19056 This->lpVtbl->ExecuteBundle(This,command_list);
19057}
19058static inline void ID3D12GraphicsCommandList4_SetDescriptorHeaps(ID3D12GraphicsCommandList4* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
19059 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
19060}
19061static inline void ID3D12GraphicsCommandList4_SetComputeRootSignature(ID3D12GraphicsCommandList4* This,ID3D12RootSignature *root_signature) {
19062 This->lpVtbl->SetComputeRootSignature(This,root_signature);
19063}
19064static inline void ID3D12GraphicsCommandList4_SetGraphicsRootSignature(ID3D12GraphicsCommandList4* This,ID3D12RootSignature *root_signature) {
19065 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
19066}
19067static inline void ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
19068 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
19069}
19070static inline void ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
19071 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
19072}
19073static inline void ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
19074 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
19075}
19076static inline void ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
19077 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
19078}
19079static inline void ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
19080 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
19081}
19082static inline void ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
19083 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
19084}
19085static inline void ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19086 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
19087}
19088static inline void ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19089 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
19090}
19091static inline void ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19092 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
19093}
19094static inline void ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19095 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
19096}
19097static inline void ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19098 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
19099}
19100static inline void ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19101 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
19102}
19103static inline void ID3D12GraphicsCommandList4_IASetIndexBuffer(ID3D12GraphicsCommandList4* This,const D3D12_INDEX_BUFFER_VIEW *view) {
19104 This->lpVtbl->IASetIndexBuffer(This,view);
19105}
19106static inline void ID3D12GraphicsCommandList4_IASetVertexBuffers(ID3D12GraphicsCommandList4* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
19107 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
19108}
19109static inline void ID3D12GraphicsCommandList4_SOSetTargets(ID3D12GraphicsCommandList4* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
19110 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
19111}
19112static inline void ID3D12GraphicsCommandList4_OMSetRenderTargets(ID3D12GraphicsCommandList4* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
19113 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
19114}
19115static inline void ID3D12GraphicsCommandList4_ClearDepthStencilView(ID3D12GraphicsCommandList4* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
19116 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
19117}
19118static inline void ID3D12GraphicsCommandList4_ClearRenderTargetView(ID3D12GraphicsCommandList4* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
19119 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
19120}
19121static inline void ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList4* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
19122 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
19123}
19124static inline void ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList4* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
19125 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
19126}
19127static inline void ID3D12GraphicsCommandList4_DiscardResource(ID3D12GraphicsCommandList4* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
19128 This->lpVtbl->DiscardResource(This,resource,region);
19129}
19130static inline void ID3D12GraphicsCommandList4_BeginQuery(ID3D12GraphicsCommandList4* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
19131 This->lpVtbl->BeginQuery(This,heap,type,index);
19132}
19133static inline void ID3D12GraphicsCommandList4_EndQuery(ID3D12GraphicsCommandList4* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
19134 This->lpVtbl->EndQuery(This,heap,type,index);
19135}
19136static inline void ID3D12GraphicsCommandList4_ResolveQueryData(ID3D12GraphicsCommandList4* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
19137 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
19138}
19139static inline void ID3D12GraphicsCommandList4_SetPredication(ID3D12GraphicsCommandList4* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
19140 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
19141}
19142static inline void ID3D12GraphicsCommandList4_SetMarker(ID3D12GraphicsCommandList4* This,UINT metadata,const void *data,UINT size) {
19143 This->lpVtbl->SetMarker(This,metadata,data,size);
19144}
19145static inline void ID3D12GraphicsCommandList4_BeginEvent(ID3D12GraphicsCommandList4* This,UINT metadata,const void *data,UINT size) {
19146 This->lpVtbl->BeginEvent(This,metadata,data,size);
19147}
19148static inline void ID3D12GraphicsCommandList4_EndEvent(ID3D12GraphicsCommandList4* This) {
19149 This->lpVtbl->EndEvent(This);
19150}
19151static inline void ID3D12GraphicsCommandList4_ExecuteIndirect(ID3D12GraphicsCommandList4* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
19152 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
19153}
19154/*** ID3D12GraphicsCommandList1 methods ***/
19155static inline void ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
19156 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
19157}
19158static inline void ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
19159 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
19160}
19161static inline void ID3D12GraphicsCommandList4_OMSetDepthBounds(ID3D12GraphicsCommandList4* This,FLOAT min,FLOAT max) {
19162 This->lpVtbl->OMSetDepthBounds(This,min,max);
19163}
19164static inline void ID3D12GraphicsCommandList4_SetSamplePositions(ID3D12GraphicsCommandList4* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
19165 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
19166}
19167static inline void ID3D12GraphicsCommandList4_ResolveSubresourceRegion(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
19168 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
19169}
19170static inline void ID3D12GraphicsCommandList4_SetViewInstanceMask(ID3D12GraphicsCommandList4* This,UINT mask) {
19171 This->lpVtbl->SetViewInstanceMask(This,mask);
19172}
19173/*** ID3D12GraphicsCommandList2 methods ***/
19174static inline void ID3D12GraphicsCommandList4_WriteBufferImmediate(ID3D12GraphicsCommandList4* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
19175 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
19176}
19177/*** ID3D12GraphicsCommandList3 methods ***/
19178static inline void ID3D12GraphicsCommandList4_SetProtectedResourceSession(ID3D12GraphicsCommandList4* This,ID3D12ProtectedResourceSession *protected_resource_session) {
19179 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
19180}
19181/*** ID3D12GraphicsCommandList4 methods ***/
19182static inline void ID3D12GraphicsCommandList4_BeginRenderPass(ID3D12GraphicsCommandList4* This,UINT render_targets_count,const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,D3D12_RENDER_PASS_FLAGS flags) {
19183 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags);
19184}
19185static inline void ID3D12GraphicsCommandList4_EndRenderPass(ID3D12GraphicsCommandList4* This) {
19186 This->lpVtbl->EndRenderPass(This);
19187}
19188static inline void ID3D12GraphicsCommandList4_InitializeMetaCommand(ID3D12GraphicsCommandList4* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) {
19189 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes);
19190}
19191static inline void ID3D12GraphicsCommandList4_ExecuteMetaCommand(ID3D12GraphicsCommandList4* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) {
19192 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes);
19193}
19194static inline void ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(ID3D12GraphicsCommandList4* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,UINT postbuild_info_descs_count,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) {
19195 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs);
19196}
19197static inline void ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(ID3D12GraphicsCommandList4* This,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,UINT src_acceleration_structures_count,const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) {
19198 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data);
19199}
19200static inline void ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(ID3D12GraphicsCommandList4* This,D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) {
19201 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode);
19202}
19203static inline void ID3D12GraphicsCommandList4_SetPipelineState1(ID3D12GraphicsCommandList4* This,ID3D12StateObject *state_object) {
19204 This->lpVtbl->SetPipelineState1(This,state_object);
19205}
19206static inline void ID3D12GraphicsCommandList4_DispatchRays(ID3D12GraphicsCommandList4* This,const D3D12_DISPATCH_RAYS_DESC *desc) {
19207 This->lpVtbl->DispatchRays(This,desc);
19208}
19209#endif
19210#endif
19211
19212#endif
19213
19214
19215#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */
19216
19217typedef enum D3D12_SHADER_CACHE_MODE {
19218 D3D12_SHADER_CACHE_MODE_MEMORY = 0x0,
19219 D3D12_SHADER_CACHE_MODE_DISK = 0x1
19220} D3D12_SHADER_CACHE_MODE;
19221typedef enum D3D12_SHADER_CACHE_FLAGS {
19222 D3D12_SHADER_CACHE_FLAG_NONE = 0x0,
19223 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1,
19224 D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2
19225} D3D12_SHADER_CACHE_FLAGS;
19226DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_FLAGS);
19227typedef struct D3D12_SHADER_CACHE_SESSION_DESC {
19228 GUID Identifier;
19229 D3D12_SHADER_CACHE_MODE Mode;
19230 D3D12_SHADER_CACHE_FLAGS Flags;
19231 UINT MaximumInMemoryCacheSizeBytes;
19232 UINT MaximumInMemoryCacheEntries;
19233 UINT MaximumValueFileSizeBytes;
19234 UINT64 Version;
19235} D3D12_SHADER_CACHE_SESSION_DESC;
19236typedef enum D3D12_BARRIER_LAYOUT {
19237 D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
19238 D3D12_BARRIER_LAYOUT_COMMON = 0x0,
19239 D3D12_BARRIER_LAYOUT_PRESENT = 0x0,
19240 D3D12_BARRIER_LAYOUT_GENERIC_READ = 0x1,
19241 D3D12_BARRIER_LAYOUT_RENDER_TARGET = 0x2,
19242 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 0x3,
19243 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 0x4,
19244 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 0x5,
19245 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 0x6,
19246 D3D12_BARRIER_LAYOUT_COPY_SOURCE = 0x7,
19247 D3D12_BARRIER_LAYOUT_COPY_DEST = 0x8,
19248 D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 0x9,
19249 D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 0xa,
19250 D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 0xb,
19251 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 0xc,
19252 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 0xd,
19253 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 0xe,
19254 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 0xf,
19255 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 0x10,
19256 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 0x11,
19257 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 0x12,
19258 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 0x13,
19259 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 0x14,
19260 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 0x15,
19261 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 0x16,
19262 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 0x17,
19263 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 0x18,
19264 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 0x19,
19265 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 0x1a,
19266 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 0x1b,
19267 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 0x1c,
19268 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 0x1d,
19269 D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON = 0x1e
19270} D3D12_BARRIER_LAYOUT;
19271typedef enum D3D12_BARRIER_SYNC {
19272 D3D12_BARRIER_SYNC_NONE = 0x0,
19273 D3D12_BARRIER_SYNC_ALL = 0x1,
19274 D3D12_BARRIER_SYNC_DRAW = 0x2,
19275 D3D12_BARRIER_SYNC_INPUT_ASSEMBLER = 0x4,
19276 D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
19277 D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
19278 D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
19279 D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40,
19280 D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80,
19281 D3D12_BARRIER_SYNC_RAYTRACING = 0x100,
19282 D3D12_BARRIER_SYNC_COPY = 0x200,
19283 D3D12_BARRIER_SYNC_RESOLVE = 0x400,
19284 D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800,
19285 D3D12_BARRIER_SYNC_PREDICATION = 0x800,
19286 D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
19287 D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
19288 D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
19289 D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
19290 D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
19291 D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
19292 D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000,
19293 D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000,
19294 D3D12_BARRIER_SYNC_SPLIT = 0x80000000
19295} D3D12_BARRIER_SYNC;
19296DEFINE_ENUM_FLAG_OPERATORS(D3D12_BARRIER_SYNC);
19297typedef enum D3D12_BARRIER_ACCESS {
19298 D3D12_BARRIER_ACCESS_COMMON = 0,
19299 D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
19300 D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
19301 D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
19302 D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8,
19303 D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
19304 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
19305 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
19306 D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
19307 D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
19308 D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
19309 D3D12_BARRIER_ACCESS_PREDICATION = 0x200,
19310 D3D12_BARRIER_ACCESS_COPY_DEST = 0x400,
19311 D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800,
19312 D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
19313 D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
19314 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
19315 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
19316 D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
19317 D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
19318 D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
19319 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
19320 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
19321 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
19322 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
19323 D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000
19324} D3D12_BARRIER_ACCESS;
19325DEFINE_ENUM_FLAG_OPERATORS(D3D12_BARRIER_ACCESS);
19326typedef enum D3D12_BARRIER_TYPE {
19327 D3D12_BARRIER_TYPE_GLOBAL = 0x0,
19328 D3D12_BARRIER_TYPE_TEXTURE = 0x1,
19329 D3D12_BARRIER_TYPE_BUFFER = 0x2
19330} D3D12_BARRIER_TYPE;
19331typedef enum D3D12_TEXTURE_BARRIER_FLAGS {
19332 D3D12_TEXTURE_BARRIER_FLAG_NONE = 0x0,
19333 D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1
19334} D3D12_TEXTURE_BARRIER_FLAGS;
19335DEFINE_ENUM_FLAG_OPERATORS(D3D12_TEXTURE_BARRIER_FLAGS);
19336typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE {
19337 UINT IndexOrFirstMipLevel;
19338 UINT NumMipLevels;
19339 UINT FirstArraySlice;
19340 UINT NumArraySlices;
19341 UINT FirstPlane;
19342 UINT NumPlanes;
19343} D3D12_BARRIER_SUBRESOURCE_RANGE;
19344typedef struct D3D12_GLOBAL_BARRIER {
19345 D3D12_BARRIER_SYNC SyncBefore;
19346 D3D12_BARRIER_SYNC SyncAfter;
19347 D3D12_BARRIER_ACCESS AccessBefore;
19348 D3D12_BARRIER_ACCESS AccessAfter;
19349} D3D12_GLOBAL_BARRIER;
19350typedef struct D3D12_TEXTURE_BARRIER {
19351 D3D12_BARRIER_SYNC SyncBefore;
19352 D3D12_BARRIER_SYNC SyncAfter;
19353 D3D12_BARRIER_ACCESS AccessBefore;
19354 D3D12_BARRIER_ACCESS AccessAfter;
19355 D3D12_BARRIER_LAYOUT LayoutBefore;
19356 D3D12_BARRIER_LAYOUT LayoutAfter;
19357 ID3D12Resource *pResource;
19358 D3D12_BARRIER_SUBRESOURCE_RANGE Subresources;
19359 D3D12_TEXTURE_BARRIER_FLAGS Flags;
19360} D3D12_TEXTURE_BARRIER;
19361typedef struct D3D12_BUFFER_BARRIER {
19362 D3D12_BARRIER_SYNC SyncBefore;
19363 D3D12_BARRIER_SYNC SyncAfter;
19364 D3D12_BARRIER_ACCESS AccessBefore;
19365 D3D12_BARRIER_ACCESS AccessAfter;
19366 ID3D12Resource *pResource;
19367 UINT64 Offset;
19368 UINT64 Size;
19369} D3D12_BUFFER_BARRIER;
19370typedef struct D3D12_BARRIER_GROUP {
19371 D3D12_BARRIER_TYPE Type;
19372 UINT32 NumBarriers;
19373 __C89_NAMELESS union {
19374 const D3D12_GLOBAL_BARRIER *pGlobalBarriers;
19375 const D3D12_TEXTURE_BARRIER *pTextureBarriers;
19376 const D3D12_BUFFER_BARRIER *pBufferBarriers;
19377 } __C89_NAMELESSUNIONNAME;
19378} D3D12_BARRIER_GROUP;
19379/*****************************************************************************
19380 * ID3D12ShaderCacheSession interface
19381 */
19382#ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
19383#define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
19384
19385DEFINE_GUID(IID_ID3D12ShaderCacheSession, 0x28e2495d, 0x0f64, 0x4ae4, 0xa6,0xec, 0x12,0x92,0x55,0xdc,0x49,0xa8);
19386#if defined(__cplusplus) && !defined(CINTERFACE)
19387MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8")
19388ID3D12ShaderCacheSession : public ID3D12DeviceChild
19389{
19390 virtual HRESULT STDMETHODCALLTYPE FindValue(
19391 const void *key,
19392 UINT key_size,
19393 void *value,
19394 UINT *value_size) = 0;
19395
19396 virtual HRESULT STDMETHODCALLTYPE StoreValue(
19397 const void *key,
19398 UINT key_size,
19399 const void *value,
19400 UINT value_size) = 0;
19401
19402 virtual void STDMETHODCALLTYPE SetDeleteOnDestroy(
19403 ) = 0;
19404
19405#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
19406 virtual D3D12_SHADER_CACHE_SESSION_DESC* STDMETHODCALLTYPE GetDesc(
19407 D3D12_SHADER_CACHE_SESSION_DESC *__ret) = 0;
19408 D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc(
19409 )
19410 {
19411 D3D12_SHADER_CACHE_SESSION_DESC __ret;
19412 return *GetDesc(&__ret);
19413 }
19414#else
19415 virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc(
19416 ) = 0;
19417#endif
19418
19419};
19420#ifdef __CRT_UUID_DECL
19421__CRT_UUID_DECL(ID3D12ShaderCacheSession, 0x28e2495d, 0x0f64, 0x4ae4, 0xa6,0xec, 0x12,0x92,0x55,0xdc,0x49,0xa8)
19422#endif
19423#else
19424typedef struct ID3D12ShaderCacheSessionVtbl {
19425 BEGIN_INTERFACE
19426
19427 /*** IUnknown methods ***/
19428 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19429 ID3D12ShaderCacheSession *This,
19430 REFIID riid,
19431 void **ppvObject);
19432
19433 ULONG (STDMETHODCALLTYPE *AddRef)(
19434 ID3D12ShaderCacheSession *This);
19435
19436 ULONG (STDMETHODCALLTYPE *Release)(
19437 ID3D12ShaderCacheSession *This);
19438
19439 /*** ID3D12Object methods ***/
19440 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
19441 ID3D12ShaderCacheSession *This,
19442 REFGUID guid,
19443 UINT *data_size,
19444 void *data);
19445
19446 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
19447 ID3D12ShaderCacheSession *This,
19448 REFGUID guid,
19449 UINT data_size,
19450 const void *data);
19451
19452 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
19453 ID3D12ShaderCacheSession *This,
19454 REFGUID guid,
19455 const IUnknown *data);
19456
19457 HRESULT (STDMETHODCALLTYPE *SetName)(
19458 ID3D12ShaderCacheSession *This,
19459 const WCHAR *name);
19460
19461 /*** ID3D12DeviceChild methods ***/
19462 HRESULT (STDMETHODCALLTYPE *GetDevice)(
19463 ID3D12ShaderCacheSession *This,
19464 REFIID riid,
19465 void **device);
19466
19467 /*** ID3D12ShaderCacheSession methods ***/
19468 HRESULT (STDMETHODCALLTYPE *FindValue)(
19469 ID3D12ShaderCacheSession *This,
19470 const void *key,
19471 UINT key_size,
19472 void *value,
19473 UINT *value_size);
19474
19475 HRESULT (STDMETHODCALLTYPE *StoreValue)(
19476 ID3D12ShaderCacheSession *This,
19477 const void *key,
19478 UINT key_size,
19479 const void *value,
19480 UINT value_size);
19481
19482 void (STDMETHODCALLTYPE *SetDeleteOnDestroy)(
19483 ID3D12ShaderCacheSession *This);
19484
19485 D3D12_SHADER_CACHE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)(
19486 ID3D12ShaderCacheSession *This,
19487 D3D12_SHADER_CACHE_SESSION_DESC *__ret);
19488
19489 END_INTERFACE
19490} ID3D12ShaderCacheSessionVtbl;
19491
19492interface ID3D12ShaderCacheSession {
19493 CONST_VTBL ID3D12ShaderCacheSessionVtbl* lpVtbl;
19494};
19495
19496#ifdef COBJMACROS
19497#ifndef WIDL_C_INLINE_WRAPPERS
19498/*** IUnknown methods ***/
19499#define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19500#define ID3D12ShaderCacheSession_AddRef(This) (This)->lpVtbl->AddRef(This)
19501#define ID3D12ShaderCacheSession_Release(This) (This)->lpVtbl->Release(This)
19502/*** ID3D12Object methods ***/
19503#define ID3D12ShaderCacheSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
19504#define ID3D12ShaderCacheSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
19505#define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
19506#define ID3D12ShaderCacheSession_SetName(This,name) (This)->lpVtbl->SetName(This,name)
19507/*** ID3D12DeviceChild methods ***/
19508#define ID3D12ShaderCacheSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
19509/*** ID3D12ShaderCacheSession methods ***/
19510#define ID3D12ShaderCacheSession_FindValue(This,key,key_size,value,value_size) (This)->lpVtbl->FindValue(This,key,key_size,value,value_size)
19511#define ID3D12ShaderCacheSession_StoreValue(This,key,key_size,value,value_size) (This)->lpVtbl->StoreValue(This,key,key_size,value,value_size)
19512#define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) (This)->lpVtbl->SetDeleteOnDestroy(This)
19513#define ID3D12ShaderCacheSession_GetDesc(This) ID3D12ShaderCacheSession_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
19514#else
19515/*** IUnknown methods ***/
19516static inline HRESULT ID3D12ShaderCacheSession_QueryInterface(ID3D12ShaderCacheSession* This,REFIID riid,void **ppvObject) {
19517 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19518}
19519static inline ULONG ID3D12ShaderCacheSession_AddRef(ID3D12ShaderCacheSession* This) {
19520 return This->lpVtbl->AddRef(This);
19521}
19522static inline ULONG ID3D12ShaderCacheSession_Release(ID3D12ShaderCacheSession* This) {
19523 return This->lpVtbl->Release(This);
19524}
19525/*** ID3D12Object methods ***/
19526static inline HRESULT ID3D12ShaderCacheSession_GetPrivateData(ID3D12ShaderCacheSession* This,REFGUID guid,UINT *data_size,void *data) {
19527 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
19528}
19529static inline HRESULT ID3D12ShaderCacheSession_SetPrivateData(ID3D12ShaderCacheSession* This,REFGUID guid,UINT data_size,const void *data) {
19530 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
19531}
19532static inline HRESULT ID3D12ShaderCacheSession_SetPrivateDataInterface(ID3D12ShaderCacheSession* This,REFGUID guid,const IUnknown *data) {
19533 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
19534}
19535static inline HRESULT ID3D12ShaderCacheSession_SetName(ID3D12ShaderCacheSession* This,const WCHAR *name) {
19536 return This->lpVtbl->SetName(This,name);
19537}
19538/*** ID3D12DeviceChild methods ***/
19539static inline HRESULT ID3D12ShaderCacheSession_GetDevice(ID3D12ShaderCacheSession* This,REFIID riid,void **device) {
19540 return This->lpVtbl->GetDevice(This,riid,device);
19541}
19542/*** ID3D12ShaderCacheSession methods ***/
19543static inline HRESULT ID3D12ShaderCacheSession_FindValue(ID3D12ShaderCacheSession* This,const void *key,UINT key_size,void *value,UINT *value_size) {
19544 return This->lpVtbl->FindValue(This,key,key_size,value,value_size);
19545}
19546static inline HRESULT ID3D12ShaderCacheSession_StoreValue(ID3D12ShaderCacheSession* This,const void *key,UINT key_size,const void *value,UINT value_size) {
19547 return This->lpVtbl->StoreValue(This,key,key_size,value,value_size);
19548}
19549static inline void ID3D12ShaderCacheSession_SetDeleteOnDestroy(ID3D12ShaderCacheSession* This) {
19550 This->lpVtbl->SetDeleteOnDestroy(This);
19551}
19552static inline D3D12_SHADER_CACHE_SESSION_DESC ID3D12ShaderCacheSession_GetDesc(ID3D12ShaderCacheSession* This) {
19553 D3D12_SHADER_CACHE_SESSION_DESC __ret;
19554 return *This->lpVtbl->GetDesc(This,&__ret);
19555}
19556#endif
19557#endif
19558
19559#endif
19560
19561
19562#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */
19563
19564typedef enum D3D12_SHADER_CACHE_KIND_FLAGS {
19565 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1,
19566 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2,
19567 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4,
19568 D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8
19569} D3D12_SHADER_CACHE_KIND_FLAGS;
19570DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_KIND_FLAGS);
19571typedef enum D3D12_SHADER_CACHE_CONTROL_FLAGS {
19572 D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1,
19573 D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2,
19574 D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4
19575} D3D12_SHADER_CACHE_CONTROL_FLAGS;
19576DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_CONTROL_FLAGS);
19577/*****************************************************************************
19578 * ID3D12Device9 interface
19579 */
19580#ifndef __ID3D12Device9_INTERFACE_DEFINED__
19581#define __ID3D12Device9_INTERFACE_DEFINED__
19582
19583DEFINE_GUID(IID_ID3D12Device9, 0x4c80e962, 0xf032, 0x4f60, 0xbc,0x9e, 0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);
19584#if defined(__cplusplus) && !defined(CINTERFACE)
19585MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c")
19586ID3D12Device9 : public ID3D12Device8
19587{
19588 virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession(
19589 const D3D12_SHADER_CACHE_SESSION_DESC *desc,
19590 REFIID riid,
19591 void **session) = 0;
19592
19593 virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl(
19594 D3D12_SHADER_CACHE_KIND_FLAGS kinds,
19595 D3D12_SHADER_CACHE_CONTROL_FLAGS control) = 0;
19596
19597 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1(
19598 const D3D12_COMMAND_QUEUE_DESC *desc,
19599 REFIID creator_id,
19600 REFIID riid,
19601 void **command_queue) = 0;
19602
19603};
19604#ifdef __CRT_UUID_DECL
19605__CRT_UUID_DECL(ID3D12Device9, 0x4c80e962, 0xf032, 0x4f60, 0xbc,0x9e, 0xeb,0xc2,0xcf,0xa1,0xd8,0x3c)
19606#endif
19607#else
19608typedef struct ID3D12Device9Vtbl {
19609 BEGIN_INTERFACE
19610
19611 /*** IUnknown methods ***/
19612 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19613 ID3D12Device9 *This,
19614 REFIID riid,
19615 void **ppvObject);
19616
19617 ULONG (STDMETHODCALLTYPE *AddRef)(
19618 ID3D12Device9 *This);
19619
19620 ULONG (STDMETHODCALLTYPE *Release)(
19621 ID3D12Device9 *This);
19622
19623 /*** ID3D12Object methods ***/
19624 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
19625 ID3D12Device9 *This,
19626 REFGUID guid,
19627 UINT *data_size,
19628 void *data);
19629
19630 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
19631 ID3D12Device9 *This,
19632 REFGUID guid,
19633 UINT data_size,
19634 const void *data);
19635
19636 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
19637 ID3D12Device9 *This,
19638 REFGUID guid,
19639 const IUnknown *data);
19640
19641 HRESULT (STDMETHODCALLTYPE *SetName)(
19642 ID3D12Device9 *This,
19643 const WCHAR *name);
19644
19645 /*** ID3D12Device methods ***/
19646 UINT (STDMETHODCALLTYPE *GetNodeCount)(
19647 ID3D12Device9 *This);
19648
19649 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
19650 ID3D12Device9 *This,
19651 const D3D12_COMMAND_QUEUE_DESC *desc,
19652 REFIID riid,
19653 void **command_queue);
19654
19655 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
19656 ID3D12Device9 *This,
19657 D3D12_COMMAND_LIST_TYPE type,
19658 REFIID riid,
19659 void **command_allocator);
19660
19661 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
19662 ID3D12Device9 *This,
19663 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
19664 REFIID riid,
19665 void **pipeline_state);
19666
19667 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
19668 ID3D12Device9 *This,
19669 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
19670 REFIID riid,
19671 void **pipeline_state);
19672
19673 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
19674 ID3D12Device9 *This,
19675 UINT node_mask,
19676 D3D12_COMMAND_LIST_TYPE type,
19677 ID3D12CommandAllocator *command_allocator,
19678 ID3D12PipelineState *initial_pipeline_state,
19679 REFIID riid,
19680 void **command_list);
19681
19682 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
19683 ID3D12Device9 *This,
19684 D3D12_FEATURE feature,
19685 void *feature_data,
19686 UINT feature_data_size);
19687
19688 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
19689 ID3D12Device9 *This,
19690 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
19691 REFIID riid,
19692 void **descriptor_heap);
19693
19694 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
19695 ID3D12Device9 *This,
19696 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
19697
19698 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
19699 ID3D12Device9 *This,
19700 UINT node_mask,
19701 const void *bytecode,
19702 SIZE_T bytecode_length,
19703 REFIID riid,
19704 void **root_signature);
19705
19706 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
19707 ID3D12Device9 *This,
19708 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
19709 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19710
19711 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
19712 ID3D12Device9 *This,
19713 ID3D12Resource *resource,
19714 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
19715 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19716
19717 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
19718 ID3D12Device9 *This,
19719 ID3D12Resource *resource,
19720 ID3D12Resource *counter_resource,
19721 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
19722 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19723
19724 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
19725 ID3D12Device9 *This,
19726 ID3D12Resource *resource,
19727 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
19728 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19729
19730 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
19731 ID3D12Device9 *This,
19732 ID3D12Resource *resource,
19733 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
19734 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19735
19736 void (STDMETHODCALLTYPE *CreateSampler)(
19737 ID3D12Device9 *This,
19738 const D3D12_SAMPLER_DESC *desc,
19739 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19740
19741 void (STDMETHODCALLTYPE *CopyDescriptors)(
19742 ID3D12Device9 *This,
19743 UINT dst_descriptor_range_count,
19744 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
19745 const UINT *dst_descriptor_range_sizes,
19746 UINT src_descriptor_range_count,
19747 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
19748 const UINT *src_descriptor_range_sizes,
19749 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
19750
19751 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
19752 ID3D12Device9 *This,
19753 UINT descriptor_count,
19754 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
19755 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
19756 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
19757
19758 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
19759 ID3D12Device9 *This,
19760 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
19761 UINT visible_mask,
19762 UINT reource_desc_count,
19763 const D3D12_RESOURCE_DESC *resource_descs);
19764
19765 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
19766 ID3D12Device9 *This,
19767 D3D12_HEAP_PROPERTIES *__ret,
19768 UINT node_mask,
19769 D3D12_HEAP_TYPE heap_type);
19770
19771 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
19772 ID3D12Device9 *This,
19773 const D3D12_HEAP_PROPERTIES *heap_properties,
19774 D3D12_HEAP_FLAGS heap_flags,
19775 const D3D12_RESOURCE_DESC *desc,
19776 D3D12_RESOURCE_STATES initial_state,
19777 const D3D12_CLEAR_VALUE *optimized_clear_value,
19778 REFIID riid,
19779 void **resource);
19780
19781 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
19782 ID3D12Device9 *This,
19783 const D3D12_HEAP_DESC *desc,
19784 REFIID riid,
19785 void **heap);
19786
19787 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
19788 ID3D12Device9 *This,
19789 ID3D12Heap *heap,
19790 UINT64 heap_offset,
19791 const D3D12_RESOURCE_DESC *desc,
19792 D3D12_RESOURCE_STATES initial_state,
19793 const D3D12_CLEAR_VALUE *optimized_clear_value,
19794 REFIID riid,
19795 void **resource);
19796
19797 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
19798 ID3D12Device9 *This,
19799 const D3D12_RESOURCE_DESC *desc,
19800 D3D12_RESOURCE_STATES initial_state,
19801 const D3D12_CLEAR_VALUE *optimized_clear_value,
19802 REFIID riid,
19803 void **resource);
19804
19805 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
19806 ID3D12Device9 *This,
19807 ID3D12DeviceChild *object,
19808 const SECURITY_ATTRIBUTES *attributes,
19809 DWORD access,
19810 const WCHAR *name,
19811 HANDLE *handle);
19812
19813 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
19814 ID3D12Device9 *This,
19815 HANDLE handle,
19816 REFIID riid,
19817 void **object);
19818
19819 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
19820 ID3D12Device9 *This,
19821 const WCHAR *name,
19822 DWORD access,
19823 HANDLE *handle);
19824
19825 HRESULT (STDMETHODCALLTYPE *MakeResident)(
19826 ID3D12Device9 *This,
19827 UINT object_count,
19828 ID3D12Pageable *const *objects);
19829
19830 HRESULT (STDMETHODCALLTYPE *Evict)(
19831 ID3D12Device9 *This,
19832 UINT object_count,
19833 ID3D12Pageable *const *objects);
19834
19835 HRESULT (STDMETHODCALLTYPE *CreateFence)(
19836 ID3D12Device9 *This,
19837 UINT64 initial_value,
19838 D3D12_FENCE_FLAGS flags,
19839 REFIID riid,
19840 void **fence);
19841
19842 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
19843 ID3D12Device9 *This);
19844
19845 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
19846 ID3D12Device9 *This,
19847 const D3D12_RESOURCE_DESC *desc,
19848 UINT first_sub_resource,
19849 UINT sub_resource_count,
19850 UINT64 base_offset,
19851 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
19852 UINT *row_count,
19853 UINT64 *row_size,
19854 UINT64 *total_bytes);
19855
19856 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
19857 ID3D12Device9 *This,
19858 const D3D12_QUERY_HEAP_DESC *desc,
19859 REFIID riid,
19860 void **heap);
19861
19862 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
19863 ID3D12Device9 *This,
19864 WINBOOL enable);
19865
19866 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
19867 ID3D12Device9 *This,
19868 const D3D12_COMMAND_SIGNATURE_DESC *desc,
19869 ID3D12RootSignature *root_signature,
19870 REFIID riid,
19871 void **command_signature);
19872
19873 void (STDMETHODCALLTYPE *GetResourceTiling)(
19874 ID3D12Device9 *This,
19875 ID3D12Resource *resource,
19876 UINT *total_tile_count,
19877 D3D12_PACKED_MIP_INFO *packed_mip_info,
19878 D3D12_TILE_SHAPE *standard_tile_shape,
19879 UINT *sub_resource_tiling_count,
19880 UINT first_sub_resource_tiling,
19881 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
19882
19883 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
19884 ID3D12Device9 *This,
19885 LUID *__ret);
19886
19887 /*** ID3D12Device1 methods ***/
19888 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
19889 ID3D12Device9 *This,
19890 const void *blob,
19891 SIZE_T blob_size,
19892 REFIID iid,
19893 void **lib);
19894
19895 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
19896 ID3D12Device9 *This,
19897 ID3D12Fence *const *fences,
19898 const UINT64 *values,
19899 UINT fence_count,
19900 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
19901 HANDLE event);
19902
19903 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
19904 ID3D12Device9 *This,
19905 UINT object_count,
19906 ID3D12Pageable *const *objects,
19907 const D3D12_RESIDENCY_PRIORITY *priorities);
19908
19909 /*** ID3D12Device2 methods ***/
19910 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
19911 ID3D12Device9 *This,
19912 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
19913 REFIID riid,
19914 void **pipeline_state);
19915
19916 /*** ID3D12Device3 methods ***/
19917 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
19918 ID3D12Device9 *This,
19919 const void *address,
19920 REFIID riid,
19921 void **heap);
19922
19923 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
19924 ID3D12Device9 *This,
19925 HANDLE file_mapping,
19926 REFIID riid,
19927 void **heap);
19928
19929 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
19930 ID3D12Device9 *This,
19931 D3D12_RESIDENCY_FLAGS flags,
19932 UINT num_objects,
19933 ID3D12Pageable *const *objects,
19934 ID3D12Fence *fence,
19935 UINT64 fence_value);
19936
19937 /*** ID3D12Device4 methods ***/
19938 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
19939 ID3D12Device9 *This,
19940 UINT node_mask,
19941 D3D12_COMMAND_LIST_TYPE type,
19942 D3D12_COMMAND_LIST_FLAGS flags,
19943 REFIID riid,
19944 void **command_list);
19945
19946 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
19947 ID3D12Device9 *This,
19948 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
19949 REFIID riid,
19950 void **session);
19951
19952 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
19953 ID3D12Device9 *This,
19954 const D3D12_HEAP_PROPERTIES *heap_properties,
19955 D3D12_HEAP_FLAGS heap_flags,
19956 const D3D12_RESOURCE_DESC *desc,
19957 D3D12_RESOURCE_STATES initial_resource_state,
19958 const D3D12_CLEAR_VALUE *optimized_clear_value,
19959 ID3D12ProtectedResourceSession *protected_session,
19960 REFIID riid_resource,
19961 void **resource);
19962
19963 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
19964 ID3D12Device9 *This,
19965 const D3D12_HEAP_DESC *desc,
19966 ID3D12ProtectedResourceSession *protected_session,
19967 REFIID riid,
19968 void **heap);
19969
19970 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
19971 ID3D12Device9 *This,
19972 const D3D12_RESOURCE_DESC *desc,
19973 D3D12_RESOURCE_STATES initial_state,
19974 const D3D12_CLEAR_VALUE *optimized_clear_value,
19975 ID3D12ProtectedResourceSession *protected_session,
19976 REFIID riid,
19977 void **resource);
19978
19979 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
19980 ID3D12Device9 *This,
19981 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
19982 UINT visible_mask,
19983 UINT resource_descs_count,
19984 const D3D12_RESOURCE_DESC *resource_descs,
19985 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
19986
19987 /*** ID3D12Device5 methods ***/
19988 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
19989 ID3D12Device9 *This,
19990 ID3D12LifetimeOwner *owner,
19991 REFIID riid,
19992 void **tracker);
19993
19994 void (STDMETHODCALLTYPE *RemoveDevice)(
19995 ID3D12Device9 *This);
19996
19997 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
19998 ID3D12Device9 *This,
19999 UINT *meta_commands_count,
20000 D3D12_META_COMMAND_DESC *descs);
20001
20002 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
20003 ID3D12Device9 *This,
20004 REFGUID command_id,
20005 D3D12_META_COMMAND_PARAMETER_STAGE stage,
20006 UINT *total_structure_size_in_bytes,
20007 UINT *parameter_count,
20008 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
20009
20010 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
20011 ID3D12Device9 *This,
20012 REFGUID command_id,
20013 UINT node_mask,
20014 const void *creation_parameters_data,
20015 SIZE_T creation_parameters_data_size_in_bytes,
20016 REFIID riid,
20017 void **meta_command);
20018
20019 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
20020 ID3D12Device9 *This,
20021 const D3D12_STATE_OBJECT_DESC *desc,
20022 REFIID riid,
20023 void **state_object);
20024
20025 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
20026 ID3D12Device9 *This,
20027 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
20028 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
20029
20030 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
20031 ID3D12Device9 *This,
20032 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
20033 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
20034
20035 /*** ID3D12Device6 methods ***/
20036 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
20037 ID3D12Device9 *This,
20038 D3D12_BACKGROUND_PROCESSING_MODE mode,
20039 D3D12_MEASUREMENTS_ACTION action,
20040 HANDLE event,
20041 WINBOOL *further_measurements_desired);
20042
20043 /*** ID3D12Device7 methods ***/
20044 HRESULT (STDMETHODCALLTYPE *AddToStateObject)(
20045 ID3D12Device9 *This,
20046 const D3D12_STATE_OBJECT_DESC *addition,
20047 ID3D12StateObject *state_object_to_grow_from,
20048 REFIID riid,
20049 void **new_state_object);
20050
20051 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)(
20052 ID3D12Device9 *This,
20053 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
20054 REFIID riid,
20055 void **session);
20056
20057 /*** ID3D12Device8 methods ***/
20058 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)(
20059 ID3D12Device9 *This,
20060 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
20061 UINT visible_mask,
20062 UINT resource_descs_count,
20063 const D3D12_RESOURCE_DESC1 *resource_descs,
20064 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
20065
20066 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)(
20067 ID3D12Device9 *This,
20068 const D3D12_HEAP_PROPERTIES *heap_properties,
20069 D3D12_HEAP_FLAGS heap_flags,
20070 const D3D12_RESOURCE_DESC1 *desc,
20071 D3D12_RESOURCE_STATES initial_resource_state,
20072 const D3D12_CLEAR_VALUE *optimized_clear_value,
20073 ID3D12ProtectedResourceSession *protected_session,
20074 REFIID riid_resource,
20075 void **resource);
20076
20077 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)(
20078 ID3D12Device9 *This,
20079 ID3D12Heap *heap,
20080 UINT64 heap_offset,
20081 const D3D12_RESOURCE_DESC1 *desc,
20082 D3D12_RESOURCE_STATES initial_state,
20083 const D3D12_CLEAR_VALUE *optimized_clear_value,
20084 REFIID riid,
20085 void **resource);
20086
20087 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)(
20088 ID3D12Device9 *This,
20089 ID3D12Resource *targeted_resource,
20090 ID3D12Resource *feedback_resource,
20091 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor);
20092
20093 void (STDMETHODCALLTYPE *GetCopyableFootprints1)(
20094 ID3D12Device9 *This,
20095 const D3D12_RESOURCE_DESC1 *resource_desc,
20096 UINT first_subresource,
20097 UINT subresources_count,
20098 UINT64 base_offset,
20099 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
20100 UINT *rows_count,
20101 UINT64 *row_size_in_bytes,
20102 UINT64 *total_bytes);
20103
20104 /*** ID3D12Device9 methods ***/
20105 HRESULT (STDMETHODCALLTYPE *CreateShaderCacheSession)(
20106 ID3D12Device9 *This,
20107 const D3D12_SHADER_CACHE_SESSION_DESC *desc,
20108 REFIID riid,
20109 void **session);
20110
20111 HRESULT (STDMETHODCALLTYPE *ShaderCacheControl)(
20112 ID3D12Device9 *This,
20113 D3D12_SHADER_CACHE_KIND_FLAGS kinds,
20114 D3D12_SHADER_CACHE_CONTROL_FLAGS control);
20115
20116 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue1)(
20117 ID3D12Device9 *This,
20118 const D3D12_COMMAND_QUEUE_DESC *desc,
20119 REFIID creator_id,
20120 REFIID riid,
20121 void **command_queue);
20122
20123 END_INTERFACE
20124} ID3D12Device9Vtbl;
20125
20126interface ID3D12Device9 {
20127 CONST_VTBL ID3D12Device9Vtbl* lpVtbl;
20128};
20129
20130#ifdef COBJMACROS
20131#ifndef WIDL_C_INLINE_WRAPPERS
20132/*** IUnknown methods ***/
20133#define ID3D12Device9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20134#define ID3D12Device9_AddRef(This) (This)->lpVtbl->AddRef(This)
20135#define ID3D12Device9_Release(This) (This)->lpVtbl->Release(This)
20136/*** ID3D12Object methods ***/
20137#define ID3D12Device9_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
20138#define ID3D12Device9_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
20139#define ID3D12Device9_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
20140#define ID3D12Device9_SetName(This,name) (This)->lpVtbl->SetName(This,name)
20141/*** ID3D12Device methods ***/
20142#define ID3D12Device9_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
20143#define ID3D12Device9_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
20144#define ID3D12Device9_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
20145#define ID3D12Device9_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
20146#define ID3D12Device9_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
20147#define ID3D12Device9_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
20148#define ID3D12Device9_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
20149#define ID3D12Device9_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
20150#define ID3D12Device9_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
20151#define ID3D12Device9_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
20152#define ID3D12Device9_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
20153#define ID3D12Device9_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
20154#define ID3D12Device9_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
20155#define ID3D12Device9_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
20156#define ID3D12Device9_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
20157#define ID3D12Device9_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
20158#define ID3D12Device9_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
20159#define ID3D12Device9_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
20160#define ID3D12Device9_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device9_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
20161#define ID3D12Device9_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device9_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
20162#define ID3D12Device9_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
20163#define ID3D12Device9_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
20164#define ID3D12Device9_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
20165#define ID3D12Device9_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
20166#define ID3D12Device9_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
20167#define ID3D12Device9_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
20168#define ID3D12Device9_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
20169#define ID3D12Device9_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
20170#define ID3D12Device9_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
20171#define ID3D12Device9_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
20172#define ID3D12Device9_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
20173#define ID3D12Device9_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
20174#define ID3D12Device9_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
20175#define ID3D12Device9_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
20176#define ID3D12Device9_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
20177#define ID3D12Device9_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
20178#define ID3D12Device9_GetAdapterLuid(This) ID3D12Device9_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
20179/*** ID3D12Device1 methods ***/
20180#define ID3D12Device9_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
20181#define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
20182#define ID3D12Device9_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
20183/*** ID3D12Device2 methods ***/
20184#define ID3D12Device9_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
20185/*** ID3D12Device3 methods ***/
20186#define ID3D12Device9_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
20187#define ID3D12Device9_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
20188#define ID3D12Device9_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
20189/*** ID3D12Device4 methods ***/
20190#define ID3D12Device9_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
20191#define ID3D12Device9_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
20192#define ID3D12Device9_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
20193#define ID3D12Device9_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
20194#define ID3D12Device9_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource)
20195#define ID3D12Device9_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device9_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
20196/*** ID3D12Device5 methods ***/
20197#define ID3D12Device9_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
20198#define ID3D12Device9_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
20199#define ID3D12Device9_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
20200#define ID3D12Device9_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs)
20201#define ID3D12Device9_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command)
20202#define ID3D12Device9_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
20203#define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
20204#define ID3D12Device9_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
20205/*** ID3D12Device6 methods ***/
20206#define ID3D12Device9_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
20207/*** ID3D12Device7 methods ***/
20208#define ID3D12Device9_AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) (This)->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object)
20209#define ID3D12Device9_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session)
20210/*** ID3D12Device8 methods ***/
20211#define ID3D12Device9_GetResourceAllocationInfo2(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device9_GetResourceAllocationInfo2_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
20212#define ID3D12Device9_CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
20213#define ID3D12Device9_CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
20214#define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor)
20215#define ID3D12Device9_GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) (This)->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes)
20216/*** ID3D12Device9 methods ***/
20217#define ID3D12Device9_CreateShaderCacheSession(This,desc,riid,session) (This)->lpVtbl->CreateShaderCacheSession(This,desc,riid,session)
20218#define ID3D12Device9_ShaderCacheControl(This,kinds,control) (This)->lpVtbl->ShaderCacheControl(This,kinds,control)
20219#define ID3D12Device9_CreateCommandQueue1(This,desc,creator_id,riid,command_queue) (This)->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue)
20220#else
20221/*** IUnknown methods ***/
20222static inline HRESULT ID3D12Device9_QueryInterface(ID3D12Device9* This,REFIID riid,void **ppvObject) {
20223 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20224}
20225static inline ULONG ID3D12Device9_AddRef(ID3D12Device9* This) {
20226 return This->lpVtbl->AddRef(This);
20227}
20228static inline ULONG ID3D12Device9_Release(ID3D12Device9* This) {
20229 return This->lpVtbl->Release(This);
20230}
20231/*** ID3D12Object methods ***/
20232static inline HRESULT ID3D12Device9_GetPrivateData(ID3D12Device9* This,REFGUID guid,UINT *data_size,void *data) {
20233 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
20234}
20235static inline HRESULT ID3D12Device9_SetPrivateData(ID3D12Device9* This,REFGUID guid,UINT data_size,const void *data) {
20236 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
20237}
20238static inline HRESULT ID3D12Device9_SetPrivateDataInterface(ID3D12Device9* This,REFGUID guid,const IUnknown *data) {
20239 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
20240}
20241static inline HRESULT ID3D12Device9_SetName(ID3D12Device9* This,const WCHAR *name) {
20242 return This->lpVtbl->SetName(This,name);
20243}
20244/*** ID3D12Device methods ***/
20245static inline UINT ID3D12Device9_GetNodeCount(ID3D12Device9* This) {
20246 return This->lpVtbl->GetNodeCount(This);
20247}
20248static inline HRESULT ID3D12Device9_CreateCommandQueue(ID3D12Device9* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
20249 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
20250}
20251static inline HRESULT ID3D12Device9_CreateCommandAllocator(ID3D12Device9* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
20252 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
20253}
20254static inline HRESULT ID3D12Device9_CreateGraphicsPipelineState(ID3D12Device9* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
20255 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
20256}
20257static inline HRESULT ID3D12Device9_CreateComputePipelineState(ID3D12Device9* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
20258 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
20259}
20260static inline HRESULT ID3D12Device9_CreateCommandList(ID3D12Device9* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
20261 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
20262}
20263static inline HRESULT ID3D12Device9_CheckFeatureSupport(ID3D12Device9* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
20264 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
20265}
20266static inline HRESULT ID3D12Device9_CreateDescriptorHeap(ID3D12Device9* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
20267 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
20268}
20269static inline UINT ID3D12Device9_GetDescriptorHandleIncrementSize(ID3D12Device9* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
20270 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
20271}
20272static inline HRESULT ID3D12Device9_CreateRootSignature(ID3D12Device9* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
20273 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
20274}
20275static inline void ID3D12Device9_CreateConstantBufferView(ID3D12Device9* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20276 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
20277}
20278static inline void ID3D12Device9_CreateShaderResourceView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20279 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
20280}
20281static inline void ID3D12Device9_CreateUnorderedAccessView(ID3D12Device9* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20282 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
20283}
20284static inline void ID3D12Device9_CreateRenderTargetView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20285 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
20286}
20287static inline void ID3D12Device9_CreateDepthStencilView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20288 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
20289}
20290static inline void ID3D12Device9_CreateSampler(ID3D12Device9* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20291 This->lpVtbl->CreateSampler(This,desc,descriptor);
20292}
20293static inline void ID3D12Device9_CopyDescriptors(ID3D12Device9* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
20294 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
20295}
20296static inline void ID3D12Device9_CopyDescriptorsSimple(ID3D12Device9* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
20297 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
20298}
20299static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device9_GetResourceAllocationInfo(ID3D12Device9* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
20300 D3D12_RESOURCE_ALLOCATION_INFO __ret;
20301 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
20302}
20303static inline D3D12_HEAP_PROPERTIES ID3D12Device9_GetCustomHeapProperties(ID3D12Device9* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
20304 D3D12_HEAP_PROPERTIES __ret;
20305 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
20306}
20307static inline HRESULT ID3D12Device9_CreateCommittedResource(ID3D12Device9* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
20308 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
20309}
20310static inline HRESULT ID3D12Device9_CreateHeap(ID3D12Device9* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
20311 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
20312}
20313static inline HRESULT ID3D12Device9_CreatePlacedResource(ID3D12Device9* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
20314 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
20315}
20316static inline HRESULT ID3D12Device9_CreateReservedResource(ID3D12Device9* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
20317 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
20318}
20319static inline HRESULT ID3D12Device9_CreateSharedHandle(ID3D12Device9* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
20320 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
20321}
20322static inline HRESULT ID3D12Device9_OpenSharedHandle(ID3D12Device9* This,HANDLE handle,REFIID riid,void **object) {
20323 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
20324}
20325static inline HRESULT ID3D12Device9_OpenSharedHandleByName(ID3D12Device9* This,const WCHAR *name,DWORD access,HANDLE *handle) {
20326 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
20327}
20328static inline HRESULT ID3D12Device9_MakeResident(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects) {
20329 return This->lpVtbl->MakeResident(This,object_count,objects);
20330}
20331static inline HRESULT ID3D12Device9_Evict(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects) {
20332 return This->lpVtbl->Evict(This,object_count,objects);
20333}
20334static inline HRESULT ID3D12Device9_CreateFence(ID3D12Device9* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
20335 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
20336}
20337static inline HRESULT ID3D12Device9_GetDeviceRemovedReason(ID3D12Device9* This) {
20338 return This->lpVtbl->GetDeviceRemovedReason(This);
20339}
20340static inline void ID3D12Device9_GetCopyableFootprints(ID3D12Device9* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
20341 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
20342}
20343static inline HRESULT ID3D12Device9_CreateQueryHeap(ID3D12Device9* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
20344 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
20345}
20346static inline HRESULT ID3D12Device9_SetStablePowerState(ID3D12Device9* This,WINBOOL enable) {
20347 return This->lpVtbl->SetStablePowerState(This,enable);
20348}
20349static inline HRESULT ID3D12Device9_CreateCommandSignature(ID3D12Device9* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
20350 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
20351}
20352static inline void ID3D12Device9_GetResourceTiling(ID3D12Device9* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
20353 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
20354}
20355static inline LUID ID3D12Device9_GetAdapterLuid(ID3D12Device9* This) {
20356 LUID __ret;
20357 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
20358}
20359/*** ID3D12Device1 methods ***/
20360static inline HRESULT ID3D12Device9_CreatePipelineLibrary(ID3D12Device9* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
20361 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
20362}
20363static inline HRESULT ID3D12Device9_SetEventOnMultipleFenceCompletion(ID3D12Device9* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
20364 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
20365}
20366static inline HRESULT ID3D12Device9_SetResidencyPriority(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
20367 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
20368}
20369/*** ID3D12Device2 methods ***/
20370static inline HRESULT ID3D12Device9_CreatePipelineState(ID3D12Device9* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
20371 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
20372}
20373/*** ID3D12Device3 methods ***/
20374static inline HRESULT ID3D12Device9_OpenExistingHeapFromAddress(ID3D12Device9* This,const void *address,REFIID riid,void **heap) {
20375 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
20376}
20377static inline HRESULT ID3D12Device9_OpenExistingHeapFromFileMapping(ID3D12Device9* This,HANDLE file_mapping,REFIID riid,void **heap) {
20378 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
20379}
20380static inline HRESULT ID3D12Device9_EnqueueMakeResident(ID3D12Device9* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
20381 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
20382}
20383/*** ID3D12Device4 methods ***/
20384static inline HRESULT ID3D12Device9_CreateCommandList1(ID3D12Device9* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
20385 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
20386}
20387static inline HRESULT ID3D12Device9_CreateProtectedResourceSession(ID3D12Device9* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
20388 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
20389}
20390static inline HRESULT ID3D12Device9_CreateCommittedResource1(ID3D12Device9* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
20391 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
20392}
20393static inline HRESULT ID3D12Device9_CreateHeap1(ID3D12Device9* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
20394 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
20395}
20396static inline HRESULT ID3D12Device9_CreateReservedResource1(ID3D12Device9* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) {
20397 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
20398}
20399static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device9_GetResourceAllocationInfo1(ID3D12Device9* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
20400 D3D12_RESOURCE_ALLOCATION_INFO __ret;
20401 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
20402}
20403/*** ID3D12Device5 methods ***/
20404static inline HRESULT ID3D12Device9_CreateLifetimeTracker(ID3D12Device9* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
20405 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
20406}
20407static inline void ID3D12Device9_RemoveDevice(ID3D12Device9* This) {
20408 This->lpVtbl->RemoveDevice(This);
20409}
20410static inline HRESULT ID3D12Device9_EnumerateMetaCommands(ID3D12Device9* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
20411 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
20412}
20413static inline HRESULT ID3D12Device9_EnumerateMetaCommandParameters(ID3D12Device9* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) {
20414 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
20415}
20416static inline HRESULT ID3D12Device9_CreateMetaCommand(ID3D12Device9* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) {
20417 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
20418}
20419static inline HRESULT ID3D12Device9_CreateStateObject(ID3D12Device9* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
20420 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
20421}
20422static inline void ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device9* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
20423 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
20424}
20425static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device9_CheckDriverMatchingIdentifier(ID3D12Device9* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) {
20426 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
20427}
20428/*** ID3D12Device6 methods ***/
20429static inline HRESULT ID3D12Device9_SetBackgroundProcessingMode(ID3D12Device9* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
20430 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
20431}
20432/*** ID3D12Device7 methods ***/
20433static inline HRESULT ID3D12Device9_AddToStateObject(ID3D12Device9* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) {
20434 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object);
20435}
20436static inline HRESULT ID3D12Device9_CreateProtectedResourceSession1(ID3D12Device9* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) {
20437 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session);
20438}
20439/*** ID3D12Device8 methods ***/
20440static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device9_GetResourceAllocationInfo2(ID3D12Device9* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC1 *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
20441 D3D12_RESOURCE_ALLOCATION_INFO __ret;
20442 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
20443}
20444static inline HRESULT ID3D12Device9_CreateCommittedResource2(ID3D12Device9* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
20445 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
20446}
20447static inline HRESULT ID3D12Device9_CreatePlacedResource1(ID3D12Device9* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
20448 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
20449}
20450static inline void ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device9* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) {
20451 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor);
20452}
20453static inline void ID3D12Device9_GetCopyableFootprints1(ID3D12Device9* This,const D3D12_RESOURCE_DESC1 *resource_desc,UINT first_subresource,UINT subresources_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *rows_count,UINT64 *row_size_in_bytes,UINT64 *total_bytes) {
20454 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes);
20455}
20456/*** ID3D12Device9 methods ***/
20457static inline HRESULT ID3D12Device9_CreateShaderCacheSession(ID3D12Device9* This,const D3D12_SHADER_CACHE_SESSION_DESC *desc,REFIID riid,void **session) {
20458 return This->lpVtbl->CreateShaderCacheSession(This,desc,riid,session);
20459}
20460static inline HRESULT ID3D12Device9_ShaderCacheControl(ID3D12Device9* This,D3D12_SHADER_CACHE_KIND_FLAGS kinds,D3D12_SHADER_CACHE_CONTROL_FLAGS control) {
20461 return This->lpVtbl->ShaderCacheControl(This,kinds,control);
20462}
20463static inline HRESULT ID3D12Device9_CreateCommandQueue1(ID3D12Device9* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID creator_id,REFIID riid,void **command_queue) {
20464 return This->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue);
20465}
20466#endif
20467#endif
20468
20469#endif
20470
20471
20472#endif /* __ID3D12Device9_INTERFACE_DEFINED__ */
20473
20474/*****************************************************************************
20475 * ID3D12Device10 interface
20476 */
20477#ifndef __ID3D12Device10_INTERFACE_DEFINED__
20478#define __ID3D12Device10_INTERFACE_DEFINED__
20479
20480DEFINE_GUID(IID_ID3D12Device10, 0x517f8718, 0xaa66, 0x49f9, 0xb0,0x2b, 0xa7,0xab,0x89,0xc0,0x60,0x31);
20481#if defined(__cplusplus) && !defined(CINTERFACE)
20482MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031")
20483ID3D12Device10 : public ID3D12Device9
20484{
20485 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3(
20486 const D3D12_HEAP_PROPERTIES *heap_properties,
20487 D3D12_HEAP_FLAGS heap_flags,
20488 const D3D12_RESOURCE_DESC1 *desc,
20489 D3D12_BARRIER_LAYOUT initial_layout,
20490 const D3D12_CLEAR_VALUE *optimized_clear_value,
20491 ID3D12ProtectedResourceSession *protected_session,
20492 UINT32 castable_formats_count,
20493 DXGI_FORMAT *castable_formats,
20494 REFIID riid_resource,
20495 void **resource) = 0;
20496
20497 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2(
20498 ID3D12Heap *heap,
20499 UINT64 heap_offset,
20500 const D3D12_RESOURCE_DESC1 *desc,
20501 D3D12_BARRIER_LAYOUT initial_layout,
20502 const D3D12_CLEAR_VALUE *optimized_clear_value,
20503 UINT32 castable_formats_count,
20504 DXGI_FORMAT *castable_formats,
20505 REFIID riid,
20506 void **resource) = 0;
20507
20508 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2(
20509 const D3D12_RESOURCE_DESC *desc,
20510 D3D12_BARRIER_LAYOUT initial_layout,
20511 const D3D12_CLEAR_VALUE *optimized_clear_value,
20512 ID3D12ProtectedResourceSession *protected_session,
20513 UINT32 castable_formats_count,
20514 DXGI_FORMAT *castable_formats,
20515 REFIID riid,
20516 void **resource) = 0;
20517
20518};
20519#ifdef __CRT_UUID_DECL
20520__CRT_UUID_DECL(ID3D12Device10, 0x517f8718, 0xaa66, 0x49f9, 0xb0,0x2b, 0xa7,0xab,0x89,0xc0,0x60,0x31)
20521#endif
20522#else
20523typedef struct ID3D12Device10Vtbl {
20524 BEGIN_INTERFACE
20525
20526 /*** IUnknown methods ***/
20527 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20528 ID3D12Device10 *This,
20529 REFIID riid,
20530 void **ppvObject);
20531
20532 ULONG (STDMETHODCALLTYPE *AddRef)(
20533 ID3D12Device10 *This);
20534
20535 ULONG (STDMETHODCALLTYPE *Release)(
20536 ID3D12Device10 *This);
20537
20538 /*** ID3D12Object methods ***/
20539 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
20540 ID3D12Device10 *This,
20541 REFGUID guid,
20542 UINT *data_size,
20543 void *data);
20544
20545 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
20546 ID3D12Device10 *This,
20547 REFGUID guid,
20548 UINT data_size,
20549 const void *data);
20550
20551 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
20552 ID3D12Device10 *This,
20553 REFGUID guid,
20554 const IUnknown *data);
20555
20556 HRESULT (STDMETHODCALLTYPE *SetName)(
20557 ID3D12Device10 *This,
20558 const WCHAR *name);
20559
20560 /*** ID3D12Device methods ***/
20561 UINT (STDMETHODCALLTYPE *GetNodeCount)(
20562 ID3D12Device10 *This);
20563
20564 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
20565 ID3D12Device10 *This,
20566 const D3D12_COMMAND_QUEUE_DESC *desc,
20567 REFIID riid,
20568 void **command_queue);
20569
20570 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
20571 ID3D12Device10 *This,
20572 D3D12_COMMAND_LIST_TYPE type,
20573 REFIID riid,
20574 void **command_allocator);
20575
20576 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
20577 ID3D12Device10 *This,
20578 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
20579 REFIID riid,
20580 void **pipeline_state);
20581
20582 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
20583 ID3D12Device10 *This,
20584 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
20585 REFIID riid,
20586 void **pipeline_state);
20587
20588 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
20589 ID3D12Device10 *This,
20590 UINT node_mask,
20591 D3D12_COMMAND_LIST_TYPE type,
20592 ID3D12CommandAllocator *command_allocator,
20593 ID3D12PipelineState *initial_pipeline_state,
20594 REFIID riid,
20595 void **command_list);
20596
20597 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
20598 ID3D12Device10 *This,
20599 D3D12_FEATURE feature,
20600 void *feature_data,
20601 UINT feature_data_size);
20602
20603 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
20604 ID3D12Device10 *This,
20605 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
20606 REFIID riid,
20607 void **descriptor_heap);
20608
20609 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
20610 ID3D12Device10 *This,
20611 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
20612
20613 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
20614 ID3D12Device10 *This,
20615 UINT node_mask,
20616 const void *bytecode,
20617 SIZE_T bytecode_length,
20618 REFIID riid,
20619 void **root_signature);
20620
20621 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
20622 ID3D12Device10 *This,
20623 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
20624 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20625
20626 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
20627 ID3D12Device10 *This,
20628 ID3D12Resource *resource,
20629 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
20630 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20631
20632 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
20633 ID3D12Device10 *This,
20634 ID3D12Resource *resource,
20635 ID3D12Resource *counter_resource,
20636 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
20637 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20638
20639 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
20640 ID3D12Device10 *This,
20641 ID3D12Resource *resource,
20642 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
20643 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20644
20645 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
20646 ID3D12Device10 *This,
20647 ID3D12Resource *resource,
20648 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
20649 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20650
20651 void (STDMETHODCALLTYPE *CreateSampler)(
20652 ID3D12Device10 *This,
20653 const D3D12_SAMPLER_DESC *desc,
20654 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20655
20656 void (STDMETHODCALLTYPE *CopyDescriptors)(
20657 ID3D12Device10 *This,
20658 UINT dst_descriptor_range_count,
20659 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
20660 const UINT *dst_descriptor_range_sizes,
20661 UINT src_descriptor_range_count,
20662 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
20663 const UINT *src_descriptor_range_sizes,
20664 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
20665
20666 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
20667 ID3D12Device10 *This,
20668 UINT descriptor_count,
20669 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
20670 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
20671 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
20672
20673 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
20674 ID3D12Device10 *This,
20675 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
20676 UINT visible_mask,
20677 UINT reource_desc_count,
20678 const D3D12_RESOURCE_DESC *resource_descs);
20679
20680 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
20681 ID3D12Device10 *This,
20682 D3D12_HEAP_PROPERTIES *__ret,
20683 UINT node_mask,
20684 D3D12_HEAP_TYPE heap_type);
20685
20686 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
20687 ID3D12Device10 *This,
20688 const D3D12_HEAP_PROPERTIES *heap_properties,
20689 D3D12_HEAP_FLAGS heap_flags,
20690 const D3D12_RESOURCE_DESC *desc,
20691 D3D12_RESOURCE_STATES initial_state,
20692 const D3D12_CLEAR_VALUE *optimized_clear_value,
20693 REFIID riid,
20694 void **resource);
20695
20696 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
20697 ID3D12Device10 *This,
20698 const D3D12_HEAP_DESC *desc,
20699 REFIID riid,
20700 void **heap);
20701
20702 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
20703 ID3D12Device10 *This,
20704 ID3D12Heap *heap,
20705 UINT64 heap_offset,
20706 const D3D12_RESOURCE_DESC *desc,
20707 D3D12_RESOURCE_STATES initial_state,
20708 const D3D12_CLEAR_VALUE *optimized_clear_value,
20709 REFIID riid,
20710 void **resource);
20711
20712 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
20713 ID3D12Device10 *This,
20714 const D3D12_RESOURCE_DESC *desc,
20715 D3D12_RESOURCE_STATES initial_state,
20716 const D3D12_CLEAR_VALUE *optimized_clear_value,
20717 REFIID riid,
20718 void **resource);
20719
20720 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
20721 ID3D12Device10 *This,
20722 ID3D12DeviceChild *object,
20723 const SECURITY_ATTRIBUTES *attributes,
20724 DWORD access,
20725 const WCHAR *name,
20726 HANDLE *handle);
20727
20728 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
20729 ID3D12Device10 *This,
20730 HANDLE handle,
20731 REFIID riid,
20732 void **object);
20733
20734 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
20735 ID3D12Device10 *This,
20736 const WCHAR *name,
20737 DWORD access,
20738 HANDLE *handle);
20739
20740 HRESULT (STDMETHODCALLTYPE *MakeResident)(
20741 ID3D12Device10 *This,
20742 UINT object_count,
20743 ID3D12Pageable *const *objects);
20744
20745 HRESULT (STDMETHODCALLTYPE *Evict)(
20746 ID3D12Device10 *This,
20747 UINT object_count,
20748 ID3D12Pageable *const *objects);
20749
20750 HRESULT (STDMETHODCALLTYPE *CreateFence)(
20751 ID3D12Device10 *This,
20752 UINT64 initial_value,
20753 D3D12_FENCE_FLAGS flags,
20754 REFIID riid,
20755 void **fence);
20756
20757 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
20758 ID3D12Device10 *This);
20759
20760 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
20761 ID3D12Device10 *This,
20762 const D3D12_RESOURCE_DESC *desc,
20763 UINT first_sub_resource,
20764 UINT sub_resource_count,
20765 UINT64 base_offset,
20766 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
20767 UINT *row_count,
20768 UINT64 *row_size,
20769 UINT64 *total_bytes);
20770
20771 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
20772 ID3D12Device10 *This,
20773 const D3D12_QUERY_HEAP_DESC *desc,
20774 REFIID riid,
20775 void **heap);
20776
20777 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
20778 ID3D12Device10 *This,
20779 WINBOOL enable);
20780
20781 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
20782 ID3D12Device10 *This,
20783 const D3D12_COMMAND_SIGNATURE_DESC *desc,
20784 ID3D12RootSignature *root_signature,
20785 REFIID riid,
20786 void **command_signature);
20787
20788 void (STDMETHODCALLTYPE *GetResourceTiling)(
20789 ID3D12Device10 *This,
20790 ID3D12Resource *resource,
20791 UINT *total_tile_count,
20792 D3D12_PACKED_MIP_INFO *packed_mip_info,
20793 D3D12_TILE_SHAPE *standard_tile_shape,
20794 UINT *sub_resource_tiling_count,
20795 UINT first_sub_resource_tiling,
20796 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
20797
20798 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
20799 ID3D12Device10 *This,
20800 LUID *__ret);
20801
20802 /*** ID3D12Device1 methods ***/
20803 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
20804 ID3D12Device10 *This,
20805 const void *blob,
20806 SIZE_T blob_size,
20807 REFIID iid,
20808 void **lib);
20809
20810 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
20811 ID3D12Device10 *This,
20812 ID3D12Fence *const *fences,
20813 const UINT64 *values,
20814 UINT fence_count,
20815 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
20816 HANDLE event);
20817
20818 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
20819 ID3D12Device10 *This,
20820 UINT object_count,
20821 ID3D12Pageable *const *objects,
20822 const D3D12_RESIDENCY_PRIORITY *priorities);
20823
20824 /*** ID3D12Device2 methods ***/
20825 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
20826 ID3D12Device10 *This,
20827 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
20828 REFIID riid,
20829 void **pipeline_state);
20830
20831 /*** ID3D12Device3 methods ***/
20832 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
20833 ID3D12Device10 *This,
20834 const void *address,
20835 REFIID riid,
20836 void **heap);
20837
20838 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
20839 ID3D12Device10 *This,
20840 HANDLE file_mapping,
20841 REFIID riid,
20842 void **heap);
20843
20844 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
20845 ID3D12Device10 *This,
20846 D3D12_RESIDENCY_FLAGS flags,
20847 UINT num_objects,
20848 ID3D12Pageable *const *objects,
20849 ID3D12Fence *fence,
20850 UINT64 fence_value);
20851
20852 /*** ID3D12Device4 methods ***/
20853 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
20854 ID3D12Device10 *This,
20855 UINT node_mask,
20856 D3D12_COMMAND_LIST_TYPE type,
20857 D3D12_COMMAND_LIST_FLAGS flags,
20858 REFIID riid,
20859 void **command_list);
20860
20861 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
20862 ID3D12Device10 *This,
20863 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
20864 REFIID riid,
20865 void **session);
20866
20867 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
20868 ID3D12Device10 *This,
20869 const D3D12_HEAP_PROPERTIES *heap_properties,
20870 D3D12_HEAP_FLAGS heap_flags,
20871 const D3D12_RESOURCE_DESC *desc,
20872 D3D12_RESOURCE_STATES initial_resource_state,
20873 const D3D12_CLEAR_VALUE *optimized_clear_value,
20874 ID3D12ProtectedResourceSession *protected_session,
20875 REFIID riid_resource,
20876 void **resource);
20877
20878 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
20879 ID3D12Device10 *This,
20880 const D3D12_HEAP_DESC *desc,
20881 ID3D12ProtectedResourceSession *protected_session,
20882 REFIID riid,
20883 void **heap);
20884
20885 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
20886 ID3D12Device10 *This,
20887 const D3D12_RESOURCE_DESC *desc,
20888 D3D12_RESOURCE_STATES initial_state,
20889 const D3D12_CLEAR_VALUE *optimized_clear_value,
20890 ID3D12ProtectedResourceSession *protected_session,
20891 REFIID riid,
20892 void **resource);
20893
20894 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
20895 ID3D12Device10 *This,
20896 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
20897 UINT visible_mask,
20898 UINT resource_descs_count,
20899 const D3D12_RESOURCE_DESC *resource_descs,
20900 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
20901
20902 /*** ID3D12Device5 methods ***/
20903 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
20904 ID3D12Device10 *This,
20905 ID3D12LifetimeOwner *owner,
20906 REFIID riid,
20907 void **tracker);
20908
20909 void (STDMETHODCALLTYPE *RemoveDevice)(
20910 ID3D12Device10 *This);
20911
20912 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
20913 ID3D12Device10 *This,
20914 UINT *meta_commands_count,
20915 D3D12_META_COMMAND_DESC *descs);
20916
20917 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
20918 ID3D12Device10 *This,
20919 REFGUID command_id,
20920 D3D12_META_COMMAND_PARAMETER_STAGE stage,
20921 UINT *total_structure_size_in_bytes,
20922 UINT *parameter_count,
20923 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
20924
20925 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
20926 ID3D12Device10 *This,
20927 REFGUID command_id,
20928 UINT node_mask,
20929 const void *creation_parameters_data,
20930 SIZE_T creation_parameters_data_size_in_bytes,
20931 REFIID riid,
20932 void **meta_command);
20933
20934 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
20935 ID3D12Device10 *This,
20936 const D3D12_STATE_OBJECT_DESC *desc,
20937 REFIID riid,
20938 void **state_object);
20939
20940 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
20941 ID3D12Device10 *This,
20942 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
20943 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
20944
20945 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
20946 ID3D12Device10 *This,
20947 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
20948 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
20949
20950 /*** ID3D12Device6 methods ***/
20951 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
20952 ID3D12Device10 *This,
20953 D3D12_BACKGROUND_PROCESSING_MODE mode,
20954 D3D12_MEASUREMENTS_ACTION action,
20955 HANDLE event,
20956 WINBOOL *further_measurements_desired);
20957
20958 /*** ID3D12Device7 methods ***/
20959 HRESULT (STDMETHODCALLTYPE *AddToStateObject)(
20960 ID3D12Device10 *This,
20961 const D3D12_STATE_OBJECT_DESC *addition,
20962 ID3D12StateObject *state_object_to_grow_from,
20963 REFIID riid,
20964 void **new_state_object);
20965
20966 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)(
20967 ID3D12Device10 *This,
20968 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
20969 REFIID riid,
20970 void **session);
20971
20972 /*** ID3D12Device8 methods ***/
20973 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)(
20974 ID3D12Device10 *This,
20975 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
20976 UINT visible_mask,
20977 UINT resource_descs_count,
20978 const D3D12_RESOURCE_DESC1 *resource_descs,
20979 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
20980
20981 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)(
20982 ID3D12Device10 *This,
20983 const D3D12_HEAP_PROPERTIES *heap_properties,
20984 D3D12_HEAP_FLAGS heap_flags,
20985 const D3D12_RESOURCE_DESC1 *desc,
20986 D3D12_RESOURCE_STATES initial_resource_state,
20987 const D3D12_CLEAR_VALUE *optimized_clear_value,
20988 ID3D12ProtectedResourceSession *protected_session,
20989 REFIID riid_resource,
20990 void **resource);
20991
20992 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)(
20993 ID3D12Device10 *This,
20994 ID3D12Heap *heap,
20995 UINT64 heap_offset,
20996 const D3D12_RESOURCE_DESC1 *desc,
20997 D3D12_RESOURCE_STATES initial_state,
20998 const D3D12_CLEAR_VALUE *optimized_clear_value,
20999 REFIID riid,
21000 void **resource);
21001
21002 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)(
21003 ID3D12Device10 *This,
21004 ID3D12Resource *targeted_resource,
21005 ID3D12Resource *feedback_resource,
21006 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor);
21007
21008 void (STDMETHODCALLTYPE *GetCopyableFootprints1)(
21009 ID3D12Device10 *This,
21010 const D3D12_RESOURCE_DESC1 *resource_desc,
21011 UINT first_subresource,
21012 UINT subresources_count,
21013 UINT64 base_offset,
21014 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
21015 UINT *rows_count,
21016 UINT64 *row_size_in_bytes,
21017 UINT64 *total_bytes);
21018
21019 /*** ID3D12Device9 methods ***/
21020 HRESULT (STDMETHODCALLTYPE *CreateShaderCacheSession)(
21021 ID3D12Device10 *This,
21022 const D3D12_SHADER_CACHE_SESSION_DESC *desc,
21023 REFIID riid,
21024 void **session);
21025
21026 HRESULT (STDMETHODCALLTYPE *ShaderCacheControl)(
21027 ID3D12Device10 *This,
21028 D3D12_SHADER_CACHE_KIND_FLAGS kinds,
21029 D3D12_SHADER_CACHE_CONTROL_FLAGS control);
21030
21031 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue1)(
21032 ID3D12Device10 *This,
21033 const D3D12_COMMAND_QUEUE_DESC *desc,
21034 REFIID creator_id,
21035 REFIID riid,
21036 void **command_queue);
21037
21038 /*** ID3D12Device10 methods ***/
21039 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource3)(
21040 ID3D12Device10 *This,
21041 const D3D12_HEAP_PROPERTIES *heap_properties,
21042 D3D12_HEAP_FLAGS heap_flags,
21043 const D3D12_RESOURCE_DESC1 *desc,
21044 D3D12_BARRIER_LAYOUT initial_layout,
21045 const D3D12_CLEAR_VALUE *optimized_clear_value,
21046 ID3D12ProtectedResourceSession *protected_session,
21047 UINT32 castable_formats_count,
21048 DXGI_FORMAT *castable_formats,
21049 REFIID riid_resource,
21050 void **resource);
21051
21052 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource2)(
21053 ID3D12Device10 *This,
21054 ID3D12Heap *heap,
21055 UINT64 heap_offset,
21056 const D3D12_RESOURCE_DESC1 *desc,
21057 D3D12_BARRIER_LAYOUT initial_layout,
21058 const D3D12_CLEAR_VALUE *optimized_clear_value,
21059 UINT32 castable_formats_count,
21060 DXGI_FORMAT *castable_formats,
21061 REFIID riid,
21062 void **resource);
21063
21064 HRESULT (STDMETHODCALLTYPE *CreateReservedResource2)(
21065 ID3D12Device10 *This,
21066 const D3D12_RESOURCE_DESC *desc,
21067 D3D12_BARRIER_LAYOUT initial_layout,
21068 const D3D12_CLEAR_VALUE *optimized_clear_value,
21069 ID3D12ProtectedResourceSession *protected_session,
21070 UINT32 castable_formats_count,
21071 DXGI_FORMAT *castable_formats,
21072 REFIID riid,
21073 void **resource);
21074
21075 END_INTERFACE
21076} ID3D12Device10Vtbl;
21077
21078interface ID3D12Device10 {
21079 CONST_VTBL ID3D12Device10Vtbl* lpVtbl;
21080};
21081
21082#ifdef COBJMACROS
21083#ifndef WIDL_C_INLINE_WRAPPERS
21084/*** IUnknown methods ***/
21085#define ID3D12Device10_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21086#define ID3D12Device10_AddRef(This) (This)->lpVtbl->AddRef(This)
21087#define ID3D12Device10_Release(This) (This)->lpVtbl->Release(This)
21088/*** ID3D12Object methods ***/
21089#define ID3D12Device10_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
21090#define ID3D12Device10_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
21091#define ID3D12Device10_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
21092#define ID3D12Device10_SetName(This,name) (This)->lpVtbl->SetName(This,name)
21093/*** ID3D12Device methods ***/
21094#define ID3D12Device10_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
21095#define ID3D12Device10_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
21096#define ID3D12Device10_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
21097#define ID3D12Device10_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
21098#define ID3D12Device10_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
21099#define ID3D12Device10_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
21100#define ID3D12Device10_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
21101#define ID3D12Device10_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
21102#define ID3D12Device10_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
21103#define ID3D12Device10_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
21104#define ID3D12Device10_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
21105#define ID3D12Device10_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
21106#define ID3D12Device10_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
21107#define ID3D12Device10_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
21108#define ID3D12Device10_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
21109#define ID3D12Device10_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
21110#define ID3D12Device10_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
21111#define ID3D12Device10_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
21112#define ID3D12Device10_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device10_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
21113#define ID3D12Device10_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device10_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
21114#define ID3D12Device10_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
21115#define ID3D12Device10_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
21116#define ID3D12Device10_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
21117#define ID3D12Device10_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
21118#define ID3D12Device10_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
21119#define ID3D12Device10_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
21120#define ID3D12Device10_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
21121#define ID3D12Device10_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
21122#define ID3D12Device10_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
21123#define ID3D12Device10_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
21124#define ID3D12Device10_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
21125#define ID3D12Device10_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
21126#define ID3D12Device10_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
21127#define ID3D12Device10_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
21128#define ID3D12Device10_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
21129#define ID3D12Device10_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
21130#define ID3D12Device10_GetAdapterLuid(This) ID3D12Device10_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
21131/*** ID3D12Device1 methods ***/
21132#define ID3D12Device10_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
21133#define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
21134#define ID3D12Device10_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
21135/*** ID3D12Device2 methods ***/
21136#define ID3D12Device10_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
21137/*** ID3D12Device3 methods ***/
21138#define ID3D12Device10_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
21139#define ID3D12Device10_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
21140#define ID3D12Device10_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
21141/*** ID3D12Device4 methods ***/
21142#define ID3D12Device10_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
21143#define ID3D12Device10_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
21144#define ID3D12Device10_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
21145#define ID3D12Device10_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
21146#define ID3D12Device10_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource)
21147#define ID3D12Device10_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device10_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
21148/*** ID3D12Device5 methods ***/
21149#define ID3D12Device10_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
21150#define ID3D12Device10_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
21151#define ID3D12Device10_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
21152#define ID3D12Device10_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs)
21153#define ID3D12Device10_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command)
21154#define ID3D12Device10_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
21155#define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
21156#define ID3D12Device10_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
21157/*** ID3D12Device6 methods ***/
21158#define ID3D12Device10_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
21159/*** ID3D12Device7 methods ***/
21160#define ID3D12Device10_AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) (This)->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object)
21161#define ID3D12Device10_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session)
21162/*** ID3D12Device8 methods ***/
21163#define ID3D12Device10_GetResourceAllocationInfo2(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device10_GetResourceAllocationInfo2_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
21164#define ID3D12Device10_CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource)
21165#define ID3D12Device10_CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
21166#define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor)
21167#define ID3D12Device10_GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) (This)->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes)
21168/*** ID3D12Device9 methods ***/
21169#define ID3D12Device10_CreateShaderCacheSession(This,desc,riid,session) (This)->lpVtbl->CreateShaderCacheSession(This,desc,riid,session)
21170#define ID3D12Device10_ShaderCacheControl(This,kinds,control) (This)->lpVtbl->ShaderCacheControl(This,kinds,control)
21171#define ID3D12Device10_CreateCommandQueue1(This,desc,creator_id,riid,command_queue) (This)->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue)
21172/*** ID3D12Device10 methods ***/
21173#define ID3D12Device10_CreateCommittedResource3(This,heap_properties,heap_flags,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource3(This,heap_properties,heap_flags,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid_resource,resource)
21174#define ID3D12Device10_CreatePlacedResource2(This,heap,heap_offset,desc,initial_layout,optimized_clear_value,castable_formats_count,castable_formats,riid,resource) (This)->lpVtbl->CreatePlacedResource2(This,heap,heap_offset,desc,initial_layout,optimized_clear_value,castable_formats_count,castable_formats,riid,resource)
21175#define ID3D12Device10_CreateReservedResource2(This,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid,resource) (This)->lpVtbl->CreateReservedResource2(This,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid,resource)
21176#else
21177/*** IUnknown methods ***/
21178static inline HRESULT ID3D12Device10_QueryInterface(ID3D12Device10* This,REFIID riid,void **ppvObject) {
21179 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21180}
21181static inline ULONG ID3D12Device10_AddRef(ID3D12Device10* This) {
21182 return This->lpVtbl->AddRef(This);
21183}
21184static inline ULONG ID3D12Device10_Release(ID3D12Device10* This) {
21185 return This->lpVtbl->Release(This);
21186}
21187/*** ID3D12Object methods ***/
21188static inline HRESULT ID3D12Device10_GetPrivateData(ID3D12Device10* This,REFGUID guid,UINT *data_size,void *data) {
21189 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
21190}
21191static inline HRESULT ID3D12Device10_SetPrivateData(ID3D12Device10* This,REFGUID guid,UINT data_size,const void *data) {
21192 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
21193}
21194static inline HRESULT ID3D12Device10_SetPrivateDataInterface(ID3D12Device10* This,REFGUID guid,const IUnknown *data) {
21195 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
21196}
21197static inline HRESULT ID3D12Device10_SetName(ID3D12Device10* This,const WCHAR *name) {
21198 return This->lpVtbl->SetName(This,name);
21199}
21200/*** ID3D12Device methods ***/
21201static inline UINT ID3D12Device10_GetNodeCount(ID3D12Device10* This) {
21202 return This->lpVtbl->GetNodeCount(This);
21203}
21204static inline HRESULT ID3D12Device10_CreateCommandQueue(ID3D12Device10* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
21205 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
21206}
21207static inline HRESULT ID3D12Device10_CreateCommandAllocator(ID3D12Device10* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
21208 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
21209}
21210static inline HRESULT ID3D12Device10_CreateGraphicsPipelineState(ID3D12Device10* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
21211 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
21212}
21213static inline HRESULT ID3D12Device10_CreateComputePipelineState(ID3D12Device10* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
21214 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
21215}
21216static inline HRESULT ID3D12Device10_CreateCommandList(ID3D12Device10* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
21217 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
21218}
21219static inline HRESULT ID3D12Device10_CheckFeatureSupport(ID3D12Device10* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
21220 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
21221}
21222static inline HRESULT ID3D12Device10_CreateDescriptorHeap(ID3D12Device10* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
21223 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
21224}
21225static inline UINT ID3D12Device10_GetDescriptorHandleIncrementSize(ID3D12Device10* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
21226 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
21227}
21228static inline HRESULT ID3D12Device10_CreateRootSignature(ID3D12Device10* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
21229 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
21230}
21231static inline void ID3D12Device10_CreateConstantBufferView(ID3D12Device10* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21232 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
21233}
21234static inline void ID3D12Device10_CreateShaderResourceView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21235 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
21236}
21237static inline void ID3D12Device10_CreateUnorderedAccessView(ID3D12Device10* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21238 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
21239}
21240static inline void ID3D12Device10_CreateRenderTargetView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21241 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
21242}
21243static inline void ID3D12Device10_CreateDepthStencilView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21244 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
21245}
21246static inline void ID3D12Device10_CreateSampler(ID3D12Device10* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21247 This->lpVtbl->CreateSampler(This,desc,descriptor);
21248}
21249static inline void ID3D12Device10_CopyDescriptors(ID3D12Device10* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
21250 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
21251}
21252static inline void ID3D12Device10_CopyDescriptorsSimple(ID3D12Device10* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
21253 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
21254}
21255static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device10_GetResourceAllocationInfo(ID3D12Device10* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
21256 D3D12_RESOURCE_ALLOCATION_INFO __ret;
21257 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
21258}
21259static inline D3D12_HEAP_PROPERTIES ID3D12Device10_GetCustomHeapProperties(ID3D12Device10* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
21260 D3D12_HEAP_PROPERTIES __ret;
21261 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
21262}
21263static inline HRESULT ID3D12Device10_CreateCommittedResource(ID3D12Device10* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
21264 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
21265}
21266static inline HRESULT ID3D12Device10_CreateHeap(ID3D12Device10* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
21267 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
21268}
21269static inline HRESULT ID3D12Device10_CreatePlacedResource(ID3D12Device10* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
21270 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
21271}
21272static inline HRESULT ID3D12Device10_CreateReservedResource(ID3D12Device10* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
21273 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
21274}
21275static inline HRESULT ID3D12Device10_CreateSharedHandle(ID3D12Device10* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
21276 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
21277}
21278static inline HRESULT ID3D12Device10_OpenSharedHandle(ID3D12Device10* This,HANDLE handle,REFIID riid,void **object) {
21279 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
21280}
21281static inline HRESULT ID3D12Device10_OpenSharedHandleByName(ID3D12Device10* This,const WCHAR *name,DWORD access,HANDLE *handle) {
21282 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
21283}
21284static inline HRESULT ID3D12Device10_MakeResident(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects) {
21285 return This->lpVtbl->MakeResident(This,object_count,objects);
21286}
21287static inline HRESULT ID3D12Device10_Evict(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects) {
21288 return This->lpVtbl->Evict(This,object_count,objects);
21289}
21290static inline HRESULT ID3D12Device10_CreateFence(ID3D12Device10* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
21291 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
21292}
21293static inline HRESULT ID3D12Device10_GetDeviceRemovedReason(ID3D12Device10* This) {
21294 return This->lpVtbl->GetDeviceRemovedReason(This);
21295}
21296static inline void ID3D12Device10_GetCopyableFootprints(ID3D12Device10* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
21297 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
21298}
21299static inline HRESULT ID3D12Device10_CreateQueryHeap(ID3D12Device10* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
21300 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
21301}
21302static inline HRESULT ID3D12Device10_SetStablePowerState(ID3D12Device10* This,WINBOOL enable) {
21303 return This->lpVtbl->SetStablePowerState(This,enable);
21304}
21305static inline HRESULT ID3D12Device10_CreateCommandSignature(ID3D12Device10* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
21306 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
21307}
21308static inline void ID3D12Device10_GetResourceTiling(ID3D12Device10* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
21309 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
21310}
21311static inline LUID ID3D12Device10_GetAdapterLuid(ID3D12Device10* This) {
21312 LUID __ret;
21313 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
21314}
21315/*** ID3D12Device1 methods ***/
21316static inline HRESULT ID3D12Device10_CreatePipelineLibrary(ID3D12Device10* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
21317 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
21318}
21319static inline HRESULT ID3D12Device10_SetEventOnMultipleFenceCompletion(ID3D12Device10* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
21320 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
21321}
21322static inline HRESULT ID3D12Device10_SetResidencyPriority(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
21323 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
21324}
21325/*** ID3D12Device2 methods ***/
21326static inline HRESULT ID3D12Device10_CreatePipelineState(ID3D12Device10* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
21327 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
21328}
21329/*** ID3D12Device3 methods ***/
21330static inline HRESULT ID3D12Device10_OpenExistingHeapFromAddress(ID3D12Device10* This,const void *address,REFIID riid,void **heap) {
21331 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
21332}
21333static inline HRESULT ID3D12Device10_OpenExistingHeapFromFileMapping(ID3D12Device10* This,HANDLE file_mapping,REFIID riid,void **heap) {
21334 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
21335}
21336static inline HRESULT ID3D12Device10_EnqueueMakeResident(ID3D12Device10* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
21337 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
21338}
21339/*** ID3D12Device4 methods ***/
21340static inline HRESULT ID3D12Device10_CreateCommandList1(ID3D12Device10* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
21341 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
21342}
21343static inline HRESULT ID3D12Device10_CreateProtectedResourceSession(ID3D12Device10* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
21344 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
21345}
21346static inline HRESULT ID3D12Device10_CreateCommittedResource1(ID3D12Device10* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
21347 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
21348}
21349static inline HRESULT ID3D12Device10_CreateHeap1(ID3D12Device10* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
21350 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
21351}
21352static inline HRESULT ID3D12Device10_CreateReservedResource1(ID3D12Device10* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) {
21353 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
21354}
21355static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device10_GetResourceAllocationInfo1(ID3D12Device10* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
21356 D3D12_RESOURCE_ALLOCATION_INFO __ret;
21357 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
21358}
21359/*** ID3D12Device5 methods ***/
21360static inline HRESULT ID3D12Device10_CreateLifetimeTracker(ID3D12Device10* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
21361 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
21362}
21363static inline void ID3D12Device10_RemoveDevice(ID3D12Device10* This) {
21364 This->lpVtbl->RemoveDevice(This);
21365}
21366static inline HRESULT ID3D12Device10_EnumerateMetaCommands(ID3D12Device10* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
21367 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
21368}
21369static inline HRESULT ID3D12Device10_EnumerateMetaCommandParameters(ID3D12Device10* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) {
21370 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
21371}
21372static inline HRESULT ID3D12Device10_CreateMetaCommand(ID3D12Device10* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) {
21373 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
21374}
21375static inline HRESULT ID3D12Device10_CreateStateObject(ID3D12Device10* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
21376 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
21377}
21378static inline void ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device10* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
21379 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
21380}
21381static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device10_CheckDriverMatchingIdentifier(ID3D12Device10* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) {
21382 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
21383}
21384/*** ID3D12Device6 methods ***/
21385static inline HRESULT ID3D12Device10_SetBackgroundProcessingMode(ID3D12Device10* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
21386 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
21387}
21388/*** ID3D12Device7 methods ***/
21389static inline HRESULT ID3D12Device10_AddToStateObject(ID3D12Device10* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) {
21390 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object);
21391}
21392static inline HRESULT ID3D12Device10_CreateProtectedResourceSession1(ID3D12Device10* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) {
21393 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session);
21394}
21395/*** ID3D12Device8 methods ***/
21396static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device10_GetResourceAllocationInfo2(ID3D12Device10* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC1 *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) {
21397 D3D12_RESOURCE_ALLOCATION_INFO __ret;
21398 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
21399}
21400static inline HRESULT ID3D12Device10_CreateCommittedResource2(ID3D12Device10* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) {
21401 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
21402}
21403static inline HRESULT ID3D12Device10_CreatePlacedResource1(ID3D12Device10* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
21404 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
21405}
21406static inline void ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device10* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) {
21407 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor);
21408}
21409static inline void ID3D12Device10_GetCopyableFootprints1(ID3D12Device10* This,const D3D12_RESOURCE_DESC1 *resource_desc,UINT first_subresource,UINT subresources_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *rows_count,UINT64 *row_size_in_bytes,UINT64 *total_bytes) {
21410 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes);
21411}
21412/*** ID3D12Device9 methods ***/
21413static inline HRESULT ID3D12Device10_CreateShaderCacheSession(ID3D12Device10* This,const D3D12_SHADER_CACHE_SESSION_DESC *desc,REFIID riid,void **session) {
21414 return This->lpVtbl->CreateShaderCacheSession(This,desc,riid,session);
21415}
21416static inline HRESULT ID3D12Device10_ShaderCacheControl(ID3D12Device10* This,D3D12_SHADER_CACHE_KIND_FLAGS kinds,D3D12_SHADER_CACHE_CONTROL_FLAGS control) {
21417 return This->lpVtbl->ShaderCacheControl(This,kinds,control);
21418}
21419static inline HRESULT ID3D12Device10_CreateCommandQueue1(ID3D12Device10* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID creator_id,REFIID riid,void **command_queue) {
21420 return This->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue);
21421}
21422/*** ID3D12Device10 methods ***/
21423static inline HRESULT ID3D12Device10_CreateCommittedResource3(ID3D12Device10* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC1 *desc,D3D12_BARRIER_LAYOUT initial_layout,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,UINT32 castable_formats_count,DXGI_FORMAT *castable_formats,REFIID riid_resource,void **resource) {
21424 return This->lpVtbl->CreateCommittedResource3(This,heap_properties,heap_flags,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid_resource,resource);
21425}
21426static inline HRESULT ID3D12Device10_CreatePlacedResource2(ID3D12Device10* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC1 *desc,D3D12_BARRIER_LAYOUT initial_layout,const D3D12_CLEAR_VALUE *optimized_clear_value,UINT32 castable_formats_count,DXGI_FORMAT *castable_formats,REFIID riid,void **resource) {
21427 return This->lpVtbl->CreatePlacedResource2(This,heap,heap_offset,desc,initial_layout,optimized_clear_value,castable_formats_count,castable_formats,riid,resource);
21428}
21429static inline HRESULT ID3D12Device10_CreateReservedResource2(ID3D12Device10* This,const D3D12_RESOURCE_DESC *desc,D3D12_BARRIER_LAYOUT initial_layout,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,UINT32 castable_formats_count,DXGI_FORMAT *castable_formats,REFIID riid,void **resource) {
21430 return This->lpVtbl->CreateReservedResource2(This,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid,resource);
21431}
21432#endif
21433#endif
21434
21435#endif
21436
21437
21438#endif /* __ID3D12Device10_INTERFACE_DEFINED__ */
21439
21440/*****************************************************************************
21441 * ID3D12VirtualizationGuestDevice interface
21442 */
21443#ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
21444#define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
21445
21446DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice, 0xbc66d368, 0x7373, 0x4943, 0x87,0x57, 0xfc,0x87,0xdc,0x79,0xe4,0x76);
21447#if defined(__cplusplus) && !defined(CINTERFACE)
21448MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476")
21449ID3D12VirtualizationGuestDevice : public IUnknown
21450{
21451 virtual HRESULT STDMETHODCALLTYPE ShareWithHost(
21452 ID3D12DeviceChild *object,
21453 HANDLE *handle) = 0;
21454
21455 virtual HRESULT STDMETHODCALLTYPE CreateFenceFd(
21456 ID3D12Fence *fence,
21457 UINT64 fence_value,
21458 int *fence_fd) = 0;
21459
21460};
21461#ifdef __CRT_UUID_DECL
21462__CRT_UUID_DECL(ID3D12VirtualizationGuestDevice, 0xbc66d368, 0x7373, 0x4943, 0x87,0x57, 0xfc,0x87,0xdc,0x79,0xe4,0x76)
21463#endif
21464#else
21465typedef struct ID3D12VirtualizationGuestDeviceVtbl {
21466 BEGIN_INTERFACE
21467
21468 /*** IUnknown methods ***/
21469 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21470 ID3D12VirtualizationGuestDevice *This,
21471 REFIID riid,
21472 void **ppvObject);
21473
21474 ULONG (STDMETHODCALLTYPE *AddRef)(
21475 ID3D12VirtualizationGuestDevice *This);
21476
21477 ULONG (STDMETHODCALLTYPE *Release)(
21478 ID3D12VirtualizationGuestDevice *This);
21479
21480 /*** ID3D12VirtualizationGuestDevice methods ***/
21481 HRESULT (STDMETHODCALLTYPE *ShareWithHost)(
21482 ID3D12VirtualizationGuestDevice *This,
21483 ID3D12DeviceChild *object,
21484 HANDLE *handle);
21485
21486 HRESULT (STDMETHODCALLTYPE *CreateFenceFd)(
21487 ID3D12VirtualizationGuestDevice *This,
21488 ID3D12Fence *fence,
21489 UINT64 fence_value,
21490 int *fence_fd);
21491
21492 END_INTERFACE
21493} ID3D12VirtualizationGuestDeviceVtbl;
21494
21495interface ID3D12VirtualizationGuestDevice {
21496 CONST_VTBL ID3D12VirtualizationGuestDeviceVtbl* lpVtbl;
21497};
21498
21499#ifdef COBJMACROS
21500#ifndef WIDL_C_INLINE_WRAPPERS
21501/*** IUnknown methods ***/
21502#define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21503#define ID3D12VirtualizationGuestDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
21504#define ID3D12VirtualizationGuestDevice_Release(This) (This)->lpVtbl->Release(This)
21505/*** ID3D12VirtualizationGuestDevice methods ***/
21506#define ID3D12VirtualizationGuestDevice_ShareWithHost(This,object,handle) (This)->lpVtbl->ShareWithHost(This,object,handle)
21507#define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,fence,fence_value,fence_fd) (This)->lpVtbl->CreateFenceFd(This,fence,fence_value,fence_fd)
21508#else
21509/*** IUnknown methods ***/
21510static inline HRESULT ID3D12VirtualizationGuestDevice_QueryInterface(ID3D12VirtualizationGuestDevice* This,REFIID riid,void **ppvObject) {
21511 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21512}
21513static inline ULONG ID3D12VirtualizationGuestDevice_AddRef(ID3D12VirtualizationGuestDevice* This) {
21514 return This->lpVtbl->AddRef(This);
21515}
21516static inline ULONG ID3D12VirtualizationGuestDevice_Release(ID3D12VirtualizationGuestDevice* This) {
21517 return This->lpVtbl->Release(This);
21518}
21519/*** ID3D12VirtualizationGuestDevice methods ***/
21520static inline HRESULT ID3D12VirtualizationGuestDevice_ShareWithHost(ID3D12VirtualizationGuestDevice* This,ID3D12DeviceChild *object,HANDLE *handle) {
21521 return This->lpVtbl->ShareWithHost(This,object,handle);
21522}
21523static inline HRESULT ID3D12VirtualizationGuestDevice_CreateFenceFd(ID3D12VirtualizationGuestDevice* This,ID3D12Fence *fence,UINT64 fence_value,int *fence_fd) {
21524 return This->lpVtbl->CreateFenceFd(This,fence,fence_value,fence_fd);
21525}
21526#endif
21527#endif
21528
21529#endif
21530
21531
21532#endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */
21533
21534/*****************************************************************************
21535 * ID3D12Tools interface
21536 */
21537#ifndef __ID3D12Tools_INTERFACE_DEFINED__
21538#define __ID3D12Tools_INTERFACE_DEFINED__
21539
21540DEFINE_GUID(IID_ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97,0x4f, 0x12,0xfa,0x49,0xde,0x65,0xc5);
21541#if defined(__cplusplus) && !defined(CINTERFACE)
21542MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5")
21543ID3D12Tools : public IUnknown
21544{
21545 virtual void STDMETHODCALLTYPE EnableShaderInstrumentation(
21546 WINBOOL enable) = 0;
21547
21548 virtual WINBOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled(
21549 ) = 0;
21550
21551};
21552#ifdef __CRT_UUID_DECL
21553__CRT_UUID_DECL(ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97,0x4f, 0x12,0xfa,0x49,0xde,0x65,0xc5)
21554#endif
21555#else
21556typedef struct ID3D12ToolsVtbl {
21557 BEGIN_INTERFACE
21558
21559 /*** IUnknown methods ***/
21560 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21561 ID3D12Tools *This,
21562 REFIID riid,
21563 void **ppvObject);
21564
21565 ULONG (STDMETHODCALLTYPE *AddRef)(
21566 ID3D12Tools *This);
21567
21568 ULONG (STDMETHODCALLTYPE *Release)(
21569 ID3D12Tools *This);
21570
21571 /*** ID3D12Tools methods ***/
21572 void (STDMETHODCALLTYPE *EnableShaderInstrumentation)(
21573 ID3D12Tools *This,
21574 WINBOOL enable);
21575
21576 WINBOOL (STDMETHODCALLTYPE *ShaderInstrumentationEnabled)(
21577 ID3D12Tools *This);
21578
21579 END_INTERFACE
21580} ID3D12ToolsVtbl;
21581
21582interface ID3D12Tools {
21583 CONST_VTBL ID3D12ToolsVtbl* lpVtbl;
21584};
21585
21586#ifdef COBJMACROS
21587#ifndef WIDL_C_INLINE_WRAPPERS
21588/*** IUnknown methods ***/
21589#define ID3D12Tools_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21590#define ID3D12Tools_AddRef(This) (This)->lpVtbl->AddRef(This)
21591#define ID3D12Tools_Release(This) (This)->lpVtbl->Release(This)
21592/*** ID3D12Tools methods ***/
21593#define ID3D12Tools_EnableShaderInstrumentation(This,enable) (This)->lpVtbl->EnableShaderInstrumentation(This,enable)
21594#define ID3D12Tools_ShaderInstrumentationEnabled(This) (This)->lpVtbl->ShaderInstrumentationEnabled(This)
21595#else
21596/*** IUnknown methods ***/
21597static inline HRESULT ID3D12Tools_QueryInterface(ID3D12Tools* This,REFIID riid,void **ppvObject) {
21598 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21599}
21600static inline ULONG ID3D12Tools_AddRef(ID3D12Tools* This) {
21601 return This->lpVtbl->AddRef(This);
21602}
21603static inline ULONG ID3D12Tools_Release(ID3D12Tools* This) {
21604 return This->lpVtbl->Release(This);
21605}
21606/*** ID3D12Tools methods ***/
21607static inline void ID3D12Tools_EnableShaderInstrumentation(ID3D12Tools* This,WINBOOL enable) {
21608 This->lpVtbl->EnableShaderInstrumentation(This,enable);
21609}
21610static inline WINBOOL ID3D12Tools_ShaderInstrumentationEnabled(ID3D12Tools* This) {
21611 return This->lpVtbl->ShaderInstrumentationEnabled(This);
21612}
21613#endif
21614#endif
21615
21616#endif
21617
21618
21619#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */
21620
21621DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);
21622DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);
21623DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);
21624DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);
21625/*****************************************************************************
21626 * ID3D12SDKConfiguration interface
21627 */
21628#ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__
21629#define __ID3D12SDKConfiguration_INTERFACE_DEFINED__
21630
21631DEFINE_GUID(IID_ID3D12SDKConfiguration, 0xe9eb5314, 0x33aa, 0x42b2, 0xa7,0x18, 0xd7,0x7f,0x58,0xb1,0xf1,0xc7);
21632#if defined(__cplusplus) && !defined(CINTERFACE)
21633MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7")
21634ID3D12SDKConfiguration : public IUnknown
21635{
21636 virtual HRESULT STDMETHODCALLTYPE SetSDKVersion(
21637 UINT version,
21638 const char *path) = 0;
21639
21640};
21641#ifdef __CRT_UUID_DECL
21642__CRT_UUID_DECL(ID3D12SDKConfiguration, 0xe9eb5314, 0x33aa, 0x42b2, 0xa7,0x18, 0xd7,0x7f,0x58,0xb1,0xf1,0xc7)
21643#endif
21644#else
21645typedef struct ID3D12SDKConfigurationVtbl {
21646 BEGIN_INTERFACE
21647
21648 /*** IUnknown methods ***/
21649 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21650 ID3D12SDKConfiguration *This,
21651 REFIID riid,
21652 void **ppvObject);
21653
21654 ULONG (STDMETHODCALLTYPE *AddRef)(
21655 ID3D12SDKConfiguration *This);
21656
21657 ULONG (STDMETHODCALLTYPE *Release)(
21658 ID3D12SDKConfiguration *This);
21659
21660 /*** ID3D12SDKConfiguration methods ***/
21661 HRESULT (STDMETHODCALLTYPE *SetSDKVersion)(
21662 ID3D12SDKConfiguration *This,
21663 UINT version,
21664 const char *path);
21665
21666 END_INTERFACE
21667} ID3D12SDKConfigurationVtbl;
21668
21669interface ID3D12SDKConfiguration {
21670 CONST_VTBL ID3D12SDKConfigurationVtbl* lpVtbl;
21671};
21672
21673#ifdef COBJMACROS
21674#ifndef WIDL_C_INLINE_WRAPPERS
21675/*** IUnknown methods ***/
21676#define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21677#define ID3D12SDKConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This)
21678#define ID3D12SDKConfiguration_Release(This) (This)->lpVtbl->Release(This)
21679/*** ID3D12SDKConfiguration methods ***/
21680#define ID3D12SDKConfiguration_SetSDKVersion(This,version,path) (This)->lpVtbl->SetSDKVersion(This,version,path)
21681#else
21682/*** IUnknown methods ***/
21683static inline HRESULT ID3D12SDKConfiguration_QueryInterface(ID3D12SDKConfiguration* This,REFIID riid,void **ppvObject) {
21684 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21685}
21686static inline ULONG ID3D12SDKConfiguration_AddRef(ID3D12SDKConfiguration* This) {
21687 return This->lpVtbl->AddRef(This);
21688}
21689static inline ULONG ID3D12SDKConfiguration_Release(ID3D12SDKConfiguration* This) {
21690 return This->lpVtbl->Release(This);
21691}
21692/*** ID3D12SDKConfiguration methods ***/
21693static inline HRESULT ID3D12SDKConfiguration_SetSDKVersion(ID3D12SDKConfiguration* This,UINT version,const char *path) {
21694 return This->lpVtbl->SetSDKVersion(This,version,path);
21695}
21696#endif
21697#endif
21698
21699#endif
21700
21701
21702#endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */
21703
21704typedef enum D3D12_AXIS_SHADING_RATE {
21705 D3D12_AXIS_SHADING_RATE_1X = 0x0,
21706 D3D12_AXIS_SHADING_RATE_2X = 0x1,
21707 D3D12_AXIS_SHADING_RATE_4X = 0x2
21708} D3D12_AXIS_SHADING_RATE;
21709typedef enum D3D12_SHADING_RATE {
21710 D3D12_SHADING_RATE_1X1 = 0x0,
21711 D3D12_SHADING_RATE_1X2 = 0x1,
21712 D3D12_SHADING_RATE_2X1 = 0x4,
21713 D3D12_SHADING_RATE_2X2 = 0x5,
21714 D3D12_SHADING_RATE_2X4 = 0x6,
21715 D3D12_SHADING_RATE_4X2 = 0x9,
21716 D3D12_SHADING_RATE_4X4 = 0xa
21717} D3D12_SHADING_RATE;
21718typedef enum D3D12_SHADING_RATE_COMBINER {
21719 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0x0,
21720 D3D12_SHADING_RATE_COMBINER_OVERRIDE = 0x1,
21721 D3D12_SHADING_RATE_COMBINER_MIN = 0x2,
21722 D3D12_SHADING_RATE_COMBINER_MAX = 0x3,
21723 D3D12_SHADING_RATE_COMBINER_SUM = 0x4
21724} D3D12_SHADING_RATE_COMBINER;
21725/*****************************************************************************
21726 * ID3D12GraphicsCommandList5 interface
21727 */
21728#ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
21729#define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
21730
21731DEFINE_GUID(IID_ID3D12GraphicsCommandList5, 0x55050859, 0x4024, 0x474c, 0x87,0xf5, 0x64,0x72,0xea,0xee,0x44,0xea);
21732#if defined(__cplusplus) && !defined(CINTERFACE)
21733MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea")
21734ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4
21735{
21736 virtual void STDMETHODCALLTYPE RSSetShadingRate(
21737 D3D12_SHADING_RATE base_shading_rate,
21738 const D3D12_SHADING_RATE_COMBINER *combiners) = 0;
21739
21740 virtual void STDMETHODCALLTYPE RSSetShadingRateImage(
21741 ID3D12Resource *shading_rate_image) = 0;
21742
21743};
21744#ifdef __CRT_UUID_DECL
21745__CRT_UUID_DECL(ID3D12GraphicsCommandList5, 0x55050859, 0x4024, 0x474c, 0x87,0xf5, 0x64,0x72,0xea,0xee,0x44,0xea)
21746#endif
21747#else
21748typedef struct ID3D12GraphicsCommandList5Vtbl {
21749 BEGIN_INTERFACE
21750
21751 /*** IUnknown methods ***/
21752 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21753 ID3D12GraphicsCommandList5 *This,
21754 REFIID riid,
21755 void **ppvObject);
21756
21757 ULONG (STDMETHODCALLTYPE *AddRef)(
21758 ID3D12GraphicsCommandList5 *This);
21759
21760 ULONG (STDMETHODCALLTYPE *Release)(
21761 ID3D12GraphicsCommandList5 *This);
21762
21763 /*** ID3D12Object methods ***/
21764 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
21765 ID3D12GraphicsCommandList5 *This,
21766 REFGUID guid,
21767 UINT *data_size,
21768 void *data);
21769
21770 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
21771 ID3D12GraphicsCommandList5 *This,
21772 REFGUID guid,
21773 UINT data_size,
21774 const void *data);
21775
21776 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
21777 ID3D12GraphicsCommandList5 *This,
21778 REFGUID guid,
21779 const IUnknown *data);
21780
21781 HRESULT (STDMETHODCALLTYPE *SetName)(
21782 ID3D12GraphicsCommandList5 *This,
21783 const WCHAR *name);
21784
21785 /*** ID3D12DeviceChild methods ***/
21786 HRESULT (STDMETHODCALLTYPE *GetDevice)(
21787 ID3D12GraphicsCommandList5 *This,
21788 REFIID riid,
21789 void **device);
21790
21791 /*** ID3D12CommandList methods ***/
21792 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
21793 ID3D12GraphicsCommandList5 *This);
21794
21795 /*** ID3D12GraphicsCommandList methods ***/
21796 HRESULT (STDMETHODCALLTYPE *Close)(
21797 ID3D12GraphicsCommandList5 *This);
21798
21799 HRESULT (STDMETHODCALLTYPE *Reset)(
21800 ID3D12GraphicsCommandList5 *This,
21801 ID3D12CommandAllocator *allocator,
21802 ID3D12PipelineState *initial_state);
21803
21804 void (STDMETHODCALLTYPE *ClearState)(
21805 ID3D12GraphicsCommandList5 *This,
21806 ID3D12PipelineState *pipeline_state);
21807
21808 void (STDMETHODCALLTYPE *DrawInstanced)(
21809 ID3D12GraphicsCommandList5 *This,
21810 UINT vertex_count_per_instance,
21811 UINT instance_count,
21812 UINT start_vertex_location,
21813 UINT start_instance_location);
21814
21815 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
21816 ID3D12GraphicsCommandList5 *This,
21817 UINT index_count_per_instance,
21818 UINT instance_count,
21819 UINT start_vertex_location,
21820 INT base_vertex_location,
21821 UINT start_instance_location);
21822
21823 void (STDMETHODCALLTYPE *Dispatch)(
21824 ID3D12GraphicsCommandList5 *This,
21825 UINT x,
21826 UINT u,
21827 UINT z);
21828
21829 void (STDMETHODCALLTYPE *CopyBufferRegion)(
21830 ID3D12GraphicsCommandList5 *This,
21831 ID3D12Resource *dst_buffer,
21832 UINT64 dst_offset,
21833 ID3D12Resource *src_buffer,
21834 UINT64 src_offset,
21835 UINT64 byte_count);
21836
21837 void (STDMETHODCALLTYPE *CopyTextureRegion)(
21838 ID3D12GraphicsCommandList5 *This,
21839 const D3D12_TEXTURE_COPY_LOCATION *dst,
21840 UINT dst_x,
21841 UINT dst_y,
21842 UINT dst_z,
21843 const D3D12_TEXTURE_COPY_LOCATION *src,
21844 const D3D12_BOX *src_box);
21845
21846 void (STDMETHODCALLTYPE *CopyResource)(
21847 ID3D12GraphicsCommandList5 *This,
21848 ID3D12Resource *dst_resource,
21849 ID3D12Resource *src_resource);
21850
21851 void (STDMETHODCALLTYPE *CopyTiles)(
21852 ID3D12GraphicsCommandList5 *This,
21853 ID3D12Resource *tiled_resource,
21854 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
21855 const D3D12_TILE_REGION_SIZE *tile_region_size,
21856 ID3D12Resource *buffer,
21857 UINT64 buffer_offset,
21858 D3D12_TILE_COPY_FLAGS flags);
21859
21860 void (STDMETHODCALLTYPE *ResolveSubresource)(
21861 ID3D12GraphicsCommandList5 *This,
21862 ID3D12Resource *dst_resource,
21863 UINT dst_sub_resource,
21864 ID3D12Resource *src_resource,
21865 UINT src_sub_resource,
21866 DXGI_FORMAT format);
21867
21868 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
21869 ID3D12GraphicsCommandList5 *This,
21870 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
21871
21872 void (STDMETHODCALLTYPE *RSSetViewports)(
21873 ID3D12GraphicsCommandList5 *This,
21874 UINT viewport_count,
21875 const D3D12_VIEWPORT *viewports);
21876
21877 void (STDMETHODCALLTYPE *RSSetScissorRects)(
21878 ID3D12GraphicsCommandList5 *This,
21879 UINT rect_count,
21880 const D3D12_RECT *rects);
21881
21882 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
21883 ID3D12GraphicsCommandList5 *This,
21884 const FLOAT blend_factor[4]);
21885
21886 void (STDMETHODCALLTYPE *OMSetStencilRef)(
21887 ID3D12GraphicsCommandList5 *This,
21888 UINT stencil_ref);
21889
21890 void (STDMETHODCALLTYPE *SetPipelineState)(
21891 ID3D12GraphicsCommandList5 *This,
21892 ID3D12PipelineState *pipeline_state);
21893
21894 void (STDMETHODCALLTYPE *ResourceBarrier)(
21895 ID3D12GraphicsCommandList5 *This,
21896 UINT barrier_count,
21897 const D3D12_RESOURCE_BARRIER *barriers);
21898
21899 void (STDMETHODCALLTYPE *ExecuteBundle)(
21900 ID3D12GraphicsCommandList5 *This,
21901 ID3D12GraphicsCommandList *command_list);
21902
21903 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
21904 ID3D12GraphicsCommandList5 *This,
21905 UINT heap_count,
21906 ID3D12DescriptorHeap *const *heaps);
21907
21908 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
21909 ID3D12GraphicsCommandList5 *This,
21910 ID3D12RootSignature *root_signature);
21911
21912 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
21913 ID3D12GraphicsCommandList5 *This,
21914 ID3D12RootSignature *root_signature);
21915
21916 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
21917 ID3D12GraphicsCommandList5 *This,
21918 UINT root_parameter_index,
21919 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
21920
21921 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
21922 ID3D12GraphicsCommandList5 *This,
21923 UINT root_parameter_index,
21924 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
21925
21926 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
21927 ID3D12GraphicsCommandList5 *This,
21928 UINT root_parameter_index,
21929 UINT data,
21930 UINT dst_offset);
21931
21932 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
21933 ID3D12GraphicsCommandList5 *This,
21934 UINT root_parameter_index,
21935 UINT data,
21936 UINT dst_offset);
21937
21938 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
21939 ID3D12GraphicsCommandList5 *This,
21940 UINT root_parameter_index,
21941 UINT constant_count,
21942 const void *data,
21943 UINT dst_offset);
21944
21945 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
21946 ID3D12GraphicsCommandList5 *This,
21947 UINT root_parameter_index,
21948 UINT constant_count,
21949 const void *data,
21950 UINT dst_offset);
21951
21952 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
21953 ID3D12GraphicsCommandList5 *This,
21954 UINT root_parameter_index,
21955 D3D12_GPU_VIRTUAL_ADDRESS address);
21956
21957 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
21958 ID3D12GraphicsCommandList5 *This,
21959 UINT root_parameter_index,
21960 D3D12_GPU_VIRTUAL_ADDRESS address);
21961
21962 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
21963 ID3D12GraphicsCommandList5 *This,
21964 UINT root_parameter_index,
21965 D3D12_GPU_VIRTUAL_ADDRESS address);
21966
21967 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
21968 ID3D12GraphicsCommandList5 *This,
21969 UINT root_parameter_index,
21970 D3D12_GPU_VIRTUAL_ADDRESS address);
21971
21972 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
21973 ID3D12GraphicsCommandList5 *This,
21974 UINT root_parameter_index,
21975 D3D12_GPU_VIRTUAL_ADDRESS address);
21976
21977 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
21978 ID3D12GraphicsCommandList5 *This,
21979 UINT root_parameter_index,
21980 D3D12_GPU_VIRTUAL_ADDRESS address);
21981
21982 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
21983 ID3D12GraphicsCommandList5 *This,
21984 const D3D12_INDEX_BUFFER_VIEW *view);
21985
21986 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
21987 ID3D12GraphicsCommandList5 *This,
21988 UINT start_slot,
21989 UINT view_count,
21990 const D3D12_VERTEX_BUFFER_VIEW *views);
21991
21992 void (STDMETHODCALLTYPE *SOSetTargets)(
21993 ID3D12GraphicsCommandList5 *This,
21994 UINT start_slot,
21995 UINT view_count,
21996 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
21997
21998 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
21999 ID3D12GraphicsCommandList5 *This,
22000 UINT render_target_descriptor_count,
22001 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
22002 WINBOOL single_descriptor_handle,
22003 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
22004
22005 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
22006 ID3D12GraphicsCommandList5 *This,
22007 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
22008 D3D12_CLEAR_FLAGS flags,
22009 FLOAT depth,
22010 UINT8 stencil,
22011 UINT rect_count,
22012 const D3D12_RECT *rects);
22013
22014 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
22015 ID3D12GraphicsCommandList5 *This,
22016 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
22017 const FLOAT color[4],
22018 UINT rect_count,
22019 const D3D12_RECT *rects);
22020
22021 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
22022 ID3D12GraphicsCommandList5 *This,
22023 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
22024 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
22025 ID3D12Resource *resource,
22026 const UINT values[4],
22027 UINT rect_count,
22028 const D3D12_RECT *rects);
22029
22030 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
22031 ID3D12GraphicsCommandList5 *This,
22032 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
22033 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
22034 ID3D12Resource *resource,
22035 const float values[4],
22036 UINT rect_count,
22037 const D3D12_RECT *rects);
22038
22039 void (STDMETHODCALLTYPE *DiscardResource)(
22040 ID3D12GraphicsCommandList5 *This,
22041 ID3D12Resource *resource,
22042 const D3D12_DISCARD_REGION *region);
22043
22044 void (STDMETHODCALLTYPE *BeginQuery)(
22045 ID3D12GraphicsCommandList5 *This,
22046 ID3D12QueryHeap *heap,
22047 D3D12_QUERY_TYPE type,
22048 UINT index);
22049
22050 void (STDMETHODCALLTYPE *EndQuery)(
22051 ID3D12GraphicsCommandList5 *This,
22052 ID3D12QueryHeap *heap,
22053 D3D12_QUERY_TYPE type,
22054 UINT index);
22055
22056 void (STDMETHODCALLTYPE *ResolveQueryData)(
22057 ID3D12GraphicsCommandList5 *This,
22058 ID3D12QueryHeap *heap,
22059 D3D12_QUERY_TYPE type,
22060 UINT start_index,
22061 UINT query_count,
22062 ID3D12Resource *dst_buffer,
22063 UINT64 aligned_dst_buffer_offset);
22064
22065 void (STDMETHODCALLTYPE *SetPredication)(
22066 ID3D12GraphicsCommandList5 *This,
22067 ID3D12Resource *buffer,
22068 UINT64 aligned_buffer_offset,
22069 D3D12_PREDICATION_OP operation);
22070
22071 void (STDMETHODCALLTYPE *SetMarker)(
22072 ID3D12GraphicsCommandList5 *This,
22073 UINT metadata,
22074 const void *data,
22075 UINT size);
22076
22077 void (STDMETHODCALLTYPE *BeginEvent)(
22078 ID3D12GraphicsCommandList5 *This,
22079 UINT metadata,
22080 const void *data,
22081 UINT size);
22082
22083 void (STDMETHODCALLTYPE *EndEvent)(
22084 ID3D12GraphicsCommandList5 *This);
22085
22086 void (STDMETHODCALLTYPE *ExecuteIndirect)(
22087 ID3D12GraphicsCommandList5 *This,
22088 ID3D12CommandSignature *command_signature,
22089 UINT max_command_count,
22090 ID3D12Resource *arg_buffer,
22091 UINT64 arg_buffer_offset,
22092 ID3D12Resource *count_buffer,
22093 UINT64 count_buffer_offset);
22094
22095 /*** ID3D12GraphicsCommandList1 methods ***/
22096 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
22097 ID3D12GraphicsCommandList5 *This,
22098 ID3D12Resource *dst_buffer,
22099 UINT64 dst_offset,
22100 ID3D12Resource *src_buffer,
22101 UINT64 src_offset,
22102 UINT dependent_resource_count,
22103 ID3D12Resource *const *dependent_resources,
22104 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
22105
22106 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
22107 ID3D12GraphicsCommandList5 *This,
22108 ID3D12Resource *dst_buffer,
22109 UINT64 dst_offset,
22110 ID3D12Resource *src_buffer,
22111 UINT64 src_offset,
22112 UINT dependent_resource_count,
22113 ID3D12Resource *const *dependent_resources,
22114 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
22115
22116 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
22117 ID3D12GraphicsCommandList5 *This,
22118 FLOAT min,
22119 FLOAT max);
22120
22121 void (STDMETHODCALLTYPE *SetSamplePositions)(
22122 ID3D12GraphicsCommandList5 *This,
22123 UINT sample_count,
22124 UINT pixel_count,
22125 D3D12_SAMPLE_POSITION *sample_positions);
22126
22127 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
22128 ID3D12GraphicsCommandList5 *This,
22129 ID3D12Resource *dst_resource,
22130 UINT dst_sub_resource_idx,
22131 UINT dst_x,
22132 UINT dst_y,
22133 ID3D12Resource *src_resource,
22134 UINT src_sub_resource_idx,
22135 D3D12_RECT *src_rect,
22136 DXGI_FORMAT format,
22137 D3D12_RESOLVE_MODE mode);
22138
22139 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
22140 ID3D12GraphicsCommandList5 *This,
22141 UINT mask);
22142
22143 /*** ID3D12GraphicsCommandList2 methods ***/
22144 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
22145 ID3D12GraphicsCommandList5 *This,
22146 UINT count,
22147 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
22148 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
22149
22150 /*** ID3D12GraphicsCommandList3 methods ***/
22151 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
22152 ID3D12GraphicsCommandList5 *This,
22153 ID3D12ProtectedResourceSession *protected_resource_session);
22154
22155 /*** ID3D12GraphicsCommandList4 methods ***/
22156 void (STDMETHODCALLTYPE *BeginRenderPass)(
22157 ID3D12GraphicsCommandList5 *This,
22158 UINT render_targets_count,
22159 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
22160 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
22161 D3D12_RENDER_PASS_FLAGS flags);
22162
22163 void (STDMETHODCALLTYPE *EndRenderPass)(
22164 ID3D12GraphicsCommandList5 *This);
22165
22166 void (STDMETHODCALLTYPE *InitializeMetaCommand)(
22167 ID3D12GraphicsCommandList5 *This,
22168 ID3D12MetaCommand *meta_command,
22169 const void *initialization_parameters_data,
22170 SIZE_T initialization_parameters_data_size_in_bytes);
22171
22172 void (STDMETHODCALLTYPE *ExecuteMetaCommand)(
22173 ID3D12GraphicsCommandList5 *This,
22174 ID3D12MetaCommand *meta_command,
22175 const void *execution_parameters_data,
22176 SIZE_T execution_parameters_data_size_in_bytes);
22177
22178 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)(
22179 ID3D12GraphicsCommandList5 *This,
22180 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
22181 UINT postbuild_info_descs_count,
22182 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
22183
22184 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)(
22185 ID3D12GraphicsCommandList5 *This,
22186 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
22187 UINT src_acceleration_structures_count,
22188 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
22189
22190 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)(
22191 ID3D12GraphicsCommandList5 *This,
22192 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
22193 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
22194 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
22195
22196 void (STDMETHODCALLTYPE *SetPipelineState1)(
22197 ID3D12GraphicsCommandList5 *This,
22198 ID3D12StateObject *state_object);
22199
22200 void (STDMETHODCALLTYPE *DispatchRays)(
22201 ID3D12GraphicsCommandList5 *This,
22202 const D3D12_DISPATCH_RAYS_DESC *desc);
22203
22204 /*** ID3D12GraphicsCommandList5 methods ***/
22205 void (STDMETHODCALLTYPE *RSSetShadingRate)(
22206 ID3D12GraphicsCommandList5 *This,
22207 D3D12_SHADING_RATE base_shading_rate,
22208 const D3D12_SHADING_RATE_COMBINER *combiners);
22209
22210 void (STDMETHODCALLTYPE *RSSetShadingRateImage)(
22211 ID3D12GraphicsCommandList5 *This,
22212 ID3D12Resource *shading_rate_image);
22213
22214 END_INTERFACE
22215} ID3D12GraphicsCommandList5Vtbl;
22216
22217interface ID3D12GraphicsCommandList5 {
22218 CONST_VTBL ID3D12GraphicsCommandList5Vtbl* lpVtbl;
22219};
22220
22221#ifdef COBJMACROS
22222#ifndef WIDL_C_INLINE_WRAPPERS
22223/*** IUnknown methods ***/
22224#define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22225#define ID3D12GraphicsCommandList5_AddRef(This) (This)->lpVtbl->AddRef(This)
22226#define ID3D12GraphicsCommandList5_Release(This) (This)->lpVtbl->Release(This)
22227/*** ID3D12Object methods ***/
22228#define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
22229#define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
22230#define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
22231#define ID3D12GraphicsCommandList5_SetName(This,name) (This)->lpVtbl->SetName(This,name)
22232/*** ID3D12DeviceChild methods ***/
22233#define ID3D12GraphicsCommandList5_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
22234/*** ID3D12CommandList methods ***/
22235#define ID3D12GraphicsCommandList5_GetType(This) (This)->lpVtbl->GetType(This)
22236/*** ID3D12GraphicsCommandList methods ***/
22237#define ID3D12GraphicsCommandList5_Close(This) (This)->lpVtbl->Close(This)
22238#define ID3D12GraphicsCommandList5_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
22239#define ID3D12GraphicsCommandList5_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
22240#define ID3D12GraphicsCommandList5_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
22241#define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
22242#define ID3D12GraphicsCommandList5_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
22243#define ID3D12GraphicsCommandList5_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
22244#define ID3D12GraphicsCommandList5_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
22245#define ID3D12GraphicsCommandList5_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
22246#define ID3D12GraphicsCommandList5_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
22247#define ID3D12GraphicsCommandList5_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
22248#define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
22249#define ID3D12GraphicsCommandList5_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
22250#define ID3D12GraphicsCommandList5_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
22251#define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
22252#define ID3D12GraphicsCommandList5_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
22253#define ID3D12GraphicsCommandList5_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
22254#define ID3D12GraphicsCommandList5_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
22255#define ID3D12GraphicsCommandList5_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
22256#define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
22257#define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
22258#define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
22259#define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
22260#define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
22261#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
22262#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
22263#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
22264#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
22265#define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
22266#define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
22267#define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
22268#define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
22269#define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
22270#define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
22271#define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
22272#define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
22273#define ID3D12GraphicsCommandList5_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
22274#define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
22275#define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
22276#define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
22277#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
22278#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
22279#define ID3D12GraphicsCommandList5_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
22280#define ID3D12GraphicsCommandList5_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
22281#define ID3D12GraphicsCommandList5_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
22282#define ID3D12GraphicsCommandList5_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
22283#define ID3D12GraphicsCommandList5_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
22284#define ID3D12GraphicsCommandList5_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
22285#define ID3D12GraphicsCommandList5_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
22286#define ID3D12GraphicsCommandList5_EndEvent(This) (This)->lpVtbl->EndEvent(This)
22287#define ID3D12GraphicsCommandList5_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
22288/*** ID3D12GraphicsCommandList1 methods ***/
22289#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
22290#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
22291#define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
22292#define ID3D12GraphicsCommandList5_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
22293#define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
22294#define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
22295/*** ID3D12GraphicsCommandList2 methods ***/
22296#define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
22297/*** ID3D12GraphicsCommandList3 methods ***/
22298#define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
22299/*** ID3D12GraphicsCommandList4 methods ***/
22300#define ID3D12GraphicsCommandList5_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags)
22301#define ID3D12GraphicsCommandList5_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This)
22302#define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) (This)->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes)
22303#define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) (This)->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes)
22304#define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs)
22305#define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) (This)->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data)
22306#define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) (This)->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode)
22307#define ID3D12GraphicsCommandList5_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object)
22308#define ID3D12GraphicsCommandList5_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc)
22309/*** ID3D12GraphicsCommandList5 methods ***/
22310#define ID3D12GraphicsCommandList5_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners)
22311#define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image)
22312#else
22313/*** IUnknown methods ***/
22314static inline HRESULT ID3D12GraphicsCommandList5_QueryInterface(ID3D12GraphicsCommandList5* This,REFIID riid,void **ppvObject) {
22315 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22316}
22317static inline ULONG ID3D12GraphicsCommandList5_AddRef(ID3D12GraphicsCommandList5* This) {
22318 return This->lpVtbl->AddRef(This);
22319}
22320static inline ULONG ID3D12GraphicsCommandList5_Release(ID3D12GraphicsCommandList5* This) {
22321 return This->lpVtbl->Release(This);
22322}
22323/*** ID3D12Object methods ***/
22324static inline HRESULT ID3D12GraphicsCommandList5_GetPrivateData(ID3D12GraphicsCommandList5* This,REFGUID guid,UINT *data_size,void *data) {
22325 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
22326}
22327static inline HRESULT ID3D12GraphicsCommandList5_SetPrivateData(ID3D12GraphicsCommandList5* This,REFGUID guid,UINT data_size,const void *data) {
22328 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
22329}
22330static inline HRESULT ID3D12GraphicsCommandList5_SetPrivateDataInterface(ID3D12GraphicsCommandList5* This,REFGUID guid,const IUnknown *data) {
22331 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
22332}
22333static inline HRESULT ID3D12GraphicsCommandList5_SetName(ID3D12GraphicsCommandList5* This,const WCHAR *name) {
22334 return This->lpVtbl->SetName(This,name);
22335}
22336/*** ID3D12DeviceChild methods ***/
22337static inline HRESULT ID3D12GraphicsCommandList5_GetDevice(ID3D12GraphicsCommandList5* This,REFIID riid,void **device) {
22338 return This->lpVtbl->GetDevice(This,riid,device);
22339}
22340/*** ID3D12CommandList methods ***/
22341static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList5_GetType(ID3D12GraphicsCommandList5* This) {
22342 return This->lpVtbl->GetType(This);
22343}
22344/*** ID3D12GraphicsCommandList methods ***/
22345static inline HRESULT ID3D12GraphicsCommandList5_Close(ID3D12GraphicsCommandList5* This) {
22346 return This->lpVtbl->Close(This);
22347}
22348static inline HRESULT ID3D12GraphicsCommandList5_Reset(ID3D12GraphicsCommandList5* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
22349 return This->lpVtbl->Reset(This,allocator,initial_state);
22350}
22351static inline void ID3D12GraphicsCommandList5_ClearState(ID3D12GraphicsCommandList5* This,ID3D12PipelineState *pipeline_state) {
22352 This->lpVtbl->ClearState(This,pipeline_state);
22353}
22354static inline void ID3D12GraphicsCommandList5_DrawInstanced(ID3D12GraphicsCommandList5* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
22355 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
22356}
22357static inline void ID3D12GraphicsCommandList5_DrawIndexedInstanced(ID3D12GraphicsCommandList5* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
22358 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
22359}
22360static inline void ID3D12GraphicsCommandList5_Dispatch(ID3D12GraphicsCommandList5* This,UINT x,UINT u,UINT z) {
22361 This->lpVtbl->Dispatch(This,x,u,z);
22362}
22363static inline void ID3D12GraphicsCommandList5_CopyBufferRegion(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
22364 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
22365}
22366static inline void ID3D12GraphicsCommandList5_CopyTextureRegion(ID3D12GraphicsCommandList5* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
22367 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
22368}
22369static inline void ID3D12GraphicsCommandList5_CopyResource(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
22370 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
22371}
22372static inline void ID3D12GraphicsCommandList5_CopyTiles(ID3D12GraphicsCommandList5* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
22373 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
22374}
22375static inline void ID3D12GraphicsCommandList5_ResolveSubresource(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
22376 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
22377}
22378static inline void ID3D12GraphicsCommandList5_IASetPrimitiveTopology(ID3D12GraphicsCommandList5* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
22379 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
22380}
22381static inline void ID3D12GraphicsCommandList5_RSSetViewports(ID3D12GraphicsCommandList5* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
22382 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
22383}
22384static inline void ID3D12GraphicsCommandList5_RSSetScissorRects(ID3D12GraphicsCommandList5* This,UINT rect_count,const D3D12_RECT *rects) {
22385 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
22386}
22387static inline void ID3D12GraphicsCommandList5_OMSetBlendFactor(ID3D12GraphicsCommandList5* This,const FLOAT blend_factor[4]) {
22388 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
22389}
22390static inline void ID3D12GraphicsCommandList5_OMSetStencilRef(ID3D12GraphicsCommandList5* This,UINT stencil_ref) {
22391 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
22392}
22393static inline void ID3D12GraphicsCommandList5_SetPipelineState(ID3D12GraphicsCommandList5* This,ID3D12PipelineState *pipeline_state) {
22394 This->lpVtbl->SetPipelineState(This,pipeline_state);
22395}
22396static inline void ID3D12GraphicsCommandList5_ResourceBarrier(ID3D12GraphicsCommandList5* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
22397 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
22398}
22399static inline void ID3D12GraphicsCommandList5_ExecuteBundle(ID3D12GraphicsCommandList5* This,ID3D12GraphicsCommandList *command_list) {
22400 This->lpVtbl->ExecuteBundle(This,command_list);
22401}
22402static inline void ID3D12GraphicsCommandList5_SetDescriptorHeaps(ID3D12GraphicsCommandList5* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
22403 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
22404}
22405static inline void ID3D12GraphicsCommandList5_SetComputeRootSignature(ID3D12GraphicsCommandList5* This,ID3D12RootSignature *root_signature) {
22406 This->lpVtbl->SetComputeRootSignature(This,root_signature);
22407}
22408static inline void ID3D12GraphicsCommandList5_SetGraphicsRootSignature(ID3D12GraphicsCommandList5* This,ID3D12RootSignature *root_signature) {
22409 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
22410}
22411static inline void ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
22412 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
22413}
22414static inline void ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
22415 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
22416}
22417static inline void ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
22418 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
22419}
22420static inline void ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
22421 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
22422}
22423static inline void ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
22424 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
22425}
22426static inline void ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
22427 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
22428}
22429static inline void ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22430 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
22431}
22432static inline void ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22433 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
22434}
22435static inline void ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22436 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
22437}
22438static inline void ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22439 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
22440}
22441static inline void ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22442 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
22443}
22444static inline void ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22445 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
22446}
22447static inline void ID3D12GraphicsCommandList5_IASetIndexBuffer(ID3D12GraphicsCommandList5* This,const D3D12_INDEX_BUFFER_VIEW *view) {
22448 This->lpVtbl->IASetIndexBuffer(This,view);
22449}
22450static inline void ID3D12GraphicsCommandList5_IASetVertexBuffers(ID3D12GraphicsCommandList5* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
22451 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
22452}
22453static inline void ID3D12GraphicsCommandList5_SOSetTargets(ID3D12GraphicsCommandList5* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
22454 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
22455}
22456static inline void ID3D12GraphicsCommandList5_OMSetRenderTargets(ID3D12GraphicsCommandList5* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
22457 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
22458}
22459static inline void ID3D12GraphicsCommandList5_ClearDepthStencilView(ID3D12GraphicsCommandList5* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
22460 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
22461}
22462static inline void ID3D12GraphicsCommandList5_ClearRenderTargetView(ID3D12GraphicsCommandList5* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
22463 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
22464}
22465static inline void ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList5* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
22466 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
22467}
22468static inline void ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList5* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
22469 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
22470}
22471static inline void ID3D12GraphicsCommandList5_DiscardResource(ID3D12GraphicsCommandList5* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
22472 This->lpVtbl->DiscardResource(This,resource,region);
22473}
22474static inline void ID3D12GraphicsCommandList5_BeginQuery(ID3D12GraphicsCommandList5* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
22475 This->lpVtbl->BeginQuery(This,heap,type,index);
22476}
22477static inline void ID3D12GraphicsCommandList5_EndQuery(ID3D12GraphicsCommandList5* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
22478 This->lpVtbl->EndQuery(This,heap,type,index);
22479}
22480static inline void ID3D12GraphicsCommandList5_ResolveQueryData(ID3D12GraphicsCommandList5* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
22481 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
22482}
22483static inline void ID3D12GraphicsCommandList5_SetPredication(ID3D12GraphicsCommandList5* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
22484 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
22485}
22486static inline void ID3D12GraphicsCommandList5_SetMarker(ID3D12GraphicsCommandList5* This,UINT metadata,const void *data,UINT size) {
22487 This->lpVtbl->SetMarker(This,metadata,data,size);
22488}
22489static inline void ID3D12GraphicsCommandList5_BeginEvent(ID3D12GraphicsCommandList5* This,UINT metadata,const void *data,UINT size) {
22490 This->lpVtbl->BeginEvent(This,metadata,data,size);
22491}
22492static inline void ID3D12GraphicsCommandList5_EndEvent(ID3D12GraphicsCommandList5* This) {
22493 This->lpVtbl->EndEvent(This);
22494}
22495static inline void ID3D12GraphicsCommandList5_ExecuteIndirect(ID3D12GraphicsCommandList5* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
22496 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
22497}
22498/*** ID3D12GraphicsCommandList1 methods ***/
22499static inline void ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
22500 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
22501}
22502static inline void ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
22503 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
22504}
22505static inline void ID3D12GraphicsCommandList5_OMSetDepthBounds(ID3D12GraphicsCommandList5* This,FLOAT min,FLOAT max) {
22506 This->lpVtbl->OMSetDepthBounds(This,min,max);
22507}
22508static inline void ID3D12GraphicsCommandList5_SetSamplePositions(ID3D12GraphicsCommandList5* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
22509 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
22510}
22511static inline void ID3D12GraphicsCommandList5_ResolveSubresourceRegion(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
22512 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
22513}
22514static inline void ID3D12GraphicsCommandList5_SetViewInstanceMask(ID3D12GraphicsCommandList5* This,UINT mask) {
22515 This->lpVtbl->SetViewInstanceMask(This,mask);
22516}
22517/*** ID3D12GraphicsCommandList2 methods ***/
22518static inline void ID3D12GraphicsCommandList5_WriteBufferImmediate(ID3D12GraphicsCommandList5* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
22519 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
22520}
22521/*** ID3D12GraphicsCommandList3 methods ***/
22522static inline void ID3D12GraphicsCommandList5_SetProtectedResourceSession(ID3D12GraphicsCommandList5* This,ID3D12ProtectedResourceSession *protected_resource_session) {
22523 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
22524}
22525/*** ID3D12GraphicsCommandList4 methods ***/
22526static inline void ID3D12GraphicsCommandList5_BeginRenderPass(ID3D12GraphicsCommandList5* This,UINT render_targets_count,const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,D3D12_RENDER_PASS_FLAGS flags) {
22527 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags);
22528}
22529static inline void ID3D12GraphicsCommandList5_EndRenderPass(ID3D12GraphicsCommandList5* This) {
22530 This->lpVtbl->EndRenderPass(This);
22531}
22532static inline void ID3D12GraphicsCommandList5_InitializeMetaCommand(ID3D12GraphicsCommandList5* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) {
22533 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes);
22534}
22535static inline void ID3D12GraphicsCommandList5_ExecuteMetaCommand(ID3D12GraphicsCommandList5* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) {
22536 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes);
22537}
22538static inline void ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(ID3D12GraphicsCommandList5* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,UINT postbuild_info_descs_count,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) {
22539 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs);
22540}
22541static inline void ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(ID3D12GraphicsCommandList5* This,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,UINT src_acceleration_structures_count,const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) {
22542 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data);
22543}
22544static inline void ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(ID3D12GraphicsCommandList5* This,D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) {
22545 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode);
22546}
22547static inline void ID3D12GraphicsCommandList5_SetPipelineState1(ID3D12GraphicsCommandList5* This,ID3D12StateObject *state_object) {
22548 This->lpVtbl->SetPipelineState1(This,state_object);
22549}
22550static inline void ID3D12GraphicsCommandList5_DispatchRays(ID3D12GraphicsCommandList5* This,const D3D12_DISPATCH_RAYS_DESC *desc) {
22551 This->lpVtbl->DispatchRays(This,desc);
22552}
22553/*** ID3D12GraphicsCommandList5 methods ***/
22554static inline void ID3D12GraphicsCommandList5_RSSetShadingRate(ID3D12GraphicsCommandList5* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) {
22555 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners);
22556}
22557static inline void ID3D12GraphicsCommandList5_RSSetShadingRateImage(ID3D12GraphicsCommandList5* This,ID3D12Resource *shading_rate_image) {
22558 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image);
22559}
22560#endif
22561#endif
22562
22563#endif
22564
22565
22566#endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */
22567
22568#define D3D12_SHADING_RATE_X_AXIS_SHIFT (2)
22569
22570#define D3D12_SHADING_RATE_VALID_MASK (3)
22571
22572#define D3D12_MAKE_COARSE_SHADING_RATE(x, y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))
22573#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(val) (((val) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)
22574#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(val) ((val) & D3D12_SHADING_RATE_VALID_MASK)
22575typedef struct D3D12_DISPATCH_MESH_ARGUMENTS {
22576 UINT ThreadGroupCountX;
22577 UINT ThreadGroupCountY;
22578 UINT ThreadGroupCountZ;
22579} D3D12_DISPATCH_MESH_ARGUMENTS;
22580/*****************************************************************************
22581 * ID3D12GraphicsCommandList6 interface
22582 */
22583#ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
22584#define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
22585
22586DEFINE_GUID(IID_ID3D12GraphicsCommandList6, 0xc3827890, 0xe548, 0x4cfa, 0x96,0xcf, 0x56,0x89,0xa9,0x37,0x0f,0x80);
22587#if defined(__cplusplus) && !defined(CINTERFACE)
22588MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80")
22589ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5
22590{
22591 virtual void STDMETHODCALLTYPE DispatchMesh(
22592 UINT thread_group_count_x,
22593 UINT thread_group_count_y,
22594 UINT thread_group_count_z) = 0;
22595
22596};
22597#ifdef __CRT_UUID_DECL
22598__CRT_UUID_DECL(ID3D12GraphicsCommandList6, 0xc3827890, 0xe548, 0x4cfa, 0x96,0xcf, 0x56,0x89,0xa9,0x37,0x0f,0x80)
22599#endif
22600#else
22601typedef struct ID3D12GraphicsCommandList6Vtbl {
22602 BEGIN_INTERFACE
22603
22604 /*** IUnknown methods ***/
22605 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22606 ID3D12GraphicsCommandList6 *This,
22607 REFIID riid,
22608 void **ppvObject);
22609
22610 ULONG (STDMETHODCALLTYPE *AddRef)(
22611 ID3D12GraphicsCommandList6 *This);
22612
22613 ULONG (STDMETHODCALLTYPE *Release)(
22614 ID3D12GraphicsCommandList6 *This);
22615
22616 /*** ID3D12Object methods ***/
22617 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
22618 ID3D12GraphicsCommandList6 *This,
22619 REFGUID guid,
22620 UINT *data_size,
22621 void *data);
22622
22623 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
22624 ID3D12GraphicsCommandList6 *This,
22625 REFGUID guid,
22626 UINT data_size,
22627 const void *data);
22628
22629 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
22630 ID3D12GraphicsCommandList6 *This,
22631 REFGUID guid,
22632 const IUnknown *data);
22633
22634 HRESULT (STDMETHODCALLTYPE *SetName)(
22635 ID3D12GraphicsCommandList6 *This,
22636 const WCHAR *name);
22637
22638 /*** ID3D12DeviceChild methods ***/
22639 HRESULT (STDMETHODCALLTYPE *GetDevice)(
22640 ID3D12GraphicsCommandList6 *This,
22641 REFIID riid,
22642 void **device);
22643
22644 /*** ID3D12CommandList methods ***/
22645 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
22646 ID3D12GraphicsCommandList6 *This);
22647
22648 /*** ID3D12GraphicsCommandList methods ***/
22649 HRESULT (STDMETHODCALLTYPE *Close)(
22650 ID3D12GraphicsCommandList6 *This);
22651
22652 HRESULT (STDMETHODCALLTYPE *Reset)(
22653 ID3D12GraphicsCommandList6 *This,
22654 ID3D12CommandAllocator *allocator,
22655 ID3D12PipelineState *initial_state);
22656
22657 void (STDMETHODCALLTYPE *ClearState)(
22658 ID3D12GraphicsCommandList6 *This,
22659 ID3D12PipelineState *pipeline_state);
22660
22661 void (STDMETHODCALLTYPE *DrawInstanced)(
22662 ID3D12GraphicsCommandList6 *This,
22663 UINT vertex_count_per_instance,
22664 UINT instance_count,
22665 UINT start_vertex_location,
22666 UINT start_instance_location);
22667
22668 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
22669 ID3D12GraphicsCommandList6 *This,
22670 UINT index_count_per_instance,
22671 UINT instance_count,
22672 UINT start_vertex_location,
22673 INT base_vertex_location,
22674 UINT start_instance_location);
22675
22676 void (STDMETHODCALLTYPE *Dispatch)(
22677 ID3D12GraphicsCommandList6 *This,
22678 UINT x,
22679 UINT u,
22680 UINT z);
22681
22682 void (STDMETHODCALLTYPE *CopyBufferRegion)(
22683 ID3D12GraphicsCommandList6 *This,
22684 ID3D12Resource *dst_buffer,
22685 UINT64 dst_offset,
22686 ID3D12Resource *src_buffer,
22687 UINT64 src_offset,
22688 UINT64 byte_count);
22689
22690 void (STDMETHODCALLTYPE *CopyTextureRegion)(
22691 ID3D12GraphicsCommandList6 *This,
22692 const D3D12_TEXTURE_COPY_LOCATION *dst,
22693 UINT dst_x,
22694 UINT dst_y,
22695 UINT dst_z,
22696 const D3D12_TEXTURE_COPY_LOCATION *src,
22697 const D3D12_BOX *src_box);
22698
22699 void (STDMETHODCALLTYPE *CopyResource)(
22700 ID3D12GraphicsCommandList6 *This,
22701 ID3D12Resource *dst_resource,
22702 ID3D12Resource *src_resource);
22703
22704 void (STDMETHODCALLTYPE *CopyTiles)(
22705 ID3D12GraphicsCommandList6 *This,
22706 ID3D12Resource *tiled_resource,
22707 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
22708 const D3D12_TILE_REGION_SIZE *tile_region_size,
22709 ID3D12Resource *buffer,
22710 UINT64 buffer_offset,
22711 D3D12_TILE_COPY_FLAGS flags);
22712
22713 void (STDMETHODCALLTYPE *ResolveSubresource)(
22714 ID3D12GraphicsCommandList6 *This,
22715 ID3D12Resource *dst_resource,
22716 UINT dst_sub_resource,
22717 ID3D12Resource *src_resource,
22718 UINT src_sub_resource,
22719 DXGI_FORMAT format);
22720
22721 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
22722 ID3D12GraphicsCommandList6 *This,
22723 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
22724
22725 void (STDMETHODCALLTYPE *RSSetViewports)(
22726 ID3D12GraphicsCommandList6 *This,
22727 UINT viewport_count,
22728 const D3D12_VIEWPORT *viewports);
22729
22730 void (STDMETHODCALLTYPE *RSSetScissorRects)(
22731 ID3D12GraphicsCommandList6 *This,
22732 UINT rect_count,
22733 const D3D12_RECT *rects);
22734
22735 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
22736 ID3D12GraphicsCommandList6 *This,
22737 const FLOAT blend_factor[4]);
22738
22739 void (STDMETHODCALLTYPE *OMSetStencilRef)(
22740 ID3D12GraphicsCommandList6 *This,
22741 UINT stencil_ref);
22742
22743 void (STDMETHODCALLTYPE *SetPipelineState)(
22744 ID3D12GraphicsCommandList6 *This,
22745 ID3D12PipelineState *pipeline_state);
22746
22747 void (STDMETHODCALLTYPE *ResourceBarrier)(
22748 ID3D12GraphicsCommandList6 *This,
22749 UINT barrier_count,
22750 const D3D12_RESOURCE_BARRIER *barriers);
22751
22752 void (STDMETHODCALLTYPE *ExecuteBundle)(
22753 ID3D12GraphicsCommandList6 *This,
22754 ID3D12GraphicsCommandList *command_list);
22755
22756 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
22757 ID3D12GraphicsCommandList6 *This,
22758 UINT heap_count,
22759 ID3D12DescriptorHeap *const *heaps);
22760
22761 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
22762 ID3D12GraphicsCommandList6 *This,
22763 ID3D12RootSignature *root_signature);
22764
22765 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
22766 ID3D12GraphicsCommandList6 *This,
22767 ID3D12RootSignature *root_signature);
22768
22769 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
22770 ID3D12GraphicsCommandList6 *This,
22771 UINT root_parameter_index,
22772 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
22773
22774 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
22775 ID3D12GraphicsCommandList6 *This,
22776 UINT root_parameter_index,
22777 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
22778
22779 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
22780 ID3D12GraphicsCommandList6 *This,
22781 UINT root_parameter_index,
22782 UINT data,
22783 UINT dst_offset);
22784
22785 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
22786 ID3D12GraphicsCommandList6 *This,
22787 UINT root_parameter_index,
22788 UINT data,
22789 UINT dst_offset);
22790
22791 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
22792 ID3D12GraphicsCommandList6 *This,
22793 UINT root_parameter_index,
22794 UINT constant_count,
22795 const void *data,
22796 UINT dst_offset);
22797
22798 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
22799 ID3D12GraphicsCommandList6 *This,
22800 UINT root_parameter_index,
22801 UINT constant_count,
22802 const void *data,
22803 UINT dst_offset);
22804
22805 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
22806 ID3D12GraphicsCommandList6 *This,
22807 UINT root_parameter_index,
22808 D3D12_GPU_VIRTUAL_ADDRESS address);
22809
22810 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
22811 ID3D12GraphicsCommandList6 *This,
22812 UINT root_parameter_index,
22813 D3D12_GPU_VIRTUAL_ADDRESS address);
22814
22815 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
22816 ID3D12GraphicsCommandList6 *This,
22817 UINT root_parameter_index,
22818 D3D12_GPU_VIRTUAL_ADDRESS address);
22819
22820 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
22821 ID3D12GraphicsCommandList6 *This,
22822 UINT root_parameter_index,
22823 D3D12_GPU_VIRTUAL_ADDRESS address);
22824
22825 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
22826 ID3D12GraphicsCommandList6 *This,
22827 UINT root_parameter_index,
22828 D3D12_GPU_VIRTUAL_ADDRESS address);
22829
22830 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
22831 ID3D12GraphicsCommandList6 *This,
22832 UINT root_parameter_index,
22833 D3D12_GPU_VIRTUAL_ADDRESS address);
22834
22835 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
22836 ID3D12GraphicsCommandList6 *This,
22837 const D3D12_INDEX_BUFFER_VIEW *view);
22838
22839 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
22840 ID3D12GraphicsCommandList6 *This,
22841 UINT start_slot,
22842 UINT view_count,
22843 const D3D12_VERTEX_BUFFER_VIEW *views);
22844
22845 void (STDMETHODCALLTYPE *SOSetTargets)(
22846 ID3D12GraphicsCommandList6 *This,
22847 UINT start_slot,
22848 UINT view_count,
22849 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
22850
22851 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
22852 ID3D12GraphicsCommandList6 *This,
22853 UINT render_target_descriptor_count,
22854 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
22855 WINBOOL single_descriptor_handle,
22856 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
22857
22858 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
22859 ID3D12GraphicsCommandList6 *This,
22860 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
22861 D3D12_CLEAR_FLAGS flags,
22862 FLOAT depth,
22863 UINT8 stencil,
22864 UINT rect_count,
22865 const D3D12_RECT *rects);
22866
22867 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
22868 ID3D12GraphicsCommandList6 *This,
22869 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
22870 const FLOAT color[4],
22871 UINT rect_count,
22872 const D3D12_RECT *rects);
22873
22874 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
22875 ID3D12GraphicsCommandList6 *This,
22876 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
22877 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
22878 ID3D12Resource *resource,
22879 const UINT values[4],
22880 UINT rect_count,
22881 const D3D12_RECT *rects);
22882
22883 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
22884 ID3D12GraphicsCommandList6 *This,
22885 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
22886 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
22887 ID3D12Resource *resource,
22888 const float values[4],
22889 UINT rect_count,
22890 const D3D12_RECT *rects);
22891
22892 void (STDMETHODCALLTYPE *DiscardResource)(
22893 ID3D12GraphicsCommandList6 *This,
22894 ID3D12Resource *resource,
22895 const D3D12_DISCARD_REGION *region);
22896
22897 void (STDMETHODCALLTYPE *BeginQuery)(
22898 ID3D12GraphicsCommandList6 *This,
22899 ID3D12QueryHeap *heap,
22900 D3D12_QUERY_TYPE type,
22901 UINT index);
22902
22903 void (STDMETHODCALLTYPE *EndQuery)(
22904 ID3D12GraphicsCommandList6 *This,
22905 ID3D12QueryHeap *heap,
22906 D3D12_QUERY_TYPE type,
22907 UINT index);
22908
22909 void (STDMETHODCALLTYPE *ResolveQueryData)(
22910 ID3D12GraphicsCommandList6 *This,
22911 ID3D12QueryHeap *heap,
22912 D3D12_QUERY_TYPE type,
22913 UINT start_index,
22914 UINT query_count,
22915 ID3D12Resource *dst_buffer,
22916 UINT64 aligned_dst_buffer_offset);
22917
22918 void (STDMETHODCALLTYPE *SetPredication)(
22919 ID3D12GraphicsCommandList6 *This,
22920 ID3D12Resource *buffer,
22921 UINT64 aligned_buffer_offset,
22922 D3D12_PREDICATION_OP operation);
22923
22924 void (STDMETHODCALLTYPE *SetMarker)(
22925 ID3D12GraphicsCommandList6 *This,
22926 UINT metadata,
22927 const void *data,
22928 UINT size);
22929
22930 void (STDMETHODCALLTYPE *BeginEvent)(
22931 ID3D12GraphicsCommandList6 *This,
22932 UINT metadata,
22933 const void *data,
22934 UINT size);
22935
22936 void (STDMETHODCALLTYPE *EndEvent)(
22937 ID3D12GraphicsCommandList6 *This);
22938
22939 void (STDMETHODCALLTYPE *ExecuteIndirect)(
22940 ID3D12GraphicsCommandList6 *This,
22941 ID3D12CommandSignature *command_signature,
22942 UINT max_command_count,
22943 ID3D12Resource *arg_buffer,
22944 UINT64 arg_buffer_offset,
22945 ID3D12Resource *count_buffer,
22946 UINT64 count_buffer_offset);
22947
22948 /*** ID3D12GraphicsCommandList1 methods ***/
22949 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
22950 ID3D12GraphicsCommandList6 *This,
22951 ID3D12Resource *dst_buffer,
22952 UINT64 dst_offset,
22953 ID3D12Resource *src_buffer,
22954 UINT64 src_offset,
22955 UINT dependent_resource_count,
22956 ID3D12Resource *const *dependent_resources,
22957 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
22958
22959 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
22960 ID3D12GraphicsCommandList6 *This,
22961 ID3D12Resource *dst_buffer,
22962 UINT64 dst_offset,
22963 ID3D12Resource *src_buffer,
22964 UINT64 src_offset,
22965 UINT dependent_resource_count,
22966 ID3D12Resource *const *dependent_resources,
22967 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
22968
22969 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
22970 ID3D12GraphicsCommandList6 *This,
22971 FLOAT min,
22972 FLOAT max);
22973
22974 void (STDMETHODCALLTYPE *SetSamplePositions)(
22975 ID3D12GraphicsCommandList6 *This,
22976 UINT sample_count,
22977 UINT pixel_count,
22978 D3D12_SAMPLE_POSITION *sample_positions);
22979
22980 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
22981 ID3D12GraphicsCommandList6 *This,
22982 ID3D12Resource *dst_resource,
22983 UINT dst_sub_resource_idx,
22984 UINT dst_x,
22985 UINT dst_y,
22986 ID3D12Resource *src_resource,
22987 UINT src_sub_resource_idx,
22988 D3D12_RECT *src_rect,
22989 DXGI_FORMAT format,
22990 D3D12_RESOLVE_MODE mode);
22991
22992 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
22993 ID3D12GraphicsCommandList6 *This,
22994 UINT mask);
22995
22996 /*** ID3D12GraphicsCommandList2 methods ***/
22997 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
22998 ID3D12GraphicsCommandList6 *This,
22999 UINT count,
23000 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
23001 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
23002
23003 /*** ID3D12GraphicsCommandList3 methods ***/
23004 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
23005 ID3D12GraphicsCommandList6 *This,
23006 ID3D12ProtectedResourceSession *protected_resource_session);
23007
23008 /*** ID3D12GraphicsCommandList4 methods ***/
23009 void (STDMETHODCALLTYPE *BeginRenderPass)(
23010 ID3D12GraphicsCommandList6 *This,
23011 UINT render_targets_count,
23012 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
23013 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
23014 D3D12_RENDER_PASS_FLAGS flags);
23015
23016 void (STDMETHODCALLTYPE *EndRenderPass)(
23017 ID3D12GraphicsCommandList6 *This);
23018
23019 void (STDMETHODCALLTYPE *InitializeMetaCommand)(
23020 ID3D12GraphicsCommandList6 *This,
23021 ID3D12MetaCommand *meta_command,
23022 const void *initialization_parameters_data,
23023 SIZE_T initialization_parameters_data_size_in_bytes);
23024
23025 void (STDMETHODCALLTYPE *ExecuteMetaCommand)(
23026 ID3D12GraphicsCommandList6 *This,
23027 ID3D12MetaCommand *meta_command,
23028 const void *execution_parameters_data,
23029 SIZE_T execution_parameters_data_size_in_bytes);
23030
23031 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)(
23032 ID3D12GraphicsCommandList6 *This,
23033 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
23034 UINT postbuild_info_descs_count,
23035 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
23036
23037 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)(
23038 ID3D12GraphicsCommandList6 *This,
23039 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
23040 UINT src_acceleration_structures_count,
23041 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
23042
23043 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)(
23044 ID3D12GraphicsCommandList6 *This,
23045 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
23046 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
23047 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
23048
23049 void (STDMETHODCALLTYPE *SetPipelineState1)(
23050 ID3D12GraphicsCommandList6 *This,
23051 ID3D12StateObject *state_object);
23052
23053 void (STDMETHODCALLTYPE *DispatchRays)(
23054 ID3D12GraphicsCommandList6 *This,
23055 const D3D12_DISPATCH_RAYS_DESC *desc);
23056
23057 /*** ID3D12GraphicsCommandList5 methods ***/
23058 void (STDMETHODCALLTYPE *RSSetShadingRate)(
23059 ID3D12GraphicsCommandList6 *This,
23060 D3D12_SHADING_RATE base_shading_rate,
23061 const D3D12_SHADING_RATE_COMBINER *combiners);
23062
23063 void (STDMETHODCALLTYPE *RSSetShadingRateImage)(
23064 ID3D12GraphicsCommandList6 *This,
23065 ID3D12Resource *shading_rate_image);
23066
23067 /*** ID3D12GraphicsCommandList6 methods ***/
23068 void (STDMETHODCALLTYPE *DispatchMesh)(
23069 ID3D12GraphicsCommandList6 *This,
23070 UINT thread_group_count_x,
23071 UINT thread_group_count_y,
23072 UINT thread_group_count_z);
23073
23074 END_INTERFACE
23075} ID3D12GraphicsCommandList6Vtbl;
23076
23077interface ID3D12GraphicsCommandList6 {
23078 CONST_VTBL ID3D12GraphicsCommandList6Vtbl* lpVtbl;
23079};
23080
23081#ifdef COBJMACROS
23082#ifndef WIDL_C_INLINE_WRAPPERS
23083/*** IUnknown methods ***/
23084#define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23085#define ID3D12GraphicsCommandList6_AddRef(This) (This)->lpVtbl->AddRef(This)
23086#define ID3D12GraphicsCommandList6_Release(This) (This)->lpVtbl->Release(This)
23087/*** ID3D12Object methods ***/
23088#define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
23089#define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
23090#define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
23091#define ID3D12GraphicsCommandList6_SetName(This,name) (This)->lpVtbl->SetName(This,name)
23092/*** ID3D12DeviceChild methods ***/
23093#define ID3D12GraphicsCommandList6_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
23094/*** ID3D12CommandList methods ***/
23095#define ID3D12GraphicsCommandList6_GetType(This) (This)->lpVtbl->GetType(This)
23096/*** ID3D12GraphicsCommandList methods ***/
23097#define ID3D12GraphicsCommandList6_Close(This) (This)->lpVtbl->Close(This)
23098#define ID3D12GraphicsCommandList6_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
23099#define ID3D12GraphicsCommandList6_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
23100#define ID3D12GraphicsCommandList6_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
23101#define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
23102#define ID3D12GraphicsCommandList6_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
23103#define ID3D12GraphicsCommandList6_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
23104#define ID3D12GraphicsCommandList6_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
23105#define ID3D12GraphicsCommandList6_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
23106#define ID3D12GraphicsCommandList6_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
23107#define ID3D12GraphicsCommandList6_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
23108#define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
23109#define ID3D12GraphicsCommandList6_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
23110#define ID3D12GraphicsCommandList6_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
23111#define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
23112#define ID3D12GraphicsCommandList6_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
23113#define ID3D12GraphicsCommandList6_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
23114#define ID3D12GraphicsCommandList6_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
23115#define ID3D12GraphicsCommandList6_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
23116#define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
23117#define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
23118#define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
23119#define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
23120#define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
23121#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
23122#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
23123#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
23124#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
23125#define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
23126#define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
23127#define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
23128#define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
23129#define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
23130#define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
23131#define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
23132#define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
23133#define ID3D12GraphicsCommandList6_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
23134#define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
23135#define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
23136#define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
23137#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
23138#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
23139#define ID3D12GraphicsCommandList6_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
23140#define ID3D12GraphicsCommandList6_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
23141#define ID3D12GraphicsCommandList6_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
23142#define ID3D12GraphicsCommandList6_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
23143#define ID3D12GraphicsCommandList6_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
23144#define ID3D12GraphicsCommandList6_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
23145#define ID3D12GraphicsCommandList6_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
23146#define ID3D12GraphicsCommandList6_EndEvent(This) (This)->lpVtbl->EndEvent(This)
23147#define ID3D12GraphicsCommandList6_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
23148/*** ID3D12GraphicsCommandList1 methods ***/
23149#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
23150#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
23151#define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
23152#define ID3D12GraphicsCommandList6_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
23153#define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
23154#define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
23155/*** ID3D12GraphicsCommandList2 methods ***/
23156#define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
23157/*** ID3D12GraphicsCommandList3 methods ***/
23158#define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
23159/*** ID3D12GraphicsCommandList4 methods ***/
23160#define ID3D12GraphicsCommandList6_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags)
23161#define ID3D12GraphicsCommandList6_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This)
23162#define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) (This)->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes)
23163#define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) (This)->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes)
23164#define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs)
23165#define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) (This)->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data)
23166#define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) (This)->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode)
23167#define ID3D12GraphicsCommandList6_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object)
23168#define ID3D12GraphicsCommandList6_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc)
23169/*** ID3D12GraphicsCommandList5 methods ***/
23170#define ID3D12GraphicsCommandList6_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners)
23171#define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image)
23172/*** ID3D12GraphicsCommandList6 methods ***/
23173#define ID3D12GraphicsCommandList6_DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z) (This)->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z)
23174#else
23175/*** IUnknown methods ***/
23176static inline HRESULT ID3D12GraphicsCommandList6_QueryInterface(ID3D12GraphicsCommandList6* This,REFIID riid,void **ppvObject) {
23177 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23178}
23179static inline ULONG ID3D12GraphicsCommandList6_AddRef(ID3D12GraphicsCommandList6* This) {
23180 return This->lpVtbl->AddRef(This);
23181}
23182static inline ULONG ID3D12GraphicsCommandList6_Release(ID3D12GraphicsCommandList6* This) {
23183 return This->lpVtbl->Release(This);
23184}
23185/*** ID3D12Object methods ***/
23186static inline HRESULT ID3D12GraphicsCommandList6_GetPrivateData(ID3D12GraphicsCommandList6* This,REFGUID guid,UINT *data_size,void *data) {
23187 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
23188}
23189static inline HRESULT ID3D12GraphicsCommandList6_SetPrivateData(ID3D12GraphicsCommandList6* This,REFGUID guid,UINT data_size,const void *data) {
23190 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
23191}
23192static inline HRESULT ID3D12GraphicsCommandList6_SetPrivateDataInterface(ID3D12GraphicsCommandList6* This,REFGUID guid,const IUnknown *data) {
23193 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
23194}
23195static inline HRESULT ID3D12GraphicsCommandList6_SetName(ID3D12GraphicsCommandList6* This,const WCHAR *name) {
23196 return This->lpVtbl->SetName(This,name);
23197}
23198/*** ID3D12DeviceChild methods ***/
23199static inline HRESULT ID3D12GraphicsCommandList6_GetDevice(ID3D12GraphicsCommandList6* This,REFIID riid,void **device) {
23200 return This->lpVtbl->GetDevice(This,riid,device);
23201}
23202/*** ID3D12CommandList methods ***/
23203static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList6_GetType(ID3D12GraphicsCommandList6* This) {
23204 return This->lpVtbl->GetType(This);
23205}
23206/*** ID3D12GraphicsCommandList methods ***/
23207static inline HRESULT ID3D12GraphicsCommandList6_Close(ID3D12GraphicsCommandList6* This) {
23208 return This->lpVtbl->Close(This);
23209}
23210static inline HRESULT ID3D12GraphicsCommandList6_Reset(ID3D12GraphicsCommandList6* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
23211 return This->lpVtbl->Reset(This,allocator,initial_state);
23212}
23213static inline void ID3D12GraphicsCommandList6_ClearState(ID3D12GraphicsCommandList6* This,ID3D12PipelineState *pipeline_state) {
23214 This->lpVtbl->ClearState(This,pipeline_state);
23215}
23216static inline void ID3D12GraphicsCommandList6_DrawInstanced(ID3D12GraphicsCommandList6* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
23217 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
23218}
23219static inline void ID3D12GraphicsCommandList6_DrawIndexedInstanced(ID3D12GraphicsCommandList6* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
23220 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
23221}
23222static inline void ID3D12GraphicsCommandList6_Dispatch(ID3D12GraphicsCommandList6* This,UINT x,UINT u,UINT z) {
23223 This->lpVtbl->Dispatch(This,x,u,z);
23224}
23225static inline void ID3D12GraphicsCommandList6_CopyBufferRegion(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
23226 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
23227}
23228static inline void ID3D12GraphicsCommandList6_CopyTextureRegion(ID3D12GraphicsCommandList6* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
23229 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
23230}
23231static inline void ID3D12GraphicsCommandList6_CopyResource(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
23232 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
23233}
23234static inline void ID3D12GraphicsCommandList6_CopyTiles(ID3D12GraphicsCommandList6* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
23235 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
23236}
23237static inline void ID3D12GraphicsCommandList6_ResolveSubresource(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
23238 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
23239}
23240static inline void ID3D12GraphicsCommandList6_IASetPrimitiveTopology(ID3D12GraphicsCommandList6* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
23241 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
23242}
23243static inline void ID3D12GraphicsCommandList6_RSSetViewports(ID3D12GraphicsCommandList6* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
23244 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
23245}
23246static inline void ID3D12GraphicsCommandList6_RSSetScissorRects(ID3D12GraphicsCommandList6* This,UINT rect_count,const D3D12_RECT *rects) {
23247 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
23248}
23249static inline void ID3D12GraphicsCommandList6_OMSetBlendFactor(ID3D12GraphicsCommandList6* This,const FLOAT blend_factor[4]) {
23250 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
23251}
23252static inline void ID3D12GraphicsCommandList6_OMSetStencilRef(ID3D12GraphicsCommandList6* This,UINT stencil_ref) {
23253 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
23254}
23255static inline void ID3D12GraphicsCommandList6_SetPipelineState(ID3D12GraphicsCommandList6* This,ID3D12PipelineState *pipeline_state) {
23256 This->lpVtbl->SetPipelineState(This,pipeline_state);
23257}
23258static inline void ID3D12GraphicsCommandList6_ResourceBarrier(ID3D12GraphicsCommandList6* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
23259 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
23260}
23261static inline void ID3D12GraphicsCommandList6_ExecuteBundle(ID3D12GraphicsCommandList6* This,ID3D12GraphicsCommandList *command_list) {
23262 This->lpVtbl->ExecuteBundle(This,command_list);
23263}
23264static inline void ID3D12GraphicsCommandList6_SetDescriptorHeaps(ID3D12GraphicsCommandList6* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
23265 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
23266}
23267static inline void ID3D12GraphicsCommandList6_SetComputeRootSignature(ID3D12GraphicsCommandList6* This,ID3D12RootSignature *root_signature) {
23268 This->lpVtbl->SetComputeRootSignature(This,root_signature);
23269}
23270static inline void ID3D12GraphicsCommandList6_SetGraphicsRootSignature(ID3D12GraphicsCommandList6* This,ID3D12RootSignature *root_signature) {
23271 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
23272}
23273static inline void ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
23274 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
23275}
23276static inline void ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
23277 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
23278}
23279static inline void ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
23280 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
23281}
23282static inline void ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
23283 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
23284}
23285static inline void ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
23286 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
23287}
23288static inline void ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
23289 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
23290}
23291static inline void ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23292 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
23293}
23294static inline void ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23295 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
23296}
23297static inline void ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23298 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
23299}
23300static inline void ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23301 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
23302}
23303static inline void ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23304 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
23305}
23306static inline void ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23307 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
23308}
23309static inline void ID3D12GraphicsCommandList6_IASetIndexBuffer(ID3D12GraphicsCommandList6* This,const D3D12_INDEX_BUFFER_VIEW *view) {
23310 This->lpVtbl->IASetIndexBuffer(This,view);
23311}
23312static inline void ID3D12GraphicsCommandList6_IASetVertexBuffers(ID3D12GraphicsCommandList6* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
23313 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
23314}
23315static inline void ID3D12GraphicsCommandList6_SOSetTargets(ID3D12GraphicsCommandList6* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
23316 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
23317}
23318static inline void ID3D12GraphicsCommandList6_OMSetRenderTargets(ID3D12GraphicsCommandList6* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
23319 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
23320}
23321static inline void ID3D12GraphicsCommandList6_ClearDepthStencilView(ID3D12GraphicsCommandList6* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
23322 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
23323}
23324static inline void ID3D12GraphicsCommandList6_ClearRenderTargetView(ID3D12GraphicsCommandList6* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
23325 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
23326}
23327static inline void ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList6* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
23328 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
23329}
23330static inline void ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList6* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
23331 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
23332}
23333static inline void ID3D12GraphicsCommandList6_DiscardResource(ID3D12GraphicsCommandList6* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
23334 This->lpVtbl->DiscardResource(This,resource,region);
23335}
23336static inline void ID3D12GraphicsCommandList6_BeginQuery(ID3D12GraphicsCommandList6* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
23337 This->lpVtbl->BeginQuery(This,heap,type,index);
23338}
23339static inline void ID3D12GraphicsCommandList6_EndQuery(ID3D12GraphicsCommandList6* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
23340 This->lpVtbl->EndQuery(This,heap,type,index);
23341}
23342static inline void ID3D12GraphicsCommandList6_ResolveQueryData(ID3D12GraphicsCommandList6* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
23343 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
23344}
23345static inline void ID3D12GraphicsCommandList6_SetPredication(ID3D12GraphicsCommandList6* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
23346 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
23347}
23348static inline void ID3D12GraphicsCommandList6_SetMarker(ID3D12GraphicsCommandList6* This,UINT metadata,const void *data,UINT size) {
23349 This->lpVtbl->SetMarker(This,metadata,data,size);
23350}
23351static inline void ID3D12GraphicsCommandList6_BeginEvent(ID3D12GraphicsCommandList6* This,UINT metadata,const void *data,UINT size) {
23352 This->lpVtbl->BeginEvent(This,metadata,data,size);
23353}
23354static inline void ID3D12GraphicsCommandList6_EndEvent(ID3D12GraphicsCommandList6* This) {
23355 This->lpVtbl->EndEvent(This);
23356}
23357static inline void ID3D12GraphicsCommandList6_ExecuteIndirect(ID3D12GraphicsCommandList6* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
23358 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
23359}
23360/*** ID3D12GraphicsCommandList1 methods ***/
23361static inline void ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
23362 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
23363}
23364static inline void ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
23365 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
23366}
23367static inline void ID3D12GraphicsCommandList6_OMSetDepthBounds(ID3D12GraphicsCommandList6* This,FLOAT min,FLOAT max) {
23368 This->lpVtbl->OMSetDepthBounds(This,min,max);
23369}
23370static inline void ID3D12GraphicsCommandList6_SetSamplePositions(ID3D12GraphicsCommandList6* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
23371 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
23372}
23373static inline void ID3D12GraphicsCommandList6_ResolveSubresourceRegion(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
23374 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
23375}
23376static inline void ID3D12GraphicsCommandList6_SetViewInstanceMask(ID3D12GraphicsCommandList6* This,UINT mask) {
23377 This->lpVtbl->SetViewInstanceMask(This,mask);
23378}
23379/*** ID3D12GraphicsCommandList2 methods ***/
23380static inline void ID3D12GraphicsCommandList6_WriteBufferImmediate(ID3D12GraphicsCommandList6* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
23381 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
23382}
23383/*** ID3D12GraphicsCommandList3 methods ***/
23384static inline void ID3D12GraphicsCommandList6_SetProtectedResourceSession(ID3D12GraphicsCommandList6* This,ID3D12ProtectedResourceSession *protected_resource_session) {
23385 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
23386}
23387/*** ID3D12GraphicsCommandList4 methods ***/
23388static inline void ID3D12GraphicsCommandList6_BeginRenderPass(ID3D12GraphicsCommandList6* This,UINT render_targets_count,const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,D3D12_RENDER_PASS_FLAGS flags) {
23389 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags);
23390}
23391static inline void ID3D12GraphicsCommandList6_EndRenderPass(ID3D12GraphicsCommandList6* This) {
23392 This->lpVtbl->EndRenderPass(This);
23393}
23394static inline void ID3D12GraphicsCommandList6_InitializeMetaCommand(ID3D12GraphicsCommandList6* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) {
23395 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes);
23396}
23397static inline void ID3D12GraphicsCommandList6_ExecuteMetaCommand(ID3D12GraphicsCommandList6* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) {
23398 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes);
23399}
23400static inline void ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(ID3D12GraphicsCommandList6* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,UINT postbuild_info_descs_count,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) {
23401 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs);
23402}
23403static inline void ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(ID3D12GraphicsCommandList6* This,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,UINT src_acceleration_structures_count,const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) {
23404 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data);
23405}
23406static inline void ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(ID3D12GraphicsCommandList6* This,D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) {
23407 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode);
23408}
23409static inline void ID3D12GraphicsCommandList6_SetPipelineState1(ID3D12GraphicsCommandList6* This,ID3D12StateObject *state_object) {
23410 This->lpVtbl->SetPipelineState1(This,state_object);
23411}
23412static inline void ID3D12GraphicsCommandList6_DispatchRays(ID3D12GraphicsCommandList6* This,const D3D12_DISPATCH_RAYS_DESC *desc) {
23413 This->lpVtbl->DispatchRays(This,desc);
23414}
23415/*** ID3D12GraphicsCommandList5 methods ***/
23416static inline void ID3D12GraphicsCommandList6_RSSetShadingRate(ID3D12GraphicsCommandList6* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) {
23417 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners);
23418}
23419static inline void ID3D12GraphicsCommandList6_RSSetShadingRateImage(ID3D12GraphicsCommandList6* This,ID3D12Resource *shading_rate_image) {
23420 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image);
23421}
23422/*** ID3D12GraphicsCommandList6 methods ***/
23423static inline void ID3D12GraphicsCommandList6_DispatchMesh(ID3D12GraphicsCommandList6* This,UINT thread_group_count_x,UINT thread_group_count_y,UINT thread_group_count_z) {
23424 This->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z);
23425}
23426#endif
23427#endif
23428
23429#endif
23430
23431
23432#endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */
23433
23434/*****************************************************************************
23435 * ID3D12GraphicsCommandList7 interface
23436 */
23437#ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
23438#define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
23439
23440DEFINE_GUID(IID_ID3D12GraphicsCommandList7, 0xdd171223, 0x8b61, 0x4769, 0x90,0xe3, 0x16,0x0c,0xcd,0xe4,0xe2,0xc1);
23441#if defined(__cplusplus) && !defined(CINTERFACE)
23442MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1")
23443ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6
23444{
23445 virtual void STDMETHODCALLTYPE Barrier(
23446 UINT32 barrier_groups_count,
23447 const D3D12_BARRIER_GROUP *barrier_groups) = 0;
23448
23449};
23450#ifdef __CRT_UUID_DECL
23451__CRT_UUID_DECL(ID3D12GraphicsCommandList7, 0xdd171223, 0x8b61, 0x4769, 0x90,0xe3, 0x16,0x0c,0xcd,0xe4,0xe2,0xc1)
23452#endif
23453#else
23454typedef struct ID3D12GraphicsCommandList7Vtbl {
23455 BEGIN_INTERFACE
23456
23457 /*** IUnknown methods ***/
23458 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23459 ID3D12GraphicsCommandList7 *This,
23460 REFIID riid,
23461 void **ppvObject);
23462
23463 ULONG (STDMETHODCALLTYPE *AddRef)(
23464 ID3D12GraphicsCommandList7 *This);
23465
23466 ULONG (STDMETHODCALLTYPE *Release)(
23467 ID3D12GraphicsCommandList7 *This);
23468
23469 /*** ID3D12Object methods ***/
23470 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
23471 ID3D12GraphicsCommandList7 *This,
23472 REFGUID guid,
23473 UINT *data_size,
23474 void *data);
23475
23476 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
23477 ID3D12GraphicsCommandList7 *This,
23478 REFGUID guid,
23479 UINT data_size,
23480 const void *data);
23481
23482 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
23483 ID3D12GraphicsCommandList7 *This,
23484 REFGUID guid,
23485 const IUnknown *data);
23486
23487 HRESULT (STDMETHODCALLTYPE *SetName)(
23488 ID3D12GraphicsCommandList7 *This,
23489 const WCHAR *name);
23490
23491 /*** ID3D12DeviceChild methods ***/
23492 HRESULT (STDMETHODCALLTYPE *GetDevice)(
23493 ID3D12GraphicsCommandList7 *This,
23494 REFIID riid,
23495 void **device);
23496
23497 /*** ID3D12CommandList methods ***/
23498 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
23499 ID3D12GraphicsCommandList7 *This);
23500
23501 /*** ID3D12GraphicsCommandList methods ***/
23502 HRESULT (STDMETHODCALLTYPE *Close)(
23503 ID3D12GraphicsCommandList7 *This);
23504
23505 HRESULT (STDMETHODCALLTYPE *Reset)(
23506 ID3D12GraphicsCommandList7 *This,
23507 ID3D12CommandAllocator *allocator,
23508 ID3D12PipelineState *initial_state);
23509
23510 void (STDMETHODCALLTYPE *ClearState)(
23511 ID3D12GraphicsCommandList7 *This,
23512 ID3D12PipelineState *pipeline_state);
23513
23514 void (STDMETHODCALLTYPE *DrawInstanced)(
23515 ID3D12GraphicsCommandList7 *This,
23516 UINT vertex_count_per_instance,
23517 UINT instance_count,
23518 UINT start_vertex_location,
23519 UINT start_instance_location);
23520
23521 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
23522 ID3D12GraphicsCommandList7 *This,
23523 UINT index_count_per_instance,
23524 UINT instance_count,
23525 UINT start_vertex_location,
23526 INT base_vertex_location,
23527 UINT start_instance_location);
23528
23529 void (STDMETHODCALLTYPE *Dispatch)(
23530 ID3D12GraphicsCommandList7 *This,
23531 UINT x,
23532 UINT u,
23533 UINT z);
23534
23535 void (STDMETHODCALLTYPE *CopyBufferRegion)(
23536 ID3D12GraphicsCommandList7 *This,
23537 ID3D12Resource *dst_buffer,
23538 UINT64 dst_offset,
23539 ID3D12Resource *src_buffer,
23540 UINT64 src_offset,
23541 UINT64 byte_count);
23542
23543 void (STDMETHODCALLTYPE *CopyTextureRegion)(
23544 ID3D12GraphicsCommandList7 *This,
23545 const D3D12_TEXTURE_COPY_LOCATION *dst,
23546 UINT dst_x,
23547 UINT dst_y,
23548 UINT dst_z,
23549 const D3D12_TEXTURE_COPY_LOCATION *src,
23550 const D3D12_BOX *src_box);
23551
23552 void (STDMETHODCALLTYPE *CopyResource)(
23553 ID3D12GraphicsCommandList7 *This,
23554 ID3D12Resource *dst_resource,
23555 ID3D12Resource *src_resource);
23556
23557 void (STDMETHODCALLTYPE *CopyTiles)(
23558 ID3D12GraphicsCommandList7 *This,
23559 ID3D12Resource *tiled_resource,
23560 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
23561 const D3D12_TILE_REGION_SIZE *tile_region_size,
23562 ID3D12Resource *buffer,
23563 UINT64 buffer_offset,
23564 D3D12_TILE_COPY_FLAGS flags);
23565
23566 void (STDMETHODCALLTYPE *ResolveSubresource)(
23567 ID3D12GraphicsCommandList7 *This,
23568 ID3D12Resource *dst_resource,
23569 UINT dst_sub_resource,
23570 ID3D12Resource *src_resource,
23571 UINT src_sub_resource,
23572 DXGI_FORMAT format);
23573
23574 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
23575 ID3D12GraphicsCommandList7 *This,
23576 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
23577
23578 void (STDMETHODCALLTYPE *RSSetViewports)(
23579 ID3D12GraphicsCommandList7 *This,
23580 UINT viewport_count,
23581 const D3D12_VIEWPORT *viewports);
23582
23583 void (STDMETHODCALLTYPE *RSSetScissorRects)(
23584 ID3D12GraphicsCommandList7 *This,
23585 UINT rect_count,
23586 const D3D12_RECT *rects);
23587
23588 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
23589 ID3D12GraphicsCommandList7 *This,
23590 const FLOAT blend_factor[4]);
23591
23592 void (STDMETHODCALLTYPE *OMSetStencilRef)(
23593 ID3D12GraphicsCommandList7 *This,
23594 UINT stencil_ref);
23595
23596 void (STDMETHODCALLTYPE *SetPipelineState)(
23597 ID3D12GraphicsCommandList7 *This,
23598 ID3D12PipelineState *pipeline_state);
23599
23600 void (STDMETHODCALLTYPE *ResourceBarrier)(
23601 ID3D12GraphicsCommandList7 *This,
23602 UINT barrier_count,
23603 const D3D12_RESOURCE_BARRIER *barriers);
23604
23605 void (STDMETHODCALLTYPE *ExecuteBundle)(
23606 ID3D12GraphicsCommandList7 *This,
23607 ID3D12GraphicsCommandList *command_list);
23608
23609 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
23610 ID3D12GraphicsCommandList7 *This,
23611 UINT heap_count,
23612 ID3D12DescriptorHeap *const *heaps);
23613
23614 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
23615 ID3D12GraphicsCommandList7 *This,
23616 ID3D12RootSignature *root_signature);
23617
23618 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
23619 ID3D12GraphicsCommandList7 *This,
23620 ID3D12RootSignature *root_signature);
23621
23622 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
23623 ID3D12GraphicsCommandList7 *This,
23624 UINT root_parameter_index,
23625 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
23626
23627 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
23628 ID3D12GraphicsCommandList7 *This,
23629 UINT root_parameter_index,
23630 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
23631
23632 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
23633 ID3D12GraphicsCommandList7 *This,
23634 UINT root_parameter_index,
23635 UINT data,
23636 UINT dst_offset);
23637
23638 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
23639 ID3D12GraphicsCommandList7 *This,
23640 UINT root_parameter_index,
23641 UINT data,
23642 UINT dst_offset);
23643
23644 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
23645 ID3D12GraphicsCommandList7 *This,
23646 UINT root_parameter_index,
23647 UINT constant_count,
23648 const void *data,
23649 UINT dst_offset);
23650
23651 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
23652 ID3D12GraphicsCommandList7 *This,
23653 UINT root_parameter_index,
23654 UINT constant_count,
23655 const void *data,
23656 UINT dst_offset);
23657
23658 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
23659 ID3D12GraphicsCommandList7 *This,
23660 UINT root_parameter_index,
23661 D3D12_GPU_VIRTUAL_ADDRESS address);
23662
23663 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
23664 ID3D12GraphicsCommandList7 *This,
23665 UINT root_parameter_index,
23666 D3D12_GPU_VIRTUAL_ADDRESS address);
23667
23668 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
23669 ID3D12GraphicsCommandList7 *This,
23670 UINT root_parameter_index,
23671 D3D12_GPU_VIRTUAL_ADDRESS address);
23672
23673 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
23674 ID3D12GraphicsCommandList7 *This,
23675 UINT root_parameter_index,
23676 D3D12_GPU_VIRTUAL_ADDRESS address);
23677
23678 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
23679 ID3D12GraphicsCommandList7 *This,
23680 UINT root_parameter_index,
23681 D3D12_GPU_VIRTUAL_ADDRESS address);
23682
23683 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
23684 ID3D12GraphicsCommandList7 *This,
23685 UINT root_parameter_index,
23686 D3D12_GPU_VIRTUAL_ADDRESS address);
23687
23688 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
23689 ID3D12GraphicsCommandList7 *This,
23690 const D3D12_INDEX_BUFFER_VIEW *view);
23691
23692 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
23693 ID3D12GraphicsCommandList7 *This,
23694 UINT start_slot,
23695 UINT view_count,
23696 const D3D12_VERTEX_BUFFER_VIEW *views);
23697
23698 void (STDMETHODCALLTYPE *SOSetTargets)(
23699 ID3D12GraphicsCommandList7 *This,
23700 UINT start_slot,
23701 UINT view_count,
23702 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
23703
23704 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
23705 ID3D12GraphicsCommandList7 *This,
23706 UINT render_target_descriptor_count,
23707 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
23708 WINBOOL single_descriptor_handle,
23709 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
23710
23711 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
23712 ID3D12GraphicsCommandList7 *This,
23713 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
23714 D3D12_CLEAR_FLAGS flags,
23715 FLOAT depth,
23716 UINT8 stencil,
23717 UINT rect_count,
23718 const D3D12_RECT *rects);
23719
23720 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
23721 ID3D12GraphicsCommandList7 *This,
23722 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
23723 const FLOAT color[4],
23724 UINT rect_count,
23725 const D3D12_RECT *rects);
23726
23727 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
23728 ID3D12GraphicsCommandList7 *This,
23729 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
23730 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
23731 ID3D12Resource *resource,
23732 const UINT values[4],
23733 UINT rect_count,
23734 const D3D12_RECT *rects);
23735
23736 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
23737 ID3D12GraphicsCommandList7 *This,
23738 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
23739 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
23740 ID3D12Resource *resource,
23741 const float values[4],
23742 UINT rect_count,
23743 const D3D12_RECT *rects);
23744
23745 void (STDMETHODCALLTYPE *DiscardResource)(
23746 ID3D12GraphicsCommandList7 *This,
23747 ID3D12Resource *resource,
23748 const D3D12_DISCARD_REGION *region);
23749
23750 void (STDMETHODCALLTYPE *BeginQuery)(
23751 ID3D12GraphicsCommandList7 *This,
23752 ID3D12QueryHeap *heap,
23753 D3D12_QUERY_TYPE type,
23754 UINT index);
23755
23756 void (STDMETHODCALLTYPE *EndQuery)(
23757 ID3D12GraphicsCommandList7 *This,
23758 ID3D12QueryHeap *heap,
23759 D3D12_QUERY_TYPE type,
23760 UINT index);
23761
23762 void (STDMETHODCALLTYPE *ResolveQueryData)(
23763 ID3D12GraphicsCommandList7 *This,
23764 ID3D12QueryHeap *heap,
23765 D3D12_QUERY_TYPE type,
23766 UINT start_index,
23767 UINT query_count,
23768 ID3D12Resource *dst_buffer,
23769 UINT64 aligned_dst_buffer_offset);
23770
23771 void (STDMETHODCALLTYPE *SetPredication)(
23772 ID3D12GraphicsCommandList7 *This,
23773 ID3D12Resource *buffer,
23774 UINT64 aligned_buffer_offset,
23775 D3D12_PREDICATION_OP operation);
23776
23777 void (STDMETHODCALLTYPE *SetMarker)(
23778 ID3D12GraphicsCommandList7 *This,
23779 UINT metadata,
23780 const void *data,
23781 UINT size);
23782
23783 void (STDMETHODCALLTYPE *BeginEvent)(
23784 ID3D12GraphicsCommandList7 *This,
23785 UINT metadata,
23786 const void *data,
23787 UINT size);
23788
23789 void (STDMETHODCALLTYPE *EndEvent)(
23790 ID3D12GraphicsCommandList7 *This);
23791
23792 void (STDMETHODCALLTYPE *ExecuteIndirect)(
23793 ID3D12GraphicsCommandList7 *This,
23794 ID3D12CommandSignature *command_signature,
23795 UINT max_command_count,
23796 ID3D12Resource *arg_buffer,
23797 UINT64 arg_buffer_offset,
23798 ID3D12Resource *count_buffer,
23799 UINT64 count_buffer_offset);
23800
23801 /*** ID3D12GraphicsCommandList1 methods ***/
23802 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
23803 ID3D12GraphicsCommandList7 *This,
23804 ID3D12Resource *dst_buffer,
23805 UINT64 dst_offset,
23806 ID3D12Resource *src_buffer,
23807 UINT64 src_offset,
23808 UINT dependent_resource_count,
23809 ID3D12Resource *const *dependent_resources,
23810 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
23811
23812 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
23813 ID3D12GraphicsCommandList7 *This,
23814 ID3D12Resource *dst_buffer,
23815 UINT64 dst_offset,
23816 ID3D12Resource *src_buffer,
23817 UINT64 src_offset,
23818 UINT dependent_resource_count,
23819 ID3D12Resource *const *dependent_resources,
23820 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
23821
23822 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
23823 ID3D12GraphicsCommandList7 *This,
23824 FLOAT min,
23825 FLOAT max);
23826
23827 void (STDMETHODCALLTYPE *SetSamplePositions)(
23828 ID3D12GraphicsCommandList7 *This,
23829 UINT sample_count,
23830 UINT pixel_count,
23831 D3D12_SAMPLE_POSITION *sample_positions);
23832
23833 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
23834 ID3D12GraphicsCommandList7 *This,
23835 ID3D12Resource *dst_resource,
23836 UINT dst_sub_resource_idx,
23837 UINT dst_x,
23838 UINT dst_y,
23839 ID3D12Resource *src_resource,
23840 UINT src_sub_resource_idx,
23841 D3D12_RECT *src_rect,
23842 DXGI_FORMAT format,
23843 D3D12_RESOLVE_MODE mode);
23844
23845 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
23846 ID3D12GraphicsCommandList7 *This,
23847 UINT mask);
23848
23849 /*** ID3D12GraphicsCommandList2 methods ***/
23850 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
23851 ID3D12GraphicsCommandList7 *This,
23852 UINT count,
23853 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
23854 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
23855
23856 /*** ID3D12GraphicsCommandList3 methods ***/
23857 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
23858 ID3D12GraphicsCommandList7 *This,
23859 ID3D12ProtectedResourceSession *protected_resource_session);
23860
23861 /*** ID3D12GraphicsCommandList4 methods ***/
23862 void (STDMETHODCALLTYPE *BeginRenderPass)(
23863 ID3D12GraphicsCommandList7 *This,
23864 UINT render_targets_count,
23865 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
23866 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
23867 D3D12_RENDER_PASS_FLAGS flags);
23868
23869 void (STDMETHODCALLTYPE *EndRenderPass)(
23870 ID3D12GraphicsCommandList7 *This);
23871
23872 void (STDMETHODCALLTYPE *InitializeMetaCommand)(
23873 ID3D12GraphicsCommandList7 *This,
23874 ID3D12MetaCommand *meta_command,
23875 const void *initialization_parameters_data,
23876 SIZE_T initialization_parameters_data_size_in_bytes);
23877
23878 void (STDMETHODCALLTYPE *ExecuteMetaCommand)(
23879 ID3D12GraphicsCommandList7 *This,
23880 ID3D12MetaCommand *meta_command,
23881 const void *execution_parameters_data,
23882 SIZE_T execution_parameters_data_size_in_bytes);
23883
23884 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)(
23885 ID3D12GraphicsCommandList7 *This,
23886 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
23887 UINT postbuild_info_descs_count,
23888 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
23889
23890 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)(
23891 ID3D12GraphicsCommandList7 *This,
23892 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
23893 UINT src_acceleration_structures_count,
23894 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
23895
23896 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)(
23897 ID3D12GraphicsCommandList7 *This,
23898 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
23899 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
23900 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
23901
23902 void (STDMETHODCALLTYPE *SetPipelineState1)(
23903 ID3D12GraphicsCommandList7 *This,
23904 ID3D12StateObject *state_object);
23905
23906 void (STDMETHODCALLTYPE *DispatchRays)(
23907 ID3D12GraphicsCommandList7 *This,
23908 const D3D12_DISPATCH_RAYS_DESC *desc);
23909
23910 /*** ID3D12GraphicsCommandList5 methods ***/
23911 void (STDMETHODCALLTYPE *RSSetShadingRate)(
23912 ID3D12GraphicsCommandList7 *This,
23913 D3D12_SHADING_RATE base_shading_rate,
23914 const D3D12_SHADING_RATE_COMBINER *combiners);
23915
23916 void (STDMETHODCALLTYPE *RSSetShadingRateImage)(
23917 ID3D12GraphicsCommandList7 *This,
23918 ID3D12Resource *shading_rate_image);
23919
23920 /*** ID3D12GraphicsCommandList6 methods ***/
23921 void (STDMETHODCALLTYPE *DispatchMesh)(
23922 ID3D12GraphicsCommandList7 *This,
23923 UINT thread_group_count_x,
23924 UINT thread_group_count_y,
23925 UINT thread_group_count_z);
23926
23927 /*** ID3D12GraphicsCommandList7 methods ***/
23928 void (STDMETHODCALLTYPE *Barrier)(
23929 ID3D12GraphicsCommandList7 *This,
23930 UINT32 barrier_groups_count,
23931 const D3D12_BARRIER_GROUP *barrier_groups);
23932
23933 END_INTERFACE
23934} ID3D12GraphicsCommandList7Vtbl;
23935
23936interface ID3D12GraphicsCommandList7 {
23937 CONST_VTBL ID3D12GraphicsCommandList7Vtbl* lpVtbl;
23938};
23939
23940#ifdef COBJMACROS
23941#ifndef WIDL_C_INLINE_WRAPPERS
23942/*** IUnknown methods ***/
23943#define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23944#define ID3D12GraphicsCommandList7_AddRef(This) (This)->lpVtbl->AddRef(This)
23945#define ID3D12GraphicsCommandList7_Release(This) (This)->lpVtbl->Release(This)
23946/*** ID3D12Object methods ***/
23947#define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
23948#define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
23949#define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
23950#define ID3D12GraphicsCommandList7_SetName(This,name) (This)->lpVtbl->SetName(This,name)
23951/*** ID3D12DeviceChild methods ***/
23952#define ID3D12GraphicsCommandList7_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
23953/*** ID3D12CommandList methods ***/
23954#define ID3D12GraphicsCommandList7_GetType(This) (This)->lpVtbl->GetType(This)
23955/*** ID3D12GraphicsCommandList methods ***/
23956#define ID3D12GraphicsCommandList7_Close(This) (This)->lpVtbl->Close(This)
23957#define ID3D12GraphicsCommandList7_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
23958#define ID3D12GraphicsCommandList7_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
23959#define ID3D12GraphicsCommandList7_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
23960#define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
23961#define ID3D12GraphicsCommandList7_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
23962#define ID3D12GraphicsCommandList7_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
23963#define ID3D12GraphicsCommandList7_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
23964#define ID3D12GraphicsCommandList7_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
23965#define ID3D12GraphicsCommandList7_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
23966#define ID3D12GraphicsCommandList7_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
23967#define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
23968#define ID3D12GraphicsCommandList7_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
23969#define ID3D12GraphicsCommandList7_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
23970#define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
23971#define ID3D12GraphicsCommandList7_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
23972#define ID3D12GraphicsCommandList7_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
23973#define ID3D12GraphicsCommandList7_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
23974#define ID3D12GraphicsCommandList7_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
23975#define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
23976#define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
23977#define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
23978#define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
23979#define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
23980#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
23981#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
23982#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
23983#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
23984#define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
23985#define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
23986#define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
23987#define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
23988#define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
23989#define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
23990#define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
23991#define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
23992#define ID3D12GraphicsCommandList7_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
23993#define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
23994#define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
23995#define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
23996#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
23997#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
23998#define ID3D12GraphicsCommandList7_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
23999#define ID3D12GraphicsCommandList7_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
24000#define ID3D12GraphicsCommandList7_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
24001#define ID3D12GraphicsCommandList7_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
24002#define ID3D12GraphicsCommandList7_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
24003#define ID3D12GraphicsCommandList7_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
24004#define ID3D12GraphicsCommandList7_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
24005#define ID3D12GraphicsCommandList7_EndEvent(This) (This)->lpVtbl->EndEvent(This)
24006#define ID3D12GraphicsCommandList7_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
24007/*** ID3D12GraphicsCommandList1 methods ***/
24008#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
24009#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
24010#define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
24011#define ID3D12GraphicsCommandList7_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
24012#define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
24013#define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
24014/*** ID3D12GraphicsCommandList2 methods ***/
24015#define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
24016/*** ID3D12GraphicsCommandList3 methods ***/
24017#define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
24018/*** ID3D12GraphicsCommandList4 methods ***/
24019#define ID3D12GraphicsCommandList7_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags)
24020#define ID3D12GraphicsCommandList7_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This)
24021#define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) (This)->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes)
24022#define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) (This)->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes)
24023#define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs)
24024#define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) (This)->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data)
24025#define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) (This)->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode)
24026#define ID3D12GraphicsCommandList7_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object)
24027#define ID3D12GraphicsCommandList7_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc)
24028/*** ID3D12GraphicsCommandList5 methods ***/
24029#define ID3D12GraphicsCommandList7_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners)
24030#define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image)
24031/*** ID3D12GraphicsCommandList6 methods ***/
24032#define ID3D12GraphicsCommandList7_DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z) (This)->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z)
24033/*** ID3D12GraphicsCommandList7 methods ***/
24034#define ID3D12GraphicsCommandList7_Barrier(This,barrier_groups_count,barrier_groups) (This)->lpVtbl->Barrier(This,barrier_groups_count,barrier_groups)
24035#else
24036/*** IUnknown methods ***/
24037static inline HRESULT ID3D12GraphicsCommandList7_QueryInterface(ID3D12GraphicsCommandList7* This,REFIID riid,void **ppvObject) {
24038 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24039}
24040static inline ULONG ID3D12GraphicsCommandList7_AddRef(ID3D12GraphicsCommandList7* This) {
24041 return This->lpVtbl->AddRef(This);
24042}
24043static inline ULONG ID3D12GraphicsCommandList7_Release(ID3D12GraphicsCommandList7* This) {
24044 return This->lpVtbl->Release(This);
24045}
24046/*** ID3D12Object methods ***/
24047static inline HRESULT ID3D12GraphicsCommandList7_GetPrivateData(ID3D12GraphicsCommandList7* This,REFGUID guid,UINT *data_size,void *data) {
24048 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
24049}
24050static inline HRESULT ID3D12GraphicsCommandList7_SetPrivateData(ID3D12GraphicsCommandList7* This,REFGUID guid,UINT data_size,const void *data) {
24051 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
24052}
24053static inline HRESULT ID3D12GraphicsCommandList7_SetPrivateDataInterface(ID3D12GraphicsCommandList7* This,REFGUID guid,const IUnknown *data) {
24054 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
24055}
24056static inline HRESULT ID3D12GraphicsCommandList7_SetName(ID3D12GraphicsCommandList7* This,const WCHAR *name) {
24057 return This->lpVtbl->SetName(This,name);
24058}
24059/*** ID3D12DeviceChild methods ***/
24060static inline HRESULT ID3D12GraphicsCommandList7_GetDevice(ID3D12GraphicsCommandList7* This,REFIID riid,void **device) {
24061 return This->lpVtbl->GetDevice(This,riid,device);
24062}
24063/*** ID3D12CommandList methods ***/
24064static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList7_GetType(ID3D12GraphicsCommandList7* This) {
24065 return This->lpVtbl->GetType(This);
24066}
24067/*** ID3D12GraphicsCommandList methods ***/
24068static inline HRESULT ID3D12GraphicsCommandList7_Close(ID3D12GraphicsCommandList7* This) {
24069 return This->lpVtbl->Close(This);
24070}
24071static inline HRESULT ID3D12GraphicsCommandList7_Reset(ID3D12GraphicsCommandList7* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
24072 return This->lpVtbl->Reset(This,allocator,initial_state);
24073}
24074static inline void ID3D12GraphicsCommandList7_ClearState(ID3D12GraphicsCommandList7* This,ID3D12PipelineState *pipeline_state) {
24075 This->lpVtbl->ClearState(This,pipeline_state);
24076}
24077static inline void ID3D12GraphicsCommandList7_DrawInstanced(ID3D12GraphicsCommandList7* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
24078 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
24079}
24080static inline void ID3D12GraphicsCommandList7_DrawIndexedInstanced(ID3D12GraphicsCommandList7* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
24081 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
24082}
24083static inline void ID3D12GraphicsCommandList7_Dispatch(ID3D12GraphicsCommandList7* This,UINT x,UINT u,UINT z) {
24084 This->lpVtbl->Dispatch(This,x,u,z);
24085}
24086static inline void ID3D12GraphicsCommandList7_CopyBufferRegion(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
24087 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
24088}
24089static inline void ID3D12GraphicsCommandList7_CopyTextureRegion(ID3D12GraphicsCommandList7* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
24090 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
24091}
24092static inline void ID3D12GraphicsCommandList7_CopyResource(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
24093 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
24094}
24095static inline void ID3D12GraphicsCommandList7_CopyTiles(ID3D12GraphicsCommandList7* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
24096 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
24097}
24098static inline void ID3D12GraphicsCommandList7_ResolveSubresource(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
24099 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
24100}
24101static inline void ID3D12GraphicsCommandList7_IASetPrimitiveTopology(ID3D12GraphicsCommandList7* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
24102 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
24103}
24104static inline void ID3D12GraphicsCommandList7_RSSetViewports(ID3D12GraphicsCommandList7* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
24105 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
24106}
24107static inline void ID3D12GraphicsCommandList7_RSSetScissorRects(ID3D12GraphicsCommandList7* This,UINT rect_count,const D3D12_RECT *rects) {
24108 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
24109}
24110static inline void ID3D12GraphicsCommandList7_OMSetBlendFactor(ID3D12GraphicsCommandList7* This,const FLOAT blend_factor[4]) {
24111 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
24112}
24113static inline void ID3D12GraphicsCommandList7_OMSetStencilRef(ID3D12GraphicsCommandList7* This,UINT stencil_ref) {
24114 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
24115}
24116static inline void ID3D12GraphicsCommandList7_SetPipelineState(ID3D12GraphicsCommandList7* This,ID3D12PipelineState *pipeline_state) {
24117 This->lpVtbl->SetPipelineState(This,pipeline_state);
24118}
24119static inline void ID3D12GraphicsCommandList7_ResourceBarrier(ID3D12GraphicsCommandList7* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
24120 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
24121}
24122static inline void ID3D12GraphicsCommandList7_ExecuteBundle(ID3D12GraphicsCommandList7* This,ID3D12GraphicsCommandList *command_list) {
24123 This->lpVtbl->ExecuteBundle(This,command_list);
24124}
24125static inline void ID3D12GraphicsCommandList7_SetDescriptorHeaps(ID3D12GraphicsCommandList7* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
24126 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
24127}
24128static inline void ID3D12GraphicsCommandList7_SetComputeRootSignature(ID3D12GraphicsCommandList7* This,ID3D12RootSignature *root_signature) {
24129 This->lpVtbl->SetComputeRootSignature(This,root_signature);
24130}
24131static inline void ID3D12GraphicsCommandList7_SetGraphicsRootSignature(ID3D12GraphicsCommandList7* This,ID3D12RootSignature *root_signature) {
24132 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
24133}
24134static inline void ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
24135 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
24136}
24137static inline void ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
24138 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
24139}
24140static inline void ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
24141 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
24142}
24143static inline void ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
24144 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
24145}
24146static inline void ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
24147 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
24148}
24149static inline void ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
24150 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
24151}
24152static inline void ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24153 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
24154}
24155static inline void ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24156 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
24157}
24158static inline void ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24159 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
24160}
24161static inline void ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24162 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
24163}
24164static inline void ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24165 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
24166}
24167static inline void ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24168 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
24169}
24170static inline void ID3D12GraphicsCommandList7_IASetIndexBuffer(ID3D12GraphicsCommandList7* This,const D3D12_INDEX_BUFFER_VIEW *view) {
24171 This->lpVtbl->IASetIndexBuffer(This,view);
24172}
24173static inline void ID3D12GraphicsCommandList7_IASetVertexBuffers(ID3D12GraphicsCommandList7* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
24174 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
24175}
24176static inline void ID3D12GraphicsCommandList7_SOSetTargets(ID3D12GraphicsCommandList7* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
24177 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
24178}
24179static inline void ID3D12GraphicsCommandList7_OMSetRenderTargets(ID3D12GraphicsCommandList7* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
24180 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
24181}
24182static inline void ID3D12GraphicsCommandList7_ClearDepthStencilView(ID3D12GraphicsCommandList7* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
24183 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
24184}
24185static inline void ID3D12GraphicsCommandList7_ClearRenderTargetView(ID3D12GraphicsCommandList7* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
24186 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
24187}
24188static inline void ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList7* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
24189 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
24190}
24191static inline void ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList7* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
24192 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
24193}
24194static inline void ID3D12GraphicsCommandList7_DiscardResource(ID3D12GraphicsCommandList7* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
24195 This->lpVtbl->DiscardResource(This,resource,region);
24196}
24197static inline void ID3D12GraphicsCommandList7_BeginQuery(ID3D12GraphicsCommandList7* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
24198 This->lpVtbl->BeginQuery(This,heap,type,index);
24199}
24200static inline void ID3D12GraphicsCommandList7_EndQuery(ID3D12GraphicsCommandList7* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
24201 This->lpVtbl->EndQuery(This,heap,type,index);
24202}
24203static inline void ID3D12GraphicsCommandList7_ResolveQueryData(ID3D12GraphicsCommandList7* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
24204 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
24205}
24206static inline void ID3D12GraphicsCommandList7_SetPredication(ID3D12GraphicsCommandList7* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
24207 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
24208}
24209static inline void ID3D12GraphicsCommandList7_SetMarker(ID3D12GraphicsCommandList7* This,UINT metadata,const void *data,UINT size) {
24210 This->lpVtbl->SetMarker(This,metadata,data,size);
24211}
24212static inline void ID3D12GraphicsCommandList7_BeginEvent(ID3D12GraphicsCommandList7* This,UINT metadata,const void *data,UINT size) {
24213 This->lpVtbl->BeginEvent(This,metadata,data,size);
24214}
24215static inline void ID3D12GraphicsCommandList7_EndEvent(ID3D12GraphicsCommandList7* This) {
24216 This->lpVtbl->EndEvent(This);
24217}
24218static inline void ID3D12GraphicsCommandList7_ExecuteIndirect(ID3D12GraphicsCommandList7* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
24219 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
24220}
24221/*** ID3D12GraphicsCommandList1 methods ***/
24222static inline void ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
24223 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
24224}
24225static inline void ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
24226 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
24227}
24228static inline void ID3D12GraphicsCommandList7_OMSetDepthBounds(ID3D12GraphicsCommandList7* This,FLOAT min,FLOAT max) {
24229 This->lpVtbl->OMSetDepthBounds(This,min,max);
24230}
24231static inline void ID3D12GraphicsCommandList7_SetSamplePositions(ID3D12GraphicsCommandList7* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
24232 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
24233}
24234static inline void ID3D12GraphicsCommandList7_ResolveSubresourceRegion(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
24235 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
24236}
24237static inline void ID3D12GraphicsCommandList7_SetViewInstanceMask(ID3D12GraphicsCommandList7* This,UINT mask) {
24238 This->lpVtbl->SetViewInstanceMask(This,mask);
24239}
24240/*** ID3D12GraphicsCommandList2 methods ***/
24241static inline void ID3D12GraphicsCommandList7_WriteBufferImmediate(ID3D12GraphicsCommandList7* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
24242 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
24243}
24244/*** ID3D12GraphicsCommandList3 methods ***/
24245static inline void ID3D12GraphicsCommandList7_SetProtectedResourceSession(ID3D12GraphicsCommandList7* This,ID3D12ProtectedResourceSession *protected_resource_session) {
24246 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
24247}
24248/*** ID3D12GraphicsCommandList4 methods ***/
24249static inline void ID3D12GraphicsCommandList7_BeginRenderPass(ID3D12GraphicsCommandList7* This,UINT render_targets_count,const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,D3D12_RENDER_PASS_FLAGS flags) {
24250 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags);
24251}
24252static inline void ID3D12GraphicsCommandList7_EndRenderPass(ID3D12GraphicsCommandList7* This) {
24253 This->lpVtbl->EndRenderPass(This);
24254}
24255static inline void ID3D12GraphicsCommandList7_InitializeMetaCommand(ID3D12GraphicsCommandList7* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) {
24256 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes);
24257}
24258static inline void ID3D12GraphicsCommandList7_ExecuteMetaCommand(ID3D12GraphicsCommandList7* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) {
24259 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes);
24260}
24261static inline void ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(ID3D12GraphicsCommandList7* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,UINT postbuild_info_descs_count,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) {
24262 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs);
24263}
24264static inline void ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(ID3D12GraphicsCommandList7* This,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,UINT src_acceleration_structures_count,const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) {
24265 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data);
24266}
24267static inline void ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(ID3D12GraphicsCommandList7* This,D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) {
24268 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode);
24269}
24270static inline void ID3D12GraphicsCommandList7_SetPipelineState1(ID3D12GraphicsCommandList7* This,ID3D12StateObject *state_object) {
24271 This->lpVtbl->SetPipelineState1(This,state_object);
24272}
24273static inline void ID3D12GraphicsCommandList7_DispatchRays(ID3D12GraphicsCommandList7* This,const D3D12_DISPATCH_RAYS_DESC *desc) {
24274 This->lpVtbl->DispatchRays(This,desc);
24275}
24276/*** ID3D12GraphicsCommandList5 methods ***/
24277static inline void ID3D12GraphicsCommandList7_RSSetShadingRate(ID3D12GraphicsCommandList7* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) {
24278 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners);
24279}
24280static inline void ID3D12GraphicsCommandList7_RSSetShadingRateImage(ID3D12GraphicsCommandList7* This,ID3D12Resource *shading_rate_image) {
24281 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image);
24282}
24283/*** ID3D12GraphicsCommandList6 methods ***/
24284static inline void ID3D12GraphicsCommandList7_DispatchMesh(ID3D12GraphicsCommandList7* This,UINT thread_group_count_x,UINT thread_group_count_y,UINT thread_group_count_z) {
24285 This->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z);
24286}
24287/*** ID3D12GraphicsCommandList7 methods ***/
24288static inline void ID3D12GraphicsCommandList7_Barrier(ID3D12GraphicsCommandList7* This,UINT32 barrier_groups_count,const D3D12_BARRIER_GROUP *barrier_groups) {
24289 This->lpVtbl->Barrier(This,barrier_groups_count,barrier_groups);
24290}
24291#endif
24292#endif
24293
24294#endif
24295
24296
24297#endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */
24298
24299#ifndef D3D12_IGNORE_SDK_LAYERS
24300#include "d3d12sdklayers.h"
24301#endif
24302typedef HRESULT (__stdcall *PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
24303HRESULT __stdcall D3D12CreateRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
24304
24305typedef HRESULT (__stdcall *PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
24306HRESULT __stdcall D3D12CreateVersionedRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
24307
24308typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,D3D_ROOT_SIGNATURE_VERSION version,ID3DBlob **blob,ID3DBlob **error_blob);
24309HRESULT __stdcall D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,D3D_ROOT_SIGNATURE_VERSION version,ID3DBlob **blob,ID3DBlob **error_blob);
24310
24311typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,ID3DBlob **blob,ID3DBlob **error_blob);
24312HRESULT __stdcall D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc,ID3DBlob **blob,ID3DBlob **error_blob);
24313
24314typedef HRESULT (__stdcall *PFN_D3D12_CREATE_DEVICE)(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device);
24315HRESULT __stdcall D3D12CreateDevice(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device);
24316
24317typedef HRESULT (__stdcall *PFN_D3D12_GET_DEBUG_INTERFACE)(REFIID iid,void **debug);
24318HRESULT __stdcall D3D12GetDebugInterface(REFIID iid,void **debug);
24319
24320HRESULT __stdcall D3D12EnableExperimentalFeatures(UINT feature_count,const IID *iids,void *configurations,UINT *configurations_sizes);
24321
24322static const UUID D3D12ExperimentalShaderModels = { 0x76f5573e, 0xf13a, 0x40f5, { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f } };
24323static const UUID D3D12TiledResourceTier4 = { 0xc9c4725f, 0xa81a, 0x4f56, { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb } };
24324static const UUID D3D12MetaCommand = { 0xc734c97e, 0x8077, 0x48c8, { 0x9f, 0xdc, 0xd9, 0xd1, 0xdd, 0x31, 0xdd, 0x77 } };
24325typedef HRESULT (__stdcall *PFN_D3D12_GET_INTERFACE)(REFCLSID clsid,REFIID iid,void **debug);
24326HRESULT __stdcall D3D12GetInterface(REFCLSID clsid,REFIID iid,void **debug);
24327
24328/* Begin additional prototypes for all interfaces */
24329
24330
24331/* End additional prototypes */
24332
24333#ifdef __cplusplus
24334}
24335#endif
24336
24337#endif /* __d3d12_h__ */