1/*** Autogenerated by WIDL 11.6 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 __ID3D12SDKConfiguration1_FWD_DEFINED__
470#define __ID3D12SDKConfiguration1_FWD_DEFINED__
471typedef interface ID3D12SDKConfiguration1 ID3D12SDKConfiguration1;
472#ifdef __cplusplus
473interface ID3D12SDKConfiguration1;
474#endif /* __cplusplus */
475#endif
476
477#ifndef __ID3D12DeviceFactory_FWD_DEFINED__
478#define __ID3D12DeviceFactory_FWD_DEFINED__
479typedef interface ID3D12DeviceFactory ID3D12DeviceFactory;
480#ifdef __cplusplus
481interface ID3D12DeviceFactory;
482#endif /* __cplusplus */
483#endif
484
485#ifndef __ID3D12DeviceConfiguration_FWD_DEFINED__
486#define __ID3D12DeviceConfiguration_FWD_DEFINED__
487typedef interface ID3D12DeviceConfiguration ID3D12DeviceConfiguration;
488#ifdef __cplusplus
489interface ID3D12DeviceConfiguration;
490#endif /* __cplusplus */
491#endif
492
493#ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__
494#define __ID3D12GraphicsCommandList5_FWD_DEFINED__
495typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5;
496#ifdef __cplusplus
497interface ID3D12GraphicsCommandList5;
498#endif /* __cplusplus */
499#endif
500
501#ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__
502#define __ID3D12GraphicsCommandList6_FWD_DEFINED__
503typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6;
504#ifdef __cplusplus
505interface ID3D12GraphicsCommandList6;
506#endif /* __cplusplus */
507#endif
508
509#ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__
510#define __ID3D12GraphicsCommandList7_FWD_DEFINED__
511typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7;
512#ifdef __cplusplus
513interface ID3D12GraphicsCommandList7;
514#endif /* __cplusplus */
515#endif
516
517/* Headers for imported files */
518
519#include <oaidl.h>
520#include <ocidl.h>
521#include <dxgi.h>
522#include <d3dcommon.h>
523
524#ifdef __cplusplus
525extern "C" {
526#endif
527
528#ifndef _D3D12_CONSTANTS
529#define _D3D12_CONSTANTS
530#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE (0xffff)
531
532#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE (0xffffffff)
533
534#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE (0xff)
535
536#define D3D12_APPEND_ALIGNED_ELEMENT (0xffffffff)
537
538#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT (9)
539
540#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT (8)
541
542#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT (2)
543
544#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14)
545
546#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4)
547
548#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32)
549
550#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15)
551
552#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT (16)
553
554#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
555
556#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
557
558#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
559
560#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
561
562#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
563
564#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
565
566#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1)
567
568#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
569
570#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
571
572#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32)
573
574#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1)
575
576#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
577
578#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1)
579
580#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1)
581
582#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128)
583
584#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1)
585
586#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT (16)
587
588#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1)
589
590#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1)
591
592#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
593
594#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
595
596#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4)
597
598#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32)
599
600#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
601
602#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3)
603
604#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3)
605
606#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10)
607
608#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10)
609
610#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8)
611
612#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7)
613
614#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT (256)
615
616#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (256)
617
618#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP (64)
619
620#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (240)
621
622#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP (68)
623
624#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (224)
625
626#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP (72)
627
628#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (208)
629
630#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP (76)
631
632#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (192)
633
634#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP (84)
635
636#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (176)
637
638#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP (92)
639
640#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (160)
641
642#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP (100)
643
644#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (144)
645
646#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP (112)
647
648#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (128)
649
650#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP (128)
651
652#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (112)
653
654#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP (144)
655
656#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (96)
657
658#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP (168)
659
660#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (80)
661
662#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP (204)
663
664#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (64)
665
666#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP (256)
667
668#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (48)
669
670#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP (340)
671
672#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (32)
673
674#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP (512)
675
676#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (16)
677
678#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP (768)
679
680#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION (1)
681
682#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT (256)
683
684#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP (768)
685
686#define D3D12_CS_4_X_THREAD_GROUP_MAX_X (768)
687
688#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y (768)
689
690#define D3D12_CS_4_X_UAV_REGISTER_COUNT (1)
691
692#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535)
693
694#define D3D12_CS_TGSM_REGISTER_COUNT (8192)
695
696#define D3D12_CS_TGSM_REGISTER_READS_PER_INST (1)
697
698#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS (1)
699
700#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS (1)
701
702#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS (3)
703
704#define D3D12_CS_THREADGROUPID_REGISTER_COUNT (1)
705
706#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS (1)
707
708#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT (1)
709
710#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS (3)
711
712#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT (1)
713
714#define D3D12_CS_THREADID_REGISTER_COMPONENTS (3)
715
716#define D3D12_CS_THREADID_REGISTER_COUNT (1)
717
718#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP (1024)
719
720#define D3D12_CS_THREAD_GROUP_MAX_X (1024)
721
722#define D3D12_CS_THREAD_GROUP_MAX_Y (1024)
723
724#define D3D12_CS_THREAD_GROUP_MAX_Z (64)
725
726#define D3D12_CS_THREAD_GROUP_MIN_X (1)
727
728#define D3D12_CS_THREAD_GROUP_MIN_Y (1)
729
730#define D3D12_CS_THREAD_GROUP_MIN_Z (1)
731
732#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL (16384)
733
734#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)
735#define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f)
736#define D3D12_DEFAULT_BLEND_FACTOR_GREEN (1.0f)
737#define D3D12_DEFAULT_BLEND_FACTOR_RED (1.0f)
738#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT (0.0f)
739#define D3D12_DEFAULT_DEPTH_BIAS (0)
740
741#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP (0.0f)
742#define D3D12_DEFAULT_MAX_ANISOTROPY (16)
743
744#define D3D12_DEFAULT_MIP_LOD_BIAS (0.0f)
745#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (4194304)
746
747#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX (0)
748
749#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT (65536)
750
751#define D3D12_DEFAULT_SAMPLE_MASK (0xffffffff)
752
753#define D3D12_DEFAULT_SCISSOR_ENDX (0)
754
755#define D3D12_DEFAULT_SCISSOR_ENDY (0)
756
757#define D3D12_DEFAULT_SCISSOR_STARTX (0)
758
759#define D3D12_DEFAULT_SCISSOR_STARTY (0)
760
761#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.0f)
762#define D3D12_DEFAULT_STENCIL_READ_MASK (0xff)
763
764#define D3D12_DEFAULT_STENCIL_REFERENCE (0)
765
766#define D3D12_DEFAULT_STENCIL_WRITE_MASK (0xff)
767
768#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX (0)
769
770#define D3D12_DEFAULT_VIEWPORT_HEIGHT (0)
771
772#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH (0.0f)
773#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH (0.0f)
774#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX (0)
775
776#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY (0)
777
778#define D3D12_DEFAULT_VIEWPORT_WIDTH (0)
779
780#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND (0xffffffff)
781
782#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END (0xfffffff7)
783
784#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff0)
785
786#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS (3968)
787
788#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS (4)
789
790#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
791
792#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32)
793
794#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST (2)
795
796#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS (1)
797
798#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS (3)
799
800#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
801
802#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT (1)
803
804#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST (2)
805
806#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS (1)
807
808#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS (4)
809
810#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT (32)
811
812#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
813
814#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST (2)
815
816#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS (1)
817
818#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS (1)
819
820#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
821
822#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT (1)
823
824#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST (2)
825
826#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS (1)
827
828#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS (4)
829
830#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
831
832#define D3D12_DS_OUTPUT_REGISTER_COUNT (32)
833
834#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP (0.6)
835#define D3D12_FLOAT32_MAX (3.402823466e+38f)
836#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)
837#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR (2.4f)
838#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR (1.0f)
839#define D3D12_FLOAT_TO_SRGB_OFFSET (0.055f)
840#define D3D12_FLOAT_TO_SRGB_SCALE_1 (12.92f)
841#define D3D12_FLOAT_TO_SRGB_SCALE_2 (1.055f)
842#define D3D12_FLOAT_TO_SRGB_THRESHOLD (0.0031308f)
843#define D3D12_FTOI_INSTRUCTION_MAX_INPUT (2147483647.999f)
844#define D3D12_FTOI_INSTRUCTION_MIN_INPUT (-2147483648.999f)
845#define D3D12_FTOU_INSTRUCTION_MAX_INPUT (4294967295.999f)
846#define D3D12_FTOU_INSTRUCTION_MIN_INPUT (0.0f)
847#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST (2)
848
849#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS (1)
850
851#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS (1)
852
853#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
854
855#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT (1)
856
857#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS (1)
858
859#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT (32)
860
861#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT (1)
862
863#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST (2)
864
865#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS (1)
866
867#define D3D12_GS_INPUT_REGISTER_COMPONENTS (4)
868
869#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
870
871#define D3D12_GS_INPUT_REGISTER_COUNT (32)
872
873#define D3D12_GS_INPUT_REGISTER_READS_PER_INST (2)
874
875#define D3D12_GS_INPUT_REGISTER_READ_PORTS (1)
876
877#define D3D12_GS_INPUT_REGISTER_VERTICES (32)
878
879#define D3D12_GS_MAX_INSTANCE_COUNT (32)
880
881#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES (1024)
882
883#define D3D12_GS_OUTPUT_ELEMENTS (32)
884
885#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS (4)
886
887#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
888
889#define D3D12_GS_OUTPUT_REGISTER_COUNT (32)
890
891#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32)
892
893#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32)
894
895#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS (4)
896
897#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
898
899#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST (2)
900
901#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS (1)
902
903#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND (0xffffffff)
904
905#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS (1)
906
907#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
908
909#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT (1)
910
911#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST (2)
912
913#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS (1)
914
915#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS (1)
916
917#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
918
919#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT (1)
920
921#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST (2)
922
923#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS (1)
924
925#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS (1)
926
927#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT (32)
928
929#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT (1)
930
931#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST (2)
932
933#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS (1)
934
935#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND (0xffffffff)
936
937#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND (1.0f)
938#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND (64.0f)
939#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS (3968)
940
941#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS (1)
942
943#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT (32)
944
945#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT (1)
946
947#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST (2)
948
949#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS (1)
950
951#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS (4)
952
953#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT (32)
954
955#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
956
957#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST (2)
958
959#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS (1)
960
961#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS (128)
962
963#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0)
964
965#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0)
966
967#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0)
968
969#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
970
971#define D3D12_IA_INSTANCE_ID_BIT_COUNT (32)
972
973#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT (32)
974
975#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT (32)
976
977#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT (32)
978
979#define D3D12_IA_VERTEX_ID_BIT_COUNT (32)
980
981#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
982
983#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (128)
984
985#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (32)
986
987#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT (0xffffffff)
988
989#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER (0xffffffff)
990
991#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL (0xffffffff)
992
993#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS (0xffffffff)
994
995#define D3D12_LINEAR_GAMMA (1.0f)
996#define D3D12_MAJOR_VERSION (12)
997
998#define D3D12_MAX_BORDER_COLOR_COMPONENT (1.0f)
999#define D3D12_MAX_DEPTH (1.0f)
1000#define D3D12_MAX_LIVE_STATIC_SAMPLERS (2032)
1001
1002#define D3D12_MAX_MAXANISOTROPY (16)
1003
1004#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
1005
1006#define D3D12_MAX_POSITION_VALUE (3.402823466e+34f)
1007#define D3D12_MAX_ROOT_COST (64)
1008
1009#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 (1000000)
1010
1011#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 (1000000)
1012
1013#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE (2048)
1014
1015#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP (17)
1016
1017#define D3D12_MAX_VIEW_INSTANCE_COUNT (4)
1018
1019#define D3D12_MINOR_VERSION (0)
1020
1021#define D3D12_MIN_BORDER_COLOR_COMPONENT (0.0f)
1022#define D3D12_MIN_DEPTH (0.0f)
1023#define D3D12_MIN_MAXANISOTROPY (0)
1024
1025#define D3D12_MIP_LOD_BIAS_MAX (15.99f)
1026#define D3D12_MIP_LOD_BIAS_MIN (-16.0f)
1027#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT (8)
1028
1029#define D3D12_MIP_LOD_RANGE_BIT_COUNT (8)
1030
1031#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH (1.4f)
1032#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT (0)
1033
1034#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END (0xffffffff)
1035
1036#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff8)
1037
1038#define D3D12_PACKED_TILE (0xffffffff)
1039
1040#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT (15)
1041
1042#define D3D12_PREVIEW_SDK_VERSION (702)
1043
1044#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT (16)
1045
1046#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS (1)
1047
1048#define D3D12_PS_CS_UAV_REGISTER_COUNT (8)
1049
1050#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST (1)
1051
1052#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS (1)
1053
1054#define D3D12_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff)
1055
1056#define D3D12_PS_FRONTFACING_FALSE_VALUE (0x0)
1057
1058#define D3D12_PS_FRONTFACING_TRUE_VALUE (0xffffffff)
1059
1060#define D3D12_PS_INPUT_REGISTER_COMPONENTS (4)
1061
1062#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
1063
1064#define D3D12_PS_INPUT_REGISTER_COUNT (32)
1065
1066#define D3D12_PS_INPUT_REGISTER_READS_PER_INST (2)
1067
1068#define D3D12_PS_INPUT_REGISTER_READ_PORTS (1)
1069
1070#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.0f)
1071#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1)
1072
1073#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32)
1074
1075#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
1076
1077#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS (1)
1078
1079#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT (32)
1080
1081#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT (1)
1082
1083#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS (4)
1084
1085#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
1086
1087#define D3D12_PS_OUTPUT_REGISTER_COUNT (8)
1088
1089#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.5f)
1090#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT (16)
1091
1092#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT (8)
1093
1094#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT (256)
1095
1096#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT (16)
1097
1098#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES (32)
1099
1100#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH (31)
1101
1102#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE (16777216)
1103
1104#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE (16777216)
1105
1106#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE (536870912)
1107
1108#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS (1073741824)
1109
1110#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE (4096)
1111
1112#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT (32)
1113
1114#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT (64)
1115
1116#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT (16)
1117
1118#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
1119
1120#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27)
1121
1122#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
1123
1124#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
1125
1126#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32)
1127
1128#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32)
1129
1130#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384)
1131
1132#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024)
1133
1134#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
1135
1136#define D3D12_REQ_MAXANISOTROPY (16)
1137
1138#define D3D12_REQ_MIP_LEVELS (15)
1139
1140#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048)
1141
1142#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
1143
1144#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (16384)
1145
1146#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
1147
1148#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0.25f)
1149#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048)
1150
1151#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (20)
1152
1153#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
1154
1155#define D3D12_REQ_SUBRESOURCES (30720)
1156
1157#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048)
1158
1159#define D3D12_REQ_TEXTURE1D_U_DIMENSION (16384)
1160
1161#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048)
1162
1163#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
1164
1165#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
1166
1167#define D3D12_REQ_TEXTURECUBE_DIMENSION (16384)
1168
1169#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0)
1170
1171#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES (0xffffffff)
1172
1173#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT (2)
1174
1175#define D3D12_SDK_VERSION (602)
1176
1177#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES (32)
1178
1179#define D3D12_SHADER_MAJOR_VERSION (5)
1180
1181#define D3D12_SHADER_MAX_INSTANCES (65535)
1182
1183#define D3D12_SHADER_MAX_INTERFACES (253)
1184
1185#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES (4096)
1186
1187#define D3D12_SHADER_MAX_TYPES (65535)
1188
1189#define D3D12_SHADER_MINOR_VERSION (1)
1190
1191#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE (0)
1192
1193#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5)
1194
1195#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
1196
1197#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (65536)
1198
1199#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT (4096)
1200
1201#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
1202
1203#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (512)
1204
1205#define D3D12_SO_BUFFER_SLOT_COUNT (4)
1206
1207#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
1208
1209#define D3D12_SO_NO_RASTERIZED_STREAM (0xffffffff)
1210
1211#define D3D12_SO_OUTPUT_COMPONENT_COUNT (128)
1212
1213#define D3D12_SO_STREAM_COUNT (4)
1214
1215#define D3D12_SPEC_DATE_DAY (14)
1216
1217#define D3D12_SPEC_DATE_MONTH (11)
1218
1219#define D3D12_SPEC_DATE_YEAR (2014)
1220
1221#define D3D12_SPEC_VERSION (1.16)
1222#define D3D12_SRGB_GAMMA (2.2f)
1223#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 (12.92f)
1224#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 (1.055f)
1225#define D3D12_SRGB_TO_FLOAT_EXPONENT (2.4f)
1226#define D3D12_SRGB_TO_FLOAT_OFFSET (0.055f)
1227#define D3D12_SRGB_TO_FLOAT_THRESHOLD (0.04045f)
1228#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.5f)
1229#define D3D12_STANDARD_COMPONENT_BIT_COUNT (32)
1230
1231#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64)
1232
1233#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
1234
1235#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT (128)
1236
1237#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT (32)
1238
1239#define D3D12_STANDARD_VECTOR_SIZE (4)
1240
1241#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT (32)
1242
1243#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64)
1244
1245#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT (8)
1246
1247#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT (8)
1248
1249#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END (0xffffffff)
1250
1251#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff0)
1252
1253#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR (64)
1254
1255#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR (64)
1256
1257#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR (63)
1258
1259#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR (64)
1260
1261#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR (2)
1262
1263#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR (1)
1264
1265#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR (1)
1266
1267#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT (16)
1268
1269#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT (256)
1270
1271#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT (512)
1272
1273#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES (65536)
1274
1275#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES (32)
1276
1277#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT (4096)
1278
1279#define D3D12_UAV_SLOT_COUNT (64)
1280
1281#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT (0)
1282
1283#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS (10)
1284
1285#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS (4)
1286
1287#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT (256)
1288
1289#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT (256)
1290
1291#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN (0xffffffff)
1292
1293#define D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX (0xff)
1294
1295#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS (64)
1296
1297#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS (64)
1298
1299#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN (9)
1300
1301#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM (8)
1302
1303#define D3D12_VIDEO_PROCESS_MAX_FILTERS (32)
1304
1305#define D3D12_VIDEO_PROCESS_STEREO_VIEWS (2)
1306
1307#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX (15)
1308
1309#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
1310
1311#define D3D12_VIEWPORT_BOUNDS_MAX (32767)
1312
1313#define D3D12_VIEWPORT_BOUNDS_MIN (-32768)
1314
1315#define D3D12_VS_INPUT_REGISTER_COMPONENTS (4)
1316
1317#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
1318
1319#define D3D12_VS_INPUT_REGISTER_COUNT (32)
1320
1321#define D3D12_VS_INPUT_REGISTER_READS_PER_INST (2)
1322
1323#define D3D12_VS_INPUT_REGISTER_READ_PORTS (1)
1324
1325#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS (4)
1326
1327#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
1328
1329#define D3D12_VS_OUTPUT_REGISTER_COUNT (32)
1330
1331#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT (10)
1332
1333#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (25)
1334
1335#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP (25)
1336
1337#endif
1338#define D3D12_SHADER_COMPONENT_MAPPING_MASK (0x7)
1339
1340#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT (3)
1341
1342#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1 << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 4))
1343
1344typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT {
1345 D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0,
1346 D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
1347 D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
1348} D3D12_SHADER_MIN_PRECISION_SUPPORT;
1349DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_MIN_PRECISION_SUPPORT);
1350typedef enum D3D12_TILED_RESOURCES_TIER {
1351 D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
1352 D3D12_TILED_RESOURCES_TIER_1 = 1,
1353 D3D12_TILED_RESOURCES_TIER_2 = 2,
1354 D3D12_TILED_RESOURCES_TIER_3 = 3
1355} D3D12_TILED_RESOURCES_TIER;
1356typedef enum D3D12_RESOURCE_BINDING_TIER {
1357 D3D12_RESOURCE_BINDING_TIER_1 = 1,
1358 D3D12_RESOURCE_BINDING_TIER_2 = 2,
1359 D3D12_RESOURCE_BINDING_TIER_3 = 3
1360} D3D12_RESOURCE_BINDING_TIER;
1361typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER {
1362 D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
1363 D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
1364 D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
1365 D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
1366} D3D12_CONSERVATIVE_RASTERIZATION_TIER;
1367typedef enum D3D12_CROSS_NODE_SHARING_TIER {
1368 D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
1369 D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
1370 D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
1371 D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
1372 D3D12_CROSS_NODE_SHARING_TIER_3 = 4
1373} D3D12_CROSS_NODE_SHARING_TIER;
1374typedef enum D3D12_RESOURCE_HEAP_TIER {
1375 D3D12_RESOURCE_HEAP_TIER_1 = 1,
1376 D3D12_RESOURCE_HEAP_TIER_2 = 2
1377} D3D12_RESOURCE_HEAP_TIER;
1378typedef enum D3D12_FORMAT_SUPPORT1 {
1379 D3D12_FORMAT_SUPPORT1_NONE = 0x0,
1380 D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
1381 D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
1382 D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
1383 D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
1384 D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
1385 D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
1386 D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
1387 D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
1388 D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
1389 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
1390 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
1391 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
1392 D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
1393 D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
1394 D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
1395 D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
1396 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
1397 D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
1398 D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
1399 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
1400 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
1401 D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
1402 D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
1403 D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
1404 D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
1405 D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
1406 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
1407 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
1408 D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
1409} D3D12_FORMAT_SUPPORT1;
1410DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT1);
1411typedef enum D3D12_FORMAT_SUPPORT2 {
1412 D3D12_FORMAT_SUPPORT2_NONE = 0x0,
1413 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
1414 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
1415 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
1416 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
1417 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
1418 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
1419 D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
1420 D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
1421 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
1422 D3D12_FORMAT_SUPPORT2_TILED = 0x200,
1423 D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
1424 D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000
1425} D3D12_FORMAT_SUPPORT2;
1426DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT2);
1427typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE {
1428 D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0,
1429 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
1430 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
1431} D3D12_WRITEBUFFERIMMEDIATE_MODE;
1432typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {
1433 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0x0,
1434 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 0x1,
1435 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 0x2
1436} D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
1437typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS {
1438 D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0,
1439 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
1440 D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
1441 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
1442 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
1443 D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
1444 D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20,
1445 D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40
1446} D3D12_SHADER_CACHE_SUPPORT_FLAGS;
1447DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_SUPPORT_FLAGS);
1448typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS {
1449 D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x0,
1450 D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 0x1,
1451 D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 0x2,
1452 D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 0x4,
1453 D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 0x8,
1454 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 0x10,
1455 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 0x20,
1456 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 0x40
1457} D3D12_COMMAND_LIST_SUPPORT_FLAGS;
1458DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_SUPPORT_FLAGS);
1459typedef enum D3D12_VIEW_INSTANCING_TIER {
1460 D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0x0,
1461 D3D12_VIEW_INSTANCING_TIER_1 = 0x1,
1462 D3D12_VIEW_INSTANCING_TIER_2 = 0x2,
1463 D3D12_VIEW_INSTANCING_TIER_3 = 0x3
1464} D3D12_VIEW_INSTANCING_TIER;
1465typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
1466 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0x0,
1467 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = 0x1,
1468 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = 0x2
1469} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
1470typedef struct D3D12_FEATURE_DATA_DISPLAYABLE {
1471 WINBOOL DisplayableTexture;
1472 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
1473} D3D12_FEATURE_DATA_DISPLAYABLE;
1474typedef enum D3D12_HEAP_SERIALIZATION_TIER {
1475 D3D12_HEAP_SERIALIZATION_TIER_0 = 0x0,
1476 D3D12_HEAP_SERIALIZATION_TIER_10 = 0xa
1477} D3D12_HEAP_SERIALIZATION_TIER;
1478typedef enum D3D12_RENDER_PASS_TIER {
1479 D3D12_RENDER_PASS_TIER_0 = 0x0,
1480 D3D12_RENDER_PASS_TIER_1 = 0x1,
1481 D3D12_RENDER_PASS_TIER_2 = 0x2
1482} D3D12_RENDER_PASS_TIER;
1483typedef enum D3D12_RAYTRACING_TIER {
1484 D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0x0,
1485 D3D12_RAYTRACING_TIER_1_0 = 0xa,
1486 D3D12_RAYTRACING_TIER_1_1 = 0xb
1487} D3D12_RAYTRACING_TIER;
1488typedef enum D3D12_RESIDENCY_FLAGS {
1489 D3D12_RESIDENCY_FLAG_NONE = 0x0,
1490 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1
1491} D3D12_RESIDENCY_FLAGS;
1492DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESIDENCY_FLAGS);
1493#ifndef __ID3D12Fence_FWD_DEFINED__
1494#define __ID3D12Fence_FWD_DEFINED__
1495typedef interface ID3D12Fence ID3D12Fence;
1496#ifdef __cplusplus
1497interface ID3D12Fence;
1498#endif /* __cplusplus */
1499#endif
1500
1501#ifndef __ID3D12RootSignature_FWD_DEFINED__
1502#define __ID3D12RootSignature_FWD_DEFINED__
1503typedef interface ID3D12RootSignature ID3D12RootSignature;
1504#ifdef __cplusplus
1505interface ID3D12RootSignature;
1506#endif /* __cplusplus */
1507#endif
1508
1509#ifndef __ID3D12Heap_FWD_DEFINED__
1510#define __ID3D12Heap_FWD_DEFINED__
1511typedef interface ID3D12Heap ID3D12Heap;
1512#ifdef __cplusplus
1513interface ID3D12Heap;
1514#endif /* __cplusplus */
1515#endif
1516
1517#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
1518#define __ID3D12DescriptorHeap_FWD_DEFINED__
1519typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
1520#ifdef __cplusplus
1521interface ID3D12DescriptorHeap;
1522#endif /* __cplusplus */
1523#endif
1524
1525#ifndef __ID3D12Resource_FWD_DEFINED__
1526#define __ID3D12Resource_FWD_DEFINED__
1527typedef interface ID3D12Resource ID3D12Resource;
1528#ifdef __cplusplus
1529interface ID3D12Resource;
1530#endif /* __cplusplus */
1531#endif
1532
1533#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
1534#define __ID3D12CommandAllocator_FWD_DEFINED__
1535typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
1536#ifdef __cplusplus
1537interface ID3D12CommandAllocator;
1538#endif /* __cplusplus */
1539#endif
1540
1541#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
1542#define __ID3D12GraphicsCommandList_FWD_DEFINED__
1543typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
1544#ifdef __cplusplus
1545interface ID3D12GraphicsCommandList;
1546#endif /* __cplusplus */
1547#endif
1548
1549#ifndef __ID3D12CommandQueue_FWD_DEFINED__
1550#define __ID3D12CommandQueue_FWD_DEFINED__
1551typedef interface ID3D12CommandQueue ID3D12CommandQueue;
1552#ifdef __cplusplus
1553interface ID3D12CommandQueue;
1554#endif /* __cplusplus */
1555#endif
1556
1557#ifndef __ID3D12PipelineState_FWD_DEFINED__
1558#define __ID3D12PipelineState_FWD_DEFINED__
1559typedef interface ID3D12PipelineState ID3D12PipelineState;
1560#ifdef __cplusplus
1561interface ID3D12PipelineState;
1562#endif /* __cplusplus */
1563#endif
1564
1565#ifndef __ID3D12Device_FWD_DEFINED__
1566#define __ID3D12Device_FWD_DEFINED__
1567typedef interface ID3D12Device ID3D12Device;
1568#ifdef __cplusplus
1569interface ID3D12Device;
1570#endif /* __cplusplus */
1571#endif
1572
1573typedef RECT D3D12_RECT;
1574typedef struct D3D12_BOX {
1575 UINT left;
1576 UINT top;
1577 UINT front;
1578 UINT right;
1579 UINT bottom;
1580 UINT back;
1581} D3D12_BOX;
1582typedef struct D3D12_VIEWPORT {
1583 FLOAT TopLeftX;
1584 FLOAT TopLeftY;
1585 FLOAT Width;
1586 FLOAT Height;
1587 FLOAT MinDepth;
1588 FLOAT MaxDepth;
1589} D3D12_VIEWPORT;
1590typedef struct D3D12_RANGE {
1591 SIZE_T Begin;
1592 SIZE_T End;
1593} D3D12_RANGE;
1594typedef struct D3D12_RANGE_UINT64 {
1595 UINT64 Begin;
1596 UINT64 End;
1597} D3D12_RANGE_UINT64;
1598typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 {
1599 UINT Subresource;
1600 D3D12_RANGE_UINT64 Range;
1601} D3D12_SUBRESOURCE_RANGE_UINT64;
1602typedef struct D3D12_SUBRESOURCE_INFO {
1603 UINT64 Offset;
1604 UINT RowPitch;
1605 UINT DepthPitch;
1606} D3D12_SUBRESOURCE_INFO;
1607typedef struct D3D12_RESOURCE_ALLOCATION_INFO {
1608 UINT64 SizeInBytes;
1609 UINT64 Alignment;
1610} D3D12_RESOURCE_ALLOCATION_INFO;
1611typedef struct D3D12_RESOURCE_ALLOCATION_INFO1 {
1612 UINT64 Offset;
1613 UINT64 Alignment;
1614 UINT64 SizeInBytes;
1615} D3D12_RESOURCE_ALLOCATION_INFO1;
1616typedef struct D3D12_DRAW_ARGUMENTS {
1617 UINT VertexCountPerInstance;
1618 UINT InstanceCount;
1619 UINT StartVertexLocation;
1620 UINT StartInstanceLocation;
1621} D3D12_DRAW_ARGUMENTS;
1622typedef struct D3D12_DRAW_INDEXED_ARGUMENTS {
1623 UINT IndexCountPerInstance;
1624 UINT InstanceCount;
1625 UINT StartIndexLocation;
1626 INT BaseVertexLocation;
1627 UINT StartInstanceLocation;
1628} D3D12_DRAW_INDEXED_ARGUMENTS;
1629typedef struct D3D12_DISPATCH_ARGUMENTS {
1630 UINT ThreadGroupCountX;
1631 UINT ThreadGroupCountY;
1632 UINT ThreadGroupCountZ;
1633} D3D12_DISPATCH_ARGUMENTS;
1634typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS {
1635 WINBOOL DoublePrecisionFloatShaderOps;
1636 WINBOOL OutputMergerLogicOp;
1637 D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
1638 D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
1639 D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
1640 WINBOOL PSSpecifiedStencilRefSupported;
1641 WINBOOL TypedUAVLoadAdditionalFormats;
1642 WINBOOL ROVsSupported;
1643 D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
1644 UINT MaxGPUVirtualAddressBitsPerResource;
1645 WINBOOL StandardSwizzle64KBSupported;
1646 D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
1647 WINBOOL CrossAdapterRowMajorTextureSupported;
1648 WINBOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
1649 D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
1650} D3D12_FEATURE_DATA_D3D12_OPTIONS;
1651typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT {
1652 DXGI_FORMAT Format;
1653 D3D12_FORMAT_SUPPORT1 Support1;
1654 D3D12_FORMAT_SUPPORT2 Support2;
1655} D3D12_FEATURE_DATA_FORMAT_SUPPORT;
1656typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
1657 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0x0,
1658 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
1659} D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
1660DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS);
1661typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
1662 DXGI_FORMAT Format;
1663 UINT SampleCount;
1664 D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
1665 UINT NumQualityLevels;
1666} D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
1667typedef enum D3D12_HEAP_TYPE {
1668 D3D12_HEAP_TYPE_DEFAULT = 1,
1669 D3D12_HEAP_TYPE_UPLOAD = 2,
1670 D3D12_HEAP_TYPE_READBACK = 3,
1671 D3D12_HEAP_TYPE_CUSTOM = 4
1672} D3D12_HEAP_TYPE;
1673typedef enum D3D12_CPU_PAGE_PROPERTY {
1674 D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
1675 D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
1676 D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
1677 D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
1678} D3D12_CPU_PAGE_PROPERTY;
1679typedef enum D3D12_MEMORY_POOL {
1680 D3D12_MEMORY_POOL_UNKNOWN = 0,
1681 D3D12_MEMORY_POOL_L0 = 1,
1682 D3D12_MEMORY_POOL_L1 = 2
1683} D3D12_MEMORY_POOL;
1684typedef struct D3D12_HEAP_PROPERTIES {
1685 D3D12_HEAP_TYPE Type;
1686 D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
1687 D3D12_MEMORY_POOL MemoryPoolPreference;
1688 UINT CreationNodeMask;
1689 UINT VisibleNodeMask;
1690} D3D12_HEAP_PROPERTIES;
1691typedef enum D3D12_HEAP_FLAGS {
1692 D3D12_HEAP_FLAG_NONE = 0x0,
1693 D3D12_HEAP_FLAG_SHARED = 0x1,
1694 D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
1695 D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
1696 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
1697 D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
1698 D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
1699 D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
1700 D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
1701 D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
1702 D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
1703 D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
1704 D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x0,
1705 D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
1706 D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
1707 D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
1708} D3D12_HEAP_FLAGS;
1709DEFINE_ENUM_FLAG_OPERATORS(D3D12_HEAP_FLAGS);
1710typedef struct D3D12_HEAP_DESC {
1711 UINT64 SizeInBytes;
1712 D3D12_HEAP_PROPERTIES Properties;
1713 UINT64 Alignment;
1714 D3D12_HEAP_FLAGS Flags;
1715} D3D12_HEAP_DESC;
1716typedef struct D3D12_TILED_RESOURCE_COORDINATE {
1717 UINT X;
1718 UINT Y;
1719 UINT Z;
1720 UINT Subresource;
1721} D3D12_TILED_RESOURCE_COORDINATE;
1722typedef struct D3D12_TILE_REGION_SIZE {
1723 UINT NumTiles;
1724 WINBOOL UseBox;
1725 UINT Width;
1726 UINT16 Height;
1727 UINT16 Depth;
1728} D3D12_TILE_REGION_SIZE;
1729typedef struct D3D12_SUBRESOURCE_TILING {
1730 UINT WidthInTiles;
1731 UINT16 HeightInTiles;
1732 UINT16 DepthInTiles;
1733 UINT StartTileIndexInOverallResource;
1734} D3D12_SUBRESOURCE_TILING;
1735typedef struct D3D12_TILE_SHAPE {
1736 UINT WidthInTexels;
1737 UINT HeightInTexels;
1738 UINT DepthInTexels;
1739} D3D12_TILE_SHAPE;
1740typedef struct D3D12_SHADER_BYTECODE {
1741 const void *pShaderBytecode;
1742 SIZE_T BytecodeLength;
1743} D3D12_SHADER_BYTECODE;
1744typedef struct D3D12_DEPTH_STENCIL_VALUE {
1745 FLOAT Depth;
1746 UINT8 Stencil;
1747} D3D12_DEPTH_STENCIL_VALUE;
1748typedef struct D3D12_CLEAR_VALUE {
1749 DXGI_FORMAT Format;
1750 __C89_NAMELESS union {
1751 FLOAT Color[4];
1752 D3D12_DEPTH_STENCIL_VALUE DepthStencil;
1753 } __C89_NAMELESSUNIONNAME;
1754} D3D12_CLEAR_VALUE;
1755typedef struct D3D12_PACKED_MIP_INFO {
1756 UINT8 NumStandardMips;
1757 UINT8 NumPackedMips;
1758 UINT NumTilesForPackedMips;
1759 UINT StartTileIndexInOverallResource;
1760} D3D12_PACKED_MIP_INFO;
1761typedef enum D3D12_RESOURCE_STATES {
1762 D3D12_RESOURCE_STATE_COMMON = 0,
1763 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
1764 D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
1765 D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
1766 D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
1767 D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
1768 D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
1769 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
1770 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
1771 D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
1772 D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
1773 D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
1774 D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
1775 D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
1776 D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
1777 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
1778 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
1779 D3D12_RESOURCE_STATE_GENERIC_READ = ((((0x1 | 0x2) | 0x40) | 0x80) | 0x200) | 0x800,
1780 D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = 0x40 | 0x80,
1781 D3D12_RESOURCE_STATE_PRESENT = 0x0,
1782 D3D12_RESOURCE_STATE_PREDICATION = 0x200,
1783 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
1784 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
1785 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
1786 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
1787 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
1788 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
1789} D3D12_RESOURCE_STATES;
1790DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_STATES);
1791typedef enum D3D12_RESOURCE_BARRIER_TYPE {
1792 D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
1793 D3D12_RESOURCE_BARRIER_TYPE_ALIASING = 1,
1794 D3D12_RESOURCE_BARRIER_TYPE_UAV = 2
1795} D3D12_RESOURCE_BARRIER_TYPE;
1796typedef enum D3D12_RESOURCE_BARRIER_FLAGS {
1797 D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0,
1798 D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
1799 D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
1800} D3D12_RESOURCE_BARRIER_FLAGS;
1801DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_BARRIER_FLAGS);
1802typedef struct D3D12_RESOURCE_TRANSITION_BARRIER {
1803 ID3D12Resource *pResource;
1804 UINT Subresource;
1805 D3D12_RESOURCE_STATES StateBefore;
1806 D3D12_RESOURCE_STATES StateAfter;
1807} D3D12_RESOURCE_TRANSITION_BARRIER;
1808typedef struct D3D12_RESOURCE_ALIASING_BARRIER_ALIASING {
1809 ID3D12Resource *pResourceBefore;
1810 ID3D12Resource *pResourceAfter;
1811} D3D12_RESOURCE_ALIASING_BARRIER;
1812typedef struct D3D12_RESOURCE_UAV_BARRIER {
1813 ID3D12Resource *pResource;
1814} D3D12_RESOURCE_UAV_BARRIER;
1815typedef struct D3D12_RESOURCE_BARRIER {
1816 D3D12_RESOURCE_BARRIER_TYPE Type;
1817 D3D12_RESOURCE_BARRIER_FLAGS Flags;
1818 __C89_NAMELESS union {
1819 D3D12_RESOURCE_TRANSITION_BARRIER Transition;
1820 D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
1821 D3D12_RESOURCE_UAV_BARRIER UAV;
1822 } __C89_NAMELESSUNIONNAME;
1823} D3D12_RESOURCE_BARRIER;
1824typedef enum D3D12_RESOURCE_DIMENSION {
1825 D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
1826 D3D12_RESOURCE_DIMENSION_BUFFER = 1,
1827 D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
1828 D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
1829 D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
1830} D3D12_RESOURCE_DIMENSION;
1831typedef enum D3D12_TEXTURE_LAYOUT {
1832 D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
1833 D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
1834 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
1835 D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
1836} D3D12_TEXTURE_LAYOUT;
1837typedef enum D3D12_RESOURCE_FLAGS {
1838 D3D12_RESOURCE_FLAG_NONE = 0x0,
1839 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
1840 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
1841 D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
1842 D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
1843 D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
1844 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
1845 D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
1846 D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
1847 D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
1848} D3D12_RESOURCE_FLAGS;
1849DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_FLAGS);
1850typedef struct D3D12_MIP_REGION {
1851 UINT Width;
1852 UINT Height;
1853 UINT Depth;
1854} D3D12_MIP_REGION;
1855typedef struct D3D12_RESOURCE_DESC {
1856 D3D12_RESOURCE_DIMENSION Dimension;
1857 UINT64 Alignment;
1858 UINT64 Width;
1859 UINT Height;
1860 UINT16 DepthOrArraySize;
1861 UINT16 MipLevels;
1862 DXGI_FORMAT Format;
1863 DXGI_SAMPLE_DESC SampleDesc;
1864 D3D12_TEXTURE_LAYOUT Layout;
1865 D3D12_RESOURCE_FLAGS Flags;
1866} D3D12_RESOURCE_DESC;
1867typedef struct D3D12_RESOURCE_DESC1 {
1868 D3D12_RESOURCE_DIMENSION Dimension;
1869 UINT64 Alignment;
1870 UINT64 Width;
1871 UINT Height;
1872 UINT16 DepthOrArraySize;
1873 UINT16 MipLevels;
1874 DXGI_FORMAT Format;
1875 DXGI_SAMPLE_DESC SampleDesc;
1876 D3D12_TEXTURE_LAYOUT Layout;
1877 D3D12_RESOURCE_FLAGS Flags;
1878 D3D12_MIP_REGION SamplerFeedbackMipRegion;
1879} D3D12_RESOURCE_DESC1;
1880typedef enum D3D12_RESOLVE_MODE {
1881 D3D12_RESOLVE_MODE_DECOMPRESS = 0,
1882 D3D12_RESOLVE_MODE_MIN = 1,
1883 D3D12_RESOLVE_MODE_MAX = 2,
1884 D3D12_RESOLVE_MODE_AVERAGE = 3,
1885 D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4,
1886 D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5
1887} D3D12_RESOLVE_MODE;
1888typedef struct D3D12_SAMPLE_POSITION {
1889 INT8 X;
1890 INT8 Y;
1891} D3D12_SAMPLE_POSITION;
1892typedef enum D3D12_TEXTURE_COPY_TYPE {
1893 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
1894 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
1895} D3D12_TEXTURE_COPY_TYPE;
1896typedef struct D3D12_SUBRESOURCE_FOOTPRINT {
1897 DXGI_FORMAT Format;
1898 UINT Width;
1899 UINT Height;
1900 UINT Depth;
1901 UINT RowPitch;
1902} D3D12_SUBRESOURCE_FOOTPRINT;
1903typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
1904 UINT64 Offset;
1905 D3D12_SUBRESOURCE_FOOTPRINT Footprint;
1906} D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
1907typedef struct D3D12_TEXTURE_COPY_LOCATION {
1908 ID3D12Resource *pResource;
1909 D3D12_TEXTURE_COPY_TYPE Type;
1910 __C89_NAMELESS union {
1911 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
1912 UINT SubresourceIndex;
1913 } __C89_NAMELESSUNIONNAME;
1914} D3D12_TEXTURE_COPY_LOCATION;
1915typedef enum D3D12_DESCRIPTOR_RANGE_TYPE {
1916 D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
1917 D3D12_DESCRIPTOR_RANGE_TYPE_UAV = 1,
1918 D3D12_DESCRIPTOR_RANGE_TYPE_CBV = 2,
1919 D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = 3
1920} D3D12_DESCRIPTOR_RANGE_TYPE;
1921typedef struct D3D12_DESCRIPTOR_RANGE {
1922 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
1923 UINT NumDescriptors;
1924 UINT BaseShaderRegister;
1925 UINT RegisterSpace;
1926 UINT OffsetInDescriptorsFromTableStart;
1927} D3D12_DESCRIPTOR_RANGE;
1928typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS {
1929 D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0,
1930 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
1931 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
1932 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
1933 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
1934 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
1935} D3D12_DESCRIPTOR_RANGE_FLAGS;
1936DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_RANGE_FLAGS);
1937typedef struct D3D12_DESCRIPTOR_RANGE1 {
1938 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
1939 UINT NumDescriptors;
1940 UINT BaseShaderRegister;
1941 UINT RegisterSpace;
1942 D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
1943 UINT OffsetInDescriptorsFromTableStart;
1944} D3D12_DESCRIPTOR_RANGE1;
1945typedef struct D3D12_ROOT_DESCRIPTOR_TABLE {
1946 UINT NumDescriptorRanges;
1947 const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
1948} D3D12_ROOT_DESCRIPTOR_TABLE;
1949typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 {
1950 UINT NumDescriptorRanges;
1951 const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
1952} D3D12_ROOT_DESCRIPTOR_TABLE1;
1953typedef struct D3D12_ROOT_CONSTANTS {
1954 UINT ShaderRegister;
1955 UINT RegisterSpace;
1956 UINT Num32BitValues;
1957} D3D12_ROOT_CONSTANTS;
1958typedef struct D3D12_ROOT_DESCRIPTOR {
1959 UINT ShaderRegister;
1960 UINT RegisterSpace;
1961} D3D12_ROOT_DESCRIPTOR;
1962typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS {
1963 D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0,
1964 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
1965 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
1966 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
1967} D3D12_ROOT_DESCRIPTOR_FLAGS;
1968DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_DESCRIPTOR_FLAGS);
1969typedef struct D3D12_ROOT_DESCRIPTOR1 {
1970 UINT ShaderRegister;
1971 UINT RegisterSpace;
1972 D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
1973} D3D12_ROOT_DESCRIPTOR1;
1974typedef enum D3D12_ROOT_PARAMETER_TYPE {
1975 D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
1976 D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = 1,
1977 D3D12_ROOT_PARAMETER_TYPE_CBV = 2,
1978 D3D12_ROOT_PARAMETER_TYPE_SRV = 3,
1979 D3D12_ROOT_PARAMETER_TYPE_UAV = 4
1980} D3D12_ROOT_PARAMETER_TYPE;
1981typedef enum D3D12_SHADER_VISIBILITY {
1982 D3D12_SHADER_VISIBILITY_ALL = 0,
1983 D3D12_SHADER_VISIBILITY_VERTEX = 1,
1984 D3D12_SHADER_VISIBILITY_HULL = 2,
1985 D3D12_SHADER_VISIBILITY_DOMAIN = 3,
1986 D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
1987 D3D12_SHADER_VISIBILITY_PIXEL = 5,
1988 D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
1989 D3D12_SHADER_VISIBILITY_MESH = 7
1990} D3D12_SHADER_VISIBILITY;
1991typedef struct D3D12_ROOT_PARAMETER {
1992 D3D12_ROOT_PARAMETER_TYPE ParameterType;
1993 __C89_NAMELESS union {
1994 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
1995 D3D12_ROOT_CONSTANTS Constants;
1996 D3D12_ROOT_DESCRIPTOR Descriptor;
1997 } __C89_NAMELESSUNIONNAME;
1998 D3D12_SHADER_VISIBILITY ShaderVisibility;
1999} D3D12_ROOT_PARAMETER;
2000typedef struct D3D12_ROOT_PARAMETER1 {
2001 D3D12_ROOT_PARAMETER_TYPE ParameterType;
2002 __C89_NAMELESS union {
2003 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
2004 D3D12_ROOT_CONSTANTS Constants;
2005 D3D12_ROOT_DESCRIPTOR1 Descriptor;
2006 } __C89_NAMELESSUNIONNAME;
2007 D3D12_SHADER_VISIBILITY ShaderVisibility;
2008} D3D12_ROOT_PARAMETER1;
2009typedef enum D3D12_STATIC_BORDER_COLOR {
2010 D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
2011 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = 1,
2012 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = 2
2013} D3D12_STATIC_BORDER_COLOR;
2014typedef enum D3D12_FILTER {
2015 D3D12_FILTER_MIN_MAG_MIP_POINT = 0x0,
2016 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
2017 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
2018 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
2019 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
2020 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
2021 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
2022 D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
2023 D3D12_FILTER_ANISOTROPIC = 0x55,
2024 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
2025 D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
2026 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
2027 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
2028 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
2029 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
2030 D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
2031 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
2032 D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
2033 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
2034 D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
2035 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
2036 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
2037 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
2038 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
2039 D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
2040 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
2041 D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
2042 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
2043 D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
2044 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
2045 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
2046 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
2047 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
2048 D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
2049 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
2050 D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
2051} D3D12_FILTER;
2052typedef enum D3D12_FILTER_TYPE {
2053 D3D12_FILTER_TYPE_POINT = 0,
2054 D3D12_FILTER_TYPE_LINEAR = 1
2055} D3D12_FILTER_TYPE;
2056#define D3D12_MIP_FILTER_SHIFT (0)
2057
2058#define D3D12_MAG_FILTER_SHIFT (2)
2059
2060#define D3D12_MIN_FILTER_SHIFT (4)
2061
2062#define D3D12_FILTER_TYPE_MASK (0x3)
2063
2064#define D3D12_ANISOTROPIC_FILTERING_BIT (0x40)
2065
2066typedef enum D3D12_FILTER_REDUCTION_TYPE {
2067 D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
2068 D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
2069 D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
2070 D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
2071} D3D12_FILTER_REDUCTION_TYPE;
2072#define D3D12_FILTER_REDUCTION_TYPE_MASK (0x3)
2073
2074#define D3D12_FILTER_REDUCTION_TYPE_SHIFT (7)
2075
2076#define D3D12_ENCODE_BASIC_FILTER(min, mag, mip, reduction) \
2077 ((D3D12_FILTER) ( \
2078 (((min) & D3D12_FILTER_TYPE_MASK) << D3D12_MIN_FILTER_SHIFT) \
2079 | (((mag) & D3D12_FILTER_TYPE_MASK) << D3D12_MAG_FILTER_SHIFT) \
2080 | (((mip) & D3D12_FILTER_TYPE_MASK) << D3D12_MIP_FILTER_SHIFT) \
2081 | (((reduction) & D3D12_FILTER_REDUCTION_TYPE_MASK) << D3D12_FILTER_REDUCTION_TYPE_SHIFT)))
2082#define D3D12_ENCODE_ANISOTROPIC_FILTER(reduction) \
2083 ((D3D12_FILTER) ( \
2084 D3D12_ANISOTROPIC_FILTERING_BIT \
2085 | D3D12_ENCODE_BASIC_FILTER(D3D12_FILTER_TYPE_LINEAR, \
2086 D3D12_FILTER_TYPE_LINEAR, \
2087 D3D12_FILTER_TYPE_LINEAR, \
2088 reduction)))
2089#define D3D12_DECODE_MAG_FILTER(filter) \
2090 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MAG_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
2091#define D3D12_DECODE_MIN_FILTER(filter) \
2092 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIN_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
2093#define D3D12_DECODE_MIP_FILTER(filter) \
2094 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIP_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
2095#define D3D12_DECODE_IS_ANISOTROPIC_FILTER(filter) \
2096 (((filter) & D3D12_ANISOTROPIC_FILTERING_BIT) \
2097 && (D3D12_DECODE_MIN_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \
2098 && (D3D12_DECODE_MAG_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \
2099 && (D3D12_DECODE_MIP_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR))
2100#define D3D12_DECODE_FILTER_REDUCTION(filter) \
2101 ((D3D12_FILTER_REDUCTION_TYPE)(((filter) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT) \
2102 & D3D12_FILTER_REDUCTION_TYPE_MASK))
2103#define D3D12_DECODE_IS_COMPARISON_FILTER(filter) \
2104 (D3D12_DECODE_FILTER_REDUCTION(filter) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON)
2105typedef enum D3D12_TEXTURE_ADDRESS_MODE {
2106 D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
2107 D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
2108 D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
2109 D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
2110 D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
2111} D3D12_TEXTURE_ADDRESS_MODE;
2112typedef enum D3D12_COMPARISON_FUNC {
2113 D3D12_COMPARISON_FUNC_NEVER = 1,
2114 D3D12_COMPARISON_FUNC_LESS = 2,
2115 D3D12_COMPARISON_FUNC_EQUAL = 3,
2116 D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
2117 D3D12_COMPARISON_FUNC_GREATER = 5,
2118 D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
2119 D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
2120 D3D12_COMPARISON_FUNC_ALWAYS = 8
2121} D3D12_COMPARISON_FUNC;
2122typedef struct D3D12_STATIC_SAMPLER_DESC {
2123 D3D12_FILTER Filter;
2124 D3D12_TEXTURE_ADDRESS_MODE AddressU;
2125 D3D12_TEXTURE_ADDRESS_MODE AddressV;
2126 D3D12_TEXTURE_ADDRESS_MODE AddressW;
2127 FLOAT MipLODBias;
2128 UINT MaxAnisotropy;
2129 D3D12_COMPARISON_FUNC ComparisonFunc;
2130 D3D12_STATIC_BORDER_COLOR BorderColor;
2131 FLOAT MinLOD;
2132 FLOAT MaxLOD;
2133 UINT ShaderRegister;
2134 UINT RegisterSpace;
2135 D3D12_SHADER_VISIBILITY ShaderVisibility;
2136} D3D12_STATIC_SAMPLER_DESC;
2137typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
2138 D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0,
2139 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
2140 D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
2141 D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
2142 D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
2143 D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
2144 D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
2145 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
2146 D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
2147 D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
2148 D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
2149 D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
2150 D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
2151} D3D12_ROOT_SIGNATURE_FLAGS;
2152DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_SIGNATURE_FLAGS);
2153typedef struct D3D12_ROOT_SIGNATURE_DESC {
2154 UINT NumParameters;
2155 const D3D12_ROOT_PARAMETER *pParameters;
2156 UINT NumStaticSamplers;
2157 const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
2158 D3D12_ROOT_SIGNATURE_FLAGS Flags;
2159} D3D12_ROOT_SIGNATURE_DESC;
2160typedef struct D3D12_ROOT_SIGNATURE_DESC1 {
2161 UINT NumParameters;
2162 const D3D12_ROOT_PARAMETER1 *pParameters;
2163 UINT NumStaticSamplers;
2164 const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
2165 D3D12_ROOT_SIGNATURE_FLAGS Flags;
2166} D3D12_ROOT_SIGNATURE_DESC1;
2167typedef enum D3D_ROOT_SIGNATURE_VERSION {
2168 D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
2169 D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
2170 D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2
2171} D3D_ROOT_SIGNATURE_VERSION;
2172typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
2173 D3D_ROOT_SIGNATURE_VERSION Version;
2174 __C89_NAMELESS union {
2175 D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
2176 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
2177 } __C89_NAMELESSUNIONNAME;
2178} D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
2179typedef enum D3D12_DESCRIPTOR_HEAP_TYPE {
2180 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
2181 D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = 1,
2182 D3D12_DESCRIPTOR_HEAP_TYPE_RTV = 2,
2183 D3D12_DESCRIPTOR_HEAP_TYPE_DSV = 3,
2184 D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = 4
2185} D3D12_DESCRIPTOR_HEAP_TYPE;
2186typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS {
2187 D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0,
2188 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
2189} D3D12_DESCRIPTOR_HEAP_FLAGS;
2190DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_HEAP_FLAGS);
2191typedef struct D3D12_DESCRIPTOR_HEAP_DESC {
2192 D3D12_DESCRIPTOR_HEAP_TYPE Type;
2193 UINT NumDescriptors;
2194 D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
2195 UINT NodeMask;
2196} D3D12_DESCRIPTOR_HEAP_DESC;
2197typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
2198typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC {
2199 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
2200 UINT SizeInBytes;
2201} D3D12_CONSTANT_BUFFER_VIEW_DESC;
2202typedef enum D3D12_SRV_DIMENSION {
2203 D3D12_SRV_DIMENSION_UNKNOWN = 0,
2204 D3D12_SRV_DIMENSION_BUFFER = 1,
2205 D3D12_SRV_DIMENSION_TEXTURE1D = 2,
2206 D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
2207 D3D12_SRV_DIMENSION_TEXTURE2D = 4,
2208 D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
2209 D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
2210 D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
2211 D3D12_SRV_DIMENSION_TEXTURE3D = 8,
2212 D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
2213 D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
2214 D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
2215} D3D12_SRV_DIMENSION;
2216typedef enum D3D12_BUFFER_SRV_FLAGS {
2217 D3D12_BUFFER_SRV_FLAG_NONE = 0x0,
2218 D3D12_BUFFER_SRV_FLAG_RAW = 0x1
2219} D3D12_BUFFER_SRV_FLAGS;
2220DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_SRV_FLAGS);
2221typedef enum D3D12_SHADER_COMPONENT_MAPPING {
2222 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
2223 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
2224 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
2225 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
2226 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
2227 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
2228} D3D12_SHADER_COMPONENT_MAPPING;
2229#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(x, y, z, w) \
2230 (((x) & D3D12_SHADER_COMPONENT_MAPPING_MASK) \
2231 | (((y) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \
2232 | (((z) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 2)) \
2233 | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) \
2234 | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)
2235#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)
2236#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(i, mapping) \
2237 ((D3D12_SHADER_COMPONENT_MAPPING)(mapping >> (i * D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \
2238 & D3D12_SHADER_COMPONENT_MAPPING_MASK))
2239typedef struct D3D12_BUFFER_SRV {
2240 UINT64 FirstElement;
2241 UINT NumElements;
2242 UINT StructureByteStride;
2243 D3D12_BUFFER_SRV_FLAGS Flags;
2244} D3D12_BUFFER_SRV;
2245typedef struct D3D12_TEX1D_SRV {
2246 UINT MostDetailedMip;
2247 UINT MipLevels;
2248 FLOAT ResourceMinLODClamp;
2249} D3D12_TEX1D_SRV;
2250typedef struct D3D12_TEX1D_ARRAY_SRV {
2251 UINT MostDetailedMip;
2252 UINT MipLevels;
2253 UINT FirstArraySlice;
2254 UINT ArraySize;
2255 FLOAT ResourceMinLODClamp;
2256} D3D12_TEX1D_ARRAY_SRV;
2257typedef struct D3D12_TEX2D_SRV {
2258 UINT MostDetailedMip;
2259 UINT MipLevels;
2260 UINT PlaneSlice;
2261 FLOAT ResourceMinLODClamp;
2262} D3D12_TEX2D_SRV;
2263typedef struct D3D12_TEX2D_ARRAY_SRV {
2264 UINT MostDetailedMip;
2265 UINT MipLevels;
2266 UINT FirstArraySlice;
2267 UINT ArraySize;
2268 UINT PlaneSlice;
2269 FLOAT ResourceMinLODClamp;
2270} D3D12_TEX2D_ARRAY_SRV;
2271typedef struct D3D12_TEX2DMS_SRV {
2272 UINT UnusedField_NothingToDefine;
2273} D3D12_TEX2DMS_SRV;
2274typedef struct D3D12_TEX2DMS_ARRAY_SRV {
2275 UINT FirstArraySlice;
2276 UINT ArraySize;
2277} D3D12_TEX2DMS_ARRAY_SRV;
2278typedef struct D3D12_TEX3D_SRV {
2279 UINT MostDetailedMip;
2280 UINT MipLevels;
2281 FLOAT ResourceMinLODClamp;
2282} D3D12_TEX3D_SRV;
2283typedef struct D3D12_TEXCUBE_SRV {
2284 UINT MostDetailedMip;
2285 UINT MipLevels;
2286 FLOAT ResourceMinLODClamp;
2287} D3D12_TEXCUBE_SRV;
2288typedef struct D3D12_TEXCUBE_ARRAY_SRV {
2289 UINT MostDetailedMip;
2290 UINT MipLevels;
2291 UINT First2DArrayFace;
2292 UINT NumCubes;
2293 FLOAT ResourceMinLODClamp;
2294} D3D12_TEXCUBE_ARRAY_SRV;
2295typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
2296 D3D12_GPU_VIRTUAL_ADDRESS Location;
2297} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
2298typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC {
2299 DXGI_FORMAT Format;
2300 D3D12_SRV_DIMENSION ViewDimension;
2301 UINT Shader4ComponentMapping;
2302 __C89_NAMELESS union {
2303 D3D12_BUFFER_SRV Buffer;
2304 D3D12_TEX1D_SRV Texture1D;
2305 D3D12_TEX1D_ARRAY_SRV Texture1DArray;
2306 D3D12_TEX2D_SRV Texture2D;
2307 D3D12_TEX2D_ARRAY_SRV Texture2DArray;
2308 D3D12_TEX2DMS_SRV Texture2DMS;
2309 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
2310 D3D12_TEX3D_SRV Texture3D;
2311 D3D12_TEXCUBE_SRV TextureCube;
2312 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
2313 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
2314 } __C89_NAMELESSUNIONNAME;
2315} D3D12_SHADER_RESOURCE_VIEW_DESC;
2316typedef enum D3D12_UAV_DIMENSION {
2317 D3D12_UAV_DIMENSION_UNKNOWN = 0,
2318 D3D12_UAV_DIMENSION_BUFFER = 1,
2319 D3D12_UAV_DIMENSION_TEXTURE1D = 2,
2320 D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
2321 D3D12_UAV_DIMENSION_TEXTURE2D = 4,
2322 D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
2323 D3D12_UAV_DIMENSION_TEXTURE3D = 8
2324} D3D12_UAV_DIMENSION;
2325typedef enum D3D12_BUFFER_UAV_FLAGS {
2326 D3D12_BUFFER_UAV_FLAG_NONE = 0x0,
2327 D3D12_BUFFER_UAV_FLAG_RAW = 0x1
2328} D3D12_BUFFER_UAV_FLAGS;
2329DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_UAV_FLAGS);
2330typedef struct D3D12_BUFFER_UAV {
2331 UINT64 FirstElement;
2332 UINT NumElements;
2333 UINT StructureByteStride;
2334 UINT64 CounterOffsetInBytes;
2335 D3D12_BUFFER_UAV_FLAGS Flags;
2336} D3D12_BUFFER_UAV;
2337typedef struct D3D12_TEX1D_UAV {
2338 UINT MipSlice;
2339} D3D12_TEX1D_UAV;
2340typedef struct D3D12_TEX1D_ARRAY_UAV {
2341 UINT MipSlice;
2342 UINT FirstArraySlice;
2343 UINT ArraySize;
2344} D3D12_TEX1D_ARRAY_UAV;
2345typedef struct D3D12_TEX2D_UAV {
2346 UINT MipSlice;
2347 UINT PlaneSlice;
2348} D3D12_TEX2D_UAV;
2349typedef struct D3D12_TEX2D_ARRAY_UAV {
2350 UINT MipSlice;
2351 UINT FirstArraySlice;
2352 UINT ArraySize;
2353 UINT PlaneSlice;
2354} D3D12_TEX2D_ARRAY_UAV;
2355typedef struct D3D12_TEX3D_UAV {
2356 UINT MipSlice;
2357 UINT FirstWSlice;
2358 UINT WSize;
2359} D3D12_TEX3D_UAV;
2360typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC {
2361 DXGI_FORMAT Format;
2362 D3D12_UAV_DIMENSION ViewDimension;
2363 __C89_NAMELESS union {
2364 D3D12_BUFFER_UAV Buffer;
2365 D3D12_TEX1D_UAV Texture1D;
2366 D3D12_TEX1D_ARRAY_UAV Texture1DArray;
2367 D3D12_TEX2D_UAV Texture2D;
2368 D3D12_TEX2D_ARRAY_UAV Texture2DArray;
2369 D3D12_TEX3D_UAV Texture3D;
2370 } __C89_NAMELESSUNIONNAME;
2371} D3D12_UNORDERED_ACCESS_VIEW_DESC;
2372typedef enum D3D12_RTV_DIMENSION {
2373 D3D12_RTV_DIMENSION_UNKNOWN = 0,
2374 D3D12_RTV_DIMENSION_BUFFER = 1,
2375 D3D12_RTV_DIMENSION_TEXTURE1D = 2,
2376 D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
2377 D3D12_RTV_DIMENSION_TEXTURE2D = 4,
2378 D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
2379 D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
2380 D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
2381 D3D12_RTV_DIMENSION_TEXTURE3D = 8
2382} D3D12_RTV_DIMENSION;
2383typedef struct D3D12_BUFFER_RTV {
2384 UINT64 FirstElement;
2385 UINT NumElements;
2386} D3D12_BUFFER_RTV;
2387typedef struct D3D12_TEX1D_RTV {
2388 UINT MipSlice;
2389} D3D12_TEX1D_RTV;
2390typedef struct D3D12_TEX1D_ARRAY_RTV {
2391 UINT MipSlice;
2392 UINT FirstArraySlice;
2393 UINT ArraySize;
2394} D3D12_TEX1D_ARRAY_RTV;
2395typedef struct D3D12_TEX2D_RTV {
2396 UINT MipSlice;
2397 UINT PlaneSlice;
2398} D3D12_TEX2D_RTV;
2399typedef struct D3D12_TEX2D_ARRAY_RTV {
2400 UINT MipSlice;
2401 UINT FirstArraySlice;
2402 UINT ArraySize;
2403 UINT PlaneSlice;
2404} D3D12_TEX2D_ARRAY_RTV;
2405typedef struct D3D12_TEX2DMS_RTV {
2406 UINT UnusedField_NothingToDefine;
2407} D3D12_TEX2DMS_RTV;
2408typedef struct D3D12_TEX2DMS_ARRAY_RTV {
2409 UINT FirstArraySlice;
2410 UINT ArraySize;
2411} D3D12_TEX2DMS_ARRAY_RTV;
2412typedef struct D3D12_TEX3D_RTV {
2413 UINT MipSlice;
2414 UINT FirstWSlice;
2415 UINT WSize;
2416} D3D12_TEX3D_RTV;
2417typedef struct D3D12_RENDER_TARGET_VIEW_DESC {
2418 DXGI_FORMAT Format;
2419 D3D12_RTV_DIMENSION ViewDimension;
2420 __C89_NAMELESS union {
2421 D3D12_BUFFER_RTV Buffer;
2422 D3D12_TEX1D_RTV Texture1D;
2423 D3D12_TEX1D_ARRAY_RTV Texture1DArray;
2424 D3D12_TEX2D_RTV Texture2D;
2425 D3D12_TEX2D_ARRAY_RTV Texture2DArray;
2426 D3D12_TEX2DMS_RTV Texture2DMS;
2427 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
2428 D3D12_TEX3D_RTV Texture3D;
2429 } __C89_NAMELESSUNIONNAME;
2430} D3D12_RENDER_TARGET_VIEW_DESC;
2431typedef enum D3D12_DSV_DIMENSION {
2432 D3D12_DSV_DIMENSION_UNKNOWN = 0,
2433 D3D12_DSV_DIMENSION_TEXTURE1D = 1,
2434 D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
2435 D3D12_DSV_DIMENSION_TEXTURE2D = 3,
2436 D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
2437 D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
2438 D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
2439} D3D12_DSV_DIMENSION;
2440typedef enum D3D12_DSV_FLAGS {
2441 D3D12_DSV_FLAG_NONE = 0x0,
2442 D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
2443 D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
2444} D3D12_DSV_FLAGS;
2445DEFINE_ENUM_FLAG_OPERATORS(D3D12_DSV_FLAGS);
2446typedef struct D3D12_TEX1D_DSV {
2447 UINT MipSlice;
2448} D3D12_TEX1D_DSV;
2449typedef struct D3D12_TEX1D_ARRAY_DSV {
2450 UINT MipSlice;
2451 UINT FirstArraySlice;
2452 UINT ArraySize;
2453} D3D12_TEX1D_ARRAY_DSV;
2454typedef struct D3D12_TEX2D_DSV {
2455 UINT MipSlice;
2456} D3D12_TEX2D_DSV;
2457typedef struct D3D12_TEX2D_ARRAY_DSV {
2458 UINT MipSlice;
2459 UINT FirstArraySlice;
2460 UINT ArraySize;
2461} D3D12_TEX2D_ARRAY_DSV;
2462typedef struct D3D12_TEX2DMS_DSV {
2463 UINT UnusedField_NothingToDefine;
2464} D3D12_TEX2DMS_DSV;
2465typedef struct D3D12_TEX2DMS_ARRAY_DSV {
2466 UINT FirstArraySlice;
2467 UINT ArraySize;
2468} D3D12_TEX2DMS_ARRAY_DSV;
2469typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC {
2470 DXGI_FORMAT Format;
2471 D3D12_DSV_DIMENSION ViewDimension;
2472 D3D12_DSV_FLAGS Flags;
2473 __C89_NAMELESS union {
2474 D3D12_TEX1D_DSV Texture1D;
2475 D3D12_TEX1D_ARRAY_DSV Texture1DArray;
2476 D3D12_TEX2D_DSV Texture2D;
2477 D3D12_TEX2D_ARRAY_DSV Texture2DArray;
2478 D3D12_TEX2DMS_DSV Texture2DMS;
2479 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
2480 } __C89_NAMELESSUNIONNAME;
2481} D3D12_DEPTH_STENCIL_VIEW_DESC;
2482typedef struct D3D12_SAMPLER_DESC {
2483 D3D12_FILTER Filter;
2484 D3D12_TEXTURE_ADDRESS_MODE AddressU;
2485 D3D12_TEXTURE_ADDRESS_MODE AddressV;
2486 D3D12_TEXTURE_ADDRESS_MODE AddressW;
2487 FLOAT MipLODBias;
2488 UINT MaxAnisotropy;
2489 D3D12_COMPARISON_FUNC ComparisonFunc;
2490 FLOAT BorderColor[4];
2491 FLOAT MinLOD;
2492 FLOAT MaxLOD;
2493} D3D12_SAMPLER_DESC;
2494typedef struct D3D12_CPU_DESCRIPTOR_HANDLE {
2495 SIZE_T ptr;
2496} D3D12_CPU_DESCRIPTOR_HANDLE;
2497typedef struct D3D12_GPU_DESCRIPTOR_HANDLE {
2498 UINT64 ptr;
2499} D3D12_GPU_DESCRIPTOR_HANDLE;
2500typedef enum D3D12_STENCIL_OP {
2501 D3D12_STENCIL_OP_KEEP = 1,
2502 D3D12_STENCIL_OP_ZERO = 2,
2503 D3D12_STENCIL_OP_REPLACE = 3,
2504 D3D12_STENCIL_OP_INCR_SAT = 4,
2505 D3D12_STENCIL_OP_DECR_SAT = 5,
2506 D3D12_STENCIL_OP_INVERT = 6,
2507 D3D12_STENCIL_OP_INCR = 7,
2508 D3D12_STENCIL_OP_DECR = 8
2509} D3D12_STENCIL_OP;
2510typedef struct D3D12_DEPTH_STENCILOP_DESC {
2511 D3D12_STENCIL_OP StencilFailOp;
2512 D3D12_STENCIL_OP StencilDepthFailOp;
2513 D3D12_STENCIL_OP StencilPassOp;
2514 D3D12_COMPARISON_FUNC StencilFunc;
2515} D3D12_DEPTH_STENCILOP_DESC;
2516typedef enum D3D12_DEPTH_WRITE_MASK {
2517 D3D12_DEPTH_WRITE_MASK_ZERO = 0,
2518 D3D12_DEPTH_WRITE_MASK_ALL = 1
2519} D3D12_DEPTH_WRITE_MASK;
2520typedef struct D3D12_DEPTH_STENCIL_DESC {
2521 WINBOOL DepthEnable;
2522 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
2523 D3D12_COMPARISON_FUNC DepthFunc;
2524 WINBOOL StencilEnable;
2525 UINT8 StencilReadMask;
2526 UINT8 StencilWriteMask;
2527 D3D12_DEPTH_STENCILOP_DESC FrontFace;
2528 D3D12_DEPTH_STENCILOP_DESC BackFace;
2529} D3D12_DEPTH_STENCIL_DESC;
2530typedef struct D3D12_DEPTH_STENCIL_DESC1 {
2531 WINBOOL DepthEnable;
2532 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
2533 D3D12_COMPARISON_FUNC DepthFunc;
2534 WINBOOL StencilEnable;
2535 UINT8 StencilReadMask;
2536 UINT8 StencilWriteMask;
2537 D3D12_DEPTH_STENCILOP_DESC FrontFace;
2538 D3D12_DEPTH_STENCILOP_DESC BackFace;
2539 WINBOOL DepthBoundsTestEnable;
2540} D3D12_DEPTH_STENCIL_DESC1;
2541typedef enum D3D12_BLEND {
2542 D3D12_BLEND_ZERO = 1,
2543 D3D12_BLEND_ONE = 2,
2544 D3D12_BLEND_SRC_COLOR = 3,
2545 D3D12_BLEND_INV_SRC_COLOR = 4,
2546 D3D12_BLEND_SRC_ALPHA = 5,
2547 D3D12_BLEND_INV_SRC_ALPHA = 6,
2548 D3D12_BLEND_DEST_ALPHA = 7,
2549 D3D12_BLEND_INV_DEST_ALPHA = 8,
2550 D3D12_BLEND_DEST_COLOR = 9,
2551 D3D12_BLEND_INV_DEST_COLOR = 10,
2552 D3D12_BLEND_SRC_ALPHA_SAT = 11,
2553 D3D12_BLEND_BLEND_FACTOR = 14,
2554 D3D12_BLEND_INV_BLEND_FACTOR = 15,
2555 D3D12_BLEND_SRC1_COLOR = 16,
2556 D3D12_BLEND_INV_SRC1_COLOR = 17,
2557 D3D12_BLEND_SRC1_ALPHA = 18,
2558 D3D12_BLEND_INV_SRC1_ALPHA = 19,
2559 D3D12_BLEND_ALPHA_FACTOR = 20,
2560 D3D12_BLEND_INV_ALPHA_FACTOR = 21
2561} D3D12_BLEND;
2562typedef enum D3D12_BLEND_OP {
2563 D3D12_BLEND_OP_ADD = 1,
2564 D3D12_BLEND_OP_SUBTRACT = 2,
2565 D3D12_BLEND_OP_REV_SUBTRACT = 3,
2566 D3D12_BLEND_OP_MIN = 4,
2567 D3D12_BLEND_OP_MAX = 5
2568} D3D12_BLEND_OP;
2569typedef enum D3D12_LOGIC_OP {
2570 D3D12_LOGIC_OP_CLEAR = 0x0,
2571 D3D12_LOGIC_OP_SET = 0x1,
2572 D3D12_LOGIC_OP_COPY = 0x2,
2573 D3D12_LOGIC_OP_COPY_INVERTED = 0x3,
2574 D3D12_LOGIC_OP_NOOP = 0x4,
2575 D3D12_LOGIC_OP_INVERT = 0x5,
2576 D3D12_LOGIC_OP_AND = 0x6,
2577 D3D12_LOGIC_OP_NAND = 0x7,
2578 D3D12_LOGIC_OP_OR = 0x8,
2579 D3D12_LOGIC_OP_NOR = 0x9,
2580 D3D12_LOGIC_OP_XOR = 0xa,
2581 D3D12_LOGIC_OP_EQUIV = 0xb,
2582 D3D12_LOGIC_OP_AND_REVERSE = 0xc,
2583 D3D12_LOGIC_OP_AND_INVERTED = 0xd,
2584 D3D12_LOGIC_OP_OR_REVERSE = 0xe,
2585 D3D12_LOGIC_OP_OR_INVERTED = 0xf
2586} D3D12_LOGIC_OP;
2587typedef enum D3D12_COLOR_WRITE_ENABLE {
2588 D3D12_COLOR_WRITE_ENABLE_RED = 0x1,
2589 D3D12_COLOR_WRITE_ENABLE_GREEN = 0x2,
2590 D3D12_COLOR_WRITE_ENABLE_BLUE = 0x4,
2591 D3D12_COLOR_WRITE_ENABLE_ALPHA = 0x8,
2592 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
2593} D3D12_COLOR_WRITE_ENABLE;
2594typedef struct D3D12_RENDER_TARGET_BLEND_DESC {
2595 WINBOOL BlendEnable;
2596 WINBOOL LogicOpEnable;
2597 D3D12_BLEND SrcBlend;
2598 D3D12_BLEND DestBlend;
2599 D3D12_BLEND_OP BlendOp;
2600 D3D12_BLEND SrcBlendAlpha;
2601 D3D12_BLEND DestBlendAlpha;
2602 D3D12_BLEND_OP BlendOpAlpha;
2603 D3D12_LOGIC_OP LogicOp;
2604 UINT8 RenderTargetWriteMask;
2605} D3D12_RENDER_TARGET_BLEND_DESC;
2606typedef struct D3D12_BLEND_DESC {
2607 WINBOOL AlphaToCoverageEnable;
2608 WINBOOL IndependentBlendEnable;
2609 D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[8];
2610} D3D12_BLEND_DESC;
2611typedef enum D3D12_FILL_MODE {
2612 D3D12_FILL_MODE_WIREFRAME = 2,
2613 D3D12_FILL_MODE_SOLID = 3
2614} D3D12_FILL_MODE;
2615typedef enum D3D12_CULL_MODE {
2616 D3D12_CULL_MODE_NONE = 1,
2617 D3D12_CULL_MODE_FRONT = 2,
2618 D3D12_CULL_MODE_BACK = 3
2619} D3D12_CULL_MODE;
2620typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE {
2621 D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
2622 D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
2623} D3D12_CONSERVATIVE_RASTERIZATION_MODE;
2624typedef struct D3D12_RASTERIZER_DESC {
2625 D3D12_FILL_MODE FillMode;
2626 D3D12_CULL_MODE CullMode;
2627 WINBOOL FrontCounterClockwise;
2628 INT DepthBias;
2629 FLOAT DepthBiasClamp;
2630 FLOAT SlopeScaledDepthBias;
2631 WINBOOL DepthClipEnable;
2632 WINBOOL MultisampleEnable;
2633 WINBOOL AntialiasedLineEnable;
2634 UINT ForcedSampleCount;
2635 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
2636} D3D12_RASTERIZER_DESC;
2637typedef struct D3D12_SO_DECLARATION_ENTRY {
2638 UINT Stream;
2639 const char *SemanticName;
2640 UINT SemanticIndex;
2641 BYTE StartComponent;
2642 BYTE ComponentCount;
2643 BYTE OutputSlot;
2644} D3D12_SO_DECLARATION_ENTRY;
2645typedef struct D3D12_STREAM_OUTPUT_DESC {
2646 const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
2647 UINT NumEntries;
2648 const UINT *pBufferStrides;
2649 UINT NumStrides;
2650 UINT RasterizedStream;
2651} D3D12_STREAM_OUTPUT_DESC;
2652typedef enum D3D12_INPUT_CLASSIFICATION {
2653 D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
2654 D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
2655} D3D12_INPUT_CLASSIFICATION;
2656typedef struct D3D12_INPUT_ELEMENT_DESC {
2657 const char *SemanticName;
2658 UINT SemanticIndex;
2659 DXGI_FORMAT Format;
2660 UINT InputSlot;
2661 UINT AlignedByteOffset;
2662 D3D12_INPUT_CLASSIFICATION InputSlotClass;
2663 UINT InstanceDataStepRate;
2664} D3D12_INPUT_ELEMENT_DESC;
2665typedef struct D3D12_INPUT_LAYOUT_DESC {
2666 const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
2667 UINT NumElements;
2668} D3D12_INPUT_LAYOUT_DESC;
2669typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE {
2670 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
2671 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
2672 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
2673} D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
2674typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
2675typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
2676typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE {
2677 D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
2678 D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
2679 D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
2680 D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
2681 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
2682} D3D12_PRIMITIVE_TOPOLOGY_TYPE;
2683typedef struct D3D12_CACHED_PIPELINE_STATE {
2684 const void *pCachedBlob;
2685 SIZE_T CachedBlobSizeInBytes;
2686} D3D12_CACHED_PIPELINE_STATE;
2687typedef enum D3D12_PIPELINE_STATE_FLAGS {
2688 D3D12_PIPELINE_STATE_FLAG_NONE = 0x0,
2689 D3D12_PIPELINE_STATE_FLAG_DEBUG = 0x1
2690} D3D12_PIPELINE_STATE_FLAGS;
2691DEFINE_ENUM_FLAG_OPERATORS(D3D12_PIPELINE_STATE_FLAGS);
2692typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
2693 ID3D12RootSignature *pRootSignature;
2694 D3D12_SHADER_BYTECODE VS;
2695 D3D12_SHADER_BYTECODE PS;
2696 D3D12_SHADER_BYTECODE DS;
2697 D3D12_SHADER_BYTECODE HS;
2698 D3D12_SHADER_BYTECODE GS;
2699 D3D12_STREAM_OUTPUT_DESC StreamOutput;
2700 D3D12_BLEND_DESC BlendState;
2701 UINT SampleMask;
2702 D3D12_RASTERIZER_DESC RasterizerState;
2703 D3D12_DEPTH_STENCIL_DESC DepthStencilState;
2704 D3D12_INPUT_LAYOUT_DESC InputLayout;
2705 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
2706 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
2707 UINT NumRenderTargets;
2708 DXGI_FORMAT RTVFormats[8];
2709 DXGI_FORMAT DSVFormat;
2710 DXGI_SAMPLE_DESC SampleDesc;
2711 UINT NodeMask;
2712 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2713 D3D12_PIPELINE_STATE_FLAGS Flags;
2714} D3D12_GRAPHICS_PIPELINE_STATE_DESC;
2715typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC {
2716 ID3D12RootSignature *pRootSignature;
2717 D3D12_SHADER_BYTECODE CS;
2718 UINT NodeMask;
2719 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2720 D3D12_PIPELINE_STATE_FLAGS Flags;
2721} D3D12_COMPUTE_PIPELINE_STATE_DESC;
2722typedef struct D3D12_PIPELINE_STATE_STREAM_DESC {
2723 SIZE_T SizeInBytes;
2724 void *pPipelineStateSubobjectStream;
2725} D3D12_PIPELINE_STATE_STREAM_DESC;
2726struct D3D12_RT_FORMAT_ARRAY {
2727 DXGI_FORMAT RTFormats[8];
2728 UINT NumRenderTargets;
2729};
2730typedef enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE {
2731 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0x0,
2732 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = 0x1,
2733 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = 0x2,
2734 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = 0x3,
2735 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = 0x4,
2736 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = 0x5,
2737 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = 0x6,
2738 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 0x7,
2739 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = 0x8,
2740 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 0x9,
2741 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = 0xa,
2742 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 0xb,
2743 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 0xc,
2744 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 0xd,
2745 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 0xe,
2746 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 0xf,
2747 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 0x10,
2748 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 0x11,
2749 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = 0x12,
2750 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = 0x13,
2751 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = 0x14,
2752 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 0x15,
2753 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 0x16,
2754 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 0x18,
2755 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 0x19,
2756 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = 0x1a
2757} D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
2758typedef struct D3D12_VIEW_INSTANCE_LOCATION {
2759 UINT ViewportArrayIndex;
2760 UINT RenderTargetArrayIndex;
2761} D3D12_VIEW_INSTANCE_LOCATION;
2762typedef enum D3D12_VIEW_INSTANCING_FLAGS {
2763 D3D12_VIEW_INSTANCING_FLAG_NONE = 0x0,
2764 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1
2765} D3D12_VIEW_INSTANCING_FLAGS;
2766DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIEW_INSTANCING_FLAGS);
2767typedef struct D3D12_VIEW_INSTANCING_DESC {
2768 UINT ViewInstanceCount;
2769 const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
2770 D3D12_VIEW_INSTANCING_FLAGS Flags;
2771} D3D12_VIEW_INSTANCING_DESC;
2772typedef enum D3D12_COMMAND_LIST_TYPE {
2773 D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
2774 D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
2775 D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
2776 D3D12_COMMAND_LIST_TYPE_COPY = 3,
2777 D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
2778 D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
2779 D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6
2780} D3D12_COMMAND_LIST_TYPE;
2781typedef enum D3D12_COMMAND_QUEUE_PRIORITY {
2782 D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
2783 D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
2784 D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
2785} D3D12_COMMAND_QUEUE_PRIORITY;
2786typedef enum D3D12_COMMAND_QUEUE_FLAGS {
2787 D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0,
2788 D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1
2789} D3D12_COMMAND_QUEUE_FLAGS;
2790DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_QUEUE_FLAGS);
2791typedef struct D3D12_COMMAND_QUEUE_DESC {
2792 D3D12_COMMAND_LIST_TYPE Type;
2793 INT Priority;
2794 D3D12_COMMAND_QUEUE_FLAGS Flags;
2795 UINT NodeMask;
2796} D3D12_COMMAND_QUEUE_DESC;
2797typedef struct D3D12_FEATURE_DATA_ARCHITECTURE {
2798 UINT NodeIndex;
2799 WINBOOL TileBasedRenderer;
2800 WINBOOL UMA;
2801 WINBOOL CacheCoherentUMA;
2802} D3D12_FEATURE_DATA_ARCHITECTURE;
2803typedef struct D3D12_FEATURE_DATA_FORMAT_INFO {
2804 DXGI_FORMAT Format;
2805 UINT8 PlaneCount;
2806} D3D12_FEATURE_DATA_FORMAT_INFO;
2807typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS {
2808 UINT NumFeatureLevels;
2809 const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
2810 D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
2811} D3D12_FEATURE_DATA_FEATURE_LEVELS;
2812typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE {
2813 D3D_ROOT_SIGNATURE_VERSION HighestVersion;
2814} D3D12_FEATURE_DATA_ROOT_SIGNATURE;
2815typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
2816 UINT MaxGPUVirtualAddressBitsPerResource;
2817 UINT MaxGPUVirtualAddressBitsPerProcess;
2818} D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
2819typedef enum D3D_SHADER_MODEL {
2820 D3D_SHADER_MODEL_5_1 = 0x51,
2821 D3D_SHADER_MODEL_6_0 = 0x60,
2822 D3D_SHADER_MODEL_6_1 = 0x61,
2823 D3D_SHADER_MODEL_6_2 = 0x62,
2824 D3D_SHADER_MODEL_6_3 = 0x63,
2825 D3D_SHADER_MODEL_6_4 = 0x64,
2826 D3D_SHADER_MODEL_6_5 = 0x65,
2827 D3D_SHADER_MODEL_6_6 = 0x66,
2828 D3D_SHADER_MODEL_6_7 = 0x67,
2829 D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_7
2830} D3D_SHADER_MODEL;
2831typedef struct D3D12_FEATURE_DATA_SHADER_MODEL {
2832 D3D_SHADER_MODEL HighestShaderModel;
2833} D3D12_FEATURE_DATA_SHADER_MODEL;
2834typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
2835 WINBOOL WaveOps;
2836 UINT WaveLaneCountMin;
2837 UINT WaveLaneCountMax;
2838 UINT TotalLaneCount;
2839 WINBOOL ExpandedComputeResourceStates;
2840 WINBOOL Int64ShaderOps;
2841} D3D12_FEATURE_DATA_D3D12_OPTIONS1;
2842typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 {
2843 UINT NodeIndex;
2844 WINBOOL TileBasedRenderer;
2845 WINBOOL UMA;
2846 WINBOOL CacheCoherentUMA;
2847 WINBOOL IsolatedMMU;
2848} D3D12_FEATURE_DATA_ARCHITECTURE1;
2849typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
2850 WINBOOL DepthBoundsTestSupported;
2851 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
2852} D3D12_FEATURE_DATA_D3D12_OPTIONS2;
2853typedef struct D3D12_FEATURE_DATA_SHADER_CACHE {
2854 D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
2855} D3D12_FEATURE_DATA_SHADER_CACHE;
2856typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
2857 D3D12_COMMAND_LIST_TYPE CommandListType;
2858 UINT Priority;
2859 WINBOOL PriorityForTypeIsSupported;
2860} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
2861typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
2862 WINBOOL CopyQueueTimestampQueriesSupported;
2863 WINBOOL CastingFullyTypedFormatSupported;
2864 D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
2865 D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
2866 WINBOOL BarycentricsSupported;
2867} D3D12_FEATURE_DATA_D3D12_OPTIONS3;
2868typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS {
2869 WINBOOL Supported;
2870} D3D12_FEATURE_DATA_EXISTING_HEAPS;
2871typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
2872 WINBOOL MSAA64KBAlignedTextureSupported;
2873 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2874 WINBOOL Native16BitShaderOpsSupported;
2875} D3D12_FEATURE_DATA_D3D12_OPTIONS4;
2876typedef struct D3D12_FEATURE_DATA_SERIALIZATION {
2877 UINT NodeIndex;
2878 D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
2879} D3D12_FEATURE_DATA_SERIALIZATION;
2880typedef struct D3D12_FEATURE_DATA_CROSS_NODE {
2881 D3D12_CROSS_NODE_SHARING_TIER SharingTier;
2882 WINBOOL AtomicShaderInstructions;
2883} D3D12_FEATURE_DATA_CROSS_NODE;
2884typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
2885 WINBOOL SRVOnlyTiledResourceTier3;
2886 D3D12_RENDER_PASS_TIER RenderPassesTier;
2887 D3D12_RAYTRACING_TIER RaytracingTier;
2888} D3D12_FEATURE_DATA_D3D12_OPTIONS5;
2889typedef enum D3D12_VARIABLE_SHADING_RATE_TIER {
2890 D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0x0,
2891 D3D12_VARIABLE_SHADING_RATE_TIER_1 = 0x1,
2892 D3D12_VARIABLE_SHADING_RATE_TIER_2 = 0x2
2893} D3D12_VARIABLE_SHADING_RATE_TIER;
2894typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
2895 WINBOOL AdditionalShadingRatesSupported;
2896 WINBOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
2897 D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
2898 UINT ShadingRateImageTileSize;
2899 WINBOOL BackgroundProcessingSupported;
2900} D3D12_FEATURE_DATA_D3D12_OPTIONS6;
2901typedef enum D3D12_MESH_SHADER_TIER {
2902 D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0x0,
2903 D3D12_MESH_SHADER_TIER_1 = 0xa
2904} D3D12_MESH_SHADER_TIER;
2905typedef enum D3D12_SAMPLER_FEEDBACK_TIER {
2906 D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0x0,
2907 D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 0x5a,
2908 D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 0x64
2909} D3D12_SAMPLER_FEEDBACK_TIER;
2910typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
2911 D3D12_MESH_SHADER_TIER MeshShaderTier;
2912 D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
2913} D3D12_FEATURE_DATA_D3D12_OPTIONS7;
2914typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND {
2915 GUID CommandId;
2916 UINT NodeMask;
2917 const void *pQueryInputData;
2918 SIZE_T QueryInputDataSizeInBytes;
2919 void *pQueryOutputData;
2920 SIZE_T QueryOutputDataSizeInBytes;
2921} D3D12_FEATURE_DATA_QUERY_META_COMMAND;
2922typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
2923 WINBOOL UnalignedBlockTexturesSupported;
2924} D3D12_FEATURE_DATA_D3D12_OPTIONS8;
2925typedef enum D3D12_WAVE_MMA_TIER {
2926 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0x0,
2927 D3D12_WAVE_MMA_TIER_1_0 = 0xa
2928} D3D12_WAVE_MMA_TIER;
2929typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
2930 WINBOOL MeshShaderPipelineStatsSupported;
2931 WINBOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
2932 WINBOOL AtomicInt64OnTypedResourceSupported;
2933 WINBOOL AtomicInt64OnGroupSharedSupported;
2934 WINBOOL DerivativesInMeshAndAmplificationShadersSupported;
2935 D3D12_WAVE_MMA_TIER WaveMMATier;
2936} D3D12_FEATURE_DATA_D3D12_OPTIONS9;
2937typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
2938 WINBOOL VariableRateShadingSumCombinerSupported;
2939 WINBOOL MeshShaderPerPrimitiveShadingRateSupported;
2940} D3D12_FEATURE_DATA_D3D12_OPTIONS10;
2941typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
2942 WINBOOL AtomicInt64OnDescriptorHeapResourceSupported;
2943} D3D12_FEATURE_DATA_D3D12_OPTIONS11;
2944typedef enum D3D12_TRI_STATE {
2945 D3D12_TRI_STATE_UNKNOWN = -0x1,
2946 D3D12_TRI_STATE_FALSE = 0x0,
2947 D3D12_TRI_STATE_TRUE = 0x1
2948} D3D12_TRI_STATE;
2949typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
2950 D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives;
2951 WINBOOL EnhancedBarriersSupported;
2952 WINBOOL RelaxedFormatCastingSupported;
2953} D3D12_FEATURE_DATA_D3D12_OPTIONS12;
2954typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 {
2955 WINBOOL UnrestrictedBufferTextureCopyPitchSupported;
2956 WINBOOL UnrestrictedVertexElementAlignmentSupported;
2957 WINBOOL InvertedViewportHeightFlipsYSupported;
2958 WINBOOL InvertedViewportDepthFlipsZSupported;
2959 WINBOOL TextureCopyBetweenDimensionsSupported;
2960 WINBOOL AlphaBlendFactorSupported;
2961} D3D12_FEATURE_DATA_D3D12_OPTIONS13;
2962typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 {
2963 WINBOOL AdvancedTextureOpsSupported;
2964 WINBOOL WriteableMSAATexturesSupported;
2965 WINBOOL IndependentFrontAndBackStencilRefMaskSupported;
2966} D3D12_FEATURE_DATA_D3D12_OPTIONS14;
2967typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 {
2968 WINBOOL TriangleFanSupported;
2969 WINBOOL DynamicIndexBufferStripCutSupported;
2970} D3D12_FEATURE_DATA_D3D12_OPTIONS15;
2971typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 {
2972 WINBOOL DynamicDepthBiasSupported;
2973 WINBOOL GPUUploadHeapSupported;
2974} D3D12_FEATURE_DATA_D3D12_OPTIONS16;
2975typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17 {
2976 WINBOOL NonNormalizedCoordinateSamplersSupported;
2977 WINBOOL ManualWriteTrackingResourceSupported;
2978} D3D12_FEATURE_DATA_D3D12_OPTIONS17;
2979typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18 {
2980 WINBOOL RenderPassesValid;
2981} D3D12_FEATURE_DATA_D3D12_OPTIONS18;
2982typedef enum D3D12_FEATURE {
2983 D3D12_FEATURE_D3D12_OPTIONS = 0,
2984 D3D12_FEATURE_ARCHITECTURE = 1,
2985 D3D12_FEATURE_FEATURE_LEVELS = 2,
2986 D3D12_FEATURE_FORMAT_SUPPORT = 3,
2987 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
2988 D3D12_FEATURE_FORMAT_INFO = 5,
2989 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
2990 D3D12_FEATURE_SHADER_MODEL = 7,
2991 D3D12_FEATURE_D3D12_OPTIONS1 = 8,
2992 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
2993 D3D12_FEATURE_ROOT_SIGNATURE = 12,
2994 D3D12_FEATURE_ARCHITECTURE1 = 16,
2995 D3D12_FEATURE_D3D12_OPTIONS2 = 18,
2996 D3D12_FEATURE_SHADER_CACHE = 19,
2997 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
2998 D3D12_FEATURE_D3D12_OPTIONS3 = 21,
2999 D3D12_FEATURE_EXISTING_HEAPS = 22,
3000 D3D12_FEATURE_D3D12_OPTIONS4 = 23,
3001 D3D12_FEATURE_SERIALIZATION = 24,
3002 D3D12_FEATURE_CROSS_NODE = 25,
3003 D3D12_FEATURE_D3D12_OPTIONS5 = 27,
3004 D3D12_FEATURE_DISPLAYABLE = 28,
3005 D3D12_FEATURE_D3D12_OPTIONS6 = 30,
3006 D3D12_FEATURE_QUERY_META_COMMAND = 31,
3007 D3D12_FEATURE_D3D12_OPTIONS7 = 32,
3008 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
3009 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
3010 D3D12_FEATURE_D3D12_OPTIONS8 = 36,
3011 D3D12_FEATURE_D3D12_OPTIONS9 = 37,
3012 D3D12_FEATURE_D3D12_OPTIONS10 = 39,
3013 D3D12_FEATURE_D3D12_OPTIONS11 = 40,
3014 D3D12_FEATURE_D3D12_OPTIONS12 = 41,
3015 D3D12_FEATURE_D3D12_OPTIONS13 = 42,
3016 D3D12_FEATURE_D3D12_OPTIONS14 = 43,
3017 D3D12_FEATURE_D3D12_OPTIONS15 = 44,
3018 D3D12_FEATURE_D3D12_OPTIONS16 = 45,
3019 D3D12_FEATURE_D3D12_OPTIONS17 = 46,
3020 D3D12_FEATURE_D3D12_OPTIONS18 = 47
3021} D3D12_FEATURE;
3022typedef struct D3D12_MEMCPY_DEST {
3023 void *pData;
3024 SIZE_T RowPitch;
3025 SIZE_T SlicePitch;
3026} D3D12_MEMCPY_DEST;
3027typedef struct D3D12_SUBRESOURCE_DATA {
3028 const void *pData;
3029 LONG_PTR RowPitch;
3030 LONG_PTR SlicePitch;
3031} D3D12_SUBRESOURCE_DATA;
3032typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
3033 D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0,
3034 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
3035 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0
3036} D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
3037DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTIPLE_FENCE_WAIT_FLAGS);
3038typedef enum D3D12_RESIDENCY_PRIORITY {
3039 D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
3040 D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
3041 D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
3042 D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
3043 D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
3044} D3D12_RESIDENCY_PRIORITY;
3045typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
3046 D3D12_GPU_VIRTUAL_ADDRESS Dest;
3047 UINT32 Value;
3048} D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
3049typedef enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
3050 D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0
3051} D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
3052DEFINE_ENUM_FLAG_OPERATORS(D3D12_PROTECTED_RESOURCE_SESSION_FLAGS);
3053typedef enum D3D12_PROTECTED_SESSION_STATUS {
3054 D3D12_PROTECTED_SESSION_STATUS_OK = 0,
3055 D3D12_PROTECTED_SESSION_STATUS_INVALID = 1
3056} D3D12_PROTECTED_SESSION_STATUS;
3057typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC {
3058 UINT NodeMask;
3059 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
3060} D3D12_PROTECTED_RESOURCE_SESSION_DESC;
3061/*****************************************************************************
3062 * ID3D12Object interface
3063 */
3064#ifndef __ID3D12Object_INTERFACE_DEFINED__
3065#define __ID3D12Object_INTERFACE_DEFINED__
3066
3067DEFINE_GUID(IID_ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f,0x94, 0xf4,0x31,0xcb,0x56,0xc3,0xb8);
3068#if defined(__cplusplus) && !defined(CINTERFACE)
3069MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
3070ID3D12Object : public IUnknown
3071{
3072 virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
3073 REFGUID guid,
3074 UINT *data_size,
3075 void *data) = 0;
3076
3077 virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
3078 REFGUID guid,
3079 UINT data_size,
3080 const void *data) = 0;
3081
3082 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
3083 REFGUID guid,
3084 const IUnknown *data) = 0;
3085
3086 virtual HRESULT STDMETHODCALLTYPE SetName(
3087 const WCHAR *name) = 0;
3088
3089};
3090#ifdef __CRT_UUID_DECL
3091__CRT_UUID_DECL(ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f,0x94, 0xf4,0x31,0xcb,0x56,0xc3,0xb8)
3092#endif
3093#else
3094typedef struct ID3D12ObjectVtbl {
3095 BEGIN_INTERFACE
3096
3097 /*** IUnknown methods ***/
3098 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3099 ID3D12Object *This,
3100 REFIID riid,
3101 void **ppvObject);
3102
3103 ULONG (STDMETHODCALLTYPE *AddRef)(
3104 ID3D12Object *This);
3105
3106 ULONG (STDMETHODCALLTYPE *Release)(
3107 ID3D12Object *This);
3108
3109 /*** ID3D12Object methods ***/
3110 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3111 ID3D12Object *This,
3112 REFGUID guid,
3113 UINT *data_size,
3114 void *data);
3115
3116 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3117 ID3D12Object *This,
3118 REFGUID guid,
3119 UINT data_size,
3120 const void *data);
3121
3122 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3123 ID3D12Object *This,
3124 REFGUID guid,
3125 const IUnknown *data);
3126
3127 HRESULT (STDMETHODCALLTYPE *SetName)(
3128 ID3D12Object *This,
3129 const WCHAR *name);
3130
3131 END_INTERFACE
3132} ID3D12ObjectVtbl;
3133
3134interface ID3D12Object {
3135 CONST_VTBL ID3D12ObjectVtbl* lpVtbl;
3136};
3137
3138#ifdef COBJMACROS
3139#ifndef WIDL_C_INLINE_WRAPPERS
3140/*** IUnknown methods ***/
3141#define ID3D12Object_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3142#define ID3D12Object_AddRef(This) (This)->lpVtbl->AddRef(This)
3143#define ID3D12Object_Release(This) (This)->lpVtbl->Release(This)
3144/*** ID3D12Object methods ***/
3145#define ID3D12Object_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3146#define ID3D12Object_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3147#define ID3D12Object_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3148#define ID3D12Object_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3149#else
3150/*** IUnknown methods ***/
3151static inline HRESULT ID3D12Object_QueryInterface(ID3D12Object* This,REFIID riid,void **ppvObject) {
3152 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3153}
3154static inline ULONG ID3D12Object_AddRef(ID3D12Object* This) {
3155 return This->lpVtbl->AddRef(This);
3156}
3157static inline ULONG ID3D12Object_Release(ID3D12Object* This) {
3158 return This->lpVtbl->Release(This);
3159}
3160/*** ID3D12Object methods ***/
3161static inline HRESULT ID3D12Object_GetPrivateData(ID3D12Object* This,REFGUID guid,UINT *data_size,void *data) {
3162 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3163}
3164static inline HRESULT ID3D12Object_SetPrivateData(ID3D12Object* This,REFGUID guid,UINT data_size,const void *data) {
3165 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3166}
3167static inline HRESULT ID3D12Object_SetPrivateDataInterface(ID3D12Object* This,REFGUID guid,const IUnknown *data) {
3168 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3169}
3170static inline HRESULT ID3D12Object_SetName(ID3D12Object* This,const WCHAR *name) {
3171 return This->lpVtbl->SetName(This,name);
3172}
3173#endif
3174#endif
3175
3176#endif
3177
3178
3179#endif /* __ID3D12Object_INTERFACE_DEFINED__ */
3180
3181/*****************************************************************************
3182 * ID3D12DeviceChild interface
3183 */
3184#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
3185#define __ID3D12DeviceChild_INTERFACE_DEFINED__
3186
3187DEFINE_GUID(IID_ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d,0xf5, 0x2b,0x64,0xca,0x9e,0xa3,0x57);
3188#if defined(__cplusplus) && !defined(CINTERFACE)
3189MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
3190ID3D12DeviceChild : public ID3D12Object
3191{
3192 virtual HRESULT STDMETHODCALLTYPE GetDevice(
3193 REFIID riid,
3194 void **device) = 0;
3195
3196};
3197#ifdef __CRT_UUID_DECL
3198__CRT_UUID_DECL(ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d,0xf5, 0x2b,0x64,0xca,0x9e,0xa3,0x57)
3199#endif
3200#else
3201typedef struct ID3D12DeviceChildVtbl {
3202 BEGIN_INTERFACE
3203
3204 /*** IUnknown methods ***/
3205 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3206 ID3D12DeviceChild *This,
3207 REFIID riid,
3208 void **ppvObject);
3209
3210 ULONG (STDMETHODCALLTYPE *AddRef)(
3211 ID3D12DeviceChild *This);
3212
3213 ULONG (STDMETHODCALLTYPE *Release)(
3214 ID3D12DeviceChild *This);
3215
3216 /*** ID3D12Object methods ***/
3217 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3218 ID3D12DeviceChild *This,
3219 REFGUID guid,
3220 UINT *data_size,
3221 void *data);
3222
3223 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3224 ID3D12DeviceChild *This,
3225 REFGUID guid,
3226 UINT data_size,
3227 const void *data);
3228
3229 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3230 ID3D12DeviceChild *This,
3231 REFGUID guid,
3232 const IUnknown *data);
3233
3234 HRESULT (STDMETHODCALLTYPE *SetName)(
3235 ID3D12DeviceChild *This,
3236 const WCHAR *name);
3237
3238 /*** ID3D12DeviceChild methods ***/
3239 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3240 ID3D12DeviceChild *This,
3241 REFIID riid,
3242 void **device);
3243
3244 END_INTERFACE
3245} ID3D12DeviceChildVtbl;
3246
3247interface ID3D12DeviceChild {
3248 CONST_VTBL ID3D12DeviceChildVtbl* lpVtbl;
3249};
3250
3251#ifdef COBJMACROS
3252#ifndef WIDL_C_INLINE_WRAPPERS
3253/*** IUnknown methods ***/
3254#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3255#define ID3D12DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This)
3256#define ID3D12DeviceChild_Release(This) (This)->lpVtbl->Release(This)
3257/*** ID3D12Object methods ***/
3258#define ID3D12DeviceChild_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3259#define ID3D12DeviceChild_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3260#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3261#define ID3D12DeviceChild_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3262/*** ID3D12DeviceChild methods ***/
3263#define ID3D12DeviceChild_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3264#else
3265/*** IUnknown methods ***/
3266static inline HRESULT ID3D12DeviceChild_QueryInterface(ID3D12DeviceChild* This,REFIID riid,void **ppvObject) {
3267 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3268}
3269static inline ULONG ID3D12DeviceChild_AddRef(ID3D12DeviceChild* This) {
3270 return This->lpVtbl->AddRef(This);
3271}
3272static inline ULONG ID3D12DeviceChild_Release(ID3D12DeviceChild* This) {
3273 return This->lpVtbl->Release(This);
3274}
3275/*** ID3D12Object methods ***/
3276static inline HRESULT ID3D12DeviceChild_GetPrivateData(ID3D12DeviceChild* This,REFGUID guid,UINT *data_size,void *data) {
3277 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3278}
3279static inline HRESULT ID3D12DeviceChild_SetPrivateData(ID3D12DeviceChild* This,REFGUID guid,UINT data_size,const void *data) {
3280 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3281}
3282static inline HRESULT ID3D12DeviceChild_SetPrivateDataInterface(ID3D12DeviceChild* This,REFGUID guid,const IUnknown *data) {
3283 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3284}
3285static inline HRESULT ID3D12DeviceChild_SetName(ID3D12DeviceChild* This,const WCHAR *name) {
3286 return This->lpVtbl->SetName(This,name);
3287}
3288/*** ID3D12DeviceChild methods ***/
3289static inline HRESULT ID3D12DeviceChild_GetDevice(ID3D12DeviceChild* This,REFIID riid,void **device) {
3290 return This->lpVtbl->GetDevice(This,riid,device);
3291}
3292#endif
3293#endif
3294
3295#endif
3296
3297
3298#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
3299
3300/*****************************************************************************
3301 * ID3D12Pageable interface
3302 */
3303#ifndef __ID3D12Pageable_INTERFACE_DEFINED__
3304#define __ID3D12Pageable_INTERFACE_DEFINED__
3305
3306DEFINE_GUID(IID_ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86,0xda, 0xf0,0x08,0xce,0x62,0xf0,0xd6);
3307#if defined(__cplusplus) && !defined(CINTERFACE)
3308MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
3309ID3D12Pageable : public ID3D12DeviceChild
3310{
3311};
3312#ifdef __CRT_UUID_DECL
3313__CRT_UUID_DECL(ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86,0xda, 0xf0,0x08,0xce,0x62,0xf0,0xd6)
3314#endif
3315#else
3316typedef struct ID3D12PageableVtbl {
3317 BEGIN_INTERFACE
3318
3319 /*** IUnknown methods ***/
3320 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3321 ID3D12Pageable *This,
3322 REFIID riid,
3323 void **ppvObject);
3324
3325 ULONG (STDMETHODCALLTYPE *AddRef)(
3326 ID3D12Pageable *This);
3327
3328 ULONG (STDMETHODCALLTYPE *Release)(
3329 ID3D12Pageable *This);
3330
3331 /*** ID3D12Object methods ***/
3332 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3333 ID3D12Pageable *This,
3334 REFGUID guid,
3335 UINT *data_size,
3336 void *data);
3337
3338 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3339 ID3D12Pageable *This,
3340 REFGUID guid,
3341 UINT data_size,
3342 const void *data);
3343
3344 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3345 ID3D12Pageable *This,
3346 REFGUID guid,
3347 const IUnknown *data);
3348
3349 HRESULT (STDMETHODCALLTYPE *SetName)(
3350 ID3D12Pageable *This,
3351 const WCHAR *name);
3352
3353 /*** ID3D12DeviceChild methods ***/
3354 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3355 ID3D12Pageable *This,
3356 REFIID riid,
3357 void **device);
3358
3359 END_INTERFACE
3360} ID3D12PageableVtbl;
3361
3362interface ID3D12Pageable {
3363 CONST_VTBL ID3D12PageableVtbl* lpVtbl;
3364};
3365
3366#ifdef COBJMACROS
3367#ifndef WIDL_C_INLINE_WRAPPERS
3368/*** IUnknown methods ***/
3369#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3370#define ID3D12Pageable_AddRef(This) (This)->lpVtbl->AddRef(This)
3371#define ID3D12Pageable_Release(This) (This)->lpVtbl->Release(This)
3372/*** ID3D12Object methods ***/
3373#define ID3D12Pageable_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3374#define ID3D12Pageable_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3375#define ID3D12Pageable_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3376#define ID3D12Pageable_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3377/*** ID3D12DeviceChild methods ***/
3378#define ID3D12Pageable_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3379#else
3380/*** IUnknown methods ***/
3381static inline HRESULT ID3D12Pageable_QueryInterface(ID3D12Pageable* This,REFIID riid,void **ppvObject) {
3382 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3383}
3384static inline ULONG ID3D12Pageable_AddRef(ID3D12Pageable* This) {
3385 return This->lpVtbl->AddRef(This);
3386}
3387static inline ULONG ID3D12Pageable_Release(ID3D12Pageable* This) {
3388 return This->lpVtbl->Release(This);
3389}
3390/*** ID3D12Object methods ***/
3391static inline HRESULT ID3D12Pageable_GetPrivateData(ID3D12Pageable* This,REFGUID guid,UINT *data_size,void *data) {
3392 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3393}
3394static inline HRESULT ID3D12Pageable_SetPrivateData(ID3D12Pageable* This,REFGUID guid,UINT data_size,const void *data) {
3395 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3396}
3397static inline HRESULT ID3D12Pageable_SetPrivateDataInterface(ID3D12Pageable* This,REFGUID guid,const IUnknown *data) {
3398 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3399}
3400static inline HRESULT ID3D12Pageable_SetName(ID3D12Pageable* This,const WCHAR *name) {
3401 return This->lpVtbl->SetName(This,name);
3402}
3403/*** ID3D12DeviceChild methods ***/
3404static inline HRESULT ID3D12Pageable_GetDevice(ID3D12Pageable* This,REFIID riid,void **device) {
3405 return This->lpVtbl->GetDevice(This,riid,device);
3406}
3407#endif
3408#endif
3409
3410#endif
3411
3412
3413#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */
3414
3415/*****************************************************************************
3416 * ID3D12Heap interface
3417 */
3418#ifndef __ID3D12Heap_INTERFACE_DEFINED__
3419#define __ID3D12Heap_INTERFACE_DEFINED__
3420
3421DEFINE_GUID(IID_ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3);
3422#if defined(__cplusplus) && !defined(CINTERFACE)
3423MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
3424ID3D12Heap : public ID3D12Pageable
3425{
3426#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
3427 virtual D3D12_HEAP_DESC* STDMETHODCALLTYPE GetDesc(
3428 D3D12_HEAP_DESC *__ret) = 0;
3429 D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc(
3430 )
3431 {
3432 D3D12_HEAP_DESC __ret;
3433 return *GetDesc(&__ret);
3434 }
3435#else
3436 virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc(
3437 ) = 0;
3438#endif
3439
3440};
3441#ifdef __CRT_UUID_DECL
3442__CRT_UUID_DECL(ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3)
3443#endif
3444#else
3445typedef struct ID3D12HeapVtbl {
3446 BEGIN_INTERFACE
3447
3448 /*** IUnknown methods ***/
3449 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3450 ID3D12Heap *This,
3451 REFIID riid,
3452 void **ppvObject);
3453
3454 ULONG (STDMETHODCALLTYPE *AddRef)(
3455 ID3D12Heap *This);
3456
3457 ULONG (STDMETHODCALLTYPE *Release)(
3458 ID3D12Heap *This);
3459
3460 /*** ID3D12Object methods ***/
3461 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3462 ID3D12Heap *This,
3463 REFGUID guid,
3464 UINT *data_size,
3465 void *data);
3466
3467 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3468 ID3D12Heap *This,
3469 REFGUID guid,
3470 UINT data_size,
3471 const void *data);
3472
3473 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3474 ID3D12Heap *This,
3475 REFGUID guid,
3476 const IUnknown *data);
3477
3478 HRESULT (STDMETHODCALLTYPE *SetName)(
3479 ID3D12Heap *This,
3480 const WCHAR *name);
3481
3482 /*** ID3D12DeviceChild methods ***/
3483 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3484 ID3D12Heap *This,
3485 REFIID riid,
3486 void **device);
3487
3488 /*** ID3D12Heap methods ***/
3489 D3D12_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
3490 ID3D12Heap *This,
3491 D3D12_HEAP_DESC *__ret);
3492
3493 END_INTERFACE
3494} ID3D12HeapVtbl;
3495
3496interface ID3D12Heap {
3497 CONST_VTBL ID3D12HeapVtbl* lpVtbl;
3498};
3499
3500#ifdef COBJMACROS
3501#ifndef WIDL_C_INLINE_WRAPPERS
3502/*** IUnknown methods ***/
3503#define ID3D12Heap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3504#define ID3D12Heap_AddRef(This) (This)->lpVtbl->AddRef(This)
3505#define ID3D12Heap_Release(This) (This)->lpVtbl->Release(This)
3506/*** ID3D12Object methods ***/
3507#define ID3D12Heap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3508#define ID3D12Heap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3509#define ID3D12Heap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3510#define ID3D12Heap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3511/*** ID3D12DeviceChild methods ***/
3512#define ID3D12Heap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3513/*** ID3D12Heap methods ***/
3514#define ID3D12Heap_GetDesc(This) ID3D12Heap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
3515#else
3516/*** IUnknown methods ***/
3517static inline HRESULT ID3D12Heap_QueryInterface(ID3D12Heap* This,REFIID riid,void **ppvObject) {
3518 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3519}
3520static inline ULONG ID3D12Heap_AddRef(ID3D12Heap* This) {
3521 return This->lpVtbl->AddRef(This);
3522}
3523static inline ULONG ID3D12Heap_Release(ID3D12Heap* This) {
3524 return This->lpVtbl->Release(This);
3525}
3526/*** ID3D12Object methods ***/
3527static inline HRESULT ID3D12Heap_GetPrivateData(ID3D12Heap* This,REFGUID guid,UINT *data_size,void *data) {
3528 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3529}
3530static inline HRESULT ID3D12Heap_SetPrivateData(ID3D12Heap* This,REFGUID guid,UINT data_size,const void *data) {
3531 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3532}
3533static inline HRESULT ID3D12Heap_SetPrivateDataInterface(ID3D12Heap* This,REFGUID guid,const IUnknown *data) {
3534 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3535}
3536static inline HRESULT ID3D12Heap_SetName(ID3D12Heap* This,const WCHAR *name) {
3537 return This->lpVtbl->SetName(This,name);
3538}
3539/*** ID3D12DeviceChild methods ***/
3540static inline HRESULT ID3D12Heap_GetDevice(ID3D12Heap* This,REFIID riid,void **device) {
3541 return This->lpVtbl->GetDevice(This,riid,device);
3542}
3543/*** ID3D12Heap methods ***/
3544static inline D3D12_HEAP_DESC ID3D12Heap_GetDesc(ID3D12Heap* This) {
3545 D3D12_HEAP_DESC __ret;
3546 return *This->lpVtbl->GetDesc(This,&__ret);
3547}
3548#endif
3549#endif
3550
3551#endif
3552
3553
3554#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
3555
3556/*****************************************************************************
3557 * ID3D12Resource interface
3558 */
3559#ifndef __ID3D12Resource_INTERFACE_DEFINED__
3560#define __ID3D12Resource_INTERFACE_DEFINED__
3561
3562DEFINE_GUID(IID_ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc,0x79, 0x5b,0x5c,0x98,0x04,0x0f,0xad);
3563#if defined(__cplusplus) && !defined(CINTERFACE)
3564MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
3565ID3D12Resource : public ID3D12Pageable
3566{
3567 virtual HRESULT STDMETHODCALLTYPE Map(
3568 UINT sub_resource,
3569 const D3D12_RANGE *read_range,
3570 void **data) = 0;
3571
3572 virtual void STDMETHODCALLTYPE Unmap(
3573 UINT sub_resource,
3574 const D3D12_RANGE *written_range) = 0;
3575
3576#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
3577 virtual D3D12_RESOURCE_DESC* STDMETHODCALLTYPE GetDesc(
3578 D3D12_RESOURCE_DESC *__ret) = 0;
3579 D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc(
3580 )
3581 {
3582 D3D12_RESOURCE_DESC __ret;
3583 return *GetDesc(&__ret);
3584 }
3585#else
3586 virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc(
3587 ) = 0;
3588#endif
3589
3590 virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress(
3591 ) = 0;
3592
3593 virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
3594 UINT dst_sub_resource,
3595 const D3D12_BOX *dst_box,
3596 const void *src_data,
3597 UINT src_row_pitch,
3598 UINT src_slice_pitch) = 0;
3599
3600 virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
3601 void *dst_data,
3602 UINT dst_row_pitch,
3603 UINT dst_slice_pitch,
3604 UINT src_sub_resource,
3605 const D3D12_BOX *src_box) = 0;
3606
3607 virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
3608 D3D12_HEAP_PROPERTIES *heap_properties,
3609 D3D12_HEAP_FLAGS *flags) = 0;
3610
3611};
3612#ifdef __CRT_UUID_DECL
3613__CRT_UUID_DECL(ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc,0x79, 0x5b,0x5c,0x98,0x04,0x0f,0xad)
3614#endif
3615#else
3616typedef struct ID3D12ResourceVtbl {
3617 BEGIN_INTERFACE
3618
3619 /*** IUnknown methods ***/
3620 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3621 ID3D12Resource *This,
3622 REFIID riid,
3623 void **ppvObject);
3624
3625 ULONG (STDMETHODCALLTYPE *AddRef)(
3626 ID3D12Resource *This);
3627
3628 ULONG (STDMETHODCALLTYPE *Release)(
3629 ID3D12Resource *This);
3630
3631 /*** ID3D12Object methods ***/
3632 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3633 ID3D12Resource *This,
3634 REFGUID guid,
3635 UINT *data_size,
3636 void *data);
3637
3638 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3639 ID3D12Resource *This,
3640 REFGUID guid,
3641 UINT data_size,
3642 const void *data);
3643
3644 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3645 ID3D12Resource *This,
3646 REFGUID guid,
3647 const IUnknown *data);
3648
3649 HRESULT (STDMETHODCALLTYPE *SetName)(
3650 ID3D12Resource *This,
3651 const WCHAR *name);
3652
3653 /*** ID3D12DeviceChild methods ***/
3654 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3655 ID3D12Resource *This,
3656 REFIID riid,
3657 void **device);
3658
3659 /*** ID3D12Resource methods ***/
3660 HRESULT (STDMETHODCALLTYPE *Map)(
3661 ID3D12Resource *This,
3662 UINT sub_resource,
3663 const D3D12_RANGE *read_range,
3664 void **data);
3665
3666 void (STDMETHODCALLTYPE *Unmap)(
3667 ID3D12Resource *This,
3668 UINT sub_resource,
3669 const D3D12_RANGE *written_range);
3670
3671 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)(
3672 ID3D12Resource *This,
3673 D3D12_RESOURCE_DESC *__ret);
3674
3675 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)(
3676 ID3D12Resource *This);
3677
3678 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)(
3679 ID3D12Resource *This,
3680 UINT dst_sub_resource,
3681 const D3D12_BOX *dst_box,
3682 const void *src_data,
3683 UINT src_row_pitch,
3684 UINT src_slice_pitch);
3685
3686 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)(
3687 ID3D12Resource *This,
3688 void *dst_data,
3689 UINT dst_row_pitch,
3690 UINT dst_slice_pitch,
3691 UINT src_sub_resource,
3692 const D3D12_BOX *src_box);
3693
3694 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)(
3695 ID3D12Resource *This,
3696 D3D12_HEAP_PROPERTIES *heap_properties,
3697 D3D12_HEAP_FLAGS *flags);
3698
3699 END_INTERFACE
3700} ID3D12ResourceVtbl;
3701
3702interface ID3D12Resource {
3703 CONST_VTBL ID3D12ResourceVtbl* lpVtbl;
3704};
3705
3706#ifdef COBJMACROS
3707#ifndef WIDL_C_INLINE_WRAPPERS
3708/*** IUnknown methods ***/
3709#define ID3D12Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3710#define ID3D12Resource_AddRef(This) (This)->lpVtbl->AddRef(This)
3711#define ID3D12Resource_Release(This) (This)->lpVtbl->Release(This)
3712/*** ID3D12Object methods ***/
3713#define ID3D12Resource_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3714#define ID3D12Resource_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3715#define ID3D12Resource_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3716#define ID3D12Resource_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3717/*** ID3D12DeviceChild methods ***/
3718#define ID3D12Resource_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3719/*** ID3D12Resource methods ***/
3720#define ID3D12Resource_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data)
3721#define ID3D12Resource_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range)
3722#define ID3D12Resource_GetDesc(This) ID3D12Resource_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
3723#define ID3D12Resource_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This)
3724#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)
3725#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)
3726#define ID3D12Resource_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags)
3727#else
3728/*** IUnknown methods ***/
3729static inline HRESULT ID3D12Resource_QueryInterface(ID3D12Resource* This,REFIID riid,void **ppvObject) {
3730 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3731}
3732static inline ULONG ID3D12Resource_AddRef(ID3D12Resource* This) {
3733 return This->lpVtbl->AddRef(This);
3734}
3735static inline ULONG ID3D12Resource_Release(ID3D12Resource* This) {
3736 return This->lpVtbl->Release(This);
3737}
3738/*** ID3D12Object methods ***/
3739static inline HRESULT ID3D12Resource_GetPrivateData(ID3D12Resource* This,REFGUID guid,UINT *data_size,void *data) {
3740 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3741}
3742static inline HRESULT ID3D12Resource_SetPrivateData(ID3D12Resource* This,REFGUID guid,UINT data_size,const void *data) {
3743 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3744}
3745static inline HRESULT ID3D12Resource_SetPrivateDataInterface(ID3D12Resource* This,REFGUID guid,const IUnknown *data) {
3746 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3747}
3748static inline HRESULT ID3D12Resource_SetName(ID3D12Resource* This,const WCHAR *name) {
3749 return This->lpVtbl->SetName(This,name);
3750}
3751/*** ID3D12DeviceChild methods ***/
3752static inline HRESULT ID3D12Resource_GetDevice(ID3D12Resource* This,REFIID riid,void **device) {
3753 return This->lpVtbl->GetDevice(This,riid,device);
3754}
3755/*** ID3D12Resource methods ***/
3756static inline HRESULT ID3D12Resource_Map(ID3D12Resource* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) {
3757 return This->lpVtbl->Map(This,sub_resource,read_range,data);
3758}
3759static inline void ID3D12Resource_Unmap(ID3D12Resource* This,UINT sub_resource,const D3D12_RANGE *written_range) {
3760 This->lpVtbl->Unmap(This,sub_resource,written_range);
3761}
3762static inline D3D12_RESOURCE_DESC ID3D12Resource_GetDesc(ID3D12Resource* This) {
3763 D3D12_RESOURCE_DESC __ret;
3764 return *This->lpVtbl->GetDesc(This,&__ret);
3765}
3766static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource_GetGPUVirtualAddress(ID3D12Resource* This) {
3767 return This->lpVtbl->GetGPUVirtualAddress(This);
3768}
3769static 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) {
3770 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch);
3771}
3772static 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) {
3773 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box);
3774}
3775static inline HRESULT ID3D12Resource_GetHeapProperties(ID3D12Resource* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) {
3776 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags);
3777}
3778#endif
3779#endif
3780
3781#endif
3782
3783
3784#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
3785
3786/*****************************************************************************
3787 * ID3D12CommandList interface
3788 */
3789#ifndef __ID3D12CommandList_INTERFACE_DEFINED__
3790#define __ID3D12CommandList_INTERFACE_DEFINED__
3791
3792DEFINE_GUID(IID_ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8,0xc6, 0xec,0x81,0x68,0xf4,0x37,0xe5);
3793#if defined(__cplusplus) && !defined(CINTERFACE)
3794MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
3795ID3D12CommandList : public ID3D12DeviceChild
3796{
3797 virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(
3798 ) = 0;
3799
3800};
3801#ifdef __CRT_UUID_DECL
3802__CRT_UUID_DECL(ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8,0xc6, 0xec,0x81,0x68,0xf4,0x37,0xe5)
3803#endif
3804#else
3805typedef struct ID3D12CommandListVtbl {
3806 BEGIN_INTERFACE
3807
3808 /*** IUnknown methods ***/
3809 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3810 ID3D12CommandList *This,
3811 REFIID riid,
3812 void **ppvObject);
3813
3814 ULONG (STDMETHODCALLTYPE *AddRef)(
3815 ID3D12CommandList *This);
3816
3817 ULONG (STDMETHODCALLTYPE *Release)(
3818 ID3D12CommandList *This);
3819
3820 /*** ID3D12Object methods ***/
3821 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
3822 ID3D12CommandList *This,
3823 REFGUID guid,
3824 UINT *data_size,
3825 void *data);
3826
3827 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
3828 ID3D12CommandList *This,
3829 REFGUID guid,
3830 UINT data_size,
3831 const void *data);
3832
3833 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
3834 ID3D12CommandList *This,
3835 REFGUID guid,
3836 const IUnknown *data);
3837
3838 HRESULT (STDMETHODCALLTYPE *SetName)(
3839 ID3D12CommandList *This,
3840 const WCHAR *name);
3841
3842 /*** ID3D12DeviceChild methods ***/
3843 HRESULT (STDMETHODCALLTYPE *GetDevice)(
3844 ID3D12CommandList *This,
3845 REFIID riid,
3846 void **device);
3847
3848 /*** ID3D12CommandList methods ***/
3849 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
3850 ID3D12CommandList *This);
3851
3852 END_INTERFACE
3853} ID3D12CommandListVtbl;
3854
3855interface ID3D12CommandList {
3856 CONST_VTBL ID3D12CommandListVtbl* lpVtbl;
3857};
3858
3859#ifdef COBJMACROS
3860#ifndef WIDL_C_INLINE_WRAPPERS
3861/*** IUnknown methods ***/
3862#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3863#define ID3D12CommandList_AddRef(This) (This)->lpVtbl->AddRef(This)
3864#define ID3D12CommandList_Release(This) (This)->lpVtbl->Release(This)
3865/*** ID3D12Object methods ***/
3866#define ID3D12CommandList_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
3867#define ID3D12CommandList_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
3868#define ID3D12CommandList_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
3869#define ID3D12CommandList_SetName(This,name) (This)->lpVtbl->SetName(This,name)
3870/*** ID3D12DeviceChild methods ***/
3871#define ID3D12CommandList_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
3872/*** ID3D12CommandList methods ***/
3873#define ID3D12CommandList_GetType(This) (This)->lpVtbl->GetType(This)
3874#else
3875/*** IUnknown methods ***/
3876static inline HRESULT ID3D12CommandList_QueryInterface(ID3D12CommandList* This,REFIID riid,void **ppvObject) {
3877 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3878}
3879static inline ULONG ID3D12CommandList_AddRef(ID3D12CommandList* This) {
3880 return This->lpVtbl->AddRef(This);
3881}
3882static inline ULONG ID3D12CommandList_Release(ID3D12CommandList* This) {
3883 return This->lpVtbl->Release(This);
3884}
3885/*** ID3D12Object methods ***/
3886static inline HRESULT ID3D12CommandList_GetPrivateData(ID3D12CommandList* This,REFGUID guid,UINT *data_size,void *data) {
3887 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
3888}
3889static inline HRESULT ID3D12CommandList_SetPrivateData(ID3D12CommandList* This,REFGUID guid,UINT data_size,const void *data) {
3890 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
3891}
3892static inline HRESULT ID3D12CommandList_SetPrivateDataInterface(ID3D12CommandList* This,REFGUID guid,const IUnknown *data) {
3893 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
3894}
3895static inline HRESULT ID3D12CommandList_SetName(ID3D12CommandList* This,const WCHAR *name) {
3896 return This->lpVtbl->SetName(This,name);
3897}
3898/*** ID3D12DeviceChild methods ***/
3899static inline HRESULT ID3D12CommandList_GetDevice(ID3D12CommandList* This,REFIID riid,void **device) {
3900 return This->lpVtbl->GetDevice(This,riid,device);
3901}
3902/*** ID3D12CommandList methods ***/
3903static inline D3D12_COMMAND_LIST_TYPE ID3D12CommandList_GetType(ID3D12CommandList* This) {
3904 return This->lpVtbl->GetType(This);
3905}
3906#endif
3907#endif
3908
3909#endif
3910
3911
3912#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
3913
3914typedef enum D3D12_TILE_COPY_FLAGS {
3915 D3D12_TILE_COPY_FLAG_NONE = 0x0,
3916 D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
3917 D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
3918 D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
3919} D3D12_TILE_COPY_FLAGS;
3920DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_COPY_FLAGS);
3921typedef struct D3D12_INDEX_BUFFER_VIEW {
3922 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3923 UINT SizeInBytes;
3924 DXGI_FORMAT Format;
3925} D3D12_INDEX_BUFFER_VIEW;
3926typedef struct D3D12_VERTEX_BUFFER_VIEW {
3927 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3928 UINT SizeInBytes;
3929 UINT StrideInBytes;
3930} D3D12_VERTEX_BUFFER_VIEW;
3931typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW {
3932 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3933 UINT64 SizeInBytes;
3934 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
3935} D3D12_STREAM_OUTPUT_BUFFER_VIEW;
3936typedef enum D3D12_CLEAR_FLAGS {
3937 D3D12_CLEAR_FLAG_DEPTH = 0x1,
3938 D3D12_CLEAR_FLAG_STENCIL = 0x2
3939} D3D12_CLEAR_FLAGS;
3940DEFINE_ENUM_FLAG_OPERATORS(D3D12_CLEAR_FLAGS);
3941typedef struct D3D12_DISCARD_REGION {
3942 UINT NumRects;
3943 const D3D12_RECT *pRects;
3944 UINT FirstSubresource;
3945 UINT NumSubresources;
3946} D3D12_DISCARD_REGION;
3947typedef enum D3D12_QUERY_TYPE {
3948 D3D12_QUERY_TYPE_OCCLUSION = 0,
3949 D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
3950 D3D12_QUERY_TYPE_TIMESTAMP = 2,
3951 D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
3952 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
3953 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
3954 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
3955 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
3956 D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8,
3957 D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10
3958} D3D12_QUERY_TYPE;
3959typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS {
3960 UINT64 IAVertices;
3961 UINT64 IAPrimitives;
3962 UINT64 VSInvocations;
3963 UINT64 GSInvocations;
3964 UINT64 GSPrimitives;
3965 UINT64 CInvocations;
3966 UINT64 CPrimitives;
3967 UINT64 PSInvocations;
3968 UINT64 HSInvocations;
3969 UINT64 DSInvocations;
3970 UINT64 CSInvocations;
3971} D3D12_QUERY_DATA_PIPELINE_STATISTICS;
3972typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
3973 UINT64 IAVertices;
3974 UINT64 IAPrimitives;
3975 UINT64 VSInvocations;
3976 UINT64 GSInvocations;
3977 UINT64 GSPrimitives;
3978 UINT64 CInvocations;
3979 UINT64 CPrimitives;
3980 UINT64 PSInvocations;
3981 UINT64 HSInvocations;
3982 UINT64 DSInvocations;
3983 UINT64 CSInvocations;
3984 UINT64 ASInvocations;
3985 UINT64 MSInvocations;
3986 UINT64 MSPrimitives;
3987} D3D12_QUERY_DATA_PIPELINE_STATISTICS1;
3988typedef struct D3D12_QUERY_DATA_SO_STATISTICS {
3989 UINT64 NumPrimitivesWritten;
3990 UINT64 PrimitivesStorageNeeded;
3991} D3D12_QUERY_DATA_SO_STATISTICS;
3992typedef enum D3D12_PREDICATION_OP {
3993 D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
3994 D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
3995} D3D12_PREDICATION_OP;
3996/*****************************************************************************
3997 * ID3D12DescriptorHeap interface
3998 */
3999#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
4000#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
4001
4002DEFINE_GUID(IID_ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90,0xf7, 0x12,0x7b,0xb7,0x63,0xfa,0x51);
4003#if defined(__cplusplus) && !defined(CINTERFACE)
4004MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
4005ID3D12DescriptorHeap : public ID3D12Pageable
4006{
4007#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
4008 virtual D3D12_DESCRIPTOR_HEAP_DESC* STDMETHODCALLTYPE GetDesc(
4009 D3D12_DESCRIPTOR_HEAP_DESC *__ret) = 0;
4010 D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(
4011 )
4012 {
4013 D3D12_DESCRIPTOR_HEAP_DESC __ret;
4014 return *GetDesc(&__ret);
4015 }
4016#else
4017 virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(
4018 ) = 0;
4019#endif
4020
4021#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
4022 virtual D3D12_CPU_DESCRIPTOR_HANDLE* STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
4023 D3D12_CPU_DESCRIPTOR_HANDLE *__ret) = 0;
4024 D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
4025 )
4026 {
4027 D3D12_CPU_DESCRIPTOR_HANDLE __ret;
4028 return *GetCPUDescriptorHandleForHeapStart(&__ret);
4029 }
4030#else
4031 virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
4032 ) = 0;
4033#endif
4034
4035#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
4036 virtual D3D12_GPU_DESCRIPTOR_HANDLE* STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
4037 D3D12_GPU_DESCRIPTOR_HANDLE *__ret) = 0;
4038 D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
4039 )
4040 {
4041 D3D12_GPU_DESCRIPTOR_HANDLE __ret;
4042 return *GetGPUDescriptorHandleForHeapStart(&__ret);
4043 }
4044#else
4045 virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
4046 ) = 0;
4047#endif
4048
4049};
4050#ifdef __CRT_UUID_DECL
4051__CRT_UUID_DECL(ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90,0xf7, 0x12,0x7b,0xb7,0x63,0xfa,0x51)
4052#endif
4053#else
4054typedef struct ID3D12DescriptorHeapVtbl {
4055 BEGIN_INTERFACE
4056
4057 /*** IUnknown methods ***/
4058 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4059 ID3D12DescriptorHeap *This,
4060 REFIID riid,
4061 void **ppvObject);
4062
4063 ULONG (STDMETHODCALLTYPE *AddRef)(
4064 ID3D12DescriptorHeap *This);
4065
4066 ULONG (STDMETHODCALLTYPE *Release)(
4067 ID3D12DescriptorHeap *This);
4068
4069 /*** ID3D12Object methods ***/
4070 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
4071 ID3D12DescriptorHeap *This,
4072 REFGUID guid,
4073 UINT *data_size,
4074 void *data);
4075
4076 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
4077 ID3D12DescriptorHeap *This,
4078 REFGUID guid,
4079 UINT data_size,
4080 const void *data);
4081
4082 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
4083 ID3D12DescriptorHeap *This,
4084 REFGUID guid,
4085 const IUnknown *data);
4086
4087 HRESULT (STDMETHODCALLTYPE *SetName)(
4088 ID3D12DescriptorHeap *This,
4089 const WCHAR *name);
4090
4091 /*** ID3D12DeviceChild methods ***/
4092 HRESULT (STDMETHODCALLTYPE *GetDevice)(
4093 ID3D12DescriptorHeap *This,
4094 REFIID riid,
4095 void **device);
4096
4097 /*** ID3D12DescriptorHeap methods ***/
4098 D3D12_DESCRIPTOR_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
4099 ID3D12DescriptorHeap *This,
4100 D3D12_DESCRIPTOR_HEAP_DESC *__ret);
4101
4102 D3D12_CPU_DESCRIPTOR_HANDLE * (STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart)(
4103 ID3D12DescriptorHeap *This,
4104 D3D12_CPU_DESCRIPTOR_HANDLE *__ret);
4105
4106 D3D12_GPU_DESCRIPTOR_HANDLE * (STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart)(
4107 ID3D12DescriptorHeap *This,
4108 D3D12_GPU_DESCRIPTOR_HANDLE *__ret);
4109
4110 END_INTERFACE
4111} ID3D12DescriptorHeapVtbl;
4112
4113interface ID3D12DescriptorHeap {
4114 CONST_VTBL ID3D12DescriptorHeapVtbl* lpVtbl;
4115};
4116
4117#ifdef COBJMACROS
4118#ifndef WIDL_C_INLINE_WRAPPERS
4119/*** IUnknown methods ***/
4120#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4121#define ID3D12DescriptorHeap_AddRef(This) (This)->lpVtbl->AddRef(This)
4122#define ID3D12DescriptorHeap_Release(This) (This)->lpVtbl->Release(This)
4123/*** ID3D12Object methods ***/
4124#define ID3D12DescriptorHeap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
4125#define ID3D12DescriptorHeap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
4126#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
4127#define ID3D12DescriptorHeap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
4128/*** ID3D12DeviceChild methods ***/
4129#define ID3D12DescriptorHeap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
4130/*** ID3D12DescriptorHeap methods ***/
4131#define ID3D12DescriptorHeap_GetDesc(This) ID3D12DescriptorHeap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
4132#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
4133#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
4134#else
4135/*** IUnknown methods ***/
4136static inline HRESULT ID3D12DescriptorHeap_QueryInterface(ID3D12DescriptorHeap* This,REFIID riid,void **ppvObject) {
4137 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4138}
4139static inline ULONG ID3D12DescriptorHeap_AddRef(ID3D12DescriptorHeap* This) {
4140 return This->lpVtbl->AddRef(This);
4141}
4142static inline ULONG ID3D12DescriptorHeap_Release(ID3D12DescriptorHeap* This) {
4143 return This->lpVtbl->Release(This);
4144}
4145/*** ID3D12Object methods ***/
4146static inline HRESULT ID3D12DescriptorHeap_GetPrivateData(ID3D12DescriptorHeap* This,REFGUID guid,UINT *data_size,void *data) {
4147 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
4148}
4149static inline HRESULT ID3D12DescriptorHeap_SetPrivateData(ID3D12DescriptorHeap* This,REFGUID guid,UINT data_size,const void *data) {
4150 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
4151}
4152static inline HRESULT ID3D12DescriptorHeap_SetPrivateDataInterface(ID3D12DescriptorHeap* This,REFGUID guid,const IUnknown *data) {
4153 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
4154}
4155static inline HRESULT ID3D12DescriptorHeap_SetName(ID3D12DescriptorHeap* This,const WCHAR *name) {
4156 return This->lpVtbl->SetName(This,name);
4157}
4158/*** ID3D12DeviceChild methods ***/
4159static inline HRESULT ID3D12DescriptorHeap_GetDevice(ID3D12DescriptorHeap* This,REFIID riid,void **device) {
4160 return This->lpVtbl->GetDevice(This,riid,device);
4161}
4162/*** ID3D12DescriptorHeap methods ***/
4163static inline D3D12_DESCRIPTOR_HEAP_DESC ID3D12DescriptorHeap_GetDesc(ID3D12DescriptorHeap* This) {
4164 D3D12_DESCRIPTOR_HEAP_DESC __ret;
4165 return *This->lpVtbl->GetDesc(This,&__ret);
4166}
4167static inline D3D12_CPU_DESCRIPTOR_HANDLE ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap* This) {
4168 D3D12_CPU_DESCRIPTOR_HANDLE __ret;
4169 return *This->lpVtbl->GetCPUDescriptorHandleForHeapStart(This,&__ret);
4170}
4171static inline D3D12_GPU_DESCRIPTOR_HANDLE ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap* This) {
4172 D3D12_GPU_DESCRIPTOR_HANDLE __ret;
4173 return *This->lpVtbl->GetGPUDescriptorHandleForHeapStart(This,&__ret);
4174}
4175#endif
4176#endif
4177
4178#endif
4179
4180
4181#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
4182
4183/*****************************************************************************
4184 * ID3D12QueryHeap interface
4185 */
4186#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
4187#define __ID3D12QueryHeap_INTERFACE_DEFINED__
4188
4189DEFINE_GUID(IID_ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6,0x1d, 0x97,0x0e,0xc5,0x83,0xca,0xb4);
4190#if defined(__cplusplus) && !defined(CINTERFACE)
4191MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
4192ID3D12QueryHeap : public ID3D12Pageable
4193{
4194};
4195#ifdef __CRT_UUID_DECL
4196__CRT_UUID_DECL(ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6,0x1d, 0x97,0x0e,0xc5,0x83,0xca,0xb4)
4197#endif
4198#else
4199typedef struct ID3D12QueryHeapVtbl {
4200 BEGIN_INTERFACE
4201
4202 /*** IUnknown methods ***/
4203 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4204 ID3D12QueryHeap *This,
4205 REFIID riid,
4206 void **ppvObject);
4207
4208 ULONG (STDMETHODCALLTYPE *AddRef)(
4209 ID3D12QueryHeap *This);
4210
4211 ULONG (STDMETHODCALLTYPE *Release)(
4212 ID3D12QueryHeap *This);
4213
4214 /*** ID3D12Object methods ***/
4215 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
4216 ID3D12QueryHeap *This,
4217 REFGUID guid,
4218 UINT *data_size,
4219 void *data);
4220
4221 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
4222 ID3D12QueryHeap *This,
4223 REFGUID guid,
4224 UINT data_size,
4225 const void *data);
4226
4227 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
4228 ID3D12QueryHeap *This,
4229 REFGUID guid,
4230 const IUnknown *data);
4231
4232 HRESULT (STDMETHODCALLTYPE *SetName)(
4233 ID3D12QueryHeap *This,
4234 const WCHAR *name);
4235
4236 /*** ID3D12DeviceChild methods ***/
4237 HRESULT (STDMETHODCALLTYPE *GetDevice)(
4238 ID3D12QueryHeap *This,
4239 REFIID riid,
4240 void **device);
4241
4242 END_INTERFACE
4243} ID3D12QueryHeapVtbl;
4244
4245interface ID3D12QueryHeap {
4246 CONST_VTBL ID3D12QueryHeapVtbl* lpVtbl;
4247};
4248
4249#ifdef COBJMACROS
4250#ifndef WIDL_C_INLINE_WRAPPERS
4251/*** IUnknown methods ***/
4252#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4253#define ID3D12QueryHeap_AddRef(This) (This)->lpVtbl->AddRef(This)
4254#define ID3D12QueryHeap_Release(This) (This)->lpVtbl->Release(This)
4255/*** ID3D12Object methods ***/
4256#define ID3D12QueryHeap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
4257#define ID3D12QueryHeap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
4258#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
4259#define ID3D12QueryHeap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
4260/*** ID3D12DeviceChild methods ***/
4261#define ID3D12QueryHeap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
4262#else
4263/*** IUnknown methods ***/
4264static inline HRESULT ID3D12QueryHeap_QueryInterface(ID3D12QueryHeap* This,REFIID riid,void **ppvObject) {
4265 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4266}
4267static inline ULONG ID3D12QueryHeap_AddRef(ID3D12QueryHeap* This) {
4268 return This->lpVtbl->AddRef(This);
4269}
4270static inline ULONG ID3D12QueryHeap_Release(ID3D12QueryHeap* This) {
4271 return This->lpVtbl->Release(This);
4272}
4273/*** ID3D12Object methods ***/
4274static inline HRESULT ID3D12QueryHeap_GetPrivateData(ID3D12QueryHeap* This,REFGUID guid,UINT *data_size,void *data) {
4275 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
4276}
4277static inline HRESULT ID3D12QueryHeap_SetPrivateData(ID3D12QueryHeap* This,REFGUID guid,UINT data_size,const void *data) {
4278 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
4279}
4280static inline HRESULT ID3D12QueryHeap_SetPrivateDataInterface(ID3D12QueryHeap* This,REFGUID guid,const IUnknown *data) {
4281 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
4282}
4283static inline HRESULT ID3D12QueryHeap_SetName(ID3D12QueryHeap* This,const WCHAR *name) {
4284 return This->lpVtbl->SetName(This,name);
4285}
4286/*** ID3D12DeviceChild methods ***/
4287static inline HRESULT ID3D12QueryHeap_GetDevice(ID3D12QueryHeap* This,REFIID riid,void **device) {
4288 return This->lpVtbl->GetDevice(This,riid,device);
4289}
4290#endif
4291#endif
4292
4293#endif
4294
4295
4296#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
4297
4298/*****************************************************************************
4299 * ID3D12CommandSignature interface
4300 */
4301#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__
4302#define __ID3D12CommandSignature_INTERFACE_DEFINED__
4303
4304DEFINE_GUID(IID_ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89,0x85, 0xa7,0xb2,0x47,0x50,0x82,0xd1);
4305#if defined(__cplusplus) && !defined(CINTERFACE)
4306MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1")
4307ID3D12CommandSignature : public ID3D12Pageable
4308{
4309};
4310#ifdef __CRT_UUID_DECL
4311__CRT_UUID_DECL(ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89,0x85, 0xa7,0xb2,0x47,0x50,0x82,0xd1)
4312#endif
4313#else
4314typedef struct ID3D12CommandSignatureVtbl {
4315 BEGIN_INTERFACE
4316
4317 /*** IUnknown methods ***/
4318 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4319 ID3D12CommandSignature *This,
4320 REFIID riid,
4321 void **ppvObject);
4322
4323 ULONG (STDMETHODCALLTYPE *AddRef)(
4324 ID3D12CommandSignature *This);
4325
4326 ULONG (STDMETHODCALLTYPE *Release)(
4327 ID3D12CommandSignature *This);
4328
4329 /*** ID3D12Object methods ***/
4330 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
4331 ID3D12CommandSignature *This,
4332 REFGUID guid,
4333 UINT *data_size,
4334 void *data);
4335
4336 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
4337 ID3D12CommandSignature *This,
4338 REFGUID guid,
4339 UINT data_size,
4340 const void *data);
4341
4342 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
4343 ID3D12CommandSignature *This,
4344 REFGUID guid,
4345 const IUnknown *data);
4346
4347 HRESULT (STDMETHODCALLTYPE *SetName)(
4348 ID3D12CommandSignature *This,
4349 const WCHAR *name);
4350
4351 /*** ID3D12DeviceChild methods ***/
4352 HRESULT (STDMETHODCALLTYPE *GetDevice)(
4353 ID3D12CommandSignature *This,
4354 REFIID riid,
4355 void **device);
4356
4357 END_INTERFACE
4358} ID3D12CommandSignatureVtbl;
4359
4360interface ID3D12CommandSignature {
4361 CONST_VTBL ID3D12CommandSignatureVtbl* lpVtbl;
4362};
4363
4364#ifdef COBJMACROS
4365#ifndef WIDL_C_INLINE_WRAPPERS
4366/*** IUnknown methods ***/
4367#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4368#define ID3D12CommandSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
4369#define ID3D12CommandSignature_Release(This) (This)->lpVtbl->Release(This)
4370/*** ID3D12Object methods ***/
4371#define ID3D12CommandSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
4372#define ID3D12CommandSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
4373#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
4374#define ID3D12CommandSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name)
4375/*** ID3D12DeviceChild methods ***/
4376#define ID3D12CommandSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
4377#else
4378/*** IUnknown methods ***/
4379static inline HRESULT ID3D12CommandSignature_QueryInterface(ID3D12CommandSignature* This,REFIID riid,void **ppvObject) {
4380 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4381}
4382static inline ULONG ID3D12CommandSignature_AddRef(ID3D12CommandSignature* This) {
4383 return This->lpVtbl->AddRef(This);
4384}
4385static inline ULONG ID3D12CommandSignature_Release(ID3D12CommandSignature* This) {
4386 return This->lpVtbl->Release(This);
4387}
4388/*** ID3D12Object methods ***/
4389static inline HRESULT ID3D12CommandSignature_GetPrivateData(ID3D12CommandSignature* This,REFGUID guid,UINT *data_size,void *data) {
4390 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
4391}
4392static inline HRESULT ID3D12CommandSignature_SetPrivateData(ID3D12CommandSignature* This,REFGUID guid,UINT data_size,const void *data) {
4393 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
4394}
4395static inline HRESULT ID3D12CommandSignature_SetPrivateDataInterface(ID3D12CommandSignature* This,REFGUID guid,const IUnknown *data) {
4396 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
4397}
4398static inline HRESULT ID3D12CommandSignature_SetName(ID3D12CommandSignature* This,const WCHAR *name) {
4399 return This->lpVtbl->SetName(This,name);
4400}
4401/*** ID3D12DeviceChild methods ***/
4402static inline HRESULT ID3D12CommandSignature_GetDevice(ID3D12CommandSignature* This,REFIID riid,void **device) {
4403 return This->lpVtbl->GetDevice(This,riid,device);
4404}
4405#endif
4406#endif
4407
4408#endif
4409
4410
4411#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */
4412
4413/*****************************************************************************
4414 * ID3D12GraphicsCommandList interface
4415 */
4416#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
4417#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
4418
4419DEFINE_GUID(IID_ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b,0xa8, 0xb3,0xae,0x42,0xa5,0xa4,0x55);
4420#if defined(__cplusplus) && !defined(CINTERFACE)
4421MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
4422ID3D12GraphicsCommandList : public ID3D12CommandList
4423{
4424 virtual HRESULT STDMETHODCALLTYPE Close(
4425 ) = 0;
4426
4427 virtual HRESULT STDMETHODCALLTYPE Reset(
4428 ID3D12CommandAllocator *allocator,
4429 ID3D12PipelineState *initial_state) = 0;
4430
4431 virtual void STDMETHODCALLTYPE ClearState(
4432 ID3D12PipelineState *pipeline_state) = 0;
4433
4434 virtual void STDMETHODCALLTYPE DrawInstanced(
4435 UINT vertex_count_per_instance,
4436 UINT instance_count,
4437 UINT start_vertex_location,
4438 UINT start_instance_location) = 0;
4439
4440 virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
4441 UINT index_count_per_instance,
4442 UINT instance_count,
4443 UINT start_vertex_location,
4444 INT base_vertex_location,
4445 UINT start_instance_location) = 0;
4446
4447 virtual void STDMETHODCALLTYPE Dispatch(
4448 UINT x,
4449 UINT u,
4450 UINT z) = 0;
4451
4452 virtual void STDMETHODCALLTYPE CopyBufferRegion(
4453 ID3D12Resource *dst_buffer,
4454 UINT64 dst_offset,
4455 ID3D12Resource *src_buffer,
4456 UINT64 src_offset,
4457 UINT64 byte_count) = 0;
4458
4459 virtual void STDMETHODCALLTYPE CopyTextureRegion(
4460 const D3D12_TEXTURE_COPY_LOCATION *dst,
4461 UINT dst_x,
4462 UINT dst_y,
4463 UINT dst_z,
4464 const D3D12_TEXTURE_COPY_LOCATION *src,
4465 const D3D12_BOX *src_box) = 0;
4466
4467 virtual void STDMETHODCALLTYPE CopyResource(
4468 ID3D12Resource *dst_resource,
4469 ID3D12Resource *src_resource) = 0;
4470
4471 virtual void STDMETHODCALLTYPE CopyTiles(
4472 ID3D12Resource *tiled_resource,
4473 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
4474 const D3D12_TILE_REGION_SIZE *tile_region_size,
4475 ID3D12Resource *buffer,
4476 UINT64 buffer_offset,
4477 D3D12_TILE_COPY_FLAGS flags) = 0;
4478
4479 virtual void STDMETHODCALLTYPE ResolveSubresource(
4480 ID3D12Resource *dst_resource,
4481 UINT dst_sub_resource,
4482 ID3D12Resource *src_resource,
4483 UINT src_sub_resource,
4484 DXGI_FORMAT format) = 0;
4485
4486 virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
4487 D3D12_PRIMITIVE_TOPOLOGY primitive_topology) = 0;
4488
4489 virtual void STDMETHODCALLTYPE RSSetViewports(
4490 UINT viewport_count,
4491 const D3D12_VIEWPORT *viewports) = 0;
4492
4493 virtual void STDMETHODCALLTYPE RSSetScissorRects(
4494 UINT rect_count,
4495 const D3D12_RECT *rects) = 0;
4496
4497 virtual void STDMETHODCALLTYPE OMSetBlendFactor(
4498 const FLOAT blend_factor[4]) = 0;
4499
4500 virtual void STDMETHODCALLTYPE OMSetStencilRef(
4501 UINT stencil_ref) = 0;
4502
4503 virtual void STDMETHODCALLTYPE SetPipelineState(
4504 ID3D12PipelineState *pipeline_state) = 0;
4505
4506 virtual void STDMETHODCALLTYPE ResourceBarrier(
4507 UINT barrier_count,
4508 const D3D12_RESOURCE_BARRIER *barriers) = 0;
4509
4510 virtual void STDMETHODCALLTYPE ExecuteBundle(
4511 ID3D12GraphicsCommandList *command_list) = 0;
4512
4513 virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
4514 UINT heap_count,
4515 ID3D12DescriptorHeap *const *heaps) = 0;
4516
4517 virtual void STDMETHODCALLTYPE SetComputeRootSignature(
4518 ID3D12RootSignature *root_signature) = 0;
4519
4520 virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
4521 ID3D12RootSignature *root_signature) = 0;
4522
4523 virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
4524 UINT root_parameter_index,
4525 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) = 0;
4526
4527 virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
4528 UINT root_parameter_index,
4529 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) = 0;
4530
4531 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
4532 UINT root_parameter_index,
4533 UINT data,
4534 UINT dst_offset) = 0;
4535
4536 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
4537 UINT root_parameter_index,
4538 UINT data,
4539 UINT dst_offset) = 0;
4540
4541 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
4542 UINT root_parameter_index,
4543 UINT constant_count,
4544 const void *data,
4545 UINT dst_offset) = 0;
4546
4547 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
4548 UINT root_parameter_index,
4549 UINT constant_count,
4550 const void *data,
4551 UINT dst_offset) = 0;
4552
4553 virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
4554 UINT root_parameter_index,
4555 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4556
4557 virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
4558 UINT root_parameter_index,
4559 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4560
4561 virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
4562 UINT root_parameter_index,
4563 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4564
4565 virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
4566 UINT root_parameter_index,
4567 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4568
4569 virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
4570 UINT root_parameter_index,
4571 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4572
4573 virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
4574 UINT root_parameter_index,
4575 D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
4576
4577 virtual void STDMETHODCALLTYPE IASetIndexBuffer(
4578 const D3D12_INDEX_BUFFER_VIEW *view) = 0;
4579
4580 virtual void STDMETHODCALLTYPE IASetVertexBuffers(
4581 UINT start_slot,
4582 UINT view_count,
4583 const D3D12_VERTEX_BUFFER_VIEW *views) = 0;
4584
4585 virtual void STDMETHODCALLTYPE SOSetTargets(
4586 UINT start_slot,
4587 UINT view_count,
4588 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) = 0;
4589
4590 virtual void STDMETHODCALLTYPE OMSetRenderTargets(
4591 UINT render_target_descriptor_count,
4592 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
4593 WINBOOL single_descriptor_handle,
4594 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) = 0;
4595
4596 virtual void STDMETHODCALLTYPE ClearDepthStencilView(
4597 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
4598 D3D12_CLEAR_FLAGS flags,
4599 FLOAT depth,
4600 UINT8 stencil,
4601 UINT rect_count,
4602 const D3D12_RECT *rects) = 0;
4603
4604 virtual void STDMETHODCALLTYPE ClearRenderTargetView(
4605 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
4606 const FLOAT color[4],
4607 UINT rect_count,
4608 const D3D12_RECT *rects) = 0;
4609
4610 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
4611 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
4612 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
4613 ID3D12Resource *resource,
4614 const UINT values[4],
4615 UINT rect_count,
4616 const D3D12_RECT *rects) = 0;
4617
4618 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
4619 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
4620 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
4621 ID3D12Resource *resource,
4622 const float values[4],
4623 UINT rect_count,
4624 const D3D12_RECT *rects) = 0;
4625
4626 virtual void STDMETHODCALLTYPE DiscardResource(
4627 ID3D12Resource *resource,
4628 const D3D12_DISCARD_REGION *region) = 0;
4629
4630 virtual void STDMETHODCALLTYPE BeginQuery(
4631 ID3D12QueryHeap *heap,
4632 D3D12_QUERY_TYPE type,
4633 UINT index) = 0;
4634
4635 virtual void STDMETHODCALLTYPE EndQuery(
4636 ID3D12QueryHeap *heap,
4637 D3D12_QUERY_TYPE type,
4638 UINT index) = 0;
4639
4640 virtual void STDMETHODCALLTYPE ResolveQueryData(
4641 ID3D12QueryHeap *heap,
4642 D3D12_QUERY_TYPE type,
4643 UINT start_index,
4644 UINT query_count,
4645 ID3D12Resource *dst_buffer,
4646 UINT64 aligned_dst_buffer_offset) = 0;
4647
4648 virtual void STDMETHODCALLTYPE SetPredication(
4649 ID3D12Resource *buffer,
4650 UINT64 aligned_buffer_offset,
4651 D3D12_PREDICATION_OP operation) = 0;
4652
4653 virtual void STDMETHODCALLTYPE SetMarker(
4654 UINT metadata,
4655 const void *data,
4656 UINT size) = 0;
4657
4658 virtual void STDMETHODCALLTYPE BeginEvent(
4659 UINT metadata,
4660 const void *data,
4661 UINT size) = 0;
4662
4663 virtual void STDMETHODCALLTYPE EndEvent(
4664 ) = 0;
4665
4666 virtual void STDMETHODCALLTYPE ExecuteIndirect(
4667 ID3D12CommandSignature *command_signature,
4668 UINT max_command_count,
4669 ID3D12Resource *arg_buffer,
4670 UINT64 arg_buffer_offset,
4671 ID3D12Resource *count_buffer,
4672 UINT64 count_buffer_offset) = 0;
4673
4674};
4675#ifdef __CRT_UUID_DECL
4676__CRT_UUID_DECL(ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b,0xa8, 0xb3,0xae,0x42,0xa5,0xa4,0x55)
4677#endif
4678#else
4679typedef struct ID3D12GraphicsCommandListVtbl {
4680 BEGIN_INTERFACE
4681
4682 /*** IUnknown methods ***/
4683 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4684 ID3D12GraphicsCommandList *This,
4685 REFIID riid,
4686 void **ppvObject);
4687
4688 ULONG (STDMETHODCALLTYPE *AddRef)(
4689 ID3D12GraphicsCommandList *This);
4690
4691 ULONG (STDMETHODCALLTYPE *Release)(
4692 ID3D12GraphicsCommandList *This);
4693
4694 /*** ID3D12Object methods ***/
4695 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
4696 ID3D12GraphicsCommandList *This,
4697 REFGUID guid,
4698 UINT *data_size,
4699 void *data);
4700
4701 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
4702 ID3D12GraphicsCommandList *This,
4703 REFGUID guid,
4704 UINT data_size,
4705 const void *data);
4706
4707 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
4708 ID3D12GraphicsCommandList *This,
4709 REFGUID guid,
4710 const IUnknown *data);
4711
4712 HRESULT (STDMETHODCALLTYPE *SetName)(
4713 ID3D12GraphicsCommandList *This,
4714 const WCHAR *name);
4715
4716 /*** ID3D12DeviceChild methods ***/
4717 HRESULT (STDMETHODCALLTYPE *GetDevice)(
4718 ID3D12GraphicsCommandList *This,
4719 REFIID riid,
4720 void **device);
4721
4722 /*** ID3D12CommandList methods ***/
4723 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
4724 ID3D12GraphicsCommandList *This);
4725
4726 /*** ID3D12GraphicsCommandList methods ***/
4727 HRESULT (STDMETHODCALLTYPE *Close)(
4728 ID3D12GraphicsCommandList *This);
4729
4730 HRESULT (STDMETHODCALLTYPE *Reset)(
4731 ID3D12GraphicsCommandList *This,
4732 ID3D12CommandAllocator *allocator,
4733 ID3D12PipelineState *initial_state);
4734
4735 void (STDMETHODCALLTYPE *ClearState)(
4736 ID3D12GraphicsCommandList *This,
4737 ID3D12PipelineState *pipeline_state);
4738
4739 void (STDMETHODCALLTYPE *DrawInstanced)(
4740 ID3D12GraphicsCommandList *This,
4741 UINT vertex_count_per_instance,
4742 UINT instance_count,
4743 UINT start_vertex_location,
4744 UINT start_instance_location);
4745
4746 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
4747 ID3D12GraphicsCommandList *This,
4748 UINT index_count_per_instance,
4749 UINT instance_count,
4750 UINT start_vertex_location,
4751 INT base_vertex_location,
4752 UINT start_instance_location);
4753
4754 void (STDMETHODCALLTYPE *Dispatch)(
4755 ID3D12GraphicsCommandList *This,
4756 UINT x,
4757 UINT u,
4758 UINT z);
4759
4760 void (STDMETHODCALLTYPE *CopyBufferRegion)(
4761 ID3D12GraphicsCommandList *This,
4762 ID3D12Resource *dst_buffer,
4763 UINT64 dst_offset,
4764 ID3D12Resource *src_buffer,
4765 UINT64 src_offset,
4766 UINT64 byte_count);
4767
4768 void (STDMETHODCALLTYPE *CopyTextureRegion)(
4769 ID3D12GraphicsCommandList *This,
4770 const D3D12_TEXTURE_COPY_LOCATION *dst,
4771 UINT dst_x,
4772 UINT dst_y,
4773 UINT dst_z,
4774 const D3D12_TEXTURE_COPY_LOCATION *src,
4775 const D3D12_BOX *src_box);
4776
4777 void (STDMETHODCALLTYPE *CopyResource)(
4778 ID3D12GraphicsCommandList *This,
4779 ID3D12Resource *dst_resource,
4780 ID3D12Resource *src_resource);
4781
4782 void (STDMETHODCALLTYPE *CopyTiles)(
4783 ID3D12GraphicsCommandList *This,
4784 ID3D12Resource *tiled_resource,
4785 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
4786 const D3D12_TILE_REGION_SIZE *tile_region_size,
4787 ID3D12Resource *buffer,
4788 UINT64 buffer_offset,
4789 D3D12_TILE_COPY_FLAGS flags);
4790
4791 void (STDMETHODCALLTYPE *ResolveSubresource)(
4792 ID3D12GraphicsCommandList *This,
4793 ID3D12Resource *dst_resource,
4794 UINT dst_sub_resource,
4795 ID3D12Resource *src_resource,
4796 UINT src_sub_resource,
4797 DXGI_FORMAT format);
4798
4799 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
4800 ID3D12GraphicsCommandList *This,
4801 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
4802
4803 void (STDMETHODCALLTYPE *RSSetViewports)(
4804 ID3D12GraphicsCommandList *This,
4805 UINT viewport_count,
4806 const D3D12_VIEWPORT *viewports);
4807
4808 void (STDMETHODCALLTYPE *RSSetScissorRects)(
4809 ID3D12GraphicsCommandList *This,
4810 UINT rect_count,
4811 const D3D12_RECT *rects);
4812
4813 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
4814 ID3D12GraphicsCommandList *This,
4815 const FLOAT blend_factor[4]);
4816
4817 void (STDMETHODCALLTYPE *OMSetStencilRef)(
4818 ID3D12GraphicsCommandList *This,
4819 UINT stencil_ref);
4820
4821 void (STDMETHODCALLTYPE *SetPipelineState)(
4822 ID3D12GraphicsCommandList *This,
4823 ID3D12PipelineState *pipeline_state);
4824
4825 void (STDMETHODCALLTYPE *ResourceBarrier)(
4826 ID3D12GraphicsCommandList *This,
4827 UINT barrier_count,
4828 const D3D12_RESOURCE_BARRIER *barriers);
4829
4830 void (STDMETHODCALLTYPE *ExecuteBundle)(
4831 ID3D12GraphicsCommandList *This,
4832 ID3D12GraphicsCommandList *command_list);
4833
4834 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
4835 ID3D12GraphicsCommandList *This,
4836 UINT heap_count,
4837 ID3D12DescriptorHeap *const *heaps);
4838
4839 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
4840 ID3D12GraphicsCommandList *This,
4841 ID3D12RootSignature *root_signature);
4842
4843 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
4844 ID3D12GraphicsCommandList *This,
4845 ID3D12RootSignature *root_signature);
4846
4847 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
4848 ID3D12GraphicsCommandList *This,
4849 UINT root_parameter_index,
4850 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
4851
4852 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
4853 ID3D12GraphicsCommandList *This,
4854 UINT root_parameter_index,
4855 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
4856
4857 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
4858 ID3D12GraphicsCommandList *This,
4859 UINT root_parameter_index,
4860 UINT data,
4861 UINT dst_offset);
4862
4863 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
4864 ID3D12GraphicsCommandList *This,
4865 UINT root_parameter_index,
4866 UINT data,
4867 UINT dst_offset);
4868
4869 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
4870 ID3D12GraphicsCommandList *This,
4871 UINT root_parameter_index,
4872 UINT constant_count,
4873 const void *data,
4874 UINT dst_offset);
4875
4876 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
4877 ID3D12GraphicsCommandList *This,
4878 UINT root_parameter_index,
4879 UINT constant_count,
4880 const void *data,
4881 UINT dst_offset);
4882
4883 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
4884 ID3D12GraphicsCommandList *This,
4885 UINT root_parameter_index,
4886 D3D12_GPU_VIRTUAL_ADDRESS address);
4887
4888 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
4889 ID3D12GraphicsCommandList *This,
4890 UINT root_parameter_index,
4891 D3D12_GPU_VIRTUAL_ADDRESS address);
4892
4893 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
4894 ID3D12GraphicsCommandList *This,
4895 UINT root_parameter_index,
4896 D3D12_GPU_VIRTUAL_ADDRESS address);
4897
4898 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
4899 ID3D12GraphicsCommandList *This,
4900 UINT root_parameter_index,
4901 D3D12_GPU_VIRTUAL_ADDRESS address);
4902
4903 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
4904 ID3D12GraphicsCommandList *This,
4905 UINT root_parameter_index,
4906 D3D12_GPU_VIRTUAL_ADDRESS address);
4907
4908 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
4909 ID3D12GraphicsCommandList *This,
4910 UINT root_parameter_index,
4911 D3D12_GPU_VIRTUAL_ADDRESS address);
4912
4913 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
4914 ID3D12GraphicsCommandList *This,
4915 const D3D12_INDEX_BUFFER_VIEW *view);
4916
4917 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
4918 ID3D12GraphicsCommandList *This,
4919 UINT start_slot,
4920 UINT view_count,
4921 const D3D12_VERTEX_BUFFER_VIEW *views);
4922
4923 void (STDMETHODCALLTYPE *SOSetTargets)(
4924 ID3D12GraphicsCommandList *This,
4925 UINT start_slot,
4926 UINT view_count,
4927 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
4928
4929 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
4930 ID3D12GraphicsCommandList *This,
4931 UINT render_target_descriptor_count,
4932 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
4933 WINBOOL single_descriptor_handle,
4934 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
4935
4936 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
4937 ID3D12GraphicsCommandList *This,
4938 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
4939 D3D12_CLEAR_FLAGS flags,
4940 FLOAT depth,
4941 UINT8 stencil,
4942 UINT rect_count,
4943 const D3D12_RECT *rects);
4944
4945 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
4946 ID3D12GraphicsCommandList *This,
4947 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
4948 const FLOAT color[4],
4949 UINT rect_count,
4950 const D3D12_RECT *rects);
4951
4952 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
4953 ID3D12GraphicsCommandList *This,
4954 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
4955 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
4956 ID3D12Resource *resource,
4957 const UINT values[4],
4958 UINT rect_count,
4959 const D3D12_RECT *rects);
4960
4961 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
4962 ID3D12GraphicsCommandList *This,
4963 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
4964 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
4965 ID3D12Resource *resource,
4966 const float values[4],
4967 UINT rect_count,
4968 const D3D12_RECT *rects);
4969
4970 void (STDMETHODCALLTYPE *DiscardResource)(
4971 ID3D12GraphicsCommandList *This,
4972 ID3D12Resource *resource,
4973 const D3D12_DISCARD_REGION *region);
4974
4975 void (STDMETHODCALLTYPE *BeginQuery)(
4976 ID3D12GraphicsCommandList *This,
4977 ID3D12QueryHeap *heap,
4978 D3D12_QUERY_TYPE type,
4979 UINT index);
4980
4981 void (STDMETHODCALLTYPE *EndQuery)(
4982 ID3D12GraphicsCommandList *This,
4983 ID3D12QueryHeap *heap,
4984 D3D12_QUERY_TYPE type,
4985 UINT index);
4986
4987 void (STDMETHODCALLTYPE *ResolveQueryData)(
4988 ID3D12GraphicsCommandList *This,
4989 ID3D12QueryHeap *heap,
4990 D3D12_QUERY_TYPE type,
4991 UINT start_index,
4992 UINT query_count,
4993 ID3D12Resource *dst_buffer,
4994 UINT64 aligned_dst_buffer_offset);
4995
4996 void (STDMETHODCALLTYPE *SetPredication)(
4997 ID3D12GraphicsCommandList *This,
4998 ID3D12Resource *buffer,
4999 UINT64 aligned_buffer_offset,
5000 D3D12_PREDICATION_OP operation);
5001
5002 void (STDMETHODCALLTYPE *SetMarker)(
5003 ID3D12GraphicsCommandList *This,
5004 UINT metadata,
5005 const void *data,
5006 UINT size);
5007
5008 void (STDMETHODCALLTYPE *BeginEvent)(
5009 ID3D12GraphicsCommandList *This,
5010 UINT metadata,
5011 const void *data,
5012 UINT size);
5013
5014 void (STDMETHODCALLTYPE *EndEvent)(
5015 ID3D12GraphicsCommandList *This);
5016
5017 void (STDMETHODCALLTYPE *ExecuteIndirect)(
5018 ID3D12GraphicsCommandList *This,
5019 ID3D12CommandSignature *command_signature,
5020 UINT max_command_count,
5021 ID3D12Resource *arg_buffer,
5022 UINT64 arg_buffer_offset,
5023 ID3D12Resource *count_buffer,
5024 UINT64 count_buffer_offset);
5025
5026 END_INTERFACE
5027} ID3D12GraphicsCommandListVtbl;
5028
5029interface ID3D12GraphicsCommandList {
5030 CONST_VTBL ID3D12GraphicsCommandListVtbl* lpVtbl;
5031};
5032
5033#ifdef COBJMACROS
5034#ifndef WIDL_C_INLINE_WRAPPERS
5035/*** IUnknown methods ***/
5036#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5037#define ID3D12GraphicsCommandList_AddRef(This) (This)->lpVtbl->AddRef(This)
5038#define ID3D12GraphicsCommandList_Release(This) (This)->lpVtbl->Release(This)
5039/*** ID3D12Object methods ***/
5040#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
5041#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
5042#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
5043#define ID3D12GraphicsCommandList_SetName(This,name) (This)->lpVtbl->SetName(This,name)
5044/*** ID3D12DeviceChild methods ***/
5045#define ID3D12GraphicsCommandList_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
5046/*** ID3D12CommandList methods ***/
5047#define ID3D12GraphicsCommandList_GetType(This) (This)->lpVtbl->GetType(This)
5048/*** ID3D12GraphicsCommandList methods ***/
5049#define ID3D12GraphicsCommandList_Close(This) (This)->lpVtbl->Close(This)
5050#define ID3D12GraphicsCommandList_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
5051#define ID3D12GraphicsCommandList_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
5052#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)
5053#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)
5054#define ID3D12GraphicsCommandList_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
5055#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)
5056#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)
5057#define ID3D12GraphicsCommandList_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
5058#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)
5059#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)
5060#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
5061#define ID3D12GraphicsCommandList_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
5062#define ID3D12GraphicsCommandList_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
5063#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
5064#define ID3D12GraphicsCommandList_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
5065#define ID3D12GraphicsCommandList_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
5066#define ID3D12GraphicsCommandList_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
5067#define ID3D12GraphicsCommandList_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
5068#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
5069#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
5070#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
5071#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
5072#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
5073#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
5074#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
5075#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
5076#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
5077#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
5078#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
5079#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
5080#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
5081#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
5082#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
5083#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
5084#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
5085#define ID3D12GraphicsCommandList_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
5086#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)
5087#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
5088#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
5089#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)
5090#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)
5091#define ID3D12GraphicsCommandList_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
5092#define ID3D12GraphicsCommandList_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
5093#define ID3D12GraphicsCommandList_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
5094#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)
5095#define ID3D12GraphicsCommandList_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
5096#define ID3D12GraphicsCommandList_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
5097#define ID3D12GraphicsCommandList_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
5098#define ID3D12GraphicsCommandList_EndEvent(This) (This)->lpVtbl->EndEvent(This)
5099#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)
5100#else
5101/*** IUnknown methods ***/
5102static inline HRESULT ID3D12GraphicsCommandList_QueryInterface(ID3D12GraphicsCommandList* This,REFIID riid,void **ppvObject) {
5103 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5104}
5105static inline ULONG ID3D12GraphicsCommandList_AddRef(ID3D12GraphicsCommandList* This) {
5106 return This->lpVtbl->AddRef(This);
5107}
5108static inline ULONG ID3D12GraphicsCommandList_Release(ID3D12GraphicsCommandList* This) {
5109 return This->lpVtbl->Release(This);
5110}
5111/*** ID3D12Object methods ***/
5112static inline HRESULT ID3D12GraphicsCommandList_GetPrivateData(ID3D12GraphicsCommandList* This,REFGUID guid,UINT *data_size,void *data) {
5113 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
5114}
5115static inline HRESULT ID3D12GraphicsCommandList_SetPrivateData(ID3D12GraphicsCommandList* This,REFGUID guid,UINT data_size,const void *data) {
5116 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
5117}
5118static inline HRESULT ID3D12GraphicsCommandList_SetPrivateDataInterface(ID3D12GraphicsCommandList* This,REFGUID guid,const IUnknown *data) {
5119 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
5120}
5121static inline HRESULT ID3D12GraphicsCommandList_SetName(ID3D12GraphicsCommandList* This,const WCHAR *name) {
5122 return This->lpVtbl->SetName(This,name);
5123}
5124/*** ID3D12DeviceChild methods ***/
5125static inline HRESULT ID3D12GraphicsCommandList_GetDevice(ID3D12GraphicsCommandList* This,REFIID riid,void **device) {
5126 return This->lpVtbl->GetDevice(This,riid,device);
5127}
5128/*** ID3D12CommandList methods ***/
5129static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList_GetType(ID3D12GraphicsCommandList* This) {
5130 return This->lpVtbl->GetType(This);
5131}
5132/*** ID3D12GraphicsCommandList methods ***/
5133static inline HRESULT ID3D12GraphicsCommandList_Close(ID3D12GraphicsCommandList* This) {
5134 return This->lpVtbl->Close(This);
5135}
5136static inline HRESULT ID3D12GraphicsCommandList_Reset(ID3D12GraphicsCommandList* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
5137 return This->lpVtbl->Reset(This,allocator,initial_state);
5138}
5139static inline void ID3D12GraphicsCommandList_ClearState(ID3D12GraphicsCommandList* This,ID3D12PipelineState *pipeline_state) {
5140 This->lpVtbl->ClearState(This,pipeline_state);
5141}
5142static inline void ID3D12GraphicsCommandList_DrawInstanced(ID3D12GraphicsCommandList* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
5143 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
5144}
5145static 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) {
5146 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
5147}
5148static inline void ID3D12GraphicsCommandList_Dispatch(ID3D12GraphicsCommandList* This,UINT x,UINT u,UINT z) {
5149 This->lpVtbl->Dispatch(This,x,u,z);
5150}
5151static inline void ID3D12GraphicsCommandList_CopyBufferRegion(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
5152 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
5153}
5154static 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) {
5155 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
5156}
5157static inline void ID3D12GraphicsCommandList_CopyResource(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
5158 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
5159}
5160static 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) {
5161 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
5162}
5163static inline void ID3D12GraphicsCommandList_ResolveSubresource(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
5164 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
5165}
5166static inline void ID3D12GraphicsCommandList_IASetPrimitiveTopology(ID3D12GraphicsCommandList* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
5167 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
5168}
5169static inline void ID3D12GraphicsCommandList_RSSetViewports(ID3D12GraphicsCommandList* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
5170 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
5171}
5172static inline void ID3D12GraphicsCommandList_RSSetScissorRects(ID3D12GraphicsCommandList* This,UINT rect_count,const D3D12_RECT *rects) {
5173 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
5174}
5175static inline void ID3D12GraphicsCommandList_OMSetBlendFactor(ID3D12GraphicsCommandList* This,const FLOAT blend_factor[4]) {
5176 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
5177}
5178static inline void ID3D12GraphicsCommandList_OMSetStencilRef(ID3D12GraphicsCommandList* This,UINT stencil_ref) {
5179 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
5180}
5181static inline void ID3D12GraphicsCommandList_SetPipelineState(ID3D12GraphicsCommandList* This,ID3D12PipelineState *pipeline_state) {
5182 This->lpVtbl->SetPipelineState(This,pipeline_state);
5183}
5184static inline void ID3D12GraphicsCommandList_ResourceBarrier(ID3D12GraphicsCommandList* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
5185 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
5186}
5187static inline void ID3D12GraphicsCommandList_ExecuteBundle(ID3D12GraphicsCommandList* This,ID3D12GraphicsCommandList *command_list) {
5188 This->lpVtbl->ExecuteBundle(This,command_list);
5189}
5190static inline void ID3D12GraphicsCommandList_SetDescriptorHeaps(ID3D12GraphicsCommandList* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
5191 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
5192}
5193static inline void ID3D12GraphicsCommandList_SetComputeRootSignature(ID3D12GraphicsCommandList* This,ID3D12RootSignature *root_signature) {
5194 This->lpVtbl->SetComputeRootSignature(This,root_signature);
5195}
5196static inline void ID3D12GraphicsCommandList_SetGraphicsRootSignature(ID3D12GraphicsCommandList* This,ID3D12RootSignature *root_signature) {
5197 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
5198}
5199static inline void ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
5200 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
5201}
5202static inline void ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
5203 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
5204}
5205static inline void ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
5206 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
5207}
5208static inline void ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
5209 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
5210}
5211static inline void ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
5212 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
5213}
5214static inline void ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
5215 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
5216}
5217static inline void ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5218 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
5219}
5220static inline void ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5221 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
5222}
5223static inline void ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5224 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
5225}
5226static inline void ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5227 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
5228}
5229static inline void ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5230 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
5231}
5232static inline void ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5233 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
5234}
5235static inline void ID3D12GraphicsCommandList_IASetIndexBuffer(ID3D12GraphicsCommandList* This,const D3D12_INDEX_BUFFER_VIEW *view) {
5236 This->lpVtbl->IASetIndexBuffer(This,view);
5237}
5238static inline void ID3D12GraphicsCommandList_IASetVertexBuffers(ID3D12GraphicsCommandList* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
5239 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
5240}
5241static inline void ID3D12GraphicsCommandList_SOSetTargets(ID3D12GraphicsCommandList* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
5242 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
5243}
5244static 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) {
5245 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
5246}
5247static 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) {
5248 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
5249}
5250static inline void ID3D12GraphicsCommandList_ClearRenderTargetView(ID3D12GraphicsCommandList* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
5251 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
5252}
5253static 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) {
5254 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
5255}
5256static 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) {
5257 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
5258}
5259static inline void ID3D12GraphicsCommandList_DiscardResource(ID3D12GraphicsCommandList* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
5260 This->lpVtbl->DiscardResource(This,resource,region);
5261}
5262static inline void ID3D12GraphicsCommandList_BeginQuery(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
5263 This->lpVtbl->BeginQuery(This,heap,type,index);
5264}
5265static inline void ID3D12GraphicsCommandList_EndQuery(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
5266 This->lpVtbl->EndQuery(This,heap,type,index);
5267}
5268static 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) {
5269 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
5270}
5271static inline void ID3D12GraphicsCommandList_SetPredication(ID3D12GraphicsCommandList* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
5272 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
5273}
5274static inline void ID3D12GraphicsCommandList_SetMarker(ID3D12GraphicsCommandList* This,UINT metadata,const void *data,UINT size) {
5275 This->lpVtbl->SetMarker(This,metadata,data,size);
5276}
5277static inline void ID3D12GraphicsCommandList_BeginEvent(ID3D12GraphicsCommandList* This,UINT metadata,const void *data,UINT size) {
5278 This->lpVtbl->BeginEvent(This,metadata,data,size);
5279}
5280static inline void ID3D12GraphicsCommandList_EndEvent(ID3D12GraphicsCommandList* This) {
5281 This->lpVtbl->EndEvent(This);
5282}
5283static 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) {
5284 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
5285}
5286#endif
5287#endif
5288
5289#endif
5290
5291
5292#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
5293
5294/*****************************************************************************
5295 * ID3D12GraphicsCommandList1 interface
5296 */
5297#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
5298#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
5299
5300DEFINE_GUID(IID_ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
5301#if defined(__cplusplus) && !defined(CINTERFACE)
5302MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
5303ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
5304{
5305 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
5306 ID3D12Resource *dst_buffer,
5307 UINT64 dst_offset,
5308 ID3D12Resource *src_buffer,
5309 UINT64 src_offset,
5310 UINT dependent_resource_count,
5311 ID3D12Resource *const *dependent_resources,
5312 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0;
5313
5314 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
5315 ID3D12Resource *dst_buffer,
5316 UINT64 dst_offset,
5317 ID3D12Resource *src_buffer,
5318 UINT64 src_offset,
5319 UINT dependent_resource_count,
5320 ID3D12Resource *const *dependent_resources,
5321 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0;
5322
5323 virtual void STDMETHODCALLTYPE OMSetDepthBounds(
5324 FLOAT min,
5325 FLOAT max) = 0;
5326
5327 virtual void STDMETHODCALLTYPE SetSamplePositions(
5328 UINT sample_count,
5329 UINT pixel_count,
5330 D3D12_SAMPLE_POSITION *sample_positions) = 0;
5331
5332 virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
5333 ID3D12Resource *dst_resource,
5334 UINT dst_sub_resource_idx,
5335 UINT dst_x,
5336 UINT dst_y,
5337 ID3D12Resource *src_resource,
5338 UINT src_sub_resource_idx,
5339 D3D12_RECT *src_rect,
5340 DXGI_FORMAT format,
5341 D3D12_RESOLVE_MODE mode) = 0;
5342
5343 virtual void STDMETHODCALLTYPE SetViewInstanceMask(
5344 UINT mask) = 0;
5345
5346};
5347#ifdef __CRT_UUID_DECL
5348__CRT_UUID_DECL(ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7)
5349#endif
5350#else
5351typedef struct ID3D12GraphicsCommandList1Vtbl {
5352 BEGIN_INTERFACE
5353
5354 /*** IUnknown methods ***/
5355 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5356 ID3D12GraphicsCommandList1 *This,
5357 REFIID riid,
5358 void **ppvObject);
5359
5360 ULONG (STDMETHODCALLTYPE *AddRef)(
5361 ID3D12GraphicsCommandList1 *This);
5362
5363 ULONG (STDMETHODCALLTYPE *Release)(
5364 ID3D12GraphicsCommandList1 *This);
5365
5366 /*** ID3D12Object methods ***/
5367 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
5368 ID3D12GraphicsCommandList1 *This,
5369 REFGUID guid,
5370 UINT *data_size,
5371 void *data);
5372
5373 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
5374 ID3D12GraphicsCommandList1 *This,
5375 REFGUID guid,
5376 UINT data_size,
5377 const void *data);
5378
5379 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
5380 ID3D12GraphicsCommandList1 *This,
5381 REFGUID guid,
5382 const IUnknown *data);
5383
5384 HRESULT (STDMETHODCALLTYPE *SetName)(
5385 ID3D12GraphicsCommandList1 *This,
5386 const WCHAR *name);
5387
5388 /*** ID3D12DeviceChild methods ***/
5389 HRESULT (STDMETHODCALLTYPE *GetDevice)(
5390 ID3D12GraphicsCommandList1 *This,
5391 REFIID riid,
5392 void **device);
5393
5394 /*** ID3D12CommandList methods ***/
5395 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
5396 ID3D12GraphicsCommandList1 *This);
5397
5398 /*** ID3D12GraphicsCommandList methods ***/
5399 HRESULT (STDMETHODCALLTYPE *Close)(
5400 ID3D12GraphicsCommandList1 *This);
5401
5402 HRESULT (STDMETHODCALLTYPE *Reset)(
5403 ID3D12GraphicsCommandList1 *This,
5404 ID3D12CommandAllocator *allocator,
5405 ID3D12PipelineState *initial_state);
5406
5407 void (STDMETHODCALLTYPE *ClearState)(
5408 ID3D12GraphicsCommandList1 *This,
5409 ID3D12PipelineState *pipeline_state);
5410
5411 void (STDMETHODCALLTYPE *DrawInstanced)(
5412 ID3D12GraphicsCommandList1 *This,
5413 UINT vertex_count_per_instance,
5414 UINT instance_count,
5415 UINT start_vertex_location,
5416 UINT start_instance_location);
5417
5418 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
5419 ID3D12GraphicsCommandList1 *This,
5420 UINT index_count_per_instance,
5421 UINT instance_count,
5422 UINT start_vertex_location,
5423 INT base_vertex_location,
5424 UINT start_instance_location);
5425
5426 void (STDMETHODCALLTYPE *Dispatch)(
5427 ID3D12GraphicsCommandList1 *This,
5428 UINT x,
5429 UINT u,
5430 UINT z);
5431
5432 void (STDMETHODCALLTYPE *CopyBufferRegion)(
5433 ID3D12GraphicsCommandList1 *This,
5434 ID3D12Resource *dst_buffer,
5435 UINT64 dst_offset,
5436 ID3D12Resource *src_buffer,
5437 UINT64 src_offset,
5438 UINT64 byte_count);
5439
5440 void (STDMETHODCALLTYPE *CopyTextureRegion)(
5441 ID3D12GraphicsCommandList1 *This,
5442 const D3D12_TEXTURE_COPY_LOCATION *dst,
5443 UINT dst_x,
5444 UINT dst_y,
5445 UINT dst_z,
5446 const D3D12_TEXTURE_COPY_LOCATION *src,
5447 const D3D12_BOX *src_box);
5448
5449 void (STDMETHODCALLTYPE *CopyResource)(
5450 ID3D12GraphicsCommandList1 *This,
5451 ID3D12Resource *dst_resource,
5452 ID3D12Resource *src_resource);
5453
5454 void (STDMETHODCALLTYPE *CopyTiles)(
5455 ID3D12GraphicsCommandList1 *This,
5456 ID3D12Resource *tiled_resource,
5457 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
5458 const D3D12_TILE_REGION_SIZE *tile_region_size,
5459 ID3D12Resource *buffer,
5460 UINT64 buffer_offset,
5461 D3D12_TILE_COPY_FLAGS flags);
5462
5463 void (STDMETHODCALLTYPE *ResolveSubresource)(
5464 ID3D12GraphicsCommandList1 *This,
5465 ID3D12Resource *dst_resource,
5466 UINT dst_sub_resource,
5467 ID3D12Resource *src_resource,
5468 UINT src_sub_resource,
5469 DXGI_FORMAT format);
5470
5471 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
5472 ID3D12GraphicsCommandList1 *This,
5473 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
5474
5475 void (STDMETHODCALLTYPE *RSSetViewports)(
5476 ID3D12GraphicsCommandList1 *This,
5477 UINT viewport_count,
5478 const D3D12_VIEWPORT *viewports);
5479
5480 void (STDMETHODCALLTYPE *RSSetScissorRects)(
5481 ID3D12GraphicsCommandList1 *This,
5482 UINT rect_count,
5483 const D3D12_RECT *rects);
5484
5485 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
5486 ID3D12GraphicsCommandList1 *This,
5487 const FLOAT blend_factor[4]);
5488
5489 void (STDMETHODCALLTYPE *OMSetStencilRef)(
5490 ID3D12GraphicsCommandList1 *This,
5491 UINT stencil_ref);
5492
5493 void (STDMETHODCALLTYPE *SetPipelineState)(
5494 ID3D12GraphicsCommandList1 *This,
5495 ID3D12PipelineState *pipeline_state);
5496
5497 void (STDMETHODCALLTYPE *ResourceBarrier)(
5498 ID3D12GraphicsCommandList1 *This,
5499 UINT barrier_count,
5500 const D3D12_RESOURCE_BARRIER *barriers);
5501
5502 void (STDMETHODCALLTYPE *ExecuteBundle)(
5503 ID3D12GraphicsCommandList1 *This,
5504 ID3D12GraphicsCommandList *command_list);
5505
5506 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
5507 ID3D12GraphicsCommandList1 *This,
5508 UINT heap_count,
5509 ID3D12DescriptorHeap *const *heaps);
5510
5511 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
5512 ID3D12GraphicsCommandList1 *This,
5513 ID3D12RootSignature *root_signature);
5514
5515 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
5516 ID3D12GraphicsCommandList1 *This,
5517 ID3D12RootSignature *root_signature);
5518
5519 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
5520 ID3D12GraphicsCommandList1 *This,
5521 UINT root_parameter_index,
5522 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
5523
5524 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
5525 ID3D12GraphicsCommandList1 *This,
5526 UINT root_parameter_index,
5527 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
5528
5529 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
5530 ID3D12GraphicsCommandList1 *This,
5531 UINT root_parameter_index,
5532 UINT data,
5533 UINT dst_offset);
5534
5535 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
5536 ID3D12GraphicsCommandList1 *This,
5537 UINT root_parameter_index,
5538 UINT data,
5539 UINT dst_offset);
5540
5541 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
5542 ID3D12GraphicsCommandList1 *This,
5543 UINT root_parameter_index,
5544 UINT constant_count,
5545 const void *data,
5546 UINT dst_offset);
5547
5548 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
5549 ID3D12GraphicsCommandList1 *This,
5550 UINT root_parameter_index,
5551 UINT constant_count,
5552 const void *data,
5553 UINT dst_offset);
5554
5555 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
5556 ID3D12GraphicsCommandList1 *This,
5557 UINT root_parameter_index,
5558 D3D12_GPU_VIRTUAL_ADDRESS address);
5559
5560 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
5561 ID3D12GraphicsCommandList1 *This,
5562 UINT root_parameter_index,
5563 D3D12_GPU_VIRTUAL_ADDRESS address);
5564
5565 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
5566 ID3D12GraphicsCommandList1 *This,
5567 UINT root_parameter_index,
5568 D3D12_GPU_VIRTUAL_ADDRESS address);
5569
5570 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
5571 ID3D12GraphicsCommandList1 *This,
5572 UINT root_parameter_index,
5573 D3D12_GPU_VIRTUAL_ADDRESS address);
5574
5575 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
5576 ID3D12GraphicsCommandList1 *This,
5577 UINT root_parameter_index,
5578 D3D12_GPU_VIRTUAL_ADDRESS address);
5579
5580 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
5581 ID3D12GraphicsCommandList1 *This,
5582 UINT root_parameter_index,
5583 D3D12_GPU_VIRTUAL_ADDRESS address);
5584
5585 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
5586 ID3D12GraphicsCommandList1 *This,
5587 const D3D12_INDEX_BUFFER_VIEW *view);
5588
5589 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
5590 ID3D12GraphicsCommandList1 *This,
5591 UINT start_slot,
5592 UINT view_count,
5593 const D3D12_VERTEX_BUFFER_VIEW *views);
5594
5595 void (STDMETHODCALLTYPE *SOSetTargets)(
5596 ID3D12GraphicsCommandList1 *This,
5597 UINT start_slot,
5598 UINT view_count,
5599 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
5600
5601 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
5602 ID3D12GraphicsCommandList1 *This,
5603 UINT render_target_descriptor_count,
5604 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
5605 WINBOOL single_descriptor_handle,
5606 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
5607
5608 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
5609 ID3D12GraphicsCommandList1 *This,
5610 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
5611 D3D12_CLEAR_FLAGS flags,
5612 FLOAT depth,
5613 UINT8 stencil,
5614 UINT rect_count,
5615 const D3D12_RECT *rects);
5616
5617 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
5618 ID3D12GraphicsCommandList1 *This,
5619 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
5620 const FLOAT color[4],
5621 UINT rect_count,
5622 const D3D12_RECT *rects);
5623
5624 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
5625 ID3D12GraphicsCommandList1 *This,
5626 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
5627 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
5628 ID3D12Resource *resource,
5629 const UINT values[4],
5630 UINT rect_count,
5631 const D3D12_RECT *rects);
5632
5633 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
5634 ID3D12GraphicsCommandList1 *This,
5635 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
5636 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
5637 ID3D12Resource *resource,
5638 const float values[4],
5639 UINT rect_count,
5640 const D3D12_RECT *rects);
5641
5642 void (STDMETHODCALLTYPE *DiscardResource)(
5643 ID3D12GraphicsCommandList1 *This,
5644 ID3D12Resource *resource,
5645 const D3D12_DISCARD_REGION *region);
5646
5647 void (STDMETHODCALLTYPE *BeginQuery)(
5648 ID3D12GraphicsCommandList1 *This,
5649 ID3D12QueryHeap *heap,
5650 D3D12_QUERY_TYPE type,
5651 UINT index);
5652
5653 void (STDMETHODCALLTYPE *EndQuery)(
5654 ID3D12GraphicsCommandList1 *This,
5655 ID3D12QueryHeap *heap,
5656 D3D12_QUERY_TYPE type,
5657 UINT index);
5658
5659 void (STDMETHODCALLTYPE *ResolveQueryData)(
5660 ID3D12GraphicsCommandList1 *This,
5661 ID3D12QueryHeap *heap,
5662 D3D12_QUERY_TYPE type,
5663 UINT start_index,
5664 UINT query_count,
5665 ID3D12Resource *dst_buffer,
5666 UINT64 aligned_dst_buffer_offset);
5667
5668 void (STDMETHODCALLTYPE *SetPredication)(
5669 ID3D12GraphicsCommandList1 *This,
5670 ID3D12Resource *buffer,
5671 UINT64 aligned_buffer_offset,
5672 D3D12_PREDICATION_OP operation);
5673
5674 void (STDMETHODCALLTYPE *SetMarker)(
5675 ID3D12GraphicsCommandList1 *This,
5676 UINT metadata,
5677 const void *data,
5678 UINT size);
5679
5680 void (STDMETHODCALLTYPE *BeginEvent)(
5681 ID3D12GraphicsCommandList1 *This,
5682 UINT metadata,
5683 const void *data,
5684 UINT size);
5685
5686 void (STDMETHODCALLTYPE *EndEvent)(
5687 ID3D12GraphicsCommandList1 *This);
5688
5689 void (STDMETHODCALLTYPE *ExecuteIndirect)(
5690 ID3D12GraphicsCommandList1 *This,
5691 ID3D12CommandSignature *command_signature,
5692 UINT max_command_count,
5693 ID3D12Resource *arg_buffer,
5694 UINT64 arg_buffer_offset,
5695 ID3D12Resource *count_buffer,
5696 UINT64 count_buffer_offset);
5697
5698 /*** ID3D12GraphicsCommandList1 methods ***/
5699 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
5700 ID3D12GraphicsCommandList1 *This,
5701 ID3D12Resource *dst_buffer,
5702 UINT64 dst_offset,
5703 ID3D12Resource *src_buffer,
5704 UINT64 src_offset,
5705 UINT dependent_resource_count,
5706 ID3D12Resource *const *dependent_resources,
5707 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
5708
5709 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
5710 ID3D12GraphicsCommandList1 *This,
5711 ID3D12Resource *dst_buffer,
5712 UINT64 dst_offset,
5713 ID3D12Resource *src_buffer,
5714 UINT64 src_offset,
5715 UINT dependent_resource_count,
5716 ID3D12Resource *const *dependent_resources,
5717 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
5718
5719 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
5720 ID3D12GraphicsCommandList1 *This,
5721 FLOAT min,
5722 FLOAT max);
5723
5724 void (STDMETHODCALLTYPE *SetSamplePositions)(
5725 ID3D12GraphicsCommandList1 *This,
5726 UINT sample_count,
5727 UINT pixel_count,
5728 D3D12_SAMPLE_POSITION *sample_positions);
5729
5730 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
5731 ID3D12GraphicsCommandList1 *This,
5732 ID3D12Resource *dst_resource,
5733 UINT dst_sub_resource_idx,
5734 UINT dst_x,
5735 UINT dst_y,
5736 ID3D12Resource *src_resource,
5737 UINT src_sub_resource_idx,
5738 D3D12_RECT *src_rect,
5739 DXGI_FORMAT format,
5740 D3D12_RESOLVE_MODE mode);
5741
5742 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
5743 ID3D12GraphicsCommandList1 *This,
5744 UINT mask);
5745
5746 END_INTERFACE
5747} ID3D12GraphicsCommandList1Vtbl;
5748
5749interface ID3D12GraphicsCommandList1 {
5750 CONST_VTBL ID3D12GraphicsCommandList1Vtbl* lpVtbl;
5751};
5752
5753#ifdef COBJMACROS
5754#ifndef WIDL_C_INLINE_WRAPPERS
5755/*** IUnknown methods ***/
5756#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5757#define ID3D12GraphicsCommandList1_AddRef(This) (This)->lpVtbl->AddRef(This)
5758#define ID3D12GraphicsCommandList1_Release(This) (This)->lpVtbl->Release(This)
5759/*** ID3D12Object methods ***/
5760#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
5761#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
5762#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
5763#define ID3D12GraphicsCommandList1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
5764/*** ID3D12DeviceChild methods ***/
5765#define ID3D12GraphicsCommandList1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
5766/*** ID3D12CommandList methods ***/
5767#define ID3D12GraphicsCommandList1_GetType(This) (This)->lpVtbl->GetType(This)
5768/*** ID3D12GraphicsCommandList methods ***/
5769#define ID3D12GraphicsCommandList1_Close(This) (This)->lpVtbl->Close(This)
5770#define ID3D12GraphicsCommandList1_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
5771#define ID3D12GraphicsCommandList1_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
5772#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)
5773#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)
5774#define ID3D12GraphicsCommandList1_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
5775#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)
5776#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)
5777#define ID3D12GraphicsCommandList1_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
5778#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)
5779#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)
5780#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
5781#define ID3D12GraphicsCommandList1_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
5782#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
5783#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
5784#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
5785#define ID3D12GraphicsCommandList1_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
5786#define ID3D12GraphicsCommandList1_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
5787#define ID3D12GraphicsCommandList1_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
5788#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
5789#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
5790#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
5791#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
5792#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
5793#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
5794#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
5795#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
5796#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
5797#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
5798#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
5799#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
5800#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
5801#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
5802#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
5803#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
5804#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
5805#define ID3D12GraphicsCommandList1_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
5806#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)
5807#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
5808#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
5809#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)
5810#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)
5811#define ID3D12GraphicsCommandList1_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
5812#define ID3D12GraphicsCommandList1_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
5813#define ID3D12GraphicsCommandList1_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
5814#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)
5815#define ID3D12GraphicsCommandList1_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
5816#define ID3D12GraphicsCommandList1_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
5817#define ID3D12GraphicsCommandList1_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
5818#define ID3D12GraphicsCommandList1_EndEvent(This) (This)->lpVtbl->EndEvent(This)
5819#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)
5820/*** ID3D12GraphicsCommandList1 methods ***/
5821#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)
5822#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)
5823#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
5824#define ID3D12GraphicsCommandList1_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
5825#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)
5826#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
5827#else
5828/*** IUnknown methods ***/
5829static inline HRESULT ID3D12GraphicsCommandList1_QueryInterface(ID3D12GraphicsCommandList1* This,REFIID riid,void **ppvObject) {
5830 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5831}
5832static inline ULONG ID3D12GraphicsCommandList1_AddRef(ID3D12GraphicsCommandList1* This) {
5833 return This->lpVtbl->AddRef(This);
5834}
5835static inline ULONG ID3D12GraphicsCommandList1_Release(ID3D12GraphicsCommandList1* This) {
5836 return This->lpVtbl->Release(This);
5837}
5838/*** ID3D12Object methods ***/
5839static inline HRESULT ID3D12GraphicsCommandList1_GetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT *data_size,void *data) {
5840 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
5841}
5842static inline HRESULT ID3D12GraphicsCommandList1_SetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT data_size,const void *data) {
5843 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
5844}
5845static inline HRESULT ID3D12GraphicsCommandList1_SetPrivateDataInterface(ID3D12GraphicsCommandList1* This,REFGUID guid,const IUnknown *data) {
5846 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
5847}
5848static inline HRESULT ID3D12GraphicsCommandList1_SetName(ID3D12GraphicsCommandList1* This,const WCHAR *name) {
5849 return This->lpVtbl->SetName(This,name);
5850}
5851/*** ID3D12DeviceChild methods ***/
5852static inline HRESULT ID3D12GraphicsCommandList1_GetDevice(ID3D12GraphicsCommandList1* This,REFIID riid,void **device) {
5853 return This->lpVtbl->GetDevice(This,riid,device);
5854}
5855/*** ID3D12CommandList methods ***/
5856static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList1_GetType(ID3D12GraphicsCommandList1* This) {
5857 return This->lpVtbl->GetType(This);
5858}
5859/*** ID3D12GraphicsCommandList methods ***/
5860static inline HRESULT ID3D12GraphicsCommandList1_Close(ID3D12GraphicsCommandList1* This) {
5861 return This->lpVtbl->Close(This);
5862}
5863static inline HRESULT ID3D12GraphicsCommandList1_Reset(ID3D12GraphicsCommandList1* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
5864 return This->lpVtbl->Reset(This,allocator,initial_state);
5865}
5866static inline void ID3D12GraphicsCommandList1_ClearState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) {
5867 This->lpVtbl->ClearState(This,pipeline_state);
5868}
5869static inline void ID3D12GraphicsCommandList1_DrawInstanced(ID3D12GraphicsCommandList1* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
5870 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
5871}
5872static 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) {
5873 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
5874}
5875static inline void ID3D12GraphicsCommandList1_Dispatch(ID3D12GraphicsCommandList1* This,UINT x,UINT u,UINT z) {
5876 This->lpVtbl->Dispatch(This,x,u,z);
5877}
5878static inline void ID3D12GraphicsCommandList1_CopyBufferRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
5879 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
5880}
5881static 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) {
5882 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
5883}
5884static inline void ID3D12GraphicsCommandList1_CopyResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
5885 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
5886}
5887static 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) {
5888 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
5889}
5890static inline void ID3D12GraphicsCommandList1_ResolveSubresource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
5891 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
5892}
5893static inline void ID3D12GraphicsCommandList1_IASetPrimitiveTopology(ID3D12GraphicsCommandList1* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
5894 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
5895}
5896static inline void ID3D12GraphicsCommandList1_RSSetViewports(ID3D12GraphicsCommandList1* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
5897 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
5898}
5899static inline void ID3D12GraphicsCommandList1_RSSetScissorRects(ID3D12GraphicsCommandList1* This,UINT rect_count,const D3D12_RECT *rects) {
5900 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
5901}
5902static inline void ID3D12GraphicsCommandList1_OMSetBlendFactor(ID3D12GraphicsCommandList1* This,const FLOAT blend_factor[4]) {
5903 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
5904}
5905static inline void ID3D12GraphicsCommandList1_OMSetStencilRef(ID3D12GraphicsCommandList1* This,UINT stencil_ref) {
5906 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
5907}
5908static inline void ID3D12GraphicsCommandList1_SetPipelineState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) {
5909 This->lpVtbl->SetPipelineState(This,pipeline_state);
5910}
5911static inline void ID3D12GraphicsCommandList1_ResourceBarrier(ID3D12GraphicsCommandList1* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
5912 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
5913}
5914static inline void ID3D12GraphicsCommandList1_ExecuteBundle(ID3D12GraphicsCommandList1* This,ID3D12GraphicsCommandList *command_list) {
5915 This->lpVtbl->ExecuteBundle(This,command_list);
5916}
5917static inline void ID3D12GraphicsCommandList1_SetDescriptorHeaps(ID3D12GraphicsCommandList1* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
5918 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
5919}
5920static inline void ID3D12GraphicsCommandList1_SetComputeRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) {
5921 This->lpVtbl->SetComputeRootSignature(This,root_signature);
5922}
5923static inline void ID3D12GraphicsCommandList1_SetGraphicsRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) {
5924 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
5925}
5926static inline void ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
5927 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
5928}
5929static inline void ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
5930 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
5931}
5932static inline void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
5933 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
5934}
5935static inline void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
5936 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
5937}
5938static inline void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
5939 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
5940}
5941static inline void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
5942 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
5943}
5944static inline void ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5945 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
5946}
5947static inline void ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5948 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
5949}
5950static inline void ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5951 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
5952}
5953static inline void ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5954 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
5955}
5956static inline void ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5957 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
5958}
5959static inline void ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
5960 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
5961}
5962static inline void ID3D12GraphicsCommandList1_IASetIndexBuffer(ID3D12GraphicsCommandList1* This,const D3D12_INDEX_BUFFER_VIEW *view) {
5963 This->lpVtbl->IASetIndexBuffer(This,view);
5964}
5965static inline void ID3D12GraphicsCommandList1_IASetVertexBuffers(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
5966 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
5967}
5968static inline void ID3D12GraphicsCommandList1_SOSetTargets(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
5969 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
5970}
5971static 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) {
5972 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
5973}
5974static 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) {
5975 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
5976}
5977static inline void ID3D12GraphicsCommandList1_ClearRenderTargetView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
5978 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
5979}
5980static 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) {
5981 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
5982}
5983static 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) {
5984 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
5985}
5986static inline void ID3D12GraphicsCommandList1_DiscardResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
5987 This->lpVtbl->DiscardResource(This,resource,region);
5988}
5989static inline void ID3D12GraphicsCommandList1_BeginQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
5990 This->lpVtbl->BeginQuery(This,heap,type,index);
5991}
5992static inline void ID3D12GraphicsCommandList1_EndQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
5993 This->lpVtbl->EndQuery(This,heap,type,index);
5994}
5995static 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) {
5996 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
5997}
5998static inline void ID3D12GraphicsCommandList1_SetPredication(ID3D12GraphicsCommandList1* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
5999 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
6000}
6001static inline void ID3D12GraphicsCommandList1_SetMarker(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) {
6002 This->lpVtbl->SetMarker(This,metadata,data,size);
6003}
6004static inline void ID3D12GraphicsCommandList1_BeginEvent(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) {
6005 This->lpVtbl->BeginEvent(This,metadata,data,size);
6006}
6007static inline void ID3D12GraphicsCommandList1_EndEvent(ID3D12GraphicsCommandList1* This) {
6008 This->lpVtbl->EndEvent(This);
6009}
6010static 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) {
6011 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
6012}
6013/*** ID3D12GraphicsCommandList1 methods ***/
6014static 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) {
6015 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
6016}
6017static 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) {
6018 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
6019}
6020static inline void ID3D12GraphicsCommandList1_OMSetDepthBounds(ID3D12GraphicsCommandList1* This,FLOAT min,FLOAT max) {
6021 This->lpVtbl->OMSetDepthBounds(This,min,max);
6022}
6023static inline void ID3D12GraphicsCommandList1_SetSamplePositions(ID3D12GraphicsCommandList1* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
6024 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
6025}
6026static 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) {
6027 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
6028}
6029static inline void ID3D12GraphicsCommandList1_SetViewInstanceMask(ID3D12GraphicsCommandList1* This,UINT mask) {
6030 This->lpVtbl->SetViewInstanceMask(This,mask);
6031}
6032#endif
6033#endif
6034
6035#endif
6036
6037
6038#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
6039
6040/*****************************************************************************
6041 * ID3D12GraphicsCommandList2 interface
6042 */
6043#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
6044#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
6045
6046DEFINE_GUID(IID_ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28);
6047#if defined(__cplusplus) && !defined(CINTERFACE)
6048MIDL_INTERFACE("38c3e585-ff17-412c-9150-4fc6f9d72a28")
6049ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
6050{
6051 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
6052 UINT count,
6053 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
6054 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) = 0;
6055
6056};
6057#ifdef __CRT_UUID_DECL
6058__CRT_UUID_DECL(ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28)
6059#endif
6060#else
6061typedef struct ID3D12GraphicsCommandList2Vtbl {
6062 BEGIN_INTERFACE
6063
6064 /*** IUnknown methods ***/
6065 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6066 ID3D12GraphicsCommandList2 *This,
6067 REFIID riid,
6068 void **ppvObject);
6069
6070 ULONG (STDMETHODCALLTYPE *AddRef)(
6071 ID3D12GraphicsCommandList2 *This);
6072
6073 ULONG (STDMETHODCALLTYPE *Release)(
6074 ID3D12GraphicsCommandList2 *This);
6075
6076 /*** ID3D12Object methods ***/
6077 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
6078 ID3D12GraphicsCommandList2 *This,
6079 REFGUID guid,
6080 UINT *data_size,
6081 void *data);
6082
6083 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
6084 ID3D12GraphicsCommandList2 *This,
6085 REFGUID guid,
6086 UINT data_size,
6087 const void *data);
6088
6089 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
6090 ID3D12GraphicsCommandList2 *This,
6091 REFGUID guid,
6092 const IUnknown *data);
6093
6094 HRESULT (STDMETHODCALLTYPE *SetName)(
6095 ID3D12GraphicsCommandList2 *This,
6096 const WCHAR *name);
6097
6098 /*** ID3D12DeviceChild methods ***/
6099 HRESULT (STDMETHODCALLTYPE *GetDevice)(
6100 ID3D12GraphicsCommandList2 *This,
6101 REFIID riid,
6102 void **device);
6103
6104 /*** ID3D12CommandList methods ***/
6105 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
6106 ID3D12GraphicsCommandList2 *This);
6107
6108 /*** ID3D12GraphicsCommandList methods ***/
6109 HRESULT (STDMETHODCALLTYPE *Close)(
6110 ID3D12GraphicsCommandList2 *This);
6111
6112 HRESULT (STDMETHODCALLTYPE *Reset)(
6113 ID3D12GraphicsCommandList2 *This,
6114 ID3D12CommandAllocator *allocator,
6115 ID3D12PipelineState *initial_state);
6116
6117 void (STDMETHODCALLTYPE *ClearState)(
6118 ID3D12GraphicsCommandList2 *This,
6119 ID3D12PipelineState *pipeline_state);
6120
6121 void (STDMETHODCALLTYPE *DrawInstanced)(
6122 ID3D12GraphicsCommandList2 *This,
6123 UINT vertex_count_per_instance,
6124 UINT instance_count,
6125 UINT start_vertex_location,
6126 UINT start_instance_location);
6127
6128 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
6129 ID3D12GraphicsCommandList2 *This,
6130 UINT index_count_per_instance,
6131 UINT instance_count,
6132 UINT start_vertex_location,
6133 INT base_vertex_location,
6134 UINT start_instance_location);
6135
6136 void (STDMETHODCALLTYPE *Dispatch)(
6137 ID3D12GraphicsCommandList2 *This,
6138 UINT x,
6139 UINT u,
6140 UINT z);
6141
6142 void (STDMETHODCALLTYPE *CopyBufferRegion)(
6143 ID3D12GraphicsCommandList2 *This,
6144 ID3D12Resource *dst_buffer,
6145 UINT64 dst_offset,
6146 ID3D12Resource *src_buffer,
6147 UINT64 src_offset,
6148 UINT64 byte_count);
6149
6150 void (STDMETHODCALLTYPE *CopyTextureRegion)(
6151 ID3D12GraphicsCommandList2 *This,
6152 const D3D12_TEXTURE_COPY_LOCATION *dst,
6153 UINT dst_x,
6154 UINT dst_y,
6155 UINT dst_z,
6156 const D3D12_TEXTURE_COPY_LOCATION *src,
6157 const D3D12_BOX *src_box);
6158
6159 void (STDMETHODCALLTYPE *CopyResource)(
6160 ID3D12GraphicsCommandList2 *This,
6161 ID3D12Resource *dst_resource,
6162 ID3D12Resource *src_resource);
6163
6164 void (STDMETHODCALLTYPE *CopyTiles)(
6165 ID3D12GraphicsCommandList2 *This,
6166 ID3D12Resource *tiled_resource,
6167 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
6168 const D3D12_TILE_REGION_SIZE *tile_region_size,
6169 ID3D12Resource *buffer,
6170 UINT64 buffer_offset,
6171 D3D12_TILE_COPY_FLAGS flags);
6172
6173 void (STDMETHODCALLTYPE *ResolveSubresource)(
6174 ID3D12GraphicsCommandList2 *This,
6175 ID3D12Resource *dst_resource,
6176 UINT dst_sub_resource,
6177 ID3D12Resource *src_resource,
6178 UINT src_sub_resource,
6179 DXGI_FORMAT format);
6180
6181 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
6182 ID3D12GraphicsCommandList2 *This,
6183 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
6184
6185 void (STDMETHODCALLTYPE *RSSetViewports)(
6186 ID3D12GraphicsCommandList2 *This,
6187 UINT viewport_count,
6188 const D3D12_VIEWPORT *viewports);
6189
6190 void (STDMETHODCALLTYPE *RSSetScissorRects)(
6191 ID3D12GraphicsCommandList2 *This,
6192 UINT rect_count,
6193 const D3D12_RECT *rects);
6194
6195 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
6196 ID3D12GraphicsCommandList2 *This,
6197 const FLOAT blend_factor[4]);
6198
6199 void (STDMETHODCALLTYPE *OMSetStencilRef)(
6200 ID3D12GraphicsCommandList2 *This,
6201 UINT stencil_ref);
6202
6203 void (STDMETHODCALLTYPE *SetPipelineState)(
6204 ID3D12GraphicsCommandList2 *This,
6205 ID3D12PipelineState *pipeline_state);
6206
6207 void (STDMETHODCALLTYPE *ResourceBarrier)(
6208 ID3D12GraphicsCommandList2 *This,
6209 UINT barrier_count,
6210 const D3D12_RESOURCE_BARRIER *barriers);
6211
6212 void (STDMETHODCALLTYPE *ExecuteBundle)(
6213 ID3D12GraphicsCommandList2 *This,
6214 ID3D12GraphicsCommandList *command_list);
6215
6216 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
6217 ID3D12GraphicsCommandList2 *This,
6218 UINT heap_count,
6219 ID3D12DescriptorHeap *const *heaps);
6220
6221 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
6222 ID3D12GraphicsCommandList2 *This,
6223 ID3D12RootSignature *root_signature);
6224
6225 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
6226 ID3D12GraphicsCommandList2 *This,
6227 ID3D12RootSignature *root_signature);
6228
6229 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
6230 ID3D12GraphicsCommandList2 *This,
6231 UINT root_parameter_index,
6232 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
6233
6234 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
6235 ID3D12GraphicsCommandList2 *This,
6236 UINT root_parameter_index,
6237 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
6238
6239 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
6240 ID3D12GraphicsCommandList2 *This,
6241 UINT root_parameter_index,
6242 UINT data,
6243 UINT dst_offset);
6244
6245 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
6246 ID3D12GraphicsCommandList2 *This,
6247 UINT root_parameter_index,
6248 UINT data,
6249 UINT dst_offset);
6250
6251 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
6252 ID3D12GraphicsCommandList2 *This,
6253 UINT root_parameter_index,
6254 UINT constant_count,
6255 const void *data,
6256 UINT dst_offset);
6257
6258 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
6259 ID3D12GraphicsCommandList2 *This,
6260 UINT root_parameter_index,
6261 UINT constant_count,
6262 const void *data,
6263 UINT dst_offset);
6264
6265 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
6266 ID3D12GraphicsCommandList2 *This,
6267 UINT root_parameter_index,
6268 D3D12_GPU_VIRTUAL_ADDRESS address);
6269
6270 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
6271 ID3D12GraphicsCommandList2 *This,
6272 UINT root_parameter_index,
6273 D3D12_GPU_VIRTUAL_ADDRESS address);
6274
6275 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
6276 ID3D12GraphicsCommandList2 *This,
6277 UINT root_parameter_index,
6278 D3D12_GPU_VIRTUAL_ADDRESS address);
6279
6280 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
6281 ID3D12GraphicsCommandList2 *This,
6282 UINT root_parameter_index,
6283 D3D12_GPU_VIRTUAL_ADDRESS address);
6284
6285 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
6286 ID3D12GraphicsCommandList2 *This,
6287 UINT root_parameter_index,
6288 D3D12_GPU_VIRTUAL_ADDRESS address);
6289
6290 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
6291 ID3D12GraphicsCommandList2 *This,
6292 UINT root_parameter_index,
6293 D3D12_GPU_VIRTUAL_ADDRESS address);
6294
6295 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
6296 ID3D12GraphicsCommandList2 *This,
6297 const D3D12_INDEX_BUFFER_VIEW *view);
6298
6299 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
6300 ID3D12GraphicsCommandList2 *This,
6301 UINT start_slot,
6302 UINT view_count,
6303 const D3D12_VERTEX_BUFFER_VIEW *views);
6304
6305 void (STDMETHODCALLTYPE *SOSetTargets)(
6306 ID3D12GraphicsCommandList2 *This,
6307 UINT start_slot,
6308 UINT view_count,
6309 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
6310
6311 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
6312 ID3D12GraphicsCommandList2 *This,
6313 UINT render_target_descriptor_count,
6314 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
6315 WINBOOL single_descriptor_handle,
6316 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
6317
6318 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
6319 ID3D12GraphicsCommandList2 *This,
6320 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
6321 D3D12_CLEAR_FLAGS flags,
6322 FLOAT depth,
6323 UINT8 stencil,
6324 UINT rect_count,
6325 const D3D12_RECT *rects);
6326
6327 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
6328 ID3D12GraphicsCommandList2 *This,
6329 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
6330 const FLOAT color[4],
6331 UINT rect_count,
6332 const D3D12_RECT *rects);
6333
6334 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
6335 ID3D12GraphicsCommandList2 *This,
6336 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
6337 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
6338 ID3D12Resource *resource,
6339 const UINT values[4],
6340 UINT rect_count,
6341 const D3D12_RECT *rects);
6342
6343 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
6344 ID3D12GraphicsCommandList2 *This,
6345 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
6346 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
6347 ID3D12Resource *resource,
6348 const float values[4],
6349 UINT rect_count,
6350 const D3D12_RECT *rects);
6351
6352 void (STDMETHODCALLTYPE *DiscardResource)(
6353 ID3D12GraphicsCommandList2 *This,
6354 ID3D12Resource *resource,
6355 const D3D12_DISCARD_REGION *region);
6356
6357 void (STDMETHODCALLTYPE *BeginQuery)(
6358 ID3D12GraphicsCommandList2 *This,
6359 ID3D12QueryHeap *heap,
6360 D3D12_QUERY_TYPE type,
6361 UINT index);
6362
6363 void (STDMETHODCALLTYPE *EndQuery)(
6364 ID3D12GraphicsCommandList2 *This,
6365 ID3D12QueryHeap *heap,
6366 D3D12_QUERY_TYPE type,
6367 UINT index);
6368
6369 void (STDMETHODCALLTYPE *ResolveQueryData)(
6370 ID3D12GraphicsCommandList2 *This,
6371 ID3D12QueryHeap *heap,
6372 D3D12_QUERY_TYPE type,
6373 UINT start_index,
6374 UINT query_count,
6375 ID3D12Resource *dst_buffer,
6376 UINT64 aligned_dst_buffer_offset);
6377
6378 void (STDMETHODCALLTYPE *SetPredication)(
6379 ID3D12GraphicsCommandList2 *This,
6380 ID3D12Resource *buffer,
6381 UINT64 aligned_buffer_offset,
6382 D3D12_PREDICATION_OP operation);
6383
6384 void (STDMETHODCALLTYPE *SetMarker)(
6385 ID3D12GraphicsCommandList2 *This,
6386 UINT metadata,
6387 const void *data,
6388 UINT size);
6389
6390 void (STDMETHODCALLTYPE *BeginEvent)(
6391 ID3D12GraphicsCommandList2 *This,
6392 UINT metadata,
6393 const void *data,
6394 UINT size);
6395
6396 void (STDMETHODCALLTYPE *EndEvent)(
6397 ID3D12GraphicsCommandList2 *This);
6398
6399 void (STDMETHODCALLTYPE *ExecuteIndirect)(
6400 ID3D12GraphicsCommandList2 *This,
6401 ID3D12CommandSignature *command_signature,
6402 UINT max_command_count,
6403 ID3D12Resource *arg_buffer,
6404 UINT64 arg_buffer_offset,
6405 ID3D12Resource *count_buffer,
6406 UINT64 count_buffer_offset);
6407
6408 /*** ID3D12GraphicsCommandList1 methods ***/
6409 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
6410 ID3D12GraphicsCommandList2 *This,
6411 ID3D12Resource *dst_buffer,
6412 UINT64 dst_offset,
6413 ID3D12Resource *src_buffer,
6414 UINT64 src_offset,
6415 UINT dependent_resource_count,
6416 ID3D12Resource *const *dependent_resources,
6417 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
6418
6419 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
6420 ID3D12GraphicsCommandList2 *This,
6421 ID3D12Resource *dst_buffer,
6422 UINT64 dst_offset,
6423 ID3D12Resource *src_buffer,
6424 UINT64 src_offset,
6425 UINT dependent_resource_count,
6426 ID3D12Resource *const *dependent_resources,
6427 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
6428
6429 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
6430 ID3D12GraphicsCommandList2 *This,
6431 FLOAT min,
6432 FLOAT max);
6433
6434 void (STDMETHODCALLTYPE *SetSamplePositions)(
6435 ID3D12GraphicsCommandList2 *This,
6436 UINT sample_count,
6437 UINT pixel_count,
6438 D3D12_SAMPLE_POSITION *sample_positions);
6439
6440 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
6441 ID3D12GraphicsCommandList2 *This,
6442 ID3D12Resource *dst_resource,
6443 UINT dst_sub_resource_idx,
6444 UINT dst_x,
6445 UINT dst_y,
6446 ID3D12Resource *src_resource,
6447 UINT src_sub_resource_idx,
6448 D3D12_RECT *src_rect,
6449 DXGI_FORMAT format,
6450 D3D12_RESOLVE_MODE mode);
6451
6452 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
6453 ID3D12GraphicsCommandList2 *This,
6454 UINT mask);
6455
6456 /*** ID3D12GraphicsCommandList2 methods ***/
6457 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
6458 ID3D12GraphicsCommandList2 *This,
6459 UINT count,
6460 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
6461 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
6462
6463 END_INTERFACE
6464} ID3D12GraphicsCommandList2Vtbl;
6465
6466interface ID3D12GraphicsCommandList2 {
6467 CONST_VTBL ID3D12GraphicsCommandList2Vtbl* lpVtbl;
6468};
6469
6470#ifdef COBJMACROS
6471#ifndef WIDL_C_INLINE_WRAPPERS
6472/*** IUnknown methods ***/
6473#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6474#define ID3D12GraphicsCommandList2_AddRef(This) (This)->lpVtbl->AddRef(This)
6475#define ID3D12GraphicsCommandList2_Release(This) (This)->lpVtbl->Release(This)
6476/*** ID3D12Object methods ***/
6477#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
6478#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
6479#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
6480#define ID3D12GraphicsCommandList2_SetName(This,name) (This)->lpVtbl->SetName(This,name)
6481/*** ID3D12DeviceChild methods ***/
6482#define ID3D12GraphicsCommandList2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
6483/*** ID3D12CommandList methods ***/
6484#define ID3D12GraphicsCommandList2_GetType(This) (This)->lpVtbl->GetType(This)
6485/*** ID3D12GraphicsCommandList methods ***/
6486#define ID3D12GraphicsCommandList2_Close(This) (This)->lpVtbl->Close(This)
6487#define ID3D12GraphicsCommandList2_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
6488#define ID3D12GraphicsCommandList2_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
6489#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)
6490#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)
6491#define ID3D12GraphicsCommandList2_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
6492#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)
6493#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)
6494#define ID3D12GraphicsCommandList2_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
6495#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)
6496#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)
6497#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
6498#define ID3D12GraphicsCommandList2_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
6499#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
6500#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
6501#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
6502#define ID3D12GraphicsCommandList2_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
6503#define ID3D12GraphicsCommandList2_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
6504#define ID3D12GraphicsCommandList2_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
6505#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
6506#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
6507#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
6508#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
6509#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
6510#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
6511#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
6512#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
6513#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
6514#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
6515#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
6516#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
6517#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
6518#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
6519#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
6520#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
6521#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
6522#define ID3D12GraphicsCommandList2_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
6523#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)
6524#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
6525#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
6526#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)
6527#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)
6528#define ID3D12GraphicsCommandList2_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
6529#define ID3D12GraphicsCommandList2_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
6530#define ID3D12GraphicsCommandList2_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
6531#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)
6532#define ID3D12GraphicsCommandList2_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
6533#define ID3D12GraphicsCommandList2_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
6534#define ID3D12GraphicsCommandList2_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
6535#define ID3D12GraphicsCommandList2_EndEvent(This) (This)->lpVtbl->EndEvent(This)
6536#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)
6537/*** ID3D12GraphicsCommandList1 methods ***/
6538#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)
6539#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)
6540#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
6541#define ID3D12GraphicsCommandList2_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
6542#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)
6543#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
6544/*** ID3D12GraphicsCommandList2 methods ***/
6545#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
6546#else
6547/*** IUnknown methods ***/
6548static inline HRESULT ID3D12GraphicsCommandList2_QueryInterface(ID3D12GraphicsCommandList2* This,REFIID riid,void **ppvObject) {
6549 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6550}
6551static inline ULONG ID3D12GraphicsCommandList2_AddRef(ID3D12GraphicsCommandList2* This) {
6552 return This->lpVtbl->AddRef(This);
6553}
6554static inline ULONG ID3D12GraphicsCommandList2_Release(ID3D12GraphicsCommandList2* This) {
6555 return This->lpVtbl->Release(This);
6556}
6557/*** ID3D12Object methods ***/
6558static inline HRESULT ID3D12GraphicsCommandList2_GetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT *data_size,void *data) {
6559 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
6560}
6561static inline HRESULT ID3D12GraphicsCommandList2_SetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT data_size,const void *data) {
6562 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
6563}
6564static inline HRESULT ID3D12GraphicsCommandList2_SetPrivateDataInterface(ID3D12GraphicsCommandList2* This,REFGUID guid,const IUnknown *data) {
6565 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
6566}
6567static inline HRESULT ID3D12GraphicsCommandList2_SetName(ID3D12GraphicsCommandList2* This,const WCHAR *name) {
6568 return This->lpVtbl->SetName(This,name);
6569}
6570/*** ID3D12DeviceChild methods ***/
6571static inline HRESULT ID3D12GraphicsCommandList2_GetDevice(ID3D12GraphicsCommandList2* This,REFIID riid,void **device) {
6572 return This->lpVtbl->GetDevice(This,riid,device);
6573}
6574/*** ID3D12CommandList methods ***/
6575static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList2_GetType(ID3D12GraphicsCommandList2* This) {
6576 return This->lpVtbl->GetType(This);
6577}
6578/*** ID3D12GraphicsCommandList methods ***/
6579static inline HRESULT ID3D12GraphicsCommandList2_Close(ID3D12GraphicsCommandList2* This) {
6580 return This->lpVtbl->Close(This);
6581}
6582static inline HRESULT ID3D12GraphicsCommandList2_Reset(ID3D12GraphicsCommandList2* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
6583 return This->lpVtbl->Reset(This,allocator,initial_state);
6584}
6585static inline void ID3D12GraphicsCommandList2_ClearState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) {
6586 This->lpVtbl->ClearState(This,pipeline_state);
6587}
6588static inline void ID3D12GraphicsCommandList2_DrawInstanced(ID3D12GraphicsCommandList2* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
6589 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
6590}
6591static 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) {
6592 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
6593}
6594static inline void ID3D12GraphicsCommandList2_Dispatch(ID3D12GraphicsCommandList2* This,UINT x,UINT u,UINT z) {
6595 This->lpVtbl->Dispatch(This,x,u,z);
6596}
6597static inline void ID3D12GraphicsCommandList2_CopyBufferRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
6598 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
6599}
6600static 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) {
6601 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
6602}
6603static inline void ID3D12GraphicsCommandList2_CopyResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
6604 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
6605}
6606static 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) {
6607 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
6608}
6609static inline void ID3D12GraphicsCommandList2_ResolveSubresource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
6610 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
6611}
6612static inline void ID3D12GraphicsCommandList2_IASetPrimitiveTopology(ID3D12GraphicsCommandList2* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
6613 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
6614}
6615static inline void ID3D12GraphicsCommandList2_RSSetViewports(ID3D12GraphicsCommandList2* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
6616 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
6617}
6618static inline void ID3D12GraphicsCommandList2_RSSetScissorRects(ID3D12GraphicsCommandList2* This,UINT rect_count,const D3D12_RECT *rects) {
6619 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
6620}
6621static inline void ID3D12GraphicsCommandList2_OMSetBlendFactor(ID3D12GraphicsCommandList2* This,const FLOAT blend_factor[4]) {
6622 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
6623}
6624static inline void ID3D12GraphicsCommandList2_OMSetStencilRef(ID3D12GraphicsCommandList2* This,UINT stencil_ref) {
6625 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
6626}
6627static inline void ID3D12GraphicsCommandList2_SetPipelineState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) {
6628 This->lpVtbl->SetPipelineState(This,pipeline_state);
6629}
6630static inline void ID3D12GraphicsCommandList2_ResourceBarrier(ID3D12GraphicsCommandList2* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
6631 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
6632}
6633static inline void ID3D12GraphicsCommandList2_ExecuteBundle(ID3D12GraphicsCommandList2* This,ID3D12GraphicsCommandList *command_list) {
6634 This->lpVtbl->ExecuteBundle(This,command_list);
6635}
6636static inline void ID3D12GraphicsCommandList2_SetDescriptorHeaps(ID3D12GraphicsCommandList2* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
6637 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
6638}
6639static inline void ID3D12GraphicsCommandList2_SetComputeRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) {
6640 This->lpVtbl->SetComputeRootSignature(This,root_signature);
6641}
6642static inline void ID3D12GraphicsCommandList2_SetGraphicsRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) {
6643 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
6644}
6645static inline void ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
6646 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
6647}
6648static inline void ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
6649 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
6650}
6651static inline void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
6652 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
6653}
6654static inline void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
6655 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
6656}
6657static inline void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
6658 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
6659}
6660static inline void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
6661 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
6662}
6663static inline void ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6664 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
6665}
6666static inline void ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6667 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
6668}
6669static inline void ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6670 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
6671}
6672static inline void ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6673 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
6674}
6675static inline void ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6676 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
6677}
6678static inline void ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
6679 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
6680}
6681static inline void ID3D12GraphicsCommandList2_IASetIndexBuffer(ID3D12GraphicsCommandList2* This,const D3D12_INDEX_BUFFER_VIEW *view) {
6682 This->lpVtbl->IASetIndexBuffer(This,view);
6683}
6684static inline void ID3D12GraphicsCommandList2_IASetVertexBuffers(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
6685 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
6686}
6687static inline void ID3D12GraphicsCommandList2_SOSetTargets(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
6688 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
6689}
6690static 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) {
6691 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
6692}
6693static 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) {
6694 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
6695}
6696static inline void ID3D12GraphicsCommandList2_ClearRenderTargetView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
6697 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
6698}
6699static 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) {
6700 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
6701}
6702static 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) {
6703 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
6704}
6705static inline void ID3D12GraphicsCommandList2_DiscardResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
6706 This->lpVtbl->DiscardResource(This,resource,region);
6707}
6708static inline void ID3D12GraphicsCommandList2_BeginQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
6709 This->lpVtbl->BeginQuery(This,heap,type,index);
6710}
6711static inline void ID3D12GraphicsCommandList2_EndQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
6712 This->lpVtbl->EndQuery(This,heap,type,index);
6713}
6714static 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) {
6715 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
6716}
6717static inline void ID3D12GraphicsCommandList2_SetPredication(ID3D12GraphicsCommandList2* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
6718 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
6719}
6720static inline void ID3D12GraphicsCommandList2_SetMarker(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) {
6721 This->lpVtbl->SetMarker(This,metadata,data,size);
6722}
6723static inline void ID3D12GraphicsCommandList2_BeginEvent(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) {
6724 This->lpVtbl->BeginEvent(This,metadata,data,size);
6725}
6726static inline void ID3D12GraphicsCommandList2_EndEvent(ID3D12GraphicsCommandList2* This) {
6727 This->lpVtbl->EndEvent(This);
6728}
6729static 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) {
6730 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
6731}
6732/*** ID3D12GraphicsCommandList1 methods ***/
6733static 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) {
6734 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
6735}
6736static 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) {
6737 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
6738}
6739static inline void ID3D12GraphicsCommandList2_OMSetDepthBounds(ID3D12GraphicsCommandList2* This,FLOAT min,FLOAT max) {
6740 This->lpVtbl->OMSetDepthBounds(This,min,max);
6741}
6742static inline void ID3D12GraphicsCommandList2_SetSamplePositions(ID3D12GraphicsCommandList2* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
6743 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
6744}
6745static 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) {
6746 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
6747}
6748static inline void ID3D12GraphicsCommandList2_SetViewInstanceMask(ID3D12GraphicsCommandList2* This,UINT mask) {
6749 This->lpVtbl->SetViewInstanceMask(This,mask);
6750}
6751/*** ID3D12GraphicsCommandList2 methods ***/
6752static inline void ID3D12GraphicsCommandList2_WriteBufferImmediate(ID3D12GraphicsCommandList2* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
6753 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
6754}
6755#endif
6756#endif
6757
6758#endif
6759
6760
6761#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
6762
6763/*****************************************************************************
6764 * ID3D12ProtectedSession interface
6765 */
6766#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__
6767#define __ID3D12ProtectedSession_INTERFACE_DEFINED__
6768
6769DEFINE_GUID(IID_ID3D12ProtectedSession, 0xa1533d18, 0x0ac1, 0x4084, 0x85,0xb9, 0x89,0xa9,0x61,0x16,0x80,0x6b);
6770#if defined(__cplusplus) && !defined(CINTERFACE)
6771MIDL_INTERFACE("a1533d18-0ac1-4084-85b9-89a96116806b")
6772ID3D12ProtectedSession : public ID3D12DeviceChild
6773{
6774 virtual HRESULT STDMETHODCALLTYPE GetStatusFence(
6775 REFIID riid,
6776 void **fence) = 0;
6777
6778 virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus(
6779 ) = 0;
6780
6781};
6782#ifdef __CRT_UUID_DECL
6783__CRT_UUID_DECL(ID3D12ProtectedSession, 0xa1533d18, 0x0ac1, 0x4084, 0x85,0xb9, 0x89,0xa9,0x61,0x16,0x80,0x6b)
6784#endif
6785#else
6786typedef struct ID3D12ProtectedSessionVtbl {
6787 BEGIN_INTERFACE
6788
6789 /*** IUnknown methods ***/
6790 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6791 ID3D12ProtectedSession *This,
6792 REFIID riid,
6793 void **ppvObject);
6794
6795 ULONG (STDMETHODCALLTYPE *AddRef)(
6796 ID3D12ProtectedSession *This);
6797
6798 ULONG (STDMETHODCALLTYPE *Release)(
6799 ID3D12ProtectedSession *This);
6800
6801 /*** ID3D12Object methods ***/
6802 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
6803 ID3D12ProtectedSession *This,
6804 REFGUID guid,
6805 UINT *data_size,
6806 void *data);
6807
6808 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
6809 ID3D12ProtectedSession *This,
6810 REFGUID guid,
6811 UINT data_size,
6812 const void *data);
6813
6814 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
6815 ID3D12ProtectedSession *This,
6816 REFGUID guid,
6817 const IUnknown *data);
6818
6819 HRESULT (STDMETHODCALLTYPE *SetName)(
6820 ID3D12ProtectedSession *This,
6821 const WCHAR *name);
6822
6823 /*** ID3D12DeviceChild methods ***/
6824 HRESULT (STDMETHODCALLTYPE *GetDevice)(
6825 ID3D12ProtectedSession *This,
6826 REFIID riid,
6827 void **device);
6828
6829 /*** ID3D12ProtectedSession methods ***/
6830 HRESULT (STDMETHODCALLTYPE *GetStatusFence)(
6831 ID3D12ProtectedSession *This,
6832 REFIID riid,
6833 void **fence);
6834
6835 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)(
6836 ID3D12ProtectedSession *This);
6837
6838 END_INTERFACE
6839} ID3D12ProtectedSessionVtbl;
6840
6841interface ID3D12ProtectedSession {
6842 CONST_VTBL ID3D12ProtectedSessionVtbl* lpVtbl;
6843};
6844
6845#ifdef COBJMACROS
6846#ifndef WIDL_C_INLINE_WRAPPERS
6847/*** IUnknown methods ***/
6848#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6849#define ID3D12ProtectedSession_AddRef(This) (This)->lpVtbl->AddRef(This)
6850#define ID3D12ProtectedSession_Release(This) (This)->lpVtbl->Release(This)
6851/*** ID3D12Object methods ***/
6852#define ID3D12ProtectedSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
6853#define ID3D12ProtectedSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
6854#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
6855#define ID3D12ProtectedSession_SetName(This,name) (This)->lpVtbl->SetName(This,name)
6856/*** ID3D12DeviceChild methods ***/
6857#define ID3D12ProtectedSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
6858/*** ID3D12ProtectedSession methods ***/
6859#define ID3D12ProtectedSession_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence)
6860#define ID3D12ProtectedSession_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This)
6861#else
6862/*** IUnknown methods ***/
6863static inline HRESULT ID3D12ProtectedSession_QueryInterface(ID3D12ProtectedSession* This,REFIID riid,void **ppvObject) {
6864 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6865}
6866static inline ULONG ID3D12ProtectedSession_AddRef(ID3D12ProtectedSession* This) {
6867 return This->lpVtbl->AddRef(This);
6868}
6869static inline ULONG ID3D12ProtectedSession_Release(ID3D12ProtectedSession* This) {
6870 return This->lpVtbl->Release(This);
6871}
6872/*** ID3D12Object methods ***/
6873static inline HRESULT ID3D12ProtectedSession_GetPrivateData(ID3D12ProtectedSession* This,REFGUID guid,UINT *data_size,void *data) {
6874 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
6875}
6876static inline HRESULT ID3D12ProtectedSession_SetPrivateData(ID3D12ProtectedSession* This,REFGUID guid,UINT data_size,const void *data) {
6877 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
6878}
6879static inline HRESULT ID3D12ProtectedSession_SetPrivateDataInterface(ID3D12ProtectedSession* This,REFGUID guid,const IUnknown *data) {
6880 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
6881}
6882static inline HRESULT ID3D12ProtectedSession_SetName(ID3D12ProtectedSession* This,const WCHAR *name) {
6883 return This->lpVtbl->SetName(This,name);
6884}
6885/*** ID3D12DeviceChild methods ***/
6886static inline HRESULT ID3D12ProtectedSession_GetDevice(ID3D12ProtectedSession* This,REFIID riid,void **device) {
6887 return This->lpVtbl->GetDevice(This,riid,device);
6888}
6889/*** ID3D12ProtectedSession methods ***/
6890static inline HRESULT ID3D12ProtectedSession_GetStatusFence(ID3D12ProtectedSession* This,REFIID riid,void **fence) {
6891 return This->lpVtbl->GetStatusFence(This,riid,fence);
6892}
6893static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedSession_GetSessionStatus(ID3D12ProtectedSession* This) {
6894 return This->lpVtbl->GetSessionStatus(This);
6895}
6896#endif
6897#endif
6898
6899#endif
6900
6901
6902#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */
6903
6904typedef enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
6905 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0x0,
6906 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1
6907} D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
6908DEFINE_ENUM_FLAG_OPERATORS(D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS);
6909typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
6910 UINT NodeIndex;
6911 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
6912} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
6913/*****************************************************************************
6914 * ID3D12ProtectedResourceSession interface
6915 */
6916#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
6917#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
6918
6919DEFINE_GUID(IID_ID3D12ProtectedResourceSession, 0x6cd696f4, 0xf289, 0x40cc, 0x80,0x91, 0x5a,0x6c,0x0a,0x09,0x9c,0x3d);
6920#if defined(__cplusplus) && !defined(CINTERFACE)
6921MIDL_INTERFACE("6cd696f4-f289-40cc-8091-5a6c0a099c3d")
6922ID3D12ProtectedResourceSession : public ID3D12ProtectedSession
6923{
6924#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
6925 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC* STDMETHODCALLTYPE GetDesc(
6926 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret) = 0;
6927 D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc(
6928 )
6929 {
6930 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret;
6931 return *GetDesc(&__ret);
6932 }
6933#else
6934 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc(
6935 ) = 0;
6936#endif
6937
6938};
6939#ifdef __CRT_UUID_DECL
6940__CRT_UUID_DECL(ID3D12ProtectedResourceSession, 0x6cd696f4, 0xf289, 0x40cc, 0x80,0x91, 0x5a,0x6c,0x0a,0x09,0x9c,0x3d)
6941#endif
6942#else
6943typedef struct ID3D12ProtectedResourceSessionVtbl {
6944 BEGIN_INTERFACE
6945
6946 /*** IUnknown methods ***/
6947 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6948 ID3D12ProtectedResourceSession *This,
6949 REFIID riid,
6950 void **ppvObject);
6951
6952 ULONG (STDMETHODCALLTYPE *AddRef)(
6953 ID3D12ProtectedResourceSession *This);
6954
6955 ULONG (STDMETHODCALLTYPE *Release)(
6956 ID3D12ProtectedResourceSession *This);
6957
6958 /*** ID3D12Object methods ***/
6959 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
6960 ID3D12ProtectedResourceSession *This,
6961 REFGUID guid,
6962 UINT *data_size,
6963 void *data);
6964
6965 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
6966 ID3D12ProtectedResourceSession *This,
6967 REFGUID guid,
6968 UINT data_size,
6969 const void *data);
6970
6971 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
6972 ID3D12ProtectedResourceSession *This,
6973 REFGUID guid,
6974 const IUnknown *data);
6975
6976 HRESULT (STDMETHODCALLTYPE *SetName)(
6977 ID3D12ProtectedResourceSession *This,
6978 const WCHAR *name);
6979
6980 /*** ID3D12DeviceChild methods ***/
6981 HRESULT (STDMETHODCALLTYPE *GetDevice)(
6982 ID3D12ProtectedResourceSession *This,
6983 REFIID riid,
6984 void **device);
6985
6986 /*** ID3D12ProtectedSession methods ***/
6987 HRESULT (STDMETHODCALLTYPE *GetStatusFence)(
6988 ID3D12ProtectedResourceSession *This,
6989 REFIID riid,
6990 void **fence);
6991
6992 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)(
6993 ID3D12ProtectedResourceSession *This);
6994
6995 /*** ID3D12ProtectedResourceSession methods ***/
6996 D3D12_PROTECTED_RESOURCE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)(
6997 ID3D12ProtectedResourceSession *This,
6998 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret);
6999
7000 END_INTERFACE
7001} ID3D12ProtectedResourceSessionVtbl;
7002
7003interface ID3D12ProtectedResourceSession {
7004 CONST_VTBL ID3D12ProtectedResourceSessionVtbl* lpVtbl;
7005};
7006
7007#ifdef COBJMACROS
7008#ifndef WIDL_C_INLINE_WRAPPERS
7009/*** IUnknown methods ***/
7010#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7011#define ID3D12ProtectedResourceSession_AddRef(This) (This)->lpVtbl->AddRef(This)
7012#define ID3D12ProtectedResourceSession_Release(This) (This)->lpVtbl->Release(This)
7013/*** ID3D12Object methods ***/
7014#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
7015#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
7016#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
7017#define ID3D12ProtectedResourceSession_SetName(This,name) (This)->lpVtbl->SetName(This,name)
7018/*** ID3D12DeviceChild methods ***/
7019#define ID3D12ProtectedResourceSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
7020/*** ID3D12ProtectedSession methods ***/
7021#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence)
7022#define ID3D12ProtectedResourceSession_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This)
7023/*** ID3D12ProtectedResourceSession methods ***/
7024#define ID3D12ProtectedResourceSession_GetDesc(This) ID3D12ProtectedResourceSession_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
7025#else
7026/*** IUnknown methods ***/
7027static inline HRESULT ID3D12ProtectedResourceSession_QueryInterface(ID3D12ProtectedResourceSession* This,REFIID riid,void **ppvObject) {
7028 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7029}
7030static inline ULONG ID3D12ProtectedResourceSession_AddRef(ID3D12ProtectedResourceSession* This) {
7031 return This->lpVtbl->AddRef(This);
7032}
7033static inline ULONG ID3D12ProtectedResourceSession_Release(ID3D12ProtectedResourceSession* This) {
7034 return This->lpVtbl->Release(This);
7035}
7036/*** ID3D12Object methods ***/
7037static inline HRESULT ID3D12ProtectedResourceSession_GetPrivateData(ID3D12ProtectedResourceSession* This,REFGUID guid,UINT *data_size,void *data) {
7038 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
7039}
7040static inline HRESULT ID3D12ProtectedResourceSession_SetPrivateData(ID3D12ProtectedResourceSession* This,REFGUID guid,UINT data_size,const void *data) {
7041 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
7042}
7043static inline HRESULT ID3D12ProtectedResourceSession_SetPrivateDataInterface(ID3D12ProtectedResourceSession* This,REFGUID guid,const IUnknown *data) {
7044 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
7045}
7046static inline HRESULT ID3D12ProtectedResourceSession_SetName(ID3D12ProtectedResourceSession* This,const WCHAR *name) {
7047 return This->lpVtbl->SetName(This,name);
7048}
7049/*** ID3D12DeviceChild methods ***/
7050static inline HRESULT ID3D12ProtectedResourceSession_GetDevice(ID3D12ProtectedResourceSession* This,REFIID riid,void **device) {
7051 return This->lpVtbl->GetDevice(This,riid,device);
7052}
7053/*** ID3D12ProtectedSession methods ***/
7054static inline HRESULT ID3D12ProtectedResourceSession_GetStatusFence(ID3D12ProtectedResourceSession* This,REFIID riid,void **fence) {
7055 return This->lpVtbl->GetStatusFence(This,riid,fence);
7056}
7057static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedResourceSession_GetSessionStatus(ID3D12ProtectedResourceSession* This) {
7058 return This->lpVtbl->GetSessionStatus(This);
7059}
7060/*** ID3D12ProtectedResourceSession methods ***/
7061static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC ID3D12ProtectedResourceSession_GetDesc(ID3D12ProtectedResourceSession* This) {
7062 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret;
7063 return *This->lpVtbl->GetDesc(This,&__ret);
7064}
7065#endif
7066#endif
7067
7068#endif
7069
7070
7071#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
7072
7073/*****************************************************************************
7074 * ID3D12GraphicsCommandList3 interface
7075 */
7076#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
7077#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
7078
7079DEFINE_GUID(IID_ID3D12GraphicsCommandList3, 0x6fda83a7, 0xb84c, 0x4e38, 0x9a,0xc8, 0xc7,0xbd,0x22,0x01,0x6b,0x3d);
7080#if defined(__cplusplus) && !defined(CINTERFACE)
7081MIDL_INTERFACE("6fda83a7-b84c-4e38-9ac8-c7bd22016b3d")
7082ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2
7083{
7084 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
7085 ID3D12ProtectedResourceSession *protected_resource_session) = 0;
7086
7087};
7088#ifdef __CRT_UUID_DECL
7089__CRT_UUID_DECL(ID3D12GraphicsCommandList3, 0x6fda83a7, 0xb84c, 0x4e38, 0x9a,0xc8, 0xc7,0xbd,0x22,0x01,0x6b,0x3d)
7090#endif
7091#else
7092typedef struct ID3D12GraphicsCommandList3Vtbl {
7093 BEGIN_INTERFACE
7094
7095 /*** IUnknown methods ***/
7096 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7097 ID3D12GraphicsCommandList3 *This,
7098 REFIID riid,
7099 void **ppvObject);
7100
7101 ULONG (STDMETHODCALLTYPE *AddRef)(
7102 ID3D12GraphicsCommandList3 *This);
7103
7104 ULONG (STDMETHODCALLTYPE *Release)(
7105 ID3D12GraphicsCommandList3 *This);
7106
7107 /*** ID3D12Object methods ***/
7108 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
7109 ID3D12GraphicsCommandList3 *This,
7110 REFGUID guid,
7111 UINT *data_size,
7112 void *data);
7113
7114 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
7115 ID3D12GraphicsCommandList3 *This,
7116 REFGUID guid,
7117 UINT data_size,
7118 const void *data);
7119
7120 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
7121 ID3D12GraphicsCommandList3 *This,
7122 REFGUID guid,
7123 const IUnknown *data);
7124
7125 HRESULT (STDMETHODCALLTYPE *SetName)(
7126 ID3D12GraphicsCommandList3 *This,
7127 const WCHAR *name);
7128
7129 /*** ID3D12DeviceChild methods ***/
7130 HRESULT (STDMETHODCALLTYPE *GetDevice)(
7131 ID3D12GraphicsCommandList3 *This,
7132 REFIID riid,
7133 void **device);
7134
7135 /*** ID3D12CommandList methods ***/
7136 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
7137 ID3D12GraphicsCommandList3 *This);
7138
7139 /*** ID3D12GraphicsCommandList methods ***/
7140 HRESULT (STDMETHODCALLTYPE *Close)(
7141 ID3D12GraphicsCommandList3 *This);
7142
7143 HRESULT (STDMETHODCALLTYPE *Reset)(
7144 ID3D12GraphicsCommandList3 *This,
7145 ID3D12CommandAllocator *allocator,
7146 ID3D12PipelineState *initial_state);
7147
7148 void (STDMETHODCALLTYPE *ClearState)(
7149 ID3D12GraphicsCommandList3 *This,
7150 ID3D12PipelineState *pipeline_state);
7151
7152 void (STDMETHODCALLTYPE *DrawInstanced)(
7153 ID3D12GraphicsCommandList3 *This,
7154 UINT vertex_count_per_instance,
7155 UINT instance_count,
7156 UINT start_vertex_location,
7157 UINT start_instance_location);
7158
7159 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
7160 ID3D12GraphicsCommandList3 *This,
7161 UINT index_count_per_instance,
7162 UINT instance_count,
7163 UINT start_vertex_location,
7164 INT base_vertex_location,
7165 UINT start_instance_location);
7166
7167 void (STDMETHODCALLTYPE *Dispatch)(
7168 ID3D12GraphicsCommandList3 *This,
7169 UINT x,
7170 UINT u,
7171 UINT z);
7172
7173 void (STDMETHODCALLTYPE *CopyBufferRegion)(
7174 ID3D12GraphicsCommandList3 *This,
7175 ID3D12Resource *dst_buffer,
7176 UINT64 dst_offset,
7177 ID3D12Resource *src_buffer,
7178 UINT64 src_offset,
7179 UINT64 byte_count);
7180
7181 void (STDMETHODCALLTYPE *CopyTextureRegion)(
7182 ID3D12GraphicsCommandList3 *This,
7183 const D3D12_TEXTURE_COPY_LOCATION *dst,
7184 UINT dst_x,
7185 UINT dst_y,
7186 UINT dst_z,
7187 const D3D12_TEXTURE_COPY_LOCATION *src,
7188 const D3D12_BOX *src_box);
7189
7190 void (STDMETHODCALLTYPE *CopyResource)(
7191 ID3D12GraphicsCommandList3 *This,
7192 ID3D12Resource *dst_resource,
7193 ID3D12Resource *src_resource);
7194
7195 void (STDMETHODCALLTYPE *CopyTiles)(
7196 ID3D12GraphicsCommandList3 *This,
7197 ID3D12Resource *tiled_resource,
7198 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
7199 const D3D12_TILE_REGION_SIZE *tile_region_size,
7200 ID3D12Resource *buffer,
7201 UINT64 buffer_offset,
7202 D3D12_TILE_COPY_FLAGS flags);
7203
7204 void (STDMETHODCALLTYPE *ResolveSubresource)(
7205 ID3D12GraphicsCommandList3 *This,
7206 ID3D12Resource *dst_resource,
7207 UINT dst_sub_resource,
7208 ID3D12Resource *src_resource,
7209 UINT src_sub_resource,
7210 DXGI_FORMAT format);
7211
7212 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
7213 ID3D12GraphicsCommandList3 *This,
7214 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
7215
7216 void (STDMETHODCALLTYPE *RSSetViewports)(
7217 ID3D12GraphicsCommandList3 *This,
7218 UINT viewport_count,
7219 const D3D12_VIEWPORT *viewports);
7220
7221 void (STDMETHODCALLTYPE *RSSetScissorRects)(
7222 ID3D12GraphicsCommandList3 *This,
7223 UINT rect_count,
7224 const D3D12_RECT *rects);
7225
7226 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
7227 ID3D12GraphicsCommandList3 *This,
7228 const FLOAT blend_factor[4]);
7229
7230 void (STDMETHODCALLTYPE *OMSetStencilRef)(
7231 ID3D12GraphicsCommandList3 *This,
7232 UINT stencil_ref);
7233
7234 void (STDMETHODCALLTYPE *SetPipelineState)(
7235 ID3D12GraphicsCommandList3 *This,
7236 ID3D12PipelineState *pipeline_state);
7237
7238 void (STDMETHODCALLTYPE *ResourceBarrier)(
7239 ID3D12GraphicsCommandList3 *This,
7240 UINT barrier_count,
7241 const D3D12_RESOURCE_BARRIER *barriers);
7242
7243 void (STDMETHODCALLTYPE *ExecuteBundle)(
7244 ID3D12GraphicsCommandList3 *This,
7245 ID3D12GraphicsCommandList *command_list);
7246
7247 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
7248 ID3D12GraphicsCommandList3 *This,
7249 UINT heap_count,
7250 ID3D12DescriptorHeap *const *heaps);
7251
7252 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
7253 ID3D12GraphicsCommandList3 *This,
7254 ID3D12RootSignature *root_signature);
7255
7256 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
7257 ID3D12GraphicsCommandList3 *This,
7258 ID3D12RootSignature *root_signature);
7259
7260 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
7261 ID3D12GraphicsCommandList3 *This,
7262 UINT root_parameter_index,
7263 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
7264
7265 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
7266 ID3D12GraphicsCommandList3 *This,
7267 UINT root_parameter_index,
7268 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
7269
7270 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
7271 ID3D12GraphicsCommandList3 *This,
7272 UINT root_parameter_index,
7273 UINT data,
7274 UINT dst_offset);
7275
7276 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
7277 ID3D12GraphicsCommandList3 *This,
7278 UINT root_parameter_index,
7279 UINT data,
7280 UINT dst_offset);
7281
7282 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
7283 ID3D12GraphicsCommandList3 *This,
7284 UINT root_parameter_index,
7285 UINT constant_count,
7286 const void *data,
7287 UINT dst_offset);
7288
7289 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
7290 ID3D12GraphicsCommandList3 *This,
7291 UINT root_parameter_index,
7292 UINT constant_count,
7293 const void *data,
7294 UINT dst_offset);
7295
7296 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
7297 ID3D12GraphicsCommandList3 *This,
7298 UINT root_parameter_index,
7299 D3D12_GPU_VIRTUAL_ADDRESS address);
7300
7301 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
7302 ID3D12GraphicsCommandList3 *This,
7303 UINT root_parameter_index,
7304 D3D12_GPU_VIRTUAL_ADDRESS address);
7305
7306 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
7307 ID3D12GraphicsCommandList3 *This,
7308 UINT root_parameter_index,
7309 D3D12_GPU_VIRTUAL_ADDRESS address);
7310
7311 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
7312 ID3D12GraphicsCommandList3 *This,
7313 UINT root_parameter_index,
7314 D3D12_GPU_VIRTUAL_ADDRESS address);
7315
7316 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
7317 ID3D12GraphicsCommandList3 *This,
7318 UINT root_parameter_index,
7319 D3D12_GPU_VIRTUAL_ADDRESS address);
7320
7321 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
7322 ID3D12GraphicsCommandList3 *This,
7323 UINT root_parameter_index,
7324 D3D12_GPU_VIRTUAL_ADDRESS address);
7325
7326 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
7327 ID3D12GraphicsCommandList3 *This,
7328 const D3D12_INDEX_BUFFER_VIEW *view);
7329
7330 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
7331 ID3D12GraphicsCommandList3 *This,
7332 UINT start_slot,
7333 UINT view_count,
7334 const D3D12_VERTEX_BUFFER_VIEW *views);
7335
7336 void (STDMETHODCALLTYPE *SOSetTargets)(
7337 ID3D12GraphicsCommandList3 *This,
7338 UINT start_slot,
7339 UINT view_count,
7340 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
7341
7342 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
7343 ID3D12GraphicsCommandList3 *This,
7344 UINT render_target_descriptor_count,
7345 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
7346 WINBOOL single_descriptor_handle,
7347 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
7348
7349 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
7350 ID3D12GraphicsCommandList3 *This,
7351 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
7352 D3D12_CLEAR_FLAGS flags,
7353 FLOAT depth,
7354 UINT8 stencil,
7355 UINT rect_count,
7356 const D3D12_RECT *rects);
7357
7358 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
7359 ID3D12GraphicsCommandList3 *This,
7360 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
7361 const FLOAT color[4],
7362 UINT rect_count,
7363 const D3D12_RECT *rects);
7364
7365 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
7366 ID3D12GraphicsCommandList3 *This,
7367 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
7368 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
7369 ID3D12Resource *resource,
7370 const UINT values[4],
7371 UINT rect_count,
7372 const D3D12_RECT *rects);
7373
7374 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
7375 ID3D12GraphicsCommandList3 *This,
7376 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
7377 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
7378 ID3D12Resource *resource,
7379 const float values[4],
7380 UINT rect_count,
7381 const D3D12_RECT *rects);
7382
7383 void (STDMETHODCALLTYPE *DiscardResource)(
7384 ID3D12GraphicsCommandList3 *This,
7385 ID3D12Resource *resource,
7386 const D3D12_DISCARD_REGION *region);
7387
7388 void (STDMETHODCALLTYPE *BeginQuery)(
7389 ID3D12GraphicsCommandList3 *This,
7390 ID3D12QueryHeap *heap,
7391 D3D12_QUERY_TYPE type,
7392 UINT index);
7393
7394 void (STDMETHODCALLTYPE *EndQuery)(
7395 ID3D12GraphicsCommandList3 *This,
7396 ID3D12QueryHeap *heap,
7397 D3D12_QUERY_TYPE type,
7398 UINT index);
7399
7400 void (STDMETHODCALLTYPE *ResolveQueryData)(
7401 ID3D12GraphicsCommandList3 *This,
7402 ID3D12QueryHeap *heap,
7403 D3D12_QUERY_TYPE type,
7404 UINT start_index,
7405 UINT query_count,
7406 ID3D12Resource *dst_buffer,
7407 UINT64 aligned_dst_buffer_offset);
7408
7409 void (STDMETHODCALLTYPE *SetPredication)(
7410 ID3D12GraphicsCommandList3 *This,
7411 ID3D12Resource *buffer,
7412 UINT64 aligned_buffer_offset,
7413 D3D12_PREDICATION_OP operation);
7414
7415 void (STDMETHODCALLTYPE *SetMarker)(
7416 ID3D12GraphicsCommandList3 *This,
7417 UINT metadata,
7418 const void *data,
7419 UINT size);
7420
7421 void (STDMETHODCALLTYPE *BeginEvent)(
7422 ID3D12GraphicsCommandList3 *This,
7423 UINT metadata,
7424 const void *data,
7425 UINT size);
7426
7427 void (STDMETHODCALLTYPE *EndEvent)(
7428 ID3D12GraphicsCommandList3 *This);
7429
7430 void (STDMETHODCALLTYPE *ExecuteIndirect)(
7431 ID3D12GraphicsCommandList3 *This,
7432 ID3D12CommandSignature *command_signature,
7433 UINT max_command_count,
7434 ID3D12Resource *arg_buffer,
7435 UINT64 arg_buffer_offset,
7436 ID3D12Resource *count_buffer,
7437 UINT64 count_buffer_offset);
7438
7439 /*** ID3D12GraphicsCommandList1 methods ***/
7440 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
7441 ID3D12GraphicsCommandList3 *This,
7442 ID3D12Resource *dst_buffer,
7443 UINT64 dst_offset,
7444 ID3D12Resource *src_buffer,
7445 UINT64 src_offset,
7446 UINT dependent_resource_count,
7447 ID3D12Resource *const *dependent_resources,
7448 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
7449
7450 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
7451 ID3D12GraphicsCommandList3 *This,
7452 ID3D12Resource *dst_buffer,
7453 UINT64 dst_offset,
7454 ID3D12Resource *src_buffer,
7455 UINT64 src_offset,
7456 UINT dependent_resource_count,
7457 ID3D12Resource *const *dependent_resources,
7458 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
7459
7460 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
7461 ID3D12GraphicsCommandList3 *This,
7462 FLOAT min,
7463 FLOAT max);
7464
7465 void (STDMETHODCALLTYPE *SetSamplePositions)(
7466 ID3D12GraphicsCommandList3 *This,
7467 UINT sample_count,
7468 UINT pixel_count,
7469 D3D12_SAMPLE_POSITION *sample_positions);
7470
7471 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
7472 ID3D12GraphicsCommandList3 *This,
7473 ID3D12Resource *dst_resource,
7474 UINT dst_sub_resource_idx,
7475 UINT dst_x,
7476 UINT dst_y,
7477 ID3D12Resource *src_resource,
7478 UINT src_sub_resource_idx,
7479 D3D12_RECT *src_rect,
7480 DXGI_FORMAT format,
7481 D3D12_RESOLVE_MODE mode);
7482
7483 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
7484 ID3D12GraphicsCommandList3 *This,
7485 UINT mask);
7486
7487 /*** ID3D12GraphicsCommandList2 methods ***/
7488 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
7489 ID3D12GraphicsCommandList3 *This,
7490 UINT count,
7491 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
7492 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
7493
7494 /*** ID3D12GraphicsCommandList3 methods ***/
7495 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
7496 ID3D12GraphicsCommandList3 *This,
7497 ID3D12ProtectedResourceSession *protected_resource_session);
7498
7499 END_INTERFACE
7500} ID3D12GraphicsCommandList3Vtbl;
7501
7502interface ID3D12GraphicsCommandList3 {
7503 CONST_VTBL ID3D12GraphicsCommandList3Vtbl* lpVtbl;
7504};
7505
7506#ifdef COBJMACROS
7507#ifndef WIDL_C_INLINE_WRAPPERS
7508/*** IUnknown methods ***/
7509#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7510#define ID3D12GraphicsCommandList3_AddRef(This) (This)->lpVtbl->AddRef(This)
7511#define ID3D12GraphicsCommandList3_Release(This) (This)->lpVtbl->Release(This)
7512/*** ID3D12Object methods ***/
7513#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
7514#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
7515#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
7516#define ID3D12GraphicsCommandList3_SetName(This,name) (This)->lpVtbl->SetName(This,name)
7517/*** ID3D12DeviceChild methods ***/
7518#define ID3D12GraphicsCommandList3_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
7519/*** ID3D12CommandList methods ***/
7520#define ID3D12GraphicsCommandList3_GetType(This) (This)->lpVtbl->GetType(This)
7521/*** ID3D12GraphicsCommandList methods ***/
7522#define ID3D12GraphicsCommandList3_Close(This) (This)->lpVtbl->Close(This)
7523#define ID3D12GraphicsCommandList3_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
7524#define ID3D12GraphicsCommandList3_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
7525#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)
7526#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)
7527#define ID3D12GraphicsCommandList3_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
7528#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)
7529#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)
7530#define ID3D12GraphicsCommandList3_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
7531#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)
7532#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)
7533#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
7534#define ID3D12GraphicsCommandList3_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
7535#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
7536#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
7537#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
7538#define ID3D12GraphicsCommandList3_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
7539#define ID3D12GraphicsCommandList3_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
7540#define ID3D12GraphicsCommandList3_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
7541#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
7542#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
7543#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
7544#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
7545#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
7546#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
7547#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
7548#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
7549#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
7550#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
7551#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
7552#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
7553#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
7554#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
7555#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
7556#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
7557#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
7558#define ID3D12GraphicsCommandList3_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
7559#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)
7560#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
7561#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
7562#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)
7563#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)
7564#define ID3D12GraphicsCommandList3_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
7565#define ID3D12GraphicsCommandList3_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
7566#define ID3D12GraphicsCommandList3_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
7567#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)
7568#define ID3D12GraphicsCommandList3_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
7569#define ID3D12GraphicsCommandList3_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
7570#define ID3D12GraphicsCommandList3_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
7571#define ID3D12GraphicsCommandList3_EndEvent(This) (This)->lpVtbl->EndEvent(This)
7572#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)
7573/*** ID3D12GraphicsCommandList1 methods ***/
7574#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)
7575#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)
7576#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
7577#define ID3D12GraphicsCommandList3_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
7578#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)
7579#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
7580/*** ID3D12GraphicsCommandList2 methods ***/
7581#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
7582/*** ID3D12GraphicsCommandList3 methods ***/
7583#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
7584#else
7585/*** IUnknown methods ***/
7586static inline HRESULT ID3D12GraphicsCommandList3_QueryInterface(ID3D12GraphicsCommandList3* This,REFIID riid,void **ppvObject) {
7587 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7588}
7589static inline ULONG ID3D12GraphicsCommandList3_AddRef(ID3D12GraphicsCommandList3* This) {
7590 return This->lpVtbl->AddRef(This);
7591}
7592static inline ULONG ID3D12GraphicsCommandList3_Release(ID3D12GraphicsCommandList3* This) {
7593 return This->lpVtbl->Release(This);
7594}
7595/*** ID3D12Object methods ***/
7596static inline HRESULT ID3D12GraphicsCommandList3_GetPrivateData(ID3D12GraphicsCommandList3* This,REFGUID guid,UINT *data_size,void *data) {
7597 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
7598}
7599static inline HRESULT ID3D12GraphicsCommandList3_SetPrivateData(ID3D12GraphicsCommandList3* This,REFGUID guid,UINT data_size,const void *data) {
7600 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
7601}
7602static inline HRESULT ID3D12GraphicsCommandList3_SetPrivateDataInterface(ID3D12GraphicsCommandList3* This,REFGUID guid,const IUnknown *data) {
7603 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
7604}
7605static inline HRESULT ID3D12GraphicsCommandList3_SetName(ID3D12GraphicsCommandList3* This,const WCHAR *name) {
7606 return This->lpVtbl->SetName(This,name);
7607}
7608/*** ID3D12DeviceChild methods ***/
7609static inline HRESULT ID3D12GraphicsCommandList3_GetDevice(ID3D12GraphicsCommandList3* This,REFIID riid,void **device) {
7610 return This->lpVtbl->GetDevice(This,riid,device);
7611}
7612/*** ID3D12CommandList methods ***/
7613static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList3_GetType(ID3D12GraphicsCommandList3* This) {
7614 return This->lpVtbl->GetType(This);
7615}
7616/*** ID3D12GraphicsCommandList methods ***/
7617static inline HRESULT ID3D12GraphicsCommandList3_Close(ID3D12GraphicsCommandList3* This) {
7618 return This->lpVtbl->Close(This);
7619}
7620static inline HRESULT ID3D12GraphicsCommandList3_Reset(ID3D12GraphicsCommandList3* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
7621 return This->lpVtbl->Reset(This,allocator,initial_state);
7622}
7623static inline void ID3D12GraphicsCommandList3_ClearState(ID3D12GraphicsCommandList3* This,ID3D12PipelineState *pipeline_state) {
7624 This->lpVtbl->ClearState(This,pipeline_state);
7625}
7626static inline void ID3D12GraphicsCommandList3_DrawInstanced(ID3D12GraphicsCommandList3* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
7627 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
7628}
7629static 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) {
7630 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
7631}
7632static inline void ID3D12GraphicsCommandList3_Dispatch(ID3D12GraphicsCommandList3* This,UINT x,UINT u,UINT z) {
7633 This->lpVtbl->Dispatch(This,x,u,z);
7634}
7635static inline void ID3D12GraphicsCommandList3_CopyBufferRegion(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
7636 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
7637}
7638static 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) {
7639 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
7640}
7641static inline void ID3D12GraphicsCommandList3_CopyResource(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
7642 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
7643}
7644static 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) {
7645 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
7646}
7647static inline void ID3D12GraphicsCommandList3_ResolveSubresource(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
7648 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
7649}
7650static inline void ID3D12GraphicsCommandList3_IASetPrimitiveTopology(ID3D12GraphicsCommandList3* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
7651 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
7652}
7653static inline void ID3D12GraphicsCommandList3_RSSetViewports(ID3D12GraphicsCommandList3* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
7654 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
7655}
7656static inline void ID3D12GraphicsCommandList3_RSSetScissorRects(ID3D12GraphicsCommandList3* This,UINT rect_count,const D3D12_RECT *rects) {
7657 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
7658}
7659static inline void ID3D12GraphicsCommandList3_OMSetBlendFactor(ID3D12GraphicsCommandList3* This,const FLOAT blend_factor[4]) {
7660 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
7661}
7662static inline void ID3D12GraphicsCommandList3_OMSetStencilRef(ID3D12GraphicsCommandList3* This,UINT stencil_ref) {
7663 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
7664}
7665static inline void ID3D12GraphicsCommandList3_SetPipelineState(ID3D12GraphicsCommandList3* This,ID3D12PipelineState *pipeline_state) {
7666 This->lpVtbl->SetPipelineState(This,pipeline_state);
7667}
7668static inline void ID3D12GraphicsCommandList3_ResourceBarrier(ID3D12GraphicsCommandList3* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
7669 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
7670}
7671static inline void ID3D12GraphicsCommandList3_ExecuteBundle(ID3D12GraphicsCommandList3* This,ID3D12GraphicsCommandList *command_list) {
7672 This->lpVtbl->ExecuteBundle(This,command_list);
7673}
7674static inline void ID3D12GraphicsCommandList3_SetDescriptorHeaps(ID3D12GraphicsCommandList3* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
7675 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
7676}
7677static inline void ID3D12GraphicsCommandList3_SetComputeRootSignature(ID3D12GraphicsCommandList3* This,ID3D12RootSignature *root_signature) {
7678 This->lpVtbl->SetComputeRootSignature(This,root_signature);
7679}
7680static inline void ID3D12GraphicsCommandList3_SetGraphicsRootSignature(ID3D12GraphicsCommandList3* This,ID3D12RootSignature *root_signature) {
7681 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
7682}
7683static inline void ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
7684 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
7685}
7686static inline void ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
7687 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
7688}
7689static inline void ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
7690 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
7691}
7692static inline void ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
7693 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
7694}
7695static inline void ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
7696 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
7697}
7698static inline void ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
7699 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
7700}
7701static inline void ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7702 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
7703}
7704static inline void ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7705 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
7706}
7707static inline void ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7708 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
7709}
7710static inline void ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7711 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
7712}
7713static inline void ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7714 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
7715}
7716static inline void ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
7717 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
7718}
7719static inline void ID3D12GraphicsCommandList3_IASetIndexBuffer(ID3D12GraphicsCommandList3* This,const D3D12_INDEX_BUFFER_VIEW *view) {
7720 This->lpVtbl->IASetIndexBuffer(This,view);
7721}
7722static inline void ID3D12GraphicsCommandList3_IASetVertexBuffers(ID3D12GraphicsCommandList3* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
7723 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
7724}
7725static inline void ID3D12GraphicsCommandList3_SOSetTargets(ID3D12GraphicsCommandList3* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
7726 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
7727}
7728static 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) {
7729 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
7730}
7731static 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) {
7732 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
7733}
7734static inline void ID3D12GraphicsCommandList3_ClearRenderTargetView(ID3D12GraphicsCommandList3* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
7735 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
7736}
7737static 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) {
7738 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
7739}
7740static 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) {
7741 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
7742}
7743static inline void ID3D12GraphicsCommandList3_DiscardResource(ID3D12GraphicsCommandList3* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
7744 This->lpVtbl->DiscardResource(This,resource,region);
7745}
7746static inline void ID3D12GraphicsCommandList3_BeginQuery(ID3D12GraphicsCommandList3* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
7747 This->lpVtbl->BeginQuery(This,heap,type,index);
7748}
7749static inline void ID3D12GraphicsCommandList3_EndQuery(ID3D12GraphicsCommandList3* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
7750 This->lpVtbl->EndQuery(This,heap,type,index);
7751}
7752static 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) {
7753 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
7754}
7755static inline void ID3D12GraphicsCommandList3_SetPredication(ID3D12GraphicsCommandList3* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
7756 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
7757}
7758static inline void ID3D12GraphicsCommandList3_SetMarker(ID3D12GraphicsCommandList3* This,UINT metadata,const void *data,UINT size) {
7759 This->lpVtbl->SetMarker(This,metadata,data,size);
7760}
7761static inline void ID3D12GraphicsCommandList3_BeginEvent(ID3D12GraphicsCommandList3* This,UINT metadata,const void *data,UINT size) {
7762 This->lpVtbl->BeginEvent(This,metadata,data,size);
7763}
7764static inline void ID3D12GraphicsCommandList3_EndEvent(ID3D12GraphicsCommandList3* This) {
7765 This->lpVtbl->EndEvent(This);
7766}
7767static 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) {
7768 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
7769}
7770/*** ID3D12GraphicsCommandList1 methods ***/
7771static 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) {
7772 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
7773}
7774static 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) {
7775 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
7776}
7777static inline void ID3D12GraphicsCommandList3_OMSetDepthBounds(ID3D12GraphicsCommandList3* This,FLOAT min,FLOAT max) {
7778 This->lpVtbl->OMSetDepthBounds(This,min,max);
7779}
7780static inline void ID3D12GraphicsCommandList3_SetSamplePositions(ID3D12GraphicsCommandList3* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
7781 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
7782}
7783static 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) {
7784 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
7785}
7786static inline void ID3D12GraphicsCommandList3_SetViewInstanceMask(ID3D12GraphicsCommandList3* This,UINT mask) {
7787 This->lpVtbl->SetViewInstanceMask(This,mask);
7788}
7789/*** ID3D12GraphicsCommandList2 methods ***/
7790static inline void ID3D12GraphicsCommandList3_WriteBufferImmediate(ID3D12GraphicsCommandList3* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
7791 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
7792}
7793/*** ID3D12GraphicsCommandList3 methods ***/
7794static inline void ID3D12GraphicsCommandList3_SetProtectedResourceSession(ID3D12GraphicsCommandList3* This,ID3D12ProtectedResourceSession *protected_resource_session) {
7795 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
7796}
7797#endif
7798#endif
7799
7800#endif
7801
7802
7803#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */
7804
7805typedef enum D3D12_TILE_RANGE_FLAGS {
7806 D3D12_TILE_RANGE_FLAG_NONE = 0x0,
7807 D3D12_TILE_RANGE_FLAG_NULL = 0x1,
7808 D3D12_TILE_RANGE_FLAG_SKIP = 0x2,
7809 D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 0x4
7810} D3D12_TILE_RANGE_FLAGS;
7811typedef enum D3D12_TILE_MAPPING_FLAGS {
7812 D3D12_TILE_MAPPING_FLAG_NONE = 0x0,
7813 D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
7814} D3D12_TILE_MAPPING_FLAGS;
7815DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_MAPPING_FLAGS);
7816/*****************************************************************************
7817 * ID3D12CommandQueue interface
7818 */
7819#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
7820#define __ID3D12CommandQueue_INTERFACE_DEFINED__
7821
7822DEFINE_GUID(IID_ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed);
7823#if defined(__cplusplus) && !defined(CINTERFACE)
7824MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
7825ID3D12CommandQueue : public ID3D12Pageable
7826{
7827 virtual void STDMETHODCALLTYPE UpdateTileMappings(
7828 ID3D12Resource *resource,
7829 UINT region_count,
7830 const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
7831 const D3D12_TILE_REGION_SIZE *region_sizes,
7832 ID3D12Heap *heap,
7833 UINT range_count,
7834 const D3D12_TILE_RANGE_FLAGS *range_flags,
7835 const UINT *heap_range_offsets,
7836 const UINT *range_tile_counts,
7837 D3D12_TILE_MAPPING_FLAGS flags) = 0;
7838
7839 virtual void STDMETHODCALLTYPE CopyTileMappings(
7840 ID3D12Resource *dst_resource,
7841 const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
7842 ID3D12Resource *src_resource,
7843 const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
7844 const D3D12_TILE_REGION_SIZE *region_size,
7845 D3D12_TILE_MAPPING_FLAGS flags) = 0;
7846
7847 virtual void STDMETHODCALLTYPE ExecuteCommandLists(
7848 UINT command_list_count,
7849 ID3D12CommandList *const *command_lists) = 0;
7850
7851 virtual void STDMETHODCALLTYPE SetMarker(
7852 UINT metadata,
7853 const void *data,
7854 UINT size) = 0;
7855
7856 virtual void STDMETHODCALLTYPE BeginEvent(
7857 UINT metadata,
7858 const void *data,
7859 UINT size) = 0;
7860
7861 virtual void STDMETHODCALLTYPE EndEvent(
7862 ) = 0;
7863
7864 virtual HRESULT STDMETHODCALLTYPE Signal(
7865 ID3D12Fence *fence,
7866 UINT64 value) = 0;
7867
7868 virtual HRESULT STDMETHODCALLTYPE Wait(
7869 ID3D12Fence *fence,
7870 UINT64 value) = 0;
7871
7872 virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
7873 UINT64 *frequency) = 0;
7874
7875 virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
7876 UINT64 *gpu_timestamp,
7877 UINT64 *cpu_timestamp) = 0;
7878
7879#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
7880 virtual D3D12_COMMAND_QUEUE_DESC* STDMETHODCALLTYPE GetDesc(
7881 D3D12_COMMAND_QUEUE_DESC *__ret) = 0;
7882 D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
7883 )
7884 {
7885 D3D12_COMMAND_QUEUE_DESC __ret;
7886 return *GetDesc(&__ret);
7887 }
7888#else
7889 virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
7890 ) = 0;
7891#endif
7892
7893};
7894#ifdef __CRT_UUID_DECL
7895__CRT_UUID_DECL(ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed)
7896#endif
7897#else
7898typedef struct ID3D12CommandQueueVtbl {
7899 BEGIN_INTERFACE
7900
7901 /*** IUnknown methods ***/
7902 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7903 ID3D12CommandQueue *This,
7904 REFIID riid,
7905 void **ppvObject);
7906
7907 ULONG (STDMETHODCALLTYPE *AddRef)(
7908 ID3D12CommandQueue *This);
7909
7910 ULONG (STDMETHODCALLTYPE *Release)(
7911 ID3D12CommandQueue *This);
7912
7913 /*** ID3D12Object methods ***/
7914 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
7915 ID3D12CommandQueue *This,
7916 REFGUID guid,
7917 UINT *data_size,
7918 void *data);
7919
7920 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
7921 ID3D12CommandQueue *This,
7922 REFGUID guid,
7923 UINT data_size,
7924 const void *data);
7925
7926 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
7927 ID3D12CommandQueue *This,
7928 REFGUID guid,
7929 const IUnknown *data);
7930
7931 HRESULT (STDMETHODCALLTYPE *SetName)(
7932 ID3D12CommandQueue *This,
7933 const WCHAR *name);
7934
7935 /*** ID3D12DeviceChild methods ***/
7936 HRESULT (STDMETHODCALLTYPE *GetDevice)(
7937 ID3D12CommandQueue *This,
7938 REFIID riid,
7939 void **device);
7940
7941 /*** ID3D12CommandQueue methods ***/
7942 void (STDMETHODCALLTYPE *UpdateTileMappings)(
7943 ID3D12CommandQueue *This,
7944 ID3D12Resource *resource,
7945 UINT region_count,
7946 const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
7947 const D3D12_TILE_REGION_SIZE *region_sizes,
7948 ID3D12Heap *heap,
7949 UINT range_count,
7950 const D3D12_TILE_RANGE_FLAGS *range_flags,
7951 const UINT *heap_range_offsets,
7952 const UINT *range_tile_counts,
7953 D3D12_TILE_MAPPING_FLAGS flags);
7954
7955 void (STDMETHODCALLTYPE *CopyTileMappings)(
7956 ID3D12CommandQueue *This,
7957 ID3D12Resource *dst_resource,
7958 const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
7959 ID3D12Resource *src_resource,
7960 const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
7961 const D3D12_TILE_REGION_SIZE *region_size,
7962 D3D12_TILE_MAPPING_FLAGS flags);
7963
7964 void (STDMETHODCALLTYPE *ExecuteCommandLists)(
7965 ID3D12CommandQueue *This,
7966 UINT command_list_count,
7967 ID3D12CommandList *const *command_lists);
7968
7969 void (STDMETHODCALLTYPE *SetMarker)(
7970 ID3D12CommandQueue *This,
7971 UINT metadata,
7972 const void *data,
7973 UINT size);
7974
7975 void (STDMETHODCALLTYPE *BeginEvent)(
7976 ID3D12CommandQueue *This,
7977 UINT metadata,
7978 const void *data,
7979 UINT size);
7980
7981 void (STDMETHODCALLTYPE *EndEvent)(
7982 ID3D12CommandQueue *This);
7983
7984 HRESULT (STDMETHODCALLTYPE *Signal)(
7985 ID3D12CommandQueue *This,
7986 ID3D12Fence *fence,
7987 UINT64 value);
7988
7989 HRESULT (STDMETHODCALLTYPE *Wait)(
7990 ID3D12CommandQueue *This,
7991 ID3D12Fence *fence,
7992 UINT64 value);
7993
7994 HRESULT (STDMETHODCALLTYPE *GetTimestampFrequency)(
7995 ID3D12CommandQueue *This,
7996 UINT64 *frequency);
7997
7998 HRESULT (STDMETHODCALLTYPE *GetClockCalibration)(
7999 ID3D12CommandQueue *This,
8000 UINT64 *gpu_timestamp,
8001 UINT64 *cpu_timestamp);
8002
8003 D3D12_COMMAND_QUEUE_DESC * (STDMETHODCALLTYPE *GetDesc)(
8004 ID3D12CommandQueue *This,
8005 D3D12_COMMAND_QUEUE_DESC *__ret);
8006
8007 END_INTERFACE
8008} ID3D12CommandQueueVtbl;
8009
8010interface ID3D12CommandQueue {
8011 CONST_VTBL ID3D12CommandQueueVtbl* lpVtbl;
8012};
8013
8014#ifdef COBJMACROS
8015#ifndef WIDL_C_INLINE_WRAPPERS
8016/*** IUnknown methods ***/
8017#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8018#define ID3D12CommandQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
8019#define ID3D12CommandQueue_Release(This) (This)->lpVtbl->Release(This)
8020/*** ID3D12Object methods ***/
8021#define ID3D12CommandQueue_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8022#define ID3D12CommandQueue_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8023#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8024#define ID3D12CommandQueue_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8025/*** ID3D12DeviceChild methods ***/
8026#define ID3D12CommandQueue_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8027/*** ID3D12CommandQueue methods ***/
8028#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)
8029#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)
8030#define ID3D12CommandQueue_ExecuteCommandLists(This,command_list_count,command_lists) (This)->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists)
8031#define ID3D12CommandQueue_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
8032#define ID3D12CommandQueue_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
8033#define ID3D12CommandQueue_EndEvent(This) (This)->lpVtbl->EndEvent(This)
8034#define ID3D12CommandQueue_Signal(This,fence,value) (This)->lpVtbl->Signal(This,fence,value)
8035#define ID3D12CommandQueue_Wait(This,fence,value) (This)->lpVtbl->Wait(This,fence,value)
8036#define ID3D12CommandQueue_GetTimestampFrequency(This,frequency) (This)->lpVtbl->GetTimestampFrequency(This,frequency)
8037#define ID3D12CommandQueue_GetClockCalibration(This,gpu_timestamp,cpu_timestamp) (This)->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp)
8038#define ID3D12CommandQueue_GetDesc(This) ID3D12CommandQueue_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
8039#else
8040/*** IUnknown methods ***/
8041static inline HRESULT ID3D12CommandQueue_QueryInterface(ID3D12CommandQueue* This,REFIID riid,void **ppvObject) {
8042 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8043}
8044static inline ULONG ID3D12CommandQueue_AddRef(ID3D12CommandQueue* This) {
8045 return This->lpVtbl->AddRef(This);
8046}
8047static inline ULONG ID3D12CommandQueue_Release(ID3D12CommandQueue* This) {
8048 return This->lpVtbl->Release(This);
8049}
8050/*** ID3D12Object methods ***/
8051static inline HRESULT ID3D12CommandQueue_GetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT *data_size,void *data) {
8052 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8053}
8054static inline HRESULT ID3D12CommandQueue_SetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT data_size,const void *data) {
8055 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8056}
8057static inline HRESULT ID3D12CommandQueue_SetPrivateDataInterface(ID3D12CommandQueue* This,REFGUID guid,const IUnknown *data) {
8058 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8059}
8060static inline HRESULT ID3D12CommandQueue_SetName(ID3D12CommandQueue* This,const WCHAR *name) {
8061 return This->lpVtbl->SetName(This,name);
8062}
8063/*** ID3D12DeviceChild methods ***/
8064static inline HRESULT ID3D12CommandQueue_GetDevice(ID3D12CommandQueue* This,REFIID riid,void **device) {
8065 return This->lpVtbl->GetDevice(This,riid,device);
8066}
8067/*** ID3D12CommandQueue methods ***/
8068static 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) {
8069 This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,heap,range_count,range_flags,heap_range_offsets,range_tile_counts,flags);
8070}
8071static 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) {
8072 This->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags);
8073}
8074static inline void ID3D12CommandQueue_ExecuteCommandLists(ID3D12CommandQueue* This,UINT command_list_count,ID3D12CommandList *const *command_lists) {
8075 This->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists);
8076}
8077static inline void ID3D12CommandQueue_SetMarker(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
8078 This->lpVtbl->SetMarker(This,metadata,data,size);
8079}
8080static inline void ID3D12CommandQueue_BeginEvent(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
8081 This->lpVtbl->BeginEvent(This,metadata,data,size);
8082}
8083static inline void ID3D12CommandQueue_EndEvent(ID3D12CommandQueue* This) {
8084 This->lpVtbl->EndEvent(This);
8085}
8086static inline HRESULT ID3D12CommandQueue_Signal(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
8087 return This->lpVtbl->Signal(This,fence,value);
8088}
8089static inline HRESULT ID3D12CommandQueue_Wait(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
8090 return This->lpVtbl->Wait(This,fence,value);
8091}
8092static inline HRESULT ID3D12CommandQueue_GetTimestampFrequency(ID3D12CommandQueue* This,UINT64 *frequency) {
8093 return This->lpVtbl->GetTimestampFrequency(This,frequency);
8094}
8095static inline HRESULT ID3D12CommandQueue_GetClockCalibration(ID3D12CommandQueue* This,UINT64 *gpu_timestamp,UINT64 *cpu_timestamp) {
8096 return This->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp);
8097}
8098static inline D3D12_COMMAND_QUEUE_DESC ID3D12CommandQueue_GetDesc(ID3D12CommandQueue* This) {
8099 D3D12_COMMAND_QUEUE_DESC __ret;
8100 return *This->lpVtbl->GetDesc(This,&__ret);
8101}
8102#endif
8103#endif
8104
8105#endif
8106
8107
8108#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
8109
8110typedef enum D3D12_FENCE_FLAGS {
8111 D3D12_FENCE_FLAG_NONE = 0x0,
8112 D3D12_FENCE_FLAG_SHARED = 0x1,
8113 D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
8114 D3D12_FENCE_FLAG_NON_MONITORED = 0x4
8115} D3D12_FENCE_FLAGS;
8116DEFINE_ENUM_FLAG_OPERATORS(D3D12_FENCE_FLAGS);
8117typedef enum D3D12_QUERY_HEAP_TYPE {
8118 D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
8119 D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
8120 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
8121 D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
8122 D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4,
8123 D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5,
8124 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7
8125} D3D12_QUERY_HEAP_TYPE;
8126typedef struct D3D12_QUERY_HEAP_DESC {
8127 D3D12_QUERY_HEAP_TYPE Type;
8128 UINT Count;
8129 UINT NodeMask;
8130} D3D12_QUERY_HEAP_DESC;
8131typedef enum D3D12_INDIRECT_ARGUMENT_TYPE {
8132 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
8133 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = 1,
8134 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = 2,
8135 D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = 3,
8136 D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = 4,
8137 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = 5,
8138 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = 6,
8139 D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = 7,
8140 D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = 8,
8141 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = 9,
8142 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = 10
8143} D3D12_INDIRECT_ARGUMENT_TYPE;
8144typedef struct D3D12_INDIRECT_ARGUMENT_DESC {
8145 D3D12_INDIRECT_ARGUMENT_TYPE Type;
8146 __C89_NAMELESS union {
8147 struct {
8148 UINT Slot;
8149 } VertexBuffer;
8150 struct {
8151 UINT RootParameterIndex;
8152 UINT DestOffsetIn32BitValues;
8153 UINT Num32BitValuesToSet;
8154 } Constant;
8155 struct {
8156 UINT RootParameterIndex;
8157 } ConstantBufferView;
8158 struct {
8159 UINT RootParameterIndex;
8160 } ShaderResourceView;
8161 struct {
8162 UINT RootParameterIndex;
8163 } UnorderedAccessView;
8164 } __C89_NAMELESSUNIONNAME;
8165} D3D12_INDIRECT_ARGUMENT_DESC;
8166typedef struct D3D12_COMMAND_SIGNATURE_DESC {
8167 UINT ByteStride;
8168 UINT NumArgumentDescs;
8169 const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
8170 UINT NodeMask;
8171} D3D12_COMMAND_SIGNATURE_DESC;
8172/*****************************************************************************
8173 * ID3D12RootSignature interface
8174 */
8175#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
8176#define __ID3D12RootSignature_INTERFACE_DEFINED__
8177
8178DEFINE_GUID(IID_ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14);
8179#if defined(__cplusplus) && !defined(CINTERFACE)
8180MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
8181ID3D12RootSignature : public ID3D12DeviceChild
8182{
8183};
8184#ifdef __CRT_UUID_DECL
8185__CRT_UUID_DECL(ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14)
8186#endif
8187#else
8188typedef struct ID3D12RootSignatureVtbl {
8189 BEGIN_INTERFACE
8190
8191 /*** IUnknown methods ***/
8192 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8193 ID3D12RootSignature *This,
8194 REFIID riid,
8195 void **ppvObject);
8196
8197 ULONG (STDMETHODCALLTYPE *AddRef)(
8198 ID3D12RootSignature *This);
8199
8200 ULONG (STDMETHODCALLTYPE *Release)(
8201 ID3D12RootSignature *This);
8202
8203 /*** ID3D12Object methods ***/
8204 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8205 ID3D12RootSignature *This,
8206 REFGUID guid,
8207 UINT *data_size,
8208 void *data);
8209
8210 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8211 ID3D12RootSignature *This,
8212 REFGUID guid,
8213 UINT data_size,
8214 const void *data);
8215
8216 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8217 ID3D12RootSignature *This,
8218 REFGUID guid,
8219 const IUnknown *data);
8220
8221 HRESULT (STDMETHODCALLTYPE *SetName)(
8222 ID3D12RootSignature *This,
8223 const WCHAR *name);
8224
8225 /*** ID3D12DeviceChild methods ***/
8226 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8227 ID3D12RootSignature *This,
8228 REFIID riid,
8229 void **device);
8230
8231 END_INTERFACE
8232} ID3D12RootSignatureVtbl;
8233
8234interface ID3D12RootSignature {
8235 CONST_VTBL ID3D12RootSignatureVtbl* lpVtbl;
8236};
8237
8238#ifdef COBJMACROS
8239#ifndef WIDL_C_INLINE_WRAPPERS
8240/*** IUnknown methods ***/
8241#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8242#define ID3D12RootSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
8243#define ID3D12RootSignature_Release(This) (This)->lpVtbl->Release(This)
8244/*** ID3D12Object methods ***/
8245#define ID3D12RootSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8246#define ID3D12RootSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8247#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8248#define ID3D12RootSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8249/*** ID3D12DeviceChild methods ***/
8250#define ID3D12RootSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8251#else
8252/*** IUnknown methods ***/
8253static inline HRESULT ID3D12RootSignature_QueryInterface(ID3D12RootSignature* This,REFIID riid,void **ppvObject) {
8254 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8255}
8256static inline ULONG ID3D12RootSignature_AddRef(ID3D12RootSignature* This) {
8257 return This->lpVtbl->AddRef(This);
8258}
8259static inline ULONG ID3D12RootSignature_Release(ID3D12RootSignature* This) {
8260 return This->lpVtbl->Release(This);
8261}
8262/*** ID3D12Object methods ***/
8263static inline HRESULT ID3D12RootSignature_GetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT *data_size,void *data) {
8264 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8265}
8266static inline HRESULT ID3D12RootSignature_SetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT data_size,const void *data) {
8267 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8268}
8269static inline HRESULT ID3D12RootSignature_SetPrivateDataInterface(ID3D12RootSignature* This,REFGUID guid,const IUnknown *data) {
8270 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8271}
8272static inline HRESULT ID3D12RootSignature_SetName(ID3D12RootSignature* This,const WCHAR *name) {
8273 return This->lpVtbl->SetName(This,name);
8274}
8275/*** ID3D12DeviceChild methods ***/
8276static inline HRESULT ID3D12RootSignature_GetDevice(ID3D12RootSignature* This,REFIID riid,void **device) {
8277 return This->lpVtbl->GetDevice(This,riid,device);
8278}
8279#endif
8280#endif
8281
8282#endif
8283
8284
8285#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
8286
8287/*****************************************************************************
8288 * ID3D12PipelineState interface
8289 */
8290#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
8291#define __ID3D12PipelineState_INTERFACE_DEFINED__
8292
8293DEFINE_GUID(IID_ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45);
8294#if defined(__cplusplus) && !defined(CINTERFACE)
8295MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
8296ID3D12PipelineState : public ID3D12Pageable
8297{
8298 virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
8299 ID3DBlob **blob) = 0;
8300
8301};
8302#ifdef __CRT_UUID_DECL
8303__CRT_UUID_DECL(ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45)
8304#endif
8305#else
8306typedef struct ID3D12PipelineStateVtbl {
8307 BEGIN_INTERFACE
8308
8309 /*** IUnknown methods ***/
8310 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8311 ID3D12PipelineState *This,
8312 REFIID riid,
8313 void **ppvObject);
8314
8315 ULONG (STDMETHODCALLTYPE *AddRef)(
8316 ID3D12PipelineState *This);
8317
8318 ULONG (STDMETHODCALLTYPE *Release)(
8319 ID3D12PipelineState *This);
8320
8321 /*** ID3D12Object methods ***/
8322 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8323 ID3D12PipelineState *This,
8324 REFGUID guid,
8325 UINT *data_size,
8326 void *data);
8327
8328 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8329 ID3D12PipelineState *This,
8330 REFGUID guid,
8331 UINT data_size,
8332 const void *data);
8333
8334 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8335 ID3D12PipelineState *This,
8336 REFGUID guid,
8337 const IUnknown *data);
8338
8339 HRESULT (STDMETHODCALLTYPE *SetName)(
8340 ID3D12PipelineState *This,
8341 const WCHAR *name);
8342
8343 /*** ID3D12DeviceChild methods ***/
8344 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8345 ID3D12PipelineState *This,
8346 REFIID riid,
8347 void **device);
8348
8349 /*** ID3D12PipelineState methods ***/
8350 HRESULT (STDMETHODCALLTYPE *GetCachedBlob)(
8351 ID3D12PipelineState *This,
8352 ID3DBlob **blob);
8353
8354 END_INTERFACE
8355} ID3D12PipelineStateVtbl;
8356
8357interface ID3D12PipelineState {
8358 CONST_VTBL ID3D12PipelineStateVtbl* lpVtbl;
8359};
8360
8361#ifdef COBJMACROS
8362#ifndef WIDL_C_INLINE_WRAPPERS
8363/*** IUnknown methods ***/
8364#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8365#define ID3D12PipelineState_AddRef(This) (This)->lpVtbl->AddRef(This)
8366#define ID3D12PipelineState_Release(This) (This)->lpVtbl->Release(This)
8367/*** ID3D12Object methods ***/
8368#define ID3D12PipelineState_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8369#define ID3D12PipelineState_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8370#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8371#define ID3D12PipelineState_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8372/*** ID3D12DeviceChild methods ***/
8373#define ID3D12PipelineState_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8374/*** ID3D12PipelineState methods ***/
8375#define ID3D12PipelineState_GetCachedBlob(This,blob) (This)->lpVtbl->GetCachedBlob(This,blob)
8376#else
8377/*** IUnknown methods ***/
8378static inline HRESULT ID3D12PipelineState_QueryInterface(ID3D12PipelineState* This,REFIID riid,void **ppvObject) {
8379 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8380}
8381static inline ULONG ID3D12PipelineState_AddRef(ID3D12PipelineState* This) {
8382 return This->lpVtbl->AddRef(This);
8383}
8384static inline ULONG ID3D12PipelineState_Release(ID3D12PipelineState* This) {
8385 return This->lpVtbl->Release(This);
8386}
8387/*** ID3D12Object methods ***/
8388static inline HRESULT ID3D12PipelineState_GetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT *data_size,void *data) {
8389 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8390}
8391static inline HRESULT ID3D12PipelineState_SetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT data_size,const void *data) {
8392 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8393}
8394static inline HRESULT ID3D12PipelineState_SetPrivateDataInterface(ID3D12PipelineState* This,REFGUID guid,const IUnknown *data) {
8395 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8396}
8397static inline HRESULT ID3D12PipelineState_SetName(ID3D12PipelineState* This,const WCHAR *name) {
8398 return This->lpVtbl->SetName(This,name);
8399}
8400/*** ID3D12DeviceChild methods ***/
8401static inline HRESULT ID3D12PipelineState_GetDevice(ID3D12PipelineState* This,REFIID riid,void **device) {
8402 return This->lpVtbl->GetDevice(This,riid,device);
8403}
8404/*** ID3D12PipelineState methods ***/
8405static inline HRESULT ID3D12PipelineState_GetCachedBlob(ID3D12PipelineState* This,ID3DBlob **blob) {
8406 return This->lpVtbl->GetCachedBlob(This,blob);
8407}
8408#endif
8409#endif
8410
8411#endif
8412
8413
8414#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
8415
8416/*****************************************************************************
8417 * ID3D12Fence interface
8418 */
8419#ifndef __ID3D12Fence_INTERFACE_DEFINED__
8420#define __ID3D12Fence_INTERFACE_DEFINED__
8421
8422DEFINE_GUID(IID_ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76);
8423#if defined(__cplusplus) && !defined(CINTERFACE)
8424MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
8425ID3D12Fence : public ID3D12Pageable
8426{
8427 virtual UINT64 STDMETHODCALLTYPE GetCompletedValue(
8428 ) = 0;
8429
8430 virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
8431 UINT64 value,
8432 HANDLE event) = 0;
8433
8434 virtual HRESULT STDMETHODCALLTYPE Signal(
8435 UINT64 value) = 0;
8436
8437};
8438#ifdef __CRT_UUID_DECL
8439__CRT_UUID_DECL(ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76)
8440#endif
8441#else
8442typedef struct ID3D12FenceVtbl {
8443 BEGIN_INTERFACE
8444
8445 /*** IUnknown methods ***/
8446 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8447 ID3D12Fence *This,
8448 REFIID riid,
8449 void **ppvObject);
8450
8451 ULONG (STDMETHODCALLTYPE *AddRef)(
8452 ID3D12Fence *This);
8453
8454 ULONG (STDMETHODCALLTYPE *Release)(
8455 ID3D12Fence *This);
8456
8457 /*** ID3D12Object methods ***/
8458 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8459 ID3D12Fence *This,
8460 REFGUID guid,
8461 UINT *data_size,
8462 void *data);
8463
8464 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8465 ID3D12Fence *This,
8466 REFGUID guid,
8467 UINT data_size,
8468 const void *data);
8469
8470 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8471 ID3D12Fence *This,
8472 REFGUID guid,
8473 const IUnknown *data);
8474
8475 HRESULT (STDMETHODCALLTYPE *SetName)(
8476 ID3D12Fence *This,
8477 const WCHAR *name);
8478
8479 /*** ID3D12DeviceChild methods ***/
8480 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8481 ID3D12Fence *This,
8482 REFIID riid,
8483 void **device);
8484
8485 /*** ID3D12Fence methods ***/
8486 UINT64 (STDMETHODCALLTYPE *GetCompletedValue)(
8487 ID3D12Fence *This);
8488
8489 HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)(
8490 ID3D12Fence *This,
8491 UINT64 value,
8492 HANDLE event);
8493
8494 HRESULT (STDMETHODCALLTYPE *Signal)(
8495 ID3D12Fence *This,
8496 UINT64 value);
8497
8498 END_INTERFACE
8499} ID3D12FenceVtbl;
8500
8501interface ID3D12Fence {
8502 CONST_VTBL ID3D12FenceVtbl* lpVtbl;
8503};
8504
8505#ifdef COBJMACROS
8506#ifndef WIDL_C_INLINE_WRAPPERS
8507/*** IUnknown methods ***/
8508#define ID3D12Fence_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8509#define ID3D12Fence_AddRef(This) (This)->lpVtbl->AddRef(This)
8510#define ID3D12Fence_Release(This) (This)->lpVtbl->Release(This)
8511/*** ID3D12Object methods ***/
8512#define ID3D12Fence_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8513#define ID3D12Fence_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8514#define ID3D12Fence_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8515#define ID3D12Fence_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8516/*** ID3D12DeviceChild methods ***/
8517#define ID3D12Fence_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8518/*** ID3D12Fence methods ***/
8519#define ID3D12Fence_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This)
8520#define ID3D12Fence_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event)
8521#define ID3D12Fence_Signal(This,value) (This)->lpVtbl->Signal(This,value)
8522#else
8523/*** IUnknown methods ***/
8524static inline HRESULT ID3D12Fence_QueryInterface(ID3D12Fence* This,REFIID riid,void **ppvObject) {
8525 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8526}
8527static inline ULONG ID3D12Fence_AddRef(ID3D12Fence* This) {
8528 return This->lpVtbl->AddRef(This);
8529}
8530static inline ULONG ID3D12Fence_Release(ID3D12Fence* This) {
8531 return This->lpVtbl->Release(This);
8532}
8533/*** ID3D12Object methods ***/
8534static inline HRESULT ID3D12Fence_GetPrivateData(ID3D12Fence* This,REFGUID guid,UINT *data_size,void *data) {
8535 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8536}
8537static inline HRESULT ID3D12Fence_SetPrivateData(ID3D12Fence* This,REFGUID guid,UINT data_size,const void *data) {
8538 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8539}
8540static inline HRESULT ID3D12Fence_SetPrivateDataInterface(ID3D12Fence* This,REFGUID guid,const IUnknown *data) {
8541 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8542}
8543static inline HRESULT ID3D12Fence_SetName(ID3D12Fence* This,const WCHAR *name) {
8544 return This->lpVtbl->SetName(This,name);
8545}
8546/*** ID3D12DeviceChild methods ***/
8547static inline HRESULT ID3D12Fence_GetDevice(ID3D12Fence* This,REFIID riid,void **device) {
8548 return This->lpVtbl->GetDevice(This,riid,device);
8549}
8550/*** ID3D12Fence methods ***/
8551static inline UINT64 ID3D12Fence_GetCompletedValue(ID3D12Fence* This) {
8552 return This->lpVtbl->GetCompletedValue(This);
8553}
8554static inline HRESULT ID3D12Fence_SetEventOnCompletion(ID3D12Fence* This,UINT64 value,HANDLE event) {
8555 return This->lpVtbl->SetEventOnCompletion(This,value,event);
8556}
8557static inline HRESULT ID3D12Fence_Signal(ID3D12Fence* This,UINT64 value) {
8558 return This->lpVtbl->Signal(This,value);
8559}
8560#endif
8561#endif
8562
8563#endif
8564
8565
8566#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
8567
8568/*****************************************************************************
8569 * ID3D12Fence1 interface
8570 */
8571#ifndef __ID3D12Fence1_INTERFACE_DEFINED__
8572#define __ID3D12Fence1_INTERFACE_DEFINED__
8573
8574DEFINE_GUID(IID_ID3D12Fence1, 0x433685fe, 0xe22b, 0x4ca0, 0xa8,0xdb, 0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);
8575#if defined(__cplusplus) && !defined(CINTERFACE)
8576MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a")
8577ID3D12Fence1 : public ID3D12Fence
8578{
8579 virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags(
8580 ) = 0;
8581
8582};
8583#ifdef __CRT_UUID_DECL
8584__CRT_UUID_DECL(ID3D12Fence1, 0x433685fe, 0xe22b, 0x4ca0, 0xa8,0xdb, 0xb5,0xb4,0xf4,0xdd,0x0e,0x4a)
8585#endif
8586#else
8587typedef struct ID3D12Fence1Vtbl {
8588 BEGIN_INTERFACE
8589
8590 /*** IUnknown methods ***/
8591 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8592 ID3D12Fence1 *This,
8593 REFIID riid,
8594 void **ppvObject);
8595
8596 ULONG (STDMETHODCALLTYPE *AddRef)(
8597 ID3D12Fence1 *This);
8598
8599 ULONG (STDMETHODCALLTYPE *Release)(
8600 ID3D12Fence1 *This);
8601
8602 /*** ID3D12Object methods ***/
8603 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8604 ID3D12Fence1 *This,
8605 REFGUID guid,
8606 UINT *data_size,
8607 void *data);
8608
8609 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8610 ID3D12Fence1 *This,
8611 REFGUID guid,
8612 UINT data_size,
8613 const void *data);
8614
8615 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8616 ID3D12Fence1 *This,
8617 REFGUID guid,
8618 const IUnknown *data);
8619
8620 HRESULT (STDMETHODCALLTYPE *SetName)(
8621 ID3D12Fence1 *This,
8622 const WCHAR *name);
8623
8624 /*** ID3D12DeviceChild methods ***/
8625 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8626 ID3D12Fence1 *This,
8627 REFIID riid,
8628 void **device);
8629
8630 /*** ID3D12Fence methods ***/
8631 UINT64 (STDMETHODCALLTYPE *GetCompletedValue)(
8632 ID3D12Fence1 *This);
8633
8634 HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)(
8635 ID3D12Fence1 *This,
8636 UINT64 value,
8637 HANDLE event);
8638
8639 HRESULT (STDMETHODCALLTYPE *Signal)(
8640 ID3D12Fence1 *This,
8641 UINT64 value);
8642
8643 /*** ID3D12Fence1 methods ***/
8644 D3D12_FENCE_FLAGS (STDMETHODCALLTYPE *GetCreationFlags)(
8645 ID3D12Fence1 *This);
8646
8647 END_INTERFACE
8648} ID3D12Fence1Vtbl;
8649
8650interface ID3D12Fence1 {
8651 CONST_VTBL ID3D12Fence1Vtbl* lpVtbl;
8652};
8653
8654#ifdef COBJMACROS
8655#ifndef WIDL_C_INLINE_WRAPPERS
8656/*** IUnknown methods ***/
8657#define ID3D12Fence1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8658#define ID3D12Fence1_AddRef(This) (This)->lpVtbl->AddRef(This)
8659#define ID3D12Fence1_Release(This) (This)->lpVtbl->Release(This)
8660/*** ID3D12Object methods ***/
8661#define ID3D12Fence1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8662#define ID3D12Fence1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8663#define ID3D12Fence1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8664#define ID3D12Fence1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8665/*** ID3D12DeviceChild methods ***/
8666#define ID3D12Fence1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8667/*** ID3D12Fence methods ***/
8668#define ID3D12Fence1_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This)
8669#define ID3D12Fence1_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event)
8670#define ID3D12Fence1_Signal(This,value) (This)->lpVtbl->Signal(This,value)
8671/*** ID3D12Fence1 methods ***/
8672#define ID3D12Fence1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
8673#else
8674/*** IUnknown methods ***/
8675static inline HRESULT ID3D12Fence1_QueryInterface(ID3D12Fence1* This,REFIID riid,void **ppvObject) {
8676 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8677}
8678static inline ULONG ID3D12Fence1_AddRef(ID3D12Fence1* This) {
8679 return This->lpVtbl->AddRef(This);
8680}
8681static inline ULONG ID3D12Fence1_Release(ID3D12Fence1* This) {
8682 return This->lpVtbl->Release(This);
8683}
8684/*** ID3D12Object methods ***/
8685static inline HRESULT ID3D12Fence1_GetPrivateData(ID3D12Fence1* This,REFGUID guid,UINT *data_size,void *data) {
8686 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8687}
8688static inline HRESULT ID3D12Fence1_SetPrivateData(ID3D12Fence1* This,REFGUID guid,UINT data_size,const void *data) {
8689 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8690}
8691static inline HRESULT ID3D12Fence1_SetPrivateDataInterface(ID3D12Fence1* This,REFGUID guid,const IUnknown *data) {
8692 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8693}
8694static inline HRESULT ID3D12Fence1_SetName(ID3D12Fence1* This,const WCHAR *name) {
8695 return This->lpVtbl->SetName(This,name);
8696}
8697/*** ID3D12DeviceChild methods ***/
8698static inline HRESULT ID3D12Fence1_GetDevice(ID3D12Fence1* This,REFIID riid,void **device) {
8699 return This->lpVtbl->GetDevice(This,riid,device);
8700}
8701/*** ID3D12Fence methods ***/
8702static inline UINT64 ID3D12Fence1_GetCompletedValue(ID3D12Fence1* This) {
8703 return This->lpVtbl->GetCompletedValue(This);
8704}
8705static inline HRESULT ID3D12Fence1_SetEventOnCompletion(ID3D12Fence1* This,UINT64 value,HANDLE event) {
8706 return This->lpVtbl->SetEventOnCompletion(This,value,event);
8707}
8708static inline HRESULT ID3D12Fence1_Signal(ID3D12Fence1* This,UINT64 value) {
8709 return This->lpVtbl->Signal(This,value);
8710}
8711/*** ID3D12Fence1 methods ***/
8712static inline D3D12_FENCE_FLAGS ID3D12Fence1_GetCreationFlags(ID3D12Fence1* This) {
8713 return This->lpVtbl->GetCreationFlags(This);
8714}
8715#endif
8716#endif
8717
8718#endif
8719
8720
8721#endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */
8722
8723/*****************************************************************************
8724 * ID3D12CommandAllocator interface
8725 */
8726#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
8727#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
8728
8729DEFINE_GUID(IID_ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24);
8730#if defined(__cplusplus) && !defined(CINTERFACE)
8731MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
8732ID3D12CommandAllocator : public ID3D12Pageable
8733{
8734 virtual HRESULT STDMETHODCALLTYPE Reset(
8735 ) = 0;
8736
8737};
8738#ifdef __CRT_UUID_DECL
8739__CRT_UUID_DECL(ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24)
8740#endif
8741#else
8742typedef struct ID3D12CommandAllocatorVtbl {
8743 BEGIN_INTERFACE
8744
8745 /*** IUnknown methods ***/
8746 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8747 ID3D12CommandAllocator *This,
8748 REFIID riid,
8749 void **ppvObject);
8750
8751 ULONG (STDMETHODCALLTYPE *AddRef)(
8752 ID3D12CommandAllocator *This);
8753
8754 ULONG (STDMETHODCALLTYPE *Release)(
8755 ID3D12CommandAllocator *This);
8756
8757 /*** ID3D12Object methods ***/
8758 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
8759 ID3D12CommandAllocator *This,
8760 REFGUID guid,
8761 UINT *data_size,
8762 void *data);
8763
8764 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
8765 ID3D12CommandAllocator *This,
8766 REFGUID guid,
8767 UINT data_size,
8768 const void *data);
8769
8770 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
8771 ID3D12CommandAllocator *This,
8772 REFGUID guid,
8773 const IUnknown *data);
8774
8775 HRESULT (STDMETHODCALLTYPE *SetName)(
8776 ID3D12CommandAllocator *This,
8777 const WCHAR *name);
8778
8779 /*** ID3D12DeviceChild methods ***/
8780 HRESULT (STDMETHODCALLTYPE *GetDevice)(
8781 ID3D12CommandAllocator *This,
8782 REFIID riid,
8783 void **device);
8784
8785 /*** ID3D12CommandAllocator methods ***/
8786 HRESULT (STDMETHODCALLTYPE *Reset)(
8787 ID3D12CommandAllocator *This);
8788
8789 END_INTERFACE
8790} ID3D12CommandAllocatorVtbl;
8791
8792interface ID3D12CommandAllocator {
8793 CONST_VTBL ID3D12CommandAllocatorVtbl* lpVtbl;
8794};
8795
8796#ifdef COBJMACROS
8797#ifndef WIDL_C_INLINE_WRAPPERS
8798/*** IUnknown methods ***/
8799#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8800#define ID3D12CommandAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
8801#define ID3D12CommandAllocator_Release(This) (This)->lpVtbl->Release(This)
8802/*** ID3D12Object methods ***/
8803#define ID3D12CommandAllocator_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
8804#define ID3D12CommandAllocator_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
8805#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
8806#define ID3D12CommandAllocator_SetName(This,name) (This)->lpVtbl->SetName(This,name)
8807/*** ID3D12DeviceChild methods ***/
8808#define ID3D12CommandAllocator_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
8809/*** ID3D12CommandAllocator methods ***/
8810#define ID3D12CommandAllocator_Reset(This) (This)->lpVtbl->Reset(This)
8811#else
8812/*** IUnknown methods ***/
8813static inline HRESULT ID3D12CommandAllocator_QueryInterface(ID3D12CommandAllocator* This,REFIID riid,void **ppvObject) {
8814 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8815}
8816static inline ULONG ID3D12CommandAllocator_AddRef(ID3D12CommandAllocator* This) {
8817 return This->lpVtbl->AddRef(This);
8818}
8819static inline ULONG ID3D12CommandAllocator_Release(ID3D12CommandAllocator* This) {
8820 return This->lpVtbl->Release(This);
8821}
8822/*** ID3D12Object methods ***/
8823static inline HRESULT ID3D12CommandAllocator_GetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT *data_size,void *data) {
8824 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
8825}
8826static inline HRESULT ID3D12CommandAllocator_SetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT data_size,const void *data) {
8827 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
8828}
8829static inline HRESULT ID3D12CommandAllocator_SetPrivateDataInterface(ID3D12CommandAllocator* This,REFGUID guid,const IUnknown *data) {
8830 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
8831}
8832static inline HRESULT ID3D12CommandAllocator_SetName(ID3D12CommandAllocator* This,const WCHAR *name) {
8833 return This->lpVtbl->SetName(This,name);
8834}
8835/*** ID3D12DeviceChild methods ***/
8836static inline HRESULT ID3D12CommandAllocator_GetDevice(ID3D12CommandAllocator* This,REFIID riid,void **device) {
8837 return This->lpVtbl->GetDevice(This,riid,device);
8838}
8839/*** ID3D12CommandAllocator methods ***/
8840static inline HRESULT ID3D12CommandAllocator_Reset(ID3D12CommandAllocator* This) {
8841 return This->lpVtbl->Reset(This);
8842}
8843#endif
8844#endif
8845
8846#endif
8847
8848
8849#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
8850
8851/*****************************************************************************
8852 * ID3D12Device interface
8853 */
8854#ifndef __ID3D12Device_INTERFACE_DEFINED__
8855#define __ID3D12Device_INTERFACE_DEFINED__
8856
8857DEFINE_GUID(IID_ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7);
8858#if defined(__cplusplus) && !defined(CINTERFACE)
8859MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
8860ID3D12Device : public ID3D12Object
8861{
8862 virtual UINT STDMETHODCALLTYPE GetNodeCount(
8863 ) = 0;
8864
8865 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
8866 const D3D12_COMMAND_QUEUE_DESC *desc,
8867 REFIID riid,
8868 void **command_queue) = 0;
8869
8870 virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
8871 D3D12_COMMAND_LIST_TYPE type,
8872 REFIID riid,
8873 void **command_allocator) = 0;
8874
8875 virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
8876 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
8877 REFIID riid,
8878 void **pipeline_state) = 0;
8879
8880 virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
8881 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
8882 REFIID riid,
8883 void **pipeline_state) = 0;
8884
8885 virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
8886 UINT node_mask,
8887 D3D12_COMMAND_LIST_TYPE type,
8888 ID3D12CommandAllocator *command_allocator,
8889 ID3D12PipelineState *initial_pipeline_state,
8890 REFIID riid,
8891 void **command_list) = 0;
8892
8893 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
8894 D3D12_FEATURE feature,
8895 void *feature_data,
8896 UINT feature_data_size) = 0;
8897
8898 virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
8899 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
8900 REFIID riid,
8901 void **descriptor_heap) = 0;
8902
8903 virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
8904 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
8905
8906 virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
8907 UINT node_mask,
8908 const void *bytecode,
8909 SIZE_T bytecode_length,
8910 REFIID riid,
8911 void **root_signature) = 0;
8912
8913 virtual void STDMETHODCALLTYPE CreateConstantBufferView(
8914 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
8915 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8916
8917 virtual void STDMETHODCALLTYPE CreateShaderResourceView(
8918 ID3D12Resource *resource,
8919 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
8920 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8921
8922 virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
8923 ID3D12Resource *resource,
8924 ID3D12Resource *counter_resource,
8925 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
8926 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8927
8928 virtual void STDMETHODCALLTYPE CreateRenderTargetView(
8929 ID3D12Resource *resource,
8930 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
8931 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8932
8933 virtual void STDMETHODCALLTYPE CreateDepthStencilView(
8934 ID3D12Resource *resource,
8935 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
8936 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8937
8938 virtual void STDMETHODCALLTYPE CreateSampler(
8939 const D3D12_SAMPLER_DESC *desc,
8940 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
8941
8942 virtual void STDMETHODCALLTYPE CopyDescriptors(
8943 UINT dst_descriptor_range_count,
8944 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
8945 const UINT *dst_descriptor_range_sizes,
8946 UINT src_descriptor_range_count,
8947 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
8948 const UINT *src_descriptor_range_sizes,
8949 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
8950
8951 virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
8952 UINT descriptor_count,
8953 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
8954 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
8955 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
8956
8957#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
8958 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo(
8959 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
8960 UINT visible_mask,
8961 UINT reource_desc_count,
8962 const D3D12_RESOURCE_DESC *resource_descs) = 0;
8963 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
8964 UINT visible_mask,
8965 UINT reource_desc_count,
8966 const D3D12_RESOURCE_DESC *resource_descs)
8967 {
8968 D3D12_RESOURCE_ALLOCATION_INFO __ret;
8969 return *GetResourceAllocationInfo(&__ret, visible_mask, reource_desc_count, resource_descs);
8970 }
8971#else
8972 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
8973 UINT visible_mask,
8974 UINT reource_desc_count,
8975 const D3D12_RESOURCE_DESC *resource_descs) = 0;
8976#endif
8977
8978#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
8979 virtual D3D12_HEAP_PROPERTIES* STDMETHODCALLTYPE GetCustomHeapProperties(
8980 D3D12_HEAP_PROPERTIES *__ret,
8981 UINT node_mask,
8982 D3D12_HEAP_TYPE heap_type) = 0;
8983 D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
8984 UINT node_mask,
8985 D3D12_HEAP_TYPE heap_type)
8986 {
8987 D3D12_HEAP_PROPERTIES __ret;
8988 return *GetCustomHeapProperties(&__ret, node_mask, heap_type);
8989 }
8990#else
8991 virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
8992 UINT node_mask,
8993 D3D12_HEAP_TYPE heap_type) = 0;
8994#endif
8995
8996 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
8997 const D3D12_HEAP_PROPERTIES *heap_properties,
8998 D3D12_HEAP_FLAGS heap_flags,
8999 const D3D12_RESOURCE_DESC *desc,
9000 D3D12_RESOURCE_STATES initial_state,
9001 const D3D12_CLEAR_VALUE *optimized_clear_value,
9002 REFIID riid,
9003 void **resource) = 0;
9004
9005 virtual HRESULT STDMETHODCALLTYPE CreateHeap(
9006 const D3D12_HEAP_DESC *desc,
9007 REFIID riid,
9008 void **heap) = 0;
9009
9010 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
9011 ID3D12Heap *heap,
9012 UINT64 heap_offset,
9013 const D3D12_RESOURCE_DESC *desc,
9014 D3D12_RESOURCE_STATES initial_state,
9015 const D3D12_CLEAR_VALUE *optimized_clear_value,
9016 REFIID riid,
9017 void **resource) = 0;
9018
9019 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
9020 const D3D12_RESOURCE_DESC *desc,
9021 D3D12_RESOURCE_STATES initial_state,
9022 const D3D12_CLEAR_VALUE *optimized_clear_value,
9023 REFIID riid,
9024 void **resource) = 0;
9025
9026 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
9027 ID3D12DeviceChild *object,
9028 const SECURITY_ATTRIBUTES *attributes,
9029 DWORD access,
9030 const WCHAR *name,
9031 HANDLE *handle) = 0;
9032
9033 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
9034 HANDLE handle,
9035 REFIID riid,
9036 void **object) = 0;
9037
9038 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
9039 const WCHAR *name,
9040 DWORD access,
9041 HANDLE *handle) = 0;
9042
9043 virtual HRESULT STDMETHODCALLTYPE MakeResident(
9044 UINT object_count,
9045 ID3D12Pageable *const *objects) = 0;
9046
9047 virtual HRESULT STDMETHODCALLTYPE Evict(
9048 UINT object_count,
9049 ID3D12Pageable *const *objects) = 0;
9050
9051 virtual HRESULT STDMETHODCALLTYPE CreateFence(
9052 UINT64 initial_value,
9053 D3D12_FENCE_FLAGS flags,
9054 REFIID riid,
9055 void **fence) = 0;
9056
9057 virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
9058 ) = 0;
9059
9060 virtual void STDMETHODCALLTYPE GetCopyableFootprints(
9061 const D3D12_RESOURCE_DESC *desc,
9062 UINT first_sub_resource,
9063 UINT sub_resource_count,
9064 UINT64 base_offset,
9065 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
9066 UINT *row_count,
9067 UINT64 *row_size,
9068 UINT64 *total_bytes) = 0;
9069
9070 virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
9071 const D3D12_QUERY_HEAP_DESC *desc,
9072 REFIID riid,
9073 void **heap) = 0;
9074
9075 virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
9076 WINBOOL enable) = 0;
9077
9078 virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
9079 const D3D12_COMMAND_SIGNATURE_DESC *desc,
9080 ID3D12RootSignature *root_signature,
9081 REFIID riid,
9082 void **command_signature) = 0;
9083
9084 virtual void STDMETHODCALLTYPE GetResourceTiling(
9085 ID3D12Resource *resource,
9086 UINT *total_tile_count,
9087 D3D12_PACKED_MIP_INFO *packed_mip_info,
9088 D3D12_TILE_SHAPE *standard_tile_shape,
9089 UINT *sub_resource_tiling_count,
9090 UINT first_sub_resource_tiling,
9091 D3D12_SUBRESOURCE_TILING *sub_resource_tilings) = 0;
9092
9093#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
9094 virtual LUID* STDMETHODCALLTYPE GetAdapterLuid(
9095 LUID *__ret) = 0;
9096 LUID STDMETHODCALLTYPE GetAdapterLuid(
9097 )
9098 {
9099 LUID __ret;
9100 return *GetAdapterLuid(&__ret);
9101 }
9102#else
9103 virtual LUID STDMETHODCALLTYPE GetAdapterLuid(
9104 ) = 0;
9105#endif
9106
9107};
9108#ifdef __CRT_UUID_DECL
9109__CRT_UUID_DECL(ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7)
9110#endif
9111#else
9112typedef struct ID3D12DeviceVtbl {
9113 BEGIN_INTERFACE
9114
9115 /*** IUnknown methods ***/
9116 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9117 ID3D12Device *This,
9118 REFIID riid,
9119 void **ppvObject);
9120
9121 ULONG (STDMETHODCALLTYPE *AddRef)(
9122 ID3D12Device *This);
9123
9124 ULONG (STDMETHODCALLTYPE *Release)(
9125 ID3D12Device *This);
9126
9127 /*** ID3D12Object methods ***/
9128 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
9129 ID3D12Device *This,
9130 REFGUID guid,
9131 UINT *data_size,
9132 void *data);
9133
9134 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
9135 ID3D12Device *This,
9136 REFGUID guid,
9137 UINT data_size,
9138 const void *data);
9139
9140 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
9141 ID3D12Device *This,
9142 REFGUID guid,
9143 const IUnknown *data);
9144
9145 HRESULT (STDMETHODCALLTYPE *SetName)(
9146 ID3D12Device *This,
9147 const WCHAR *name);
9148
9149 /*** ID3D12Device methods ***/
9150 UINT (STDMETHODCALLTYPE *GetNodeCount)(
9151 ID3D12Device *This);
9152
9153 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
9154 ID3D12Device *This,
9155 const D3D12_COMMAND_QUEUE_DESC *desc,
9156 REFIID riid,
9157 void **command_queue);
9158
9159 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
9160 ID3D12Device *This,
9161 D3D12_COMMAND_LIST_TYPE type,
9162 REFIID riid,
9163 void **command_allocator);
9164
9165 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
9166 ID3D12Device *This,
9167 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
9168 REFIID riid,
9169 void **pipeline_state);
9170
9171 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
9172 ID3D12Device *This,
9173 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
9174 REFIID riid,
9175 void **pipeline_state);
9176
9177 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
9178 ID3D12Device *This,
9179 UINT node_mask,
9180 D3D12_COMMAND_LIST_TYPE type,
9181 ID3D12CommandAllocator *command_allocator,
9182 ID3D12PipelineState *initial_pipeline_state,
9183 REFIID riid,
9184 void **command_list);
9185
9186 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
9187 ID3D12Device *This,
9188 D3D12_FEATURE feature,
9189 void *feature_data,
9190 UINT feature_data_size);
9191
9192 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
9193 ID3D12Device *This,
9194 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
9195 REFIID riid,
9196 void **descriptor_heap);
9197
9198 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
9199 ID3D12Device *This,
9200 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
9201
9202 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
9203 ID3D12Device *This,
9204 UINT node_mask,
9205 const void *bytecode,
9206 SIZE_T bytecode_length,
9207 REFIID riid,
9208 void **root_signature);
9209
9210 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
9211 ID3D12Device *This,
9212 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
9213 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9214
9215 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
9216 ID3D12Device *This,
9217 ID3D12Resource *resource,
9218 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
9219 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9220
9221 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
9222 ID3D12Device *This,
9223 ID3D12Resource *resource,
9224 ID3D12Resource *counter_resource,
9225 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
9226 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9227
9228 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
9229 ID3D12Device *This,
9230 ID3D12Resource *resource,
9231 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
9232 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9233
9234 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
9235 ID3D12Device *This,
9236 ID3D12Resource *resource,
9237 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
9238 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9239
9240 void (STDMETHODCALLTYPE *CreateSampler)(
9241 ID3D12Device *This,
9242 const D3D12_SAMPLER_DESC *desc,
9243 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
9244
9245 void (STDMETHODCALLTYPE *CopyDescriptors)(
9246 ID3D12Device *This,
9247 UINT dst_descriptor_range_count,
9248 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
9249 const UINT *dst_descriptor_range_sizes,
9250 UINT src_descriptor_range_count,
9251 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
9252 const UINT *src_descriptor_range_sizes,
9253 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
9254
9255 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
9256 ID3D12Device *This,
9257 UINT descriptor_count,
9258 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
9259 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
9260 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
9261
9262 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
9263 ID3D12Device *This,
9264 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
9265 UINT visible_mask,
9266 UINT reource_desc_count,
9267 const D3D12_RESOURCE_DESC *resource_descs);
9268
9269 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
9270 ID3D12Device *This,
9271 D3D12_HEAP_PROPERTIES *__ret,
9272 UINT node_mask,
9273 D3D12_HEAP_TYPE heap_type);
9274
9275 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
9276 ID3D12Device *This,
9277 const D3D12_HEAP_PROPERTIES *heap_properties,
9278 D3D12_HEAP_FLAGS heap_flags,
9279 const D3D12_RESOURCE_DESC *desc,
9280 D3D12_RESOURCE_STATES initial_state,
9281 const D3D12_CLEAR_VALUE *optimized_clear_value,
9282 REFIID riid,
9283 void **resource);
9284
9285 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
9286 ID3D12Device *This,
9287 const D3D12_HEAP_DESC *desc,
9288 REFIID riid,
9289 void **heap);
9290
9291 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
9292 ID3D12Device *This,
9293 ID3D12Heap *heap,
9294 UINT64 heap_offset,
9295 const D3D12_RESOURCE_DESC *desc,
9296 D3D12_RESOURCE_STATES initial_state,
9297 const D3D12_CLEAR_VALUE *optimized_clear_value,
9298 REFIID riid,
9299 void **resource);
9300
9301 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
9302 ID3D12Device *This,
9303 const D3D12_RESOURCE_DESC *desc,
9304 D3D12_RESOURCE_STATES initial_state,
9305 const D3D12_CLEAR_VALUE *optimized_clear_value,
9306 REFIID riid,
9307 void **resource);
9308
9309 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
9310 ID3D12Device *This,
9311 ID3D12DeviceChild *object,
9312 const SECURITY_ATTRIBUTES *attributes,
9313 DWORD access,
9314 const WCHAR *name,
9315 HANDLE *handle);
9316
9317 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
9318 ID3D12Device *This,
9319 HANDLE handle,
9320 REFIID riid,
9321 void **object);
9322
9323 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
9324 ID3D12Device *This,
9325 const WCHAR *name,
9326 DWORD access,
9327 HANDLE *handle);
9328
9329 HRESULT (STDMETHODCALLTYPE *MakeResident)(
9330 ID3D12Device *This,
9331 UINT object_count,
9332 ID3D12Pageable *const *objects);
9333
9334 HRESULT (STDMETHODCALLTYPE *Evict)(
9335 ID3D12Device *This,
9336 UINT object_count,
9337 ID3D12Pageable *const *objects);
9338
9339 HRESULT (STDMETHODCALLTYPE *CreateFence)(
9340 ID3D12Device *This,
9341 UINT64 initial_value,
9342 D3D12_FENCE_FLAGS flags,
9343 REFIID riid,
9344 void **fence);
9345
9346 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
9347 ID3D12Device *This);
9348
9349 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
9350 ID3D12Device *This,
9351 const D3D12_RESOURCE_DESC *desc,
9352 UINT first_sub_resource,
9353 UINT sub_resource_count,
9354 UINT64 base_offset,
9355 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
9356 UINT *row_count,
9357 UINT64 *row_size,
9358 UINT64 *total_bytes);
9359
9360 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
9361 ID3D12Device *This,
9362 const D3D12_QUERY_HEAP_DESC *desc,
9363 REFIID riid,
9364 void **heap);
9365
9366 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
9367 ID3D12Device *This,
9368 WINBOOL enable);
9369
9370 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
9371 ID3D12Device *This,
9372 const D3D12_COMMAND_SIGNATURE_DESC *desc,
9373 ID3D12RootSignature *root_signature,
9374 REFIID riid,
9375 void **command_signature);
9376
9377 void (STDMETHODCALLTYPE *GetResourceTiling)(
9378 ID3D12Device *This,
9379 ID3D12Resource *resource,
9380 UINT *total_tile_count,
9381 D3D12_PACKED_MIP_INFO *packed_mip_info,
9382 D3D12_TILE_SHAPE *standard_tile_shape,
9383 UINT *sub_resource_tiling_count,
9384 UINT first_sub_resource_tiling,
9385 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
9386
9387 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
9388 ID3D12Device *This,
9389 LUID *__ret);
9390
9391 END_INTERFACE
9392} ID3D12DeviceVtbl;
9393
9394interface ID3D12Device {
9395 CONST_VTBL ID3D12DeviceVtbl* lpVtbl;
9396};
9397
9398#ifdef COBJMACROS
9399#ifndef WIDL_C_INLINE_WRAPPERS
9400/*** IUnknown methods ***/
9401#define ID3D12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9402#define ID3D12Device_AddRef(This) (This)->lpVtbl->AddRef(This)
9403#define ID3D12Device_Release(This) (This)->lpVtbl->Release(This)
9404/*** ID3D12Object methods ***/
9405#define ID3D12Device_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
9406#define ID3D12Device_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
9407#define ID3D12Device_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
9408#define ID3D12Device_SetName(This,name) (This)->lpVtbl->SetName(This,name)
9409/*** ID3D12Device methods ***/
9410#define ID3D12Device_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
9411#define ID3D12Device_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
9412#define ID3D12Device_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
9413#define ID3D12Device_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
9414#define ID3D12Device_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
9415#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)
9416#define ID3D12Device_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
9417#define ID3D12Device_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
9418#define ID3D12Device_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
9419#define ID3D12Device_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
9420#define ID3D12Device_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
9421#define ID3D12Device_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
9422#define ID3D12Device_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
9423#define ID3D12Device_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
9424#define ID3D12Device_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
9425#define ID3D12Device_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
9426#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)
9427#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)
9428#define ID3D12Device_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
9429#define ID3D12Device_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
9430#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)
9431#define ID3D12Device_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
9432#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)
9433#define ID3D12Device_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
9434#define ID3D12Device_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
9435#define ID3D12Device_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
9436#define ID3D12Device_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
9437#define ID3D12Device_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
9438#define ID3D12Device_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
9439#define ID3D12Device_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
9440#define ID3D12Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
9441#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)
9442#define ID3D12Device_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
9443#define ID3D12Device_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
9444#define ID3D12Device_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
9445#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)
9446#define ID3D12Device_GetAdapterLuid(This) ID3D12Device_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
9447#else
9448/*** IUnknown methods ***/
9449static inline HRESULT ID3D12Device_QueryInterface(ID3D12Device* This,REFIID riid,void **ppvObject) {
9450 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9451}
9452static inline ULONG ID3D12Device_AddRef(ID3D12Device* This) {
9453 return This->lpVtbl->AddRef(This);
9454}
9455static inline ULONG ID3D12Device_Release(ID3D12Device* This) {
9456 return This->lpVtbl->Release(This);
9457}
9458/*** ID3D12Object methods ***/
9459static inline HRESULT ID3D12Device_GetPrivateData(ID3D12Device* This,REFGUID guid,UINT *data_size,void *data) {
9460 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
9461}
9462static inline HRESULT ID3D12Device_SetPrivateData(ID3D12Device* This,REFGUID guid,UINT data_size,const void *data) {
9463 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
9464}
9465static inline HRESULT ID3D12Device_SetPrivateDataInterface(ID3D12Device* This,REFGUID guid,const IUnknown *data) {
9466 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
9467}
9468static inline HRESULT ID3D12Device_SetName(ID3D12Device* This,const WCHAR *name) {
9469 return This->lpVtbl->SetName(This,name);
9470}
9471/*** ID3D12Device methods ***/
9472static inline UINT ID3D12Device_GetNodeCount(ID3D12Device* This) {
9473 return This->lpVtbl->GetNodeCount(This);
9474}
9475static inline HRESULT ID3D12Device_CreateCommandQueue(ID3D12Device* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
9476 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
9477}
9478static inline HRESULT ID3D12Device_CreateCommandAllocator(ID3D12Device* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
9479 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
9480}
9481static inline HRESULT ID3D12Device_CreateGraphicsPipelineState(ID3D12Device* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9482 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
9483}
9484static inline HRESULT ID3D12Device_CreateComputePipelineState(ID3D12Device* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9485 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
9486}
9487static 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) {
9488 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
9489}
9490static inline HRESULT ID3D12Device_CheckFeatureSupport(ID3D12Device* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
9491 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
9492}
9493static inline HRESULT ID3D12Device_CreateDescriptorHeap(ID3D12Device* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
9494 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
9495}
9496static inline UINT ID3D12Device_GetDescriptorHandleIncrementSize(ID3D12Device* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
9497 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
9498}
9499static inline HRESULT ID3D12Device_CreateRootSignature(ID3D12Device* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
9500 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
9501}
9502static inline void ID3D12Device_CreateConstantBufferView(ID3D12Device* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9503 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
9504}
9505static inline void ID3D12Device_CreateShaderResourceView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9506 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
9507}
9508static inline void ID3D12Device_CreateUnorderedAccessView(ID3D12Device* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9509 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
9510}
9511static inline void ID3D12Device_CreateRenderTargetView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9512 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
9513}
9514static inline void ID3D12Device_CreateDepthStencilView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9515 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
9516}
9517static inline void ID3D12Device_CreateSampler(ID3D12Device* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
9518 This->lpVtbl->CreateSampler(This,desc,descriptor);
9519}
9520static 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) {
9521 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);
9522}
9523static 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) {
9524 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
9525}
9526static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device_GetResourceAllocationInfo(ID3D12Device* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
9527 D3D12_RESOURCE_ALLOCATION_INFO __ret;
9528 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
9529}
9530static inline D3D12_HEAP_PROPERTIES ID3D12Device_GetCustomHeapProperties(ID3D12Device* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
9531 D3D12_HEAP_PROPERTIES __ret;
9532 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
9533}
9534static 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) {
9535 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
9536}
9537static inline HRESULT ID3D12Device_CreateHeap(ID3D12Device* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
9538 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
9539}
9540static 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) {
9541 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
9542}
9543static 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) {
9544 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
9545}
9546static inline HRESULT ID3D12Device_CreateSharedHandle(ID3D12Device* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
9547 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
9548}
9549static inline HRESULT ID3D12Device_OpenSharedHandle(ID3D12Device* This,HANDLE handle,REFIID riid,void **object) {
9550 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
9551}
9552static inline HRESULT ID3D12Device_OpenSharedHandleByName(ID3D12Device* This,const WCHAR *name,DWORD access,HANDLE *handle) {
9553 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
9554}
9555static inline HRESULT ID3D12Device_MakeResident(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
9556 return This->lpVtbl->MakeResident(This,object_count,objects);
9557}
9558static inline HRESULT ID3D12Device_Evict(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
9559 return This->lpVtbl->Evict(This,object_count,objects);
9560}
9561static inline HRESULT ID3D12Device_CreateFence(ID3D12Device* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
9562 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
9563}
9564static inline HRESULT ID3D12Device_GetDeviceRemovedReason(ID3D12Device* This) {
9565 return This->lpVtbl->GetDeviceRemovedReason(This);
9566}
9567static 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) {
9568 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
9569}
9570static inline HRESULT ID3D12Device_CreateQueryHeap(ID3D12Device* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
9571 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
9572}
9573static inline HRESULT ID3D12Device_SetStablePowerState(ID3D12Device* This,WINBOOL enable) {
9574 return This->lpVtbl->SetStablePowerState(This,enable);
9575}
9576static inline HRESULT ID3D12Device_CreateCommandSignature(ID3D12Device* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
9577 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
9578}
9579static 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) {
9580 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);
9581}
9582static inline LUID ID3D12Device_GetAdapterLuid(ID3D12Device* This) {
9583 LUID __ret;
9584 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
9585}
9586#endif
9587#endif
9588
9589#endif
9590
9591
9592#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
9593
9594/*****************************************************************************
9595 * ID3D12PipelineLibrary interface
9596 */
9597#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__
9598#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__
9599
9600DEFINE_GUID(IID_ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4,0xcc, 0x53,0xfb,0x9f,0xf7,0x41,0x4f);
9601#if defined(__cplusplus) && !defined(CINTERFACE)
9602MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f")
9603ID3D12PipelineLibrary : public ID3D12DeviceChild
9604{
9605 virtual HRESULT STDMETHODCALLTYPE StorePipeline(
9606 const WCHAR *name,
9607 ID3D12PipelineState *pipeline) = 0;
9608
9609 virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline(
9610 const WCHAR *name,
9611 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
9612 REFIID riid,
9613 void **pipeline_state) = 0;
9614
9615 virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline(
9616 const WCHAR *name,
9617 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
9618 REFIID riid,
9619 void **pipeline_state) = 0;
9620
9621 virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize(
9622 ) = 0;
9623
9624 virtual HRESULT STDMETHODCALLTYPE Serialize(
9625 void *data,
9626 SIZE_T data_size_in_bytes) = 0;
9627
9628};
9629#ifdef __CRT_UUID_DECL
9630__CRT_UUID_DECL(ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4,0xcc, 0x53,0xfb,0x9f,0xf7,0x41,0x4f)
9631#endif
9632#else
9633typedef struct ID3D12PipelineLibraryVtbl {
9634 BEGIN_INTERFACE
9635
9636 /*** IUnknown methods ***/
9637 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9638 ID3D12PipelineLibrary *This,
9639 REFIID riid,
9640 void **ppvObject);
9641
9642 ULONG (STDMETHODCALLTYPE *AddRef)(
9643 ID3D12PipelineLibrary *This);
9644
9645 ULONG (STDMETHODCALLTYPE *Release)(
9646 ID3D12PipelineLibrary *This);
9647
9648 /*** ID3D12Object methods ***/
9649 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
9650 ID3D12PipelineLibrary *This,
9651 REFGUID guid,
9652 UINT *data_size,
9653 void *data);
9654
9655 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
9656 ID3D12PipelineLibrary *This,
9657 REFGUID guid,
9658 UINT data_size,
9659 const void *data);
9660
9661 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
9662 ID3D12PipelineLibrary *This,
9663 REFGUID guid,
9664 const IUnknown *data);
9665
9666 HRESULT (STDMETHODCALLTYPE *SetName)(
9667 ID3D12PipelineLibrary *This,
9668 const WCHAR *name);
9669
9670 /*** ID3D12DeviceChild methods ***/
9671 HRESULT (STDMETHODCALLTYPE *GetDevice)(
9672 ID3D12PipelineLibrary *This,
9673 REFIID riid,
9674 void **device);
9675
9676 /*** ID3D12PipelineLibrary methods ***/
9677 HRESULT (STDMETHODCALLTYPE *StorePipeline)(
9678 ID3D12PipelineLibrary *This,
9679 const WCHAR *name,
9680 ID3D12PipelineState *pipeline);
9681
9682 HRESULT (STDMETHODCALLTYPE *LoadGraphicsPipeline)(
9683 ID3D12PipelineLibrary *This,
9684 const WCHAR *name,
9685 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
9686 REFIID riid,
9687 void **pipeline_state);
9688
9689 HRESULT (STDMETHODCALLTYPE *LoadComputePipeline)(
9690 ID3D12PipelineLibrary *This,
9691 const WCHAR *name,
9692 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
9693 REFIID riid,
9694 void **pipeline_state);
9695
9696 SIZE_T (STDMETHODCALLTYPE *GetSerializedSize)(
9697 ID3D12PipelineLibrary *This);
9698
9699 HRESULT (STDMETHODCALLTYPE *Serialize)(
9700 ID3D12PipelineLibrary *This,
9701 void *data,
9702 SIZE_T data_size_in_bytes);
9703
9704 END_INTERFACE
9705} ID3D12PipelineLibraryVtbl;
9706
9707interface ID3D12PipelineLibrary {
9708 CONST_VTBL ID3D12PipelineLibraryVtbl* lpVtbl;
9709};
9710
9711#ifdef COBJMACROS
9712#ifndef WIDL_C_INLINE_WRAPPERS
9713/*** IUnknown methods ***/
9714#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9715#define ID3D12PipelineLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
9716#define ID3D12PipelineLibrary_Release(This) (This)->lpVtbl->Release(This)
9717/*** ID3D12Object methods ***/
9718#define ID3D12PipelineLibrary_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
9719#define ID3D12PipelineLibrary_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
9720#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
9721#define ID3D12PipelineLibrary_SetName(This,name) (This)->lpVtbl->SetName(This,name)
9722/*** ID3D12DeviceChild methods ***/
9723#define ID3D12PipelineLibrary_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
9724/*** ID3D12PipelineLibrary methods ***/
9725#define ID3D12PipelineLibrary_StorePipeline(This,name,pipeline) (This)->lpVtbl->StorePipeline(This,name,pipeline)
9726#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state)
9727#define ID3D12PipelineLibrary_LoadComputePipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state)
9728#define ID3D12PipelineLibrary_GetSerializedSize(This) (This)->lpVtbl->GetSerializedSize(This)
9729#define ID3D12PipelineLibrary_Serialize(This,data,data_size_in_bytes) (This)->lpVtbl->Serialize(This,data,data_size_in_bytes)
9730#else
9731/*** IUnknown methods ***/
9732static inline HRESULT ID3D12PipelineLibrary_QueryInterface(ID3D12PipelineLibrary* This,REFIID riid,void **ppvObject) {
9733 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9734}
9735static inline ULONG ID3D12PipelineLibrary_AddRef(ID3D12PipelineLibrary* This) {
9736 return This->lpVtbl->AddRef(This);
9737}
9738static inline ULONG ID3D12PipelineLibrary_Release(ID3D12PipelineLibrary* This) {
9739 return This->lpVtbl->Release(This);
9740}
9741/*** ID3D12Object methods ***/
9742static inline HRESULT ID3D12PipelineLibrary_GetPrivateData(ID3D12PipelineLibrary* This,REFGUID guid,UINT *data_size,void *data) {
9743 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
9744}
9745static inline HRESULT ID3D12PipelineLibrary_SetPrivateData(ID3D12PipelineLibrary* This,REFGUID guid,UINT data_size,const void *data) {
9746 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
9747}
9748static inline HRESULT ID3D12PipelineLibrary_SetPrivateDataInterface(ID3D12PipelineLibrary* This,REFGUID guid,const IUnknown *data) {
9749 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
9750}
9751static inline HRESULT ID3D12PipelineLibrary_SetName(ID3D12PipelineLibrary* This,const WCHAR *name) {
9752 return This->lpVtbl->SetName(This,name);
9753}
9754/*** ID3D12DeviceChild methods ***/
9755static inline HRESULT ID3D12PipelineLibrary_GetDevice(ID3D12PipelineLibrary* This,REFIID riid,void **device) {
9756 return This->lpVtbl->GetDevice(This,riid,device);
9757}
9758/*** ID3D12PipelineLibrary methods ***/
9759static inline HRESULT ID3D12PipelineLibrary_StorePipeline(ID3D12PipelineLibrary* This,const WCHAR *name,ID3D12PipelineState *pipeline) {
9760 return This->lpVtbl->StorePipeline(This,name,pipeline);
9761}
9762static inline HRESULT ID3D12PipelineLibrary_LoadGraphicsPipeline(ID3D12PipelineLibrary* This,const WCHAR *name,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9763 return This->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state);
9764}
9765static inline HRESULT ID3D12PipelineLibrary_LoadComputePipeline(ID3D12PipelineLibrary* This,const WCHAR *name,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9766 return This->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state);
9767}
9768static inline SIZE_T ID3D12PipelineLibrary_GetSerializedSize(ID3D12PipelineLibrary* This) {
9769 return This->lpVtbl->GetSerializedSize(This);
9770}
9771static inline HRESULT ID3D12PipelineLibrary_Serialize(ID3D12PipelineLibrary* This,void *data,SIZE_T data_size_in_bytes) {
9772 return This->lpVtbl->Serialize(This,data,data_size_in_bytes);
9773}
9774#endif
9775#endif
9776
9777#endif
9778
9779
9780#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */
9781
9782/*****************************************************************************
9783 * ID3D12PipelineLibrary1 interface
9784 */
9785#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
9786#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
9787
9788DEFINE_GUID(IID_ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd,0x82, 0xc3,0x7f,0x86,0x96,0x1d,0xc3);
9789#if defined(__cplusplus) && !defined(CINTERFACE)
9790MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3")
9791ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary
9792{
9793 virtual HRESULT STDMETHODCALLTYPE LoadPipeline(
9794 const WCHAR *name,
9795 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
9796 REFIID riid,
9797 void **pipeline_state) = 0;
9798
9799};
9800#ifdef __CRT_UUID_DECL
9801__CRT_UUID_DECL(ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd,0x82, 0xc3,0x7f,0x86,0x96,0x1d,0xc3)
9802#endif
9803#else
9804typedef struct ID3D12PipelineLibrary1Vtbl {
9805 BEGIN_INTERFACE
9806
9807 /*** IUnknown methods ***/
9808 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9809 ID3D12PipelineLibrary1 *This,
9810 REFIID riid,
9811 void **ppvObject);
9812
9813 ULONG (STDMETHODCALLTYPE *AddRef)(
9814 ID3D12PipelineLibrary1 *This);
9815
9816 ULONG (STDMETHODCALLTYPE *Release)(
9817 ID3D12PipelineLibrary1 *This);
9818
9819 /*** ID3D12Object methods ***/
9820 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
9821 ID3D12PipelineLibrary1 *This,
9822 REFGUID guid,
9823 UINT *data_size,
9824 void *data);
9825
9826 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
9827 ID3D12PipelineLibrary1 *This,
9828 REFGUID guid,
9829 UINT data_size,
9830 const void *data);
9831
9832 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
9833 ID3D12PipelineLibrary1 *This,
9834 REFGUID guid,
9835 const IUnknown *data);
9836
9837 HRESULT (STDMETHODCALLTYPE *SetName)(
9838 ID3D12PipelineLibrary1 *This,
9839 const WCHAR *name);
9840
9841 /*** ID3D12DeviceChild methods ***/
9842 HRESULT (STDMETHODCALLTYPE *GetDevice)(
9843 ID3D12PipelineLibrary1 *This,
9844 REFIID riid,
9845 void **device);
9846
9847 /*** ID3D12PipelineLibrary methods ***/
9848 HRESULT (STDMETHODCALLTYPE *StorePipeline)(
9849 ID3D12PipelineLibrary1 *This,
9850 const WCHAR *name,
9851 ID3D12PipelineState *pipeline);
9852
9853 HRESULT (STDMETHODCALLTYPE *LoadGraphicsPipeline)(
9854 ID3D12PipelineLibrary1 *This,
9855 const WCHAR *name,
9856 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
9857 REFIID riid,
9858 void **pipeline_state);
9859
9860 HRESULT (STDMETHODCALLTYPE *LoadComputePipeline)(
9861 ID3D12PipelineLibrary1 *This,
9862 const WCHAR *name,
9863 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
9864 REFIID riid,
9865 void **pipeline_state);
9866
9867 SIZE_T (STDMETHODCALLTYPE *GetSerializedSize)(
9868 ID3D12PipelineLibrary1 *This);
9869
9870 HRESULT (STDMETHODCALLTYPE *Serialize)(
9871 ID3D12PipelineLibrary1 *This,
9872 void *data,
9873 SIZE_T data_size_in_bytes);
9874
9875 /*** ID3D12PipelineLibrary1 methods ***/
9876 HRESULT (STDMETHODCALLTYPE *LoadPipeline)(
9877 ID3D12PipelineLibrary1 *This,
9878 const WCHAR *name,
9879 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
9880 REFIID riid,
9881 void **pipeline_state);
9882
9883 END_INTERFACE
9884} ID3D12PipelineLibrary1Vtbl;
9885
9886interface ID3D12PipelineLibrary1 {
9887 CONST_VTBL ID3D12PipelineLibrary1Vtbl* lpVtbl;
9888};
9889
9890#ifdef COBJMACROS
9891#ifndef WIDL_C_INLINE_WRAPPERS
9892/*** IUnknown methods ***/
9893#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9894#define ID3D12PipelineLibrary1_AddRef(This) (This)->lpVtbl->AddRef(This)
9895#define ID3D12PipelineLibrary1_Release(This) (This)->lpVtbl->Release(This)
9896/*** ID3D12Object methods ***/
9897#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
9898#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
9899#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
9900#define ID3D12PipelineLibrary1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
9901/*** ID3D12DeviceChild methods ***/
9902#define ID3D12PipelineLibrary1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
9903/*** ID3D12PipelineLibrary methods ***/
9904#define ID3D12PipelineLibrary1_StorePipeline(This,name,pipeline) (This)->lpVtbl->StorePipeline(This,name,pipeline)
9905#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state)
9906#define ID3D12PipelineLibrary1_LoadComputePipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state)
9907#define ID3D12PipelineLibrary1_GetSerializedSize(This) (This)->lpVtbl->GetSerializedSize(This)
9908#define ID3D12PipelineLibrary1_Serialize(This,data,data_size_in_bytes) (This)->lpVtbl->Serialize(This,data,data_size_in_bytes)
9909/*** ID3D12PipelineLibrary1 methods ***/
9910#define ID3D12PipelineLibrary1_LoadPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadPipeline(This,name,desc,riid,pipeline_state)
9911#else
9912/*** IUnknown methods ***/
9913static inline HRESULT ID3D12PipelineLibrary1_QueryInterface(ID3D12PipelineLibrary1* This,REFIID riid,void **ppvObject) {
9914 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9915}
9916static inline ULONG ID3D12PipelineLibrary1_AddRef(ID3D12PipelineLibrary1* This) {
9917 return This->lpVtbl->AddRef(This);
9918}
9919static inline ULONG ID3D12PipelineLibrary1_Release(ID3D12PipelineLibrary1* This) {
9920 return This->lpVtbl->Release(This);
9921}
9922/*** ID3D12Object methods ***/
9923static inline HRESULT ID3D12PipelineLibrary1_GetPrivateData(ID3D12PipelineLibrary1* This,REFGUID guid,UINT *data_size,void *data) {
9924 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
9925}
9926static inline HRESULT ID3D12PipelineLibrary1_SetPrivateData(ID3D12PipelineLibrary1* This,REFGUID guid,UINT data_size,const void *data) {
9927 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
9928}
9929static inline HRESULT ID3D12PipelineLibrary1_SetPrivateDataInterface(ID3D12PipelineLibrary1* This,REFGUID guid,const IUnknown *data) {
9930 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
9931}
9932static inline HRESULT ID3D12PipelineLibrary1_SetName(ID3D12PipelineLibrary1* This,const WCHAR *name) {
9933 return This->lpVtbl->SetName(This,name);
9934}
9935/*** ID3D12DeviceChild methods ***/
9936static inline HRESULT ID3D12PipelineLibrary1_GetDevice(ID3D12PipelineLibrary1* This,REFIID riid,void **device) {
9937 return This->lpVtbl->GetDevice(This,riid,device);
9938}
9939/*** ID3D12PipelineLibrary methods ***/
9940static inline HRESULT ID3D12PipelineLibrary1_StorePipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,ID3D12PipelineState *pipeline) {
9941 return This->lpVtbl->StorePipeline(This,name,pipeline);
9942}
9943static inline HRESULT ID3D12PipelineLibrary1_LoadGraphicsPipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9944 return This->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state);
9945}
9946static inline HRESULT ID3D12PipelineLibrary1_LoadComputePipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
9947 return This->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state);
9948}
9949static inline SIZE_T ID3D12PipelineLibrary1_GetSerializedSize(ID3D12PipelineLibrary1* This) {
9950 return This->lpVtbl->GetSerializedSize(This);
9951}
9952static inline HRESULT ID3D12PipelineLibrary1_Serialize(ID3D12PipelineLibrary1* This,void *data,SIZE_T data_size_in_bytes) {
9953 return This->lpVtbl->Serialize(This,data,data_size_in_bytes);
9954}
9955/*** ID3D12PipelineLibrary1 methods ***/
9956static inline HRESULT ID3D12PipelineLibrary1_LoadPipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
9957 return This->lpVtbl->LoadPipeline(This,name,desc,riid,pipeline_state);
9958}
9959#endif
9960#endif
9961
9962#endif
9963
9964
9965#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */
9966
9967/*****************************************************************************
9968 * ID3D12Device1 interface
9969 */
9970#ifndef __ID3D12Device1_INTERFACE_DEFINED__
9971#define __ID3D12Device1_INTERFACE_DEFINED__
9972
9973DEFINE_GUID(IID_ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e);
9974#if defined(__cplusplus) && !defined(CINTERFACE)
9975MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
9976ID3D12Device1 : public ID3D12Device
9977{
9978 virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
9979 const void *blob,
9980 SIZE_T blob_size,
9981 REFIID iid,
9982 void **lib) = 0;
9983
9984 virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
9985 ID3D12Fence *const *fences,
9986 const UINT64 *values,
9987 UINT fence_count,
9988 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
9989 HANDLE event) = 0;
9990
9991 virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
9992 UINT object_count,
9993 ID3D12Pageable *const *objects,
9994 const D3D12_RESIDENCY_PRIORITY *priorities) = 0;
9995
9996};
9997#ifdef __CRT_UUID_DECL
9998__CRT_UUID_DECL(ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e)
9999#endif
10000#else
10001typedef struct ID3D12Device1Vtbl {
10002 BEGIN_INTERFACE
10003
10004 /*** IUnknown methods ***/
10005 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10006 ID3D12Device1 *This,
10007 REFIID riid,
10008 void **ppvObject);
10009
10010 ULONG (STDMETHODCALLTYPE *AddRef)(
10011 ID3D12Device1 *This);
10012
10013 ULONG (STDMETHODCALLTYPE *Release)(
10014 ID3D12Device1 *This);
10015
10016 /*** ID3D12Object methods ***/
10017 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
10018 ID3D12Device1 *This,
10019 REFGUID guid,
10020 UINT *data_size,
10021 void *data);
10022
10023 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
10024 ID3D12Device1 *This,
10025 REFGUID guid,
10026 UINT data_size,
10027 const void *data);
10028
10029 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
10030 ID3D12Device1 *This,
10031 REFGUID guid,
10032 const IUnknown *data);
10033
10034 HRESULT (STDMETHODCALLTYPE *SetName)(
10035 ID3D12Device1 *This,
10036 const WCHAR *name);
10037
10038 /*** ID3D12Device methods ***/
10039 UINT (STDMETHODCALLTYPE *GetNodeCount)(
10040 ID3D12Device1 *This);
10041
10042 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
10043 ID3D12Device1 *This,
10044 const D3D12_COMMAND_QUEUE_DESC *desc,
10045 REFIID riid,
10046 void **command_queue);
10047
10048 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
10049 ID3D12Device1 *This,
10050 D3D12_COMMAND_LIST_TYPE type,
10051 REFIID riid,
10052 void **command_allocator);
10053
10054 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
10055 ID3D12Device1 *This,
10056 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
10057 REFIID riid,
10058 void **pipeline_state);
10059
10060 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
10061 ID3D12Device1 *This,
10062 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
10063 REFIID riid,
10064 void **pipeline_state);
10065
10066 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
10067 ID3D12Device1 *This,
10068 UINT node_mask,
10069 D3D12_COMMAND_LIST_TYPE type,
10070 ID3D12CommandAllocator *command_allocator,
10071 ID3D12PipelineState *initial_pipeline_state,
10072 REFIID riid,
10073 void **command_list);
10074
10075 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
10076 ID3D12Device1 *This,
10077 D3D12_FEATURE feature,
10078 void *feature_data,
10079 UINT feature_data_size);
10080
10081 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
10082 ID3D12Device1 *This,
10083 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
10084 REFIID riid,
10085 void **descriptor_heap);
10086
10087 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
10088 ID3D12Device1 *This,
10089 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10090
10091 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
10092 ID3D12Device1 *This,
10093 UINT node_mask,
10094 const void *bytecode,
10095 SIZE_T bytecode_length,
10096 REFIID riid,
10097 void **root_signature);
10098
10099 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
10100 ID3D12Device1 *This,
10101 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
10102 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10103
10104 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
10105 ID3D12Device1 *This,
10106 ID3D12Resource *resource,
10107 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
10108 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10109
10110 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
10111 ID3D12Device1 *This,
10112 ID3D12Resource *resource,
10113 ID3D12Resource *counter_resource,
10114 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
10115 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10116
10117 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
10118 ID3D12Device1 *This,
10119 ID3D12Resource *resource,
10120 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
10121 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10122
10123 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
10124 ID3D12Device1 *This,
10125 ID3D12Resource *resource,
10126 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
10127 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10128
10129 void (STDMETHODCALLTYPE *CreateSampler)(
10130 ID3D12Device1 *This,
10131 const D3D12_SAMPLER_DESC *desc,
10132 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10133
10134 void (STDMETHODCALLTYPE *CopyDescriptors)(
10135 ID3D12Device1 *This,
10136 UINT dst_descriptor_range_count,
10137 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
10138 const UINT *dst_descriptor_range_sizes,
10139 UINT src_descriptor_range_count,
10140 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
10141 const UINT *src_descriptor_range_sizes,
10142 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10143
10144 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
10145 ID3D12Device1 *This,
10146 UINT descriptor_count,
10147 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
10148 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
10149 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10150
10151 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
10152 ID3D12Device1 *This,
10153 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
10154 UINT visible_mask,
10155 UINT reource_desc_count,
10156 const D3D12_RESOURCE_DESC *resource_descs);
10157
10158 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
10159 ID3D12Device1 *This,
10160 D3D12_HEAP_PROPERTIES *__ret,
10161 UINT node_mask,
10162 D3D12_HEAP_TYPE heap_type);
10163
10164 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
10165 ID3D12Device1 *This,
10166 const D3D12_HEAP_PROPERTIES *heap_properties,
10167 D3D12_HEAP_FLAGS heap_flags,
10168 const D3D12_RESOURCE_DESC *desc,
10169 D3D12_RESOURCE_STATES initial_state,
10170 const D3D12_CLEAR_VALUE *optimized_clear_value,
10171 REFIID riid,
10172 void **resource);
10173
10174 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
10175 ID3D12Device1 *This,
10176 const D3D12_HEAP_DESC *desc,
10177 REFIID riid,
10178 void **heap);
10179
10180 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
10181 ID3D12Device1 *This,
10182 ID3D12Heap *heap,
10183 UINT64 heap_offset,
10184 const D3D12_RESOURCE_DESC *desc,
10185 D3D12_RESOURCE_STATES initial_state,
10186 const D3D12_CLEAR_VALUE *optimized_clear_value,
10187 REFIID riid,
10188 void **resource);
10189
10190 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
10191 ID3D12Device1 *This,
10192 const D3D12_RESOURCE_DESC *desc,
10193 D3D12_RESOURCE_STATES initial_state,
10194 const D3D12_CLEAR_VALUE *optimized_clear_value,
10195 REFIID riid,
10196 void **resource);
10197
10198 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
10199 ID3D12Device1 *This,
10200 ID3D12DeviceChild *object,
10201 const SECURITY_ATTRIBUTES *attributes,
10202 DWORD access,
10203 const WCHAR *name,
10204 HANDLE *handle);
10205
10206 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
10207 ID3D12Device1 *This,
10208 HANDLE handle,
10209 REFIID riid,
10210 void **object);
10211
10212 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
10213 ID3D12Device1 *This,
10214 const WCHAR *name,
10215 DWORD access,
10216 HANDLE *handle);
10217
10218 HRESULT (STDMETHODCALLTYPE *MakeResident)(
10219 ID3D12Device1 *This,
10220 UINT object_count,
10221 ID3D12Pageable *const *objects);
10222
10223 HRESULT (STDMETHODCALLTYPE *Evict)(
10224 ID3D12Device1 *This,
10225 UINT object_count,
10226 ID3D12Pageable *const *objects);
10227
10228 HRESULT (STDMETHODCALLTYPE *CreateFence)(
10229 ID3D12Device1 *This,
10230 UINT64 initial_value,
10231 D3D12_FENCE_FLAGS flags,
10232 REFIID riid,
10233 void **fence);
10234
10235 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
10236 ID3D12Device1 *This);
10237
10238 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
10239 ID3D12Device1 *This,
10240 const D3D12_RESOURCE_DESC *desc,
10241 UINT first_sub_resource,
10242 UINT sub_resource_count,
10243 UINT64 base_offset,
10244 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
10245 UINT *row_count,
10246 UINT64 *row_size,
10247 UINT64 *total_bytes);
10248
10249 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
10250 ID3D12Device1 *This,
10251 const D3D12_QUERY_HEAP_DESC *desc,
10252 REFIID riid,
10253 void **heap);
10254
10255 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
10256 ID3D12Device1 *This,
10257 WINBOOL enable);
10258
10259 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
10260 ID3D12Device1 *This,
10261 const D3D12_COMMAND_SIGNATURE_DESC *desc,
10262 ID3D12RootSignature *root_signature,
10263 REFIID riid,
10264 void **command_signature);
10265
10266 void (STDMETHODCALLTYPE *GetResourceTiling)(
10267 ID3D12Device1 *This,
10268 ID3D12Resource *resource,
10269 UINT *total_tile_count,
10270 D3D12_PACKED_MIP_INFO *packed_mip_info,
10271 D3D12_TILE_SHAPE *standard_tile_shape,
10272 UINT *sub_resource_tiling_count,
10273 UINT first_sub_resource_tiling,
10274 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
10275
10276 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
10277 ID3D12Device1 *This,
10278 LUID *__ret);
10279
10280 /*** ID3D12Device1 methods ***/
10281 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
10282 ID3D12Device1 *This,
10283 const void *blob,
10284 SIZE_T blob_size,
10285 REFIID iid,
10286 void **lib);
10287
10288 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
10289 ID3D12Device1 *This,
10290 ID3D12Fence *const *fences,
10291 const UINT64 *values,
10292 UINT fence_count,
10293 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
10294 HANDLE event);
10295
10296 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
10297 ID3D12Device1 *This,
10298 UINT object_count,
10299 ID3D12Pageable *const *objects,
10300 const D3D12_RESIDENCY_PRIORITY *priorities);
10301
10302 END_INTERFACE
10303} ID3D12Device1Vtbl;
10304
10305interface ID3D12Device1 {
10306 CONST_VTBL ID3D12Device1Vtbl* lpVtbl;
10307};
10308
10309#ifdef COBJMACROS
10310#ifndef WIDL_C_INLINE_WRAPPERS
10311/*** IUnknown methods ***/
10312#define ID3D12Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10313#define ID3D12Device1_AddRef(This) (This)->lpVtbl->AddRef(This)
10314#define ID3D12Device1_Release(This) (This)->lpVtbl->Release(This)
10315/*** ID3D12Object methods ***/
10316#define ID3D12Device1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
10317#define ID3D12Device1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
10318#define ID3D12Device1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
10319#define ID3D12Device1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
10320/*** ID3D12Device methods ***/
10321#define ID3D12Device1_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
10322#define ID3D12Device1_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
10323#define ID3D12Device1_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
10324#define ID3D12Device1_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
10325#define ID3D12Device1_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
10326#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)
10327#define ID3D12Device1_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
10328#define ID3D12Device1_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
10329#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
10330#define ID3D12Device1_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
10331#define ID3D12Device1_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
10332#define ID3D12Device1_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
10333#define ID3D12Device1_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
10334#define ID3D12Device1_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
10335#define ID3D12Device1_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
10336#define ID3D12Device1_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
10337#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)
10338#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)
10339#define ID3D12Device1_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device1_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10340#define ID3D12Device1_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device1_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10341#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)
10342#define ID3D12Device1_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
10343#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)
10344#define ID3D12Device1_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
10345#define ID3D12Device1_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
10346#define ID3D12Device1_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
10347#define ID3D12Device1_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
10348#define ID3D12Device1_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
10349#define ID3D12Device1_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
10350#define ID3D12Device1_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
10351#define ID3D12Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
10352#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)
10353#define ID3D12Device1_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
10354#define ID3D12Device1_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
10355#define ID3D12Device1_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
10356#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)
10357#define ID3D12Device1_GetAdapterLuid(This) ID3D12Device1_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10358/*** ID3D12Device1 methods ***/
10359#define ID3D12Device1_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
10360#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
10361#define ID3D12Device1_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
10362#else
10363/*** IUnknown methods ***/
10364static inline HRESULT ID3D12Device1_QueryInterface(ID3D12Device1* This,REFIID riid,void **ppvObject) {
10365 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10366}
10367static inline ULONG ID3D12Device1_AddRef(ID3D12Device1* This) {
10368 return This->lpVtbl->AddRef(This);
10369}
10370static inline ULONG ID3D12Device1_Release(ID3D12Device1* This) {
10371 return This->lpVtbl->Release(This);
10372}
10373/*** ID3D12Object methods ***/
10374static inline HRESULT ID3D12Device1_GetPrivateData(ID3D12Device1* This,REFGUID guid,UINT *data_size,void *data) {
10375 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
10376}
10377static inline HRESULT ID3D12Device1_SetPrivateData(ID3D12Device1* This,REFGUID guid,UINT data_size,const void *data) {
10378 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
10379}
10380static inline HRESULT ID3D12Device1_SetPrivateDataInterface(ID3D12Device1* This,REFGUID guid,const IUnknown *data) {
10381 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
10382}
10383static inline HRESULT ID3D12Device1_SetName(ID3D12Device1* This,const WCHAR *name) {
10384 return This->lpVtbl->SetName(This,name);
10385}
10386/*** ID3D12Device methods ***/
10387static inline UINT ID3D12Device1_GetNodeCount(ID3D12Device1* This) {
10388 return This->lpVtbl->GetNodeCount(This);
10389}
10390static inline HRESULT ID3D12Device1_CreateCommandQueue(ID3D12Device1* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
10391 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
10392}
10393static inline HRESULT ID3D12Device1_CreateCommandAllocator(ID3D12Device1* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
10394 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
10395}
10396static inline HRESULT ID3D12Device1_CreateGraphicsPipelineState(ID3D12Device1* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
10397 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
10398}
10399static inline HRESULT ID3D12Device1_CreateComputePipelineState(ID3D12Device1* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
10400 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
10401}
10402static 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) {
10403 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
10404}
10405static inline HRESULT ID3D12Device1_CheckFeatureSupport(ID3D12Device1* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
10406 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
10407}
10408static inline HRESULT ID3D12Device1_CreateDescriptorHeap(ID3D12Device1* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
10409 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
10410}
10411static inline UINT ID3D12Device1_GetDescriptorHandleIncrementSize(ID3D12Device1* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
10412 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
10413}
10414static inline HRESULT ID3D12Device1_CreateRootSignature(ID3D12Device1* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
10415 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
10416}
10417static inline void ID3D12Device1_CreateConstantBufferView(ID3D12Device1* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10418 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
10419}
10420static inline void ID3D12Device1_CreateShaderResourceView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10421 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
10422}
10423static inline void ID3D12Device1_CreateUnorderedAccessView(ID3D12Device1* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10424 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
10425}
10426static inline void ID3D12Device1_CreateRenderTargetView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10427 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
10428}
10429static inline void ID3D12Device1_CreateDepthStencilView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10430 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
10431}
10432static inline void ID3D12Device1_CreateSampler(ID3D12Device1* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10433 This->lpVtbl->CreateSampler(This,desc,descriptor);
10434}
10435static 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) {
10436 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);
10437}
10438static 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) {
10439 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
10440}
10441static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device1_GetResourceAllocationInfo(ID3D12Device1* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
10442 D3D12_RESOURCE_ALLOCATION_INFO __ret;
10443 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
10444}
10445static inline D3D12_HEAP_PROPERTIES ID3D12Device1_GetCustomHeapProperties(ID3D12Device1* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
10446 D3D12_HEAP_PROPERTIES __ret;
10447 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
10448}
10449static 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) {
10450 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
10451}
10452static inline HRESULT ID3D12Device1_CreateHeap(ID3D12Device1* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
10453 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
10454}
10455static 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) {
10456 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
10457}
10458static 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) {
10459 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
10460}
10461static inline HRESULT ID3D12Device1_CreateSharedHandle(ID3D12Device1* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
10462 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
10463}
10464static inline HRESULT ID3D12Device1_OpenSharedHandle(ID3D12Device1* This,HANDLE handle,REFIID riid,void **object) {
10465 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
10466}
10467static inline HRESULT ID3D12Device1_OpenSharedHandleByName(ID3D12Device1* This,const WCHAR *name,DWORD access,HANDLE *handle) {
10468 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
10469}
10470static inline HRESULT ID3D12Device1_MakeResident(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) {
10471 return This->lpVtbl->MakeResident(This,object_count,objects);
10472}
10473static inline HRESULT ID3D12Device1_Evict(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) {
10474 return This->lpVtbl->Evict(This,object_count,objects);
10475}
10476static inline HRESULT ID3D12Device1_CreateFence(ID3D12Device1* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
10477 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
10478}
10479static inline HRESULT ID3D12Device1_GetDeviceRemovedReason(ID3D12Device1* This) {
10480 return This->lpVtbl->GetDeviceRemovedReason(This);
10481}
10482static 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) {
10483 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
10484}
10485static inline HRESULT ID3D12Device1_CreateQueryHeap(ID3D12Device1* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
10486 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
10487}
10488static inline HRESULT ID3D12Device1_SetStablePowerState(ID3D12Device1* This,WINBOOL enable) {
10489 return This->lpVtbl->SetStablePowerState(This,enable);
10490}
10491static inline HRESULT ID3D12Device1_CreateCommandSignature(ID3D12Device1* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
10492 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
10493}
10494static 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) {
10495 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);
10496}
10497static inline LUID ID3D12Device1_GetAdapterLuid(ID3D12Device1* This) {
10498 LUID __ret;
10499 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
10500}
10501/*** ID3D12Device1 methods ***/
10502static inline HRESULT ID3D12Device1_CreatePipelineLibrary(ID3D12Device1* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
10503 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
10504}
10505static inline HRESULT ID3D12Device1_SetEventOnMultipleFenceCompletion(ID3D12Device1* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
10506 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
10507}
10508static inline HRESULT ID3D12Device1_SetResidencyPriority(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
10509 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
10510}
10511#endif
10512#endif
10513
10514#endif
10515
10516
10517#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
10518
10519/*****************************************************************************
10520 * ID3D12Device2 interface
10521 */
10522#ifndef __ID3D12Device2_INTERFACE_DEFINED__
10523#define __ID3D12Device2_INTERFACE_DEFINED__
10524
10525DEFINE_GUID(IID_ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0,0xbb, 0x1a,0xf5,0xc5,0xb6,0x43,0x28);
10526#if defined(__cplusplus) && !defined(CINTERFACE)
10527MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328")
10528ID3D12Device2 : public ID3D12Device1
10529{
10530 virtual HRESULT STDMETHODCALLTYPE CreatePipelineState(
10531 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
10532 REFIID riid,
10533 void **pipeline_state) = 0;
10534
10535};
10536#ifdef __CRT_UUID_DECL
10537__CRT_UUID_DECL(ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0,0xbb, 0x1a,0xf5,0xc5,0xb6,0x43,0x28)
10538#endif
10539#else
10540typedef struct ID3D12Device2Vtbl {
10541 BEGIN_INTERFACE
10542
10543 /*** IUnknown methods ***/
10544 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10545 ID3D12Device2 *This,
10546 REFIID riid,
10547 void **ppvObject);
10548
10549 ULONG (STDMETHODCALLTYPE *AddRef)(
10550 ID3D12Device2 *This);
10551
10552 ULONG (STDMETHODCALLTYPE *Release)(
10553 ID3D12Device2 *This);
10554
10555 /*** ID3D12Object methods ***/
10556 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
10557 ID3D12Device2 *This,
10558 REFGUID guid,
10559 UINT *data_size,
10560 void *data);
10561
10562 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
10563 ID3D12Device2 *This,
10564 REFGUID guid,
10565 UINT data_size,
10566 const void *data);
10567
10568 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
10569 ID3D12Device2 *This,
10570 REFGUID guid,
10571 const IUnknown *data);
10572
10573 HRESULT (STDMETHODCALLTYPE *SetName)(
10574 ID3D12Device2 *This,
10575 const WCHAR *name);
10576
10577 /*** ID3D12Device methods ***/
10578 UINT (STDMETHODCALLTYPE *GetNodeCount)(
10579 ID3D12Device2 *This);
10580
10581 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
10582 ID3D12Device2 *This,
10583 const D3D12_COMMAND_QUEUE_DESC *desc,
10584 REFIID riid,
10585 void **command_queue);
10586
10587 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
10588 ID3D12Device2 *This,
10589 D3D12_COMMAND_LIST_TYPE type,
10590 REFIID riid,
10591 void **command_allocator);
10592
10593 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
10594 ID3D12Device2 *This,
10595 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
10596 REFIID riid,
10597 void **pipeline_state);
10598
10599 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
10600 ID3D12Device2 *This,
10601 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
10602 REFIID riid,
10603 void **pipeline_state);
10604
10605 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
10606 ID3D12Device2 *This,
10607 UINT node_mask,
10608 D3D12_COMMAND_LIST_TYPE type,
10609 ID3D12CommandAllocator *command_allocator,
10610 ID3D12PipelineState *initial_pipeline_state,
10611 REFIID riid,
10612 void **command_list);
10613
10614 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
10615 ID3D12Device2 *This,
10616 D3D12_FEATURE feature,
10617 void *feature_data,
10618 UINT feature_data_size);
10619
10620 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
10621 ID3D12Device2 *This,
10622 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
10623 REFIID riid,
10624 void **descriptor_heap);
10625
10626 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
10627 ID3D12Device2 *This,
10628 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10629
10630 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
10631 ID3D12Device2 *This,
10632 UINT node_mask,
10633 const void *bytecode,
10634 SIZE_T bytecode_length,
10635 REFIID riid,
10636 void **root_signature);
10637
10638 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
10639 ID3D12Device2 *This,
10640 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
10641 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10642
10643 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
10644 ID3D12Device2 *This,
10645 ID3D12Resource *resource,
10646 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
10647 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10648
10649 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
10650 ID3D12Device2 *This,
10651 ID3D12Resource *resource,
10652 ID3D12Resource *counter_resource,
10653 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
10654 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10655
10656 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
10657 ID3D12Device2 *This,
10658 ID3D12Resource *resource,
10659 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
10660 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10661
10662 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
10663 ID3D12Device2 *This,
10664 ID3D12Resource *resource,
10665 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
10666 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10667
10668 void (STDMETHODCALLTYPE *CreateSampler)(
10669 ID3D12Device2 *This,
10670 const D3D12_SAMPLER_DESC *desc,
10671 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
10672
10673 void (STDMETHODCALLTYPE *CopyDescriptors)(
10674 ID3D12Device2 *This,
10675 UINT dst_descriptor_range_count,
10676 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
10677 const UINT *dst_descriptor_range_sizes,
10678 UINT src_descriptor_range_count,
10679 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
10680 const UINT *src_descriptor_range_sizes,
10681 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10682
10683 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
10684 ID3D12Device2 *This,
10685 UINT descriptor_count,
10686 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
10687 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
10688 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
10689
10690 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
10691 ID3D12Device2 *This,
10692 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
10693 UINT visible_mask,
10694 UINT reource_desc_count,
10695 const D3D12_RESOURCE_DESC *resource_descs);
10696
10697 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
10698 ID3D12Device2 *This,
10699 D3D12_HEAP_PROPERTIES *__ret,
10700 UINT node_mask,
10701 D3D12_HEAP_TYPE heap_type);
10702
10703 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
10704 ID3D12Device2 *This,
10705 const D3D12_HEAP_PROPERTIES *heap_properties,
10706 D3D12_HEAP_FLAGS heap_flags,
10707 const D3D12_RESOURCE_DESC *desc,
10708 D3D12_RESOURCE_STATES initial_state,
10709 const D3D12_CLEAR_VALUE *optimized_clear_value,
10710 REFIID riid,
10711 void **resource);
10712
10713 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
10714 ID3D12Device2 *This,
10715 const D3D12_HEAP_DESC *desc,
10716 REFIID riid,
10717 void **heap);
10718
10719 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
10720 ID3D12Device2 *This,
10721 ID3D12Heap *heap,
10722 UINT64 heap_offset,
10723 const D3D12_RESOURCE_DESC *desc,
10724 D3D12_RESOURCE_STATES initial_state,
10725 const D3D12_CLEAR_VALUE *optimized_clear_value,
10726 REFIID riid,
10727 void **resource);
10728
10729 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
10730 ID3D12Device2 *This,
10731 const D3D12_RESOURCE_DESC *desc,
10732 D3D12_RESOURCE_STATES initial_state,
10733 const D3D12_CLEAR_VALUE *optimized_clear_value,
10734 REFIID riid,
10735 void **resource);
10736
10737 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
10738 ID3D12Device2 *This,
10739 ID3D12DeviceChild *object,
10740 const SECURITY_ATTRIBUTES *attributes,
10741 DWORD access,
10742 const WCHAR *name,
10743 HANDLE *handle);
10744
10745 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
10746 ID3D12Device2 *This,
10747 HANDLE handle,
10748 REFIID riid,
10749 void **object);
10750
10751 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
10752 ID3D12Device2 *This,
10753 const WCHAR *name,
10754 DWORD access,
10755 HANDLE *handle);
10756
10757 HRESULT (STDMETHODCALLTYPE *MakeResident)(
10758 ID3D12Device2 *This,
10759 UINT object_count,
10760 ID3D12Pageable *const *objects);
10761
10762 HRESULT (STDMETHODCALLTYPE *Evict)(
10763 ID3D12Device2 *This,
10764 UINT object_count,
10765 ID3D12Pageable *const *objects);
10766
10767 HRESULT (STDMETHODCALLTYPE *CreateFence)(
10768 ID3D12Device2 *This,
10769 UINT64 initial_value,
10770 D3D12_FENCE_FLAGS flags,
10771 REFIID riid,
10772 void **fence);
10773
10774 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
10775 ID3D12Device2 *This);
10776
10777 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
10778 ID3D12Device2 *This,
10779 const D3D12_RESOURCE_DESC *desc,
10780 UINT first_sub_resource,
10781 UINT sub_resource_count,
10782 UINT64 base_offset,
10783 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
10784 UINT *row_count,
10785 UINT64 *row_size,
10786 UINT64 *total_bytes);
10787
10788 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
10789 ID3D12Device2 *This,
10790 const D3D12_QUERY_HEAP_DESC *desc,
10791 REFIID riid,
10792 void **heap);
10793
10794 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
10795 ID3D12Device2 *This,
10796 WINBOOL enable);
10797
10798 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
10799 ID3D12Device2 *This,
10800 const D3D12_COMMAND_SIGNATURE_DESC *desc,
10801 ID3D12RootSignature *root_signature,
10802 REFIID riid,
10803 void **command_signature);
10804
10805 void (STDMETHODCALLTYPE *GetResourceTiling)(
10806 ID3D12Device2 *This,
10807 ID3D12Resource *resource,
10808 UINT *total_tile_count,
10809 D3D12_PACKED_MIP_INFO *packed_mip_info,
10810 D3D12_TILE_SHAPE *standard_tile_shape,
10811 UINT *sub_resource_tiling_count,
10812 UINT first_sub_resource_tiling,
10813 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
10814
10815 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
10816 ID3D12Device2 *This,
10817 LUID *__ret);
10818
10819 /*** ID3D12Device1 methods ***/
10820 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
10821 ID3D12Device2 *This,
10822 const void *blob,
10823 SIZE_T blob_size,
10824 REFIID iid,
10825 void **lib);
10826
10827 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
10828 ID3D12Device2 *This,
10829 ID3D12Fence *const *fences,
10830 const UINT64 *values,
10831 UINT fence_count,
10832 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
10833 HANDLE event);
10834
10835 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
10836 ID3D12Device2 *This,
10837 UINT object_count,
10838 ID3D12Pageable *const *objects,
10839 const D3D12_RESIDENCY_PRIORITY *priorities);
10840
10841 /*** ID3D12Device2 methods ***/
10842 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
10843 ID3D12Device2 *This,
10844 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
10845 REFIID riid,
10846 void **pipeline_state);
10847
10848 END_INTERFACE
10849} ID3D12Device2Vtbl;
10850
10851interface ID3D12Device2 {
10852 CONST_VTBL ID3D12Device2Vtbl* lpVtbl;
10853};
10854
10855#ifdef COBJMACROS
10856#ifndef WIDL_C_INLINE_WRAPPERS
10857/*** IUnknown methods ***/
10858#define ID3D12Device2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10859#define ID3D12Device2_AddRef(This) (This)->lpVtbl->AddRef(This)
10860#define ID3D12Device2_Release(This) (This)->lpVtbl->Release(This)
10861/*** ID3D12Object methods ***/
10862#define ID3D12Device2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
10863#define ID3D12Device2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
10864#define ID3D12Device2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
10865#define ID3D12Device2_SetName(This,name) (This)->lpVtbl->SetName(This,name)
10866/*** ID3D12Device methods ***/
10867#define ID3D12Device2_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
10868#define ID3D12Device2_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
10869#define ID3D12Device2_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
10870#define ID3D12Device2_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
10871#define ID3D12Device2_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
10872#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)
10873#define ID3D12Device2_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
10874#define ID3D12Device2_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
10875#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
10876#define ID3D12Device2_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
10877#define ID3D12Device2_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
10878#define ID3D12Device2_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
10879#define ID3D12Device2_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
10880#define ID3D12Device2_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
10881#define ID3D12Device2_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
10882#define ID3D12Device2_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
10883#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)
10884#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)
10885#define ID3D12Device2_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device2_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10886#define ID3D12Device2_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device2_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10887#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)
10888#define ID3D12Device2_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
10889#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)
10890#define ID3D12Device2_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
10891#define ID3D12Device2_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
10892#define ID3D12Device2_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
10893#define ID3D12Device2_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
10894#define ID3D12Device2_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
10895#define ID3D12Device2_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
10896#define ID3D12Device2_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
10897#define ID3D12Device2_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
10898#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)
10899#define ID3D12Device2_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
10900#define ID3D12Device2_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
10901#define ID3D12Device2_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
10902#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)
10903#define ID3D12Device2_GetAdapterLuid(This) ID3D12Device2_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
10904/*** ID3D12Device1 methods ***/
10905#define ID3D12Device2_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
10906#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
10907#define ID3D12Device2_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
10908/*** ID3D12Device2 methods ***/
10909#define ID3D12Device2_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
10910#else
10911/*** IUnknown methods ***/
10912static inline HRESULT ID3D12Device2_QueryInterface(ID3D12Device2* This,REFIID riid,void **ppvObject) {
10913 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10914}
10915static inline ULONG ID3D12Device2_AddRef(ID3D12Device2* This) {
10916 return This->lpVtbl->AddRef(This);
10917}
10918static inline ULONG ID3D12Device2_Release(ID3D12Device2* This) {
10919 return This->lpVtbl->Release(This);
10920}
10921/*** ID3D12Object methods ***/
10922static inline HRESULT ID3D12Device2_GetPrivateData(ID3D12Device2* This,REFGUID guid,UINT *data_size,void *data) {
10923 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
10924}
10925static inline HRESULT ID3D12Device2_SetPrivateData(ID3D12Device2* This,REFGUID guid,UINT data_size,const void *data) {
10926 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
10927}
10928static inline HRESULT ID3D12Device2_SetPrivateDataInterface(ID3D12Device2* This,REFGUID guid,const IUnknown *data) {
10929 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
10930}
10931static inline HRESULT ID3D12Device2_SetName(ID3D12Device2* This,const WCHAR *name) {
10932 return This->lpVtbl->SetName(This,name);
10933}
10934/*** ID3D12Device methods ***/
10935static inline UINT ID3D12Device2_GetNodeCount(ID3D12Device2* This) {
10936 return This->lpVtbl->GetNodeCount(This);
10937}
10938static inline HRESULT ID3D12Device2_CreateCommandQueue(ID3D12Device2* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
10939 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
10940}
10941static inline HRESULT ID3D12Device2_CreateCommandAllocator(ID3D12Device2* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
10942 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
10943}
10944static inline HRESULT ID3D12Device2_CreateGraphicsPipelineState(ID3D12Device2* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
10945 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
10946}
10947static inline HRESULT ID3D12Device2_CreateComputePipelineState(ID3D12Device2* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
10948 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
10949}
10950static 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) {
10951 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
10952}
10953static inline HRESULT ID3D12Device2_CheckFeatureSupport(ID3D12Device2* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
10954 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
10955}
10956static inline HRESULT ID3D12Device2_CreateDescriptorHeap(ID3D12Device2* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
10957 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
10958}
10959static inline UINT ID3D12Device2_GetDescriptorHandleIncrementSize(ID3D12Device2* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
10960 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
10961}
10962static inline HRESULT ID3D12Device2_CreateRootSignature(ID3D12Device2* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
10963 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
10964}
10965static inline void ID3D12Device2_CreateConstantBufferView(ID3D12Device2* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10966 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
10967}
10968static inline void ID3D12Device2_CreateShaderResourceView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10969 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
10970}
10971static inline void ID3D12Device2_CreateUnorderedAccessView(ID3D12Device2* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10972 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
10973}
10974static inline void ID3D12Device2_CreateRenderTargetView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10975 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
10976}
10977static inline void ID3D12Device2_CreateDepthStencilView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10978 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
10979}
10980static inline void ID3D12Device2_CreateSampler(ID3D12Device2* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
10981 This->lpVtbl->CreateSampler(This,desc,descriptor);
10982}
10983static 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) {
10984 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);
10985}
10986static 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) {
10987 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
10988}
10989static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device2_GetResourceAllocationInfo(ID3D12Device2* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
10990 D3D12_RESOURCE_ALLOCATION_INFO __ret;
10991 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
10992}
10993static inline D3D12_HEAP_PROPERTIES ID3D12Device2_GetCustomHeapProperties(ID3D12Device2* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
10994 D3D12_HEAP_PROPERTIES __ret;
10995 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
10996}
10997static 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) {
10998 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
10999}
11000static inline HRESULT ID3D12Device2_CreateHeap(ID3D12Device2* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
11001 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
11002}
11003static 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) {
11004 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
11005}
11006static 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) {
11007 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
11008}
11009static inline HRESULT ID3D12Device2_CreateSharedHandle(ID3D12Device2* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
11010 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
11011}
11012static inline HRESULT ID3D12Device2_OpenSharedHandle(ID3D12Device2* This,HANDLE handle,REFIID riid,void **object) {
11013 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
11014}
11015static inline HRESULT ID3D12Device2_OpenSharedHandleByName(ID3D12Device2* This,const WCHAR *name,DWORD access,HANDLE *handle) {
11016 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
11017}
11018static inline HRESULT ID3D12Device2_MakeResident(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects) {
11019 return This->lpVtbl->MakeResident(This,object_count,objects);
11020}
11021static inline HRESULT ID3D12Device2_Evict(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects) {
11022 return This->lpVtbl->Evict(This,object_count,objects);
11023}
11024static inline HRESULT ID3D12Device2_CreateFence(ID3D12Device2* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
11025 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
11026}
11027static inline HRESULT ID3D12Device2_GetDeviceRemovedReason(ID3D12Device2* This) {
11028 return This->lpVtbl->GetDeviceRemovedReason(This);
11029}
11030static 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) {
11031 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
11032}
11033static inline HRESULT ID3D12Device2_CreateQueryHeap(ID3D12Device2* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
11034 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
11035}
11036static inline HRESULT ID3D12Device2_SetStablePowerState(ID3D12Device2* This,WINBOOL enable) {
11037 return This->lpVtbl->SetStablePowerState(This,enable);
11038}
11039static inline HRESULT ID3D12Device2_CreateCommandSignature(ID3D12Device2* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
11040 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
11041}
11042static 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) {
11043 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);
11044}
11045static inline LUID ID3D12Device2_GetAdapterLuid(ID3D12Device2* This) {
11046 LUID __ret;
11047 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
11048}
11049/*** ID3D12Device1 methods ***/
11050static inline HRESULT ID3D12Device2_CreatePipelineLibrary(ID3D12Device2* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
11051 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
11052}
11053static inline HRESULT ID3D12Device2_SetEventOnMultipleFenceCompletion(ID3D12Device2* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
11054 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
11055}
11056static inline HRESULT ID3D12Device2_SetResidencyPriority(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
11057 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
11058}
11059/*** ID3D12Device2 methods ***/
11060static inline HRESULT ID3D12Device2_CreatePipelineState(ID3D12Device2* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
11061 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
11062}
11063#endif
11064#endif
11065
11066#endif
11067
11068
11069#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */
11070
11071/*****************************************************************************
11072 * ID3D12Device3 interface
11073 */
11074#ifndef __ID3D12Device3_INTERFACE_DEFINED__
11075#define __ID3D12Device3_INTERFACE_DEFINED__
11076
11077DEFINE_GUID(IID_ID3D12Device3, 0x81dadc15, 0x2bad, 0x4392, 0x93,0xc5, 0x10,0x13,0x45,0xc4,0xaa,0x98);
11078#if defined(__cplusplus) && !defined(CINTERFACE)
11079MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98")
11080ID3D12Device3 : public ID3D12Device2
11081{
11082 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress(
11083 const void *address,
11084 REFIID riid,
11085 void **heap) = 0;
11086
11087 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping(
11088 HANDLE file_mapping,
11089 REFIID riid,
11090 void **heap) = 0;
11091
11092 virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident(
11093 D3D12_RESIDENCY_FLAGS flags,
11094 UINT num_objects,
11095 ID3D12Pageable *const *objects,
11096 ID3D12Fence *fence,
11097 UINT64 fence_value) = 0;
11098
11099};
11100#ifdef __CRT_UUID_DECL
11101__CRT_UUID_DECL(ID3D12Device3, 0x81dadc15, 0x2bad, 0x4392, 0x93,0xc5, 0x10,0x13,0x45,0xc4,0xaa,0x98)
11102#endif
11103#else
11104typedef struct ID3D12Device3Vtbl {
11105 BEGIN_INTERFACE
11106
11107 /*** IUnknown methods ***/
11108 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11109 ID3D12Device3 *This,
11110 REFIID riid,
11111 void **ppvObject);
11112
11113 ULONG (STDMETHODCALLTYPE *AddRef)(
11114 ID3D12Device3 *This);
11115
11116 ULONG (STDMETHODCALLTYPE *Release)(
11117 ID3D12Device3 *This);
11118
11119 /*** ID3D12Object methods ***/
11120 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
11121 ID3D12Device3 *This,
11122 REFGUID guid,
11123 UINT *data_size,
11124 void *data);
11125
11126 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
11127 ID3D12Device3 *This,
11128 REFGUID guid,
11129 UINT data_size,
11130 const void *data);
11131
11132 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
11133 ID3D12Device3 *This,
11134 REFGUID guid,
11135 const IUnknown *data);
11136
11137 HRESULT (STDMETHODCALLTYPE *SetName)(
11138 ID3D12Device3 *This,
11139 const WCHAR *name);
11140
11141 /*** ID3D12Device methods ***/
11142 UINT (STDMETHODCALLTYPE *GetNodeCount)(
11143 ID3D12Device3 *This);
11144
11145 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
11146 ID3D12Device3 *This,
11147 const D3D12_COMMAND_QUEUE_DESC *desc,
11148 REFIID riid,
11149 void **command_queue);
11150
11151 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
11152 ID3D12Device3 *This,
11153 D3D12_COMMAND_LIST_TYPE type,
11154 REFIID riid,
11155 void **command_allocator);
11156
11157 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
11158 ID3D12Device3 *This,
11159 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
11160 REFIID riid,
11161 void **pipeline_state);
11162
11163 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
11164 ID3D12Device3 *This,
11165 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
11166 REFIID riid,
11167 void **pipeline_state);
11168
11169 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
11170 ID3D12Device3 *This,
11171 UINT node_mask,
11172 D3D12_COMMAND_LIST_TYPE type,
11173 ID3D12CommandAllocator *command_allocator,
11174 ID3D12PipelineState *initial_pipeline_state,
11175 REFIID riid,
11176 void **command_list);
11177
11178 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
11179 ID3D12Device3 *This,
11180 D3D12_FEATURE feature,
11181 void *feature_data,
11182 UINT feature_data_size);
11183
11184 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
11185 ID3D12Device3 *This,
11186 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
11187 REFIID riid,
11188 void **descriptor_heap);
11189
11190 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
11191 ID3D12Device3 *This,
11192 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
11193
11194 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
11195 ID3D12Device3 *This,
11196 UINT node_mask,
11197 const void *bytecode,
11198 SIZE_T bytecode_length,
11199 REFIID riid,
11200 void **root_signature);
11201
11202 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
11203 ID3D12Device3 *This,
11204 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
11205 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11206
11207 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
11208 ID3D12Device3 *This,
11209 ID3D12Resource *resource,
11210 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
11211 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11212
11213 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
11214 ID3D12Device3 *This,
11215 ID3D12Resource *resource,
11216 ID3D12Resource *counter_resource,
11217 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
11218 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11219
11220 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
11221 ID3D12Device3 *This,
11222 ID3D12Resource *resource,
11223 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
11224 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11225
11226 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
11227 ID3D12Device3 *This,
11228 ID3D12Resource *resource,
11229 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
11230 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11231
11232 void (STDMETHODCALLTYPE *CreateSampler)(
11233 ID3D12Device3 *This,
11234 const D3D12_SAMPLER_DESC *desc,
11235 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
11236
11237 void (STDMETHODCALLTYPE *CopyDescriptors)(
11238 ID3D12Device3 *This,
11239 UINT dst_descriptor_range_count,
11240 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
11241 const UINT *dst_descriptor_range_sizes,
11242 UINT src_descriptor_range_count,
11243 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
11244 const UINT *src_descriptor_range_sizes,
11245 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
11246
11247 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
11248 ID3D12Device3 *This,
11249 UINT descriptor_count,
11250 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
11251 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
11252 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
11253
11254 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
11255 ID3D12Device3 *This,
11256 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
11257 UINT visible_mask,
11258 UINT reource_desc_count,
11259 const D3D12_RESOURCE_DESC *resource_descs);
11260
11261 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
11262 ID3D12Device3 *This,
11263 D3D12_HEAP_PROPERTIES *__ret,
11264 UINT node_mask,
11265 D3D12_HEAP_TYPE heap_type);
11266
11267 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
11268 ID3D12Device3 *This,
11269 const D3D12_HEAP_PROPERTIES *heap_properties,
11270 D3D12_HEAP_FLAGS heap_flags,
11271 const D3D12_RESOURCE_DESC *desc,
11272 D3D12_RESOURCE_STATES initial_state,
11273 const D3D12_CLEAR_VALUE *optimized_clear_value,
11274 REFIID riid,
11275 void **resource);
11276
11277 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
11278 ID3D12Device3 *This,
11279 const D3D12_HEAP_DESC *desc,
11280 REFIID riid,
11281 void **heap);
11282
11283 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
11284 ID3D12Device3 *This,
11285 ID3D12Heap *heap,
11286 UINT64 heap_offset,
11287 const D3D12_RESOURCE_DESC *desc,
11288 D3D12_RESOURCE_STATES initial_state,
11289 const D3D12_CLEAR_VALUE *optimized_clear_value,
11290 REFIID riid,
11291 void **resource);
11292
11293 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
11294 ID3D12Device3 *This,
11295 const D3D12_RESOURCE_DESC *desc,
11296 D3D12_RESOURCE_STATES initial_state,
11297 const D3D12_CLEAR_VALUE *optimized_clear_value,
11298 REFIID riid,
11299 void **resource);
11300
11301 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
11302 ID3D12Device3 *This,
11303 ID3D12DeviceChild *object,
11304 const SECURITY_ATTRIBUTES *attributes,
11305 DWORD access,
11306 const WCHAR *name,
11307 HANDLE *handle);
11308
11309 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
11310 ID3D12Device3 *This,
11311 HANDLE handle,
11312 REFIID riid,
11313 void **object);
11314
11315 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
11316 ID3D12Device3 *This,
11317 const WCHAR *name,
11318 DWORD access,
11319 HANDLE *handle);
11320
11321 HRESULT (STDMETHODCALLTYPE *MakeResident)(
11322 ID3D12Device3 *This,
11323 UINT object_count,
11324 ID3D12Pageable *const *objects);
11325
11326 HRESULT (STDMETHODCALLTYPE *Evict)(
11327 ID3D12Device3 *This,
11328 UINT object_count,
11329 ID3D12Pageable *const *objects);
11330
11331 HRESULT (STDMETHODCALLTYPE *CreateFence)(
11332 ID3D12Device3 *This,
11333 UINT64 initial_value,
11334 D3D12_FENCE_FLAGS flags,
11335 REFIID riid,
11336 void **fence);
11337
11338 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
11339 ID3D12Device3 *This);
11340
11341 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
11342 ID3D12Device3 *This,
11343 const D3D12_RESOURCE_DESC *desc,
11344 UINT first_sub_resource,
11345 UINT sub_resource_count,
11346 UINT64 base_offset,
11347 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
11348 UINT *row_count,
11349 UINT64 *row_size,
11350 UINT64 *total_bytes);
11351
11352 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
11353 ID3D12Device3 *This,
11354 const D3D12_QUERY_HEAP_DESC *desc,
11355 REFIID riid,
11356 void **heap);
11357
11358 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
11359 ID3D12Device3 *This,
11360 WINBOOL enable);
11361
11362 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
11363 ID3D12Device3 *This,
11364 const D3D12_COMMAND_SIGNATURE_DESC *desc,
11365 ID3D12RootSignature *root_signature,
11366 REFIID riid,
11367 void **command_signature);
11368
11369 void (STDMETHODCALLTYPE *GetResourceTiling)(
11370 ID3D12Device3 *This,
11371 ID3D12Resource *resource,
11372 UINT *total_tile_count,
11373 D3D12_PACKED_MIP_INFO *packed_mip_info,
11374 D3D12_TILE_SHAPE *standard_tile_shape,
11375 UINT *sub_resource_tiling_count,
11376 UINT first_sub_resource_tiling,
11377 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
11378
11379 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
11380 ID3D12Device3 *This,
11381 LUID *__ret);
11382
11383 /*** ID3D12Device1 methods ***/
11384 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
11385 ID3D12Device3 *This,
11386 const void *blob,
11387 SIZE_T blob_size,
11388 REFIID iid,
11389 void **lib);
11390
11391 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
11392 ID3D12Device3 *This,
11393 ID3D12Fence *const *fences,
11394 const UINT64 *values,
11395 UINT fence_count,
11396 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
11397 HANDLE event);
11398
11399 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
11400 ID3D12Device3 *This,
11401 UINT object_count,
11402 ID3D12Pageable *const *objects,
11403 const D3D12_RESIDENCY_PRIORITY *priorities);
11404
11405 /*** ID3D12Device2 methods ***/
11406 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
11407 ID3D12Device3 *This,
11408 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
11409 REFIID riid,
11410 void **pipeline_state);
11411
11412 /*** ID3D12Device3 methods ***/
11413 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
11414 ID3D12Device3 *This,
11415 const void *address,
11416 REFIID riid,
11417 void **heap);
11418
11419 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
11420 ID3D12Device3 *This,
11421 HANDLE file_mapping,
11422 REFIID riid,
11423 void **heap);
11424
11425 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
11426 ID3D12Device3 *This,
11427 D3D12_RESIDENCY_FLAGS flags,
11428 UINT num_objects,
11429 ID3D12Pageable *const *objects,
11430 ID3D12Fence *fence,
11431 UINT64 fence_value);
11432
11433 END_INTERFACE
11434} ID3D12Device3Vtbl;
11435
11436interface ID3D12Device3 {
11437 CONST_VTBL ID3D12Device3Vtbl* lpVtbl;
11438};
11439
11440#ifdef COBJMACROS
11441#ifndef WIDL_C_INLINE_WRAPPERS
11442/*** IUnknown methods ***/
11443#define ID3D12Device3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11444#define ID3D12Device3_AddRef(This) (This)->lpVtbl->AddRef(This)
11445#define ID3D12Device3_Release(This) (This)->lpVtbl->Release(This)
11446/*** ID3D12Object methods ***/
11447#define ID3D12Device3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
11448#define ID3D12Device3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
11449#define ID3D12Device3_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
11450#define ID3D12Device3_SetName(This,name) (This)->lpVtbl->SetName(This,name)
11451/*** ID3D12Device methods ***/
11452#define ID3D12Device3_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
11453#define ID3D12Device3_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
11454#define ID3D12Device3_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
11455#define ID3D12Device3_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
11456#define ID3D12Device3_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
11457#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)
11458#define ID3D12Device3_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
11459#define ID3D12Device3_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
11460#define ID3D12Device3_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
11461#define ID3D12Device3_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
11462#define ID3D12Device3_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
11463#define ID3D12Device3_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
11464#define ID3D12Device3_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
11465#define ID3D12Device3_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
11466#define ID3D12Device3_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
11467#define ID3D12Device3_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
11468#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)
11469#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)
11470#define ID3D12Device3_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device3_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
11471#define ID3D12Device3_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device3_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
11472#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)
11473#define ID3D12Device3_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
11474#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)
11475#define ID3D12Device3_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
11476#define ID3D12Device3_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
11477#define ID3D12Device3_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
11478#define ID3D12Device3_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
11479#define ID3D12Device3_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
11480#define ID3D12Device3_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
11481#define ID3D12Device3_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
11482#define ID3D12Device3_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
11483#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)
11484#define ID3D12Device3_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
11485#define ID3D12Device3_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
11486#define ID3D12Device3_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
11487#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)
11488#define ID3D12Device3_GetAdapterLuid(This) ID3D12Device3_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
11489/*** ID3D12Device1 methods ***/
11490#define ID3D12Device3_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
11491#define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
11492#define ID3D12Device3_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
11493/*** ID3D12Device2 methods ***/
11494#define ID3D12Device3_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
11495/*** ID3D12Device3 methods ***/
11496#define ID3D12Device3_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
11497#define ID3D12Device3_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
11498#define ID3D12Device3_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
11499#else
11500/*** IUnknown methods ***/
11501static inline HRESULT ID3D12Device3_QueryInterface(ID3D12Device3* This,REFIID riid,void **ppvObject) {
11502 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11503}
11504static inline ULONG ID3D12Device3_AddRef(ID3D12Device3* This) {
11505 return This->lpVtbl->AddRef(This);
11506}
11507static inline ULONG ID3D12Device3_Release(ID3D12Device3* This) {
11508 return This->lpVtbl->Release(This);
11509}
11510/*** ID3D12Object methods ***/
11511static inline HRESULT ID3D12Device3_GetPrivateData(ID3D12Device3* This,REFGUID guid,UINT *data_size,void *data) {
11512 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
11513}
11514static inline HRESULT ID3D12Device3_SetPrivateData(ID3D12Device3* This,REFGUID guid,UINT data_size,const void *data) {
11515 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
11516}
11517static inline HRESULT ID3D12Device3_SetPrivateDataInterface(ID3D12Device3* This,REFGUID guid,const IUnknown *data) {
11518 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
11519}
11520static inline HRESULT ID3D12Device3_SetName(ID3D12Device3* This,const WCHAR *name) {
11521 return This->lpVtbl->SetName(This,name);
11522}
11523/*** ID3D12Device methods ***/
11524static inline UINT ID3D12Device3_GetNodeCount(ID3D12Device3* This) {
11525 return This->lpVtbl->GetNodeCount(This);
11526}
11527static inline HRESULT ID3D12Device3_CreateCommandQueue(ID3D12Device3* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
11528 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
11529}
11530static inline HRESULT ID3D12Device3_CreateCommandAllocator(ID3D12Device3* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
11531 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
11532}
11533static inline HRESULT ID3D12Device3_CreateGraphicsPipelineState(ID3D12Device3* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
11534 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
11535}
11536static inline HRESULT ID3D12Device3_CreateComputePipelineState(ID3D12Device3* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
11537 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
11538}
11539static 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) {
11540 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
11541}
11542static inline HRESULT ID3D12Device3_CheckFeatureSupport(ID3D12Device3* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
11543 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
11544}
11545static inline HRESULT ID3D12Device3_CreateDescriptorHeap(ID3D12Device3* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
11546 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
11547}
11548static inline UINT ID3D12Device3_GetDescriptorHandleIncrementSize(ID3D12Device3* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
11549 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
11550}
11551static inline HRESULT ID3D12Device3_CreateRootSignature(ID3D12Device3* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
11552 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
11553}
11554static inline void ID3D12Device3_CreateConstantBufferView(ID3D12Device3* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11555 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
11556}
11557static inline void ID3D12Device3_CreateShaderResourceView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11558 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
11559}
11560static inline void ID3D12Device3_CreateUnorderedAccessView(ID3D12Device3* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11561 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
11562}
11563static inline void ID3D12Device3_CreateRenderTargetView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11564 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
11565}
11566static inline void ID3D12Device3_CreateDepthStencilView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11567 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
11568}
11569static inline void ID3D12Device3_CreateSampler(ID3D12Device3* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
11570 This->lpVtbl->CreateSampler(This,desc,descriptor);
11571}
11572static 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) {
11573 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);
11574}
11575static 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) {
11576 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
11577}
11578static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device3_GetResourceAllocationInfo(ID3D12Device3* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
11579 D3D12_RESOURCE_ALLOCATION_INFO __ret;
11580 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
11581}
11582static inline D3D12_HEAP_PROPERTIES ID3D12Device3_GetCustomHeapProperties(ID3D12Device3* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
11583 D3D12_HEAP_PROPERTIES __ret;
11584 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
11585}
11586static 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) {
11587 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
11588}
11589static inline HRESULT ID3D12Device3_CreateHeap(ID3D12Device3* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
11590 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
11591}
11592static 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) {
11593 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
11594}
11595static 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) {
11596 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
11597}
11598static inline HRESULT ID3D12Device3_CreateSharedHandle(ID3D12Device3* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
11599 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
11600}
11601static inline HRESULT ID3D12Device3_OpenSharedHandle(ID3D12Device3* This,HANDLE handle,REFIID riid,void **object) {
11602 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
11603}
11604static inline HRESULT ID3D12Device3_OpenSharedHandleByName(ID3D12Device3* This,const WCHAR *name,DWORD access,HANDLE *handle) {
11605 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
11606}
11607static inline HRESULT ID3D12Device3_MakeResident(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects) {
11608 return This->lpVtbl->MakeResident(This,object_count,objects);
11609}
11610static inline HRESULT ID3D12Device3_Evict(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects) {
11611 return This->lpVtbl->Evict(This,object_count,objects);
11612}
11613static inline HRESULT ID3D12Device3_CreateFence(ID3D12Device3* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
11614 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
11615}
11616static inline HRESULT ID3D12Device3_GetDeviceRemovedReason(ID3D12Device3* This) {
11617 return This->lpVtbl->GetDeviceRemovedReason(This);
11618}
11619static 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) {
11620 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
11621}
11622static inline HRESULT ID3D12Device3_CreateQueryHeap(ID3D12Device3* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
11623 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
11624}
11625static inline HRESULT ID3D12Device3_SetStablePowerState(ID3D12Device3* This,WINBOOL enable) {
11626 return This->lpVtbl->SetStablePowerState(This,enable);
11627}
11628static inline HRESULT ID3D12Device3_CreateCommandSignature(ID3D12Device3* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
11629 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
11630}
11631static 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) {
11632 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);
11633}
11634static inline LUID ID3D12Device3_GetAdapterLuid(ID3D12Device3* This) {
11635 LUID __ret;
11636 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
11637}
11638/*** ID3D12Device1 methods ***/
11639static inline HRESULT ID3D12Device3_CreatePipelineLibrary(ID3D12Device3* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
11640 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
11641}
11642static inline HRESULT ID3D12Device3_SetEventOnMultipleFenceCompletion(ID3D12Device3* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
11643 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
11644}
11645static inline HRESULT ID3D12Device3_SetResidencyPriority(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
11646 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
11647}
11648/*** ID3D12Device2 methods ***/
11649static inline HRESULT ID3D12Device3_CreatePipelineState(ID3D12Device3* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
11650 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
11651}
11652/*** ID3D12Device3 methods ***/
11653static inline HRESULT ID3D12Device3_OpenExistingHeapFromAddress(ID3D12Device3* This,const void *address,REFIID riid,void **heap) {
11654 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
11655}
11656static inline HRESULT ID3D12Device3_OpenExistingHeapFromFileMapping(ID3D12Device3* This,HANDLE file_mapping,REFIID riid,void **heap) {
11657 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
11658}
11659static inline HRESULT ID3D12Device3_EnqueueMakeResident(ID3D12Device3* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
11660 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
11661}
11662#endif
11663#endif
11664
11665#endif
11666
11667
11668#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */
11669
11670/*****************************************************************************
11671 * ID3D12RootSignatureDeserializer interface
11672 */
11673#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
11674#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
11675
11676DEFINE_GUID(IID_ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46);
11677#if defined(__cplusplus) && !defined(CINTERFACE)
11678MIDL_INTERFACE("34ab647b-3cc8-46ac-841b-c0965645c046")
11679ID3D12RootSignatureDeserializer : public IUnknown
11680{
11681 virtual const D3D12_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetRootSignatureDesc(
11682 ) = 0;
11683
11684};
11685#ifdef __CRT_UUID_DECL
11686__CRT_UUID_DECL(ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46)
11687#endif
11688#else
11689typedef struct ID3D12RootSignatureDeserializerVtbl {
11690 BEGIN_INTERFACE
11691
11692 /*** IUnknown methods ***/
11693 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11694 ID3D12RootSignatureDeserializer *This,
11695 REFIID riid,
11696 void **ppvObject);
11697
11698 ULONG (STDMETHODCALLTYPE *AddRef)(
11699 ID3D12RootSignatureDeserializer *This);
11700
11701 ULONG (STDMETHODCALLTYPE *Release)(
11702 ID3D12RootSignatureDeserializer *This);
11703
11704 /*** ID3D12RootSignatureDeserializer methods ***/
11705 const D3D12_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetRootSignatureDesc)(
11706 ID3D12RootSignatureDeserializer *This);
11707
11708 END_INTERFACE
11709} ID3D12RootSignatureDeserializerVtbl;
11710
11711interface ID3D12RootSignatureDeserializer {
11712 CONST_VTBL ID3D12RootSignatureDeserializerVtbl* lpVtbl;
11713};
11714
11715#ifdef COBJMACROS
11716#ifndef WIDL_C_INLINE_WRAPPERS
11717/*** IUnknown methods ***/
11718#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11719#define ID3D12RootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
11720#define ID3D12RootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
11721/*** ID3D12RootSignatureDeserializer methods ***/
11722#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) (This)->lpVtbl->GetRootSignatureDesc(This)
11723#else
11724/*** IUnknown methods ***/
11725static inline HRESULT ID3D12RootSignatureDeserializer_QueryInterface(ID3D12RootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
11726 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11727}
11728static inline ULONG ID3D12RootSignatureDeserializer_AddRef(ID3D12RootSignatureDeserializer* This) {
11729 return This->lpVtbl->AddRef(This);
11730}
11731static inline ULONG ID3D12RootSignatureDeserializer_Release(ID3D12RootSignatureDeserializer* This) {
11732 return This->lpVtbl->Release(This);
11733}
11734/*** ID3D12RootSignatureDeserializer methods ***/
11735static inline const D3D12_ROOT_SIGNATURE_DESC * ID3D12RootSignatureDeserializer_GetRootSignatureDesc(ID3D12RootSignatureDeserializer* This) {
11736 return This->lpVtbl->GetRootSignatureDesc(This);
11737}
11738#endif
11739#endif
11740
11741#endif
11742
11743
11744#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
11745
11746/*****************************************************************************
11747 * ID3D12VersionedRootSignatureDeserializer interface
11748 */
11749#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
11750#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
11751
11752DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0);
11753#if defined(__cplusplus) && !defined(CINTERFACE)
11754MIDL_INTERFACE("7f91ce67-090c-4bb7-b78e-ed8ff2e31da0")
11755ID3D12VersionedRootSignatureDeserializer : public IUnknown
11756{
11757 virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
11758 D3D_ROOT_SIGNATURE_VERSION version,
11759 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) = 0;
11760
11761 virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc(
11762 ) = 0;
11763
11764};
11765#ifdef __CRT_UUID_DECL
11766__CRT_UUID_DECL(ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0)
11767#endif
11768#else
11769typedef struct ID3D12VersionedRootSignatureDeserializerVtbl {
11770 BEGIN_INTERFACE
11771
11772 /*** IUnknown methods ***/
11773 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11774 ID3D12VersionedRootSignatureDeserializer *This,
11775 REFIID riid,
11776 void **ppvObject);
11777
11778 ULONG (STDMETHODCALLTYPE *AddRef)(
11779 ID3D12VersionedRootSignatureDeserializer *This);
11780
11781 ULONG (STDMETHODCALLTYPE *Release)(
11782 ID3D12VersionedRootSignatureDeserializer *This);
11783
11784 /*** ID3D12VersionedRootSignatureDeserializer methods ***/
11785 HRESULT (STDMETHODCALLTYPE *GetRootSignatureDescAtVersion)(
11786 ID3D12VersionedRootSignatureDeserializer *This,
11787 D3D_ROOT_SIGNATURE_VERSION version,
11788 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc);
11789
11790 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc)(
11791 ID3D12VersionedRootSignatureDeserializer *This);
11792
11793 END_INTERFACE
11794} ID3D12VersionedRootSignatureDeserializerVtbl;
11795
11796interface ID3D12VersionedRootSignatureDeserializer {
11797 CONST_VTBL ID3D12VersionedRootSignatureDeserializerVtbl* lpVtbl;
11798};
11799
11800#ifdef COBJMACROS
11801#ifndef WIDL_C_INLINE_WRAPPERS
11802/*** IUnknown methods ***/
11803#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11804#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
11805#define ID3D12VersionedRootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
11806/*** ID3D12VersionedRootSignatureDeserializer methods ***/
11807#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,version,desc) (This)->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc)
11808#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) (This)->lpVtbl->GetUnconvertedRootSignatureDesc(This)
11809#else
11810/*** IUnknown methods ***/
11811static inline HRESULT ID3D12VersionedRootSignatureDeserializer_QueryInterface(ID3D12VersionedRootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
11812 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11813}
11814static inline ULONG ID3D12VersionedRootSignatureDeserializer_AddRef(ID3D12VersionedRootSignatureDeserializer* This) {
11815 return This->lpVtbl->AddRef(This);
11816}
11817static inline ULONG ID3D12VersionedRootSignatureDeserializer_Release(ID3D12VersionedRootSignatureDeserializer* This) {
11818 return This->lpVtbl->Release(This);
11819}
11820/*** ID3D12VersionedRootSignatureDeserializer methods ***/
11821static inline HRESULT ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(ID3D12VersionedRootSignatureDeserializer* This,D3D_ROOT_SIGNATURE_VERSION version,const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) {
11822 return This->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc);
11823}
11824static inline const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(ID3D12VersionedRootSignatureDeserializer* This) {
11825 return This->lpVtbl->GetUnconvertedRootSignatureDesc(This);
11826}
11827#endif
11828#endif
11829
11830#endif
11831
11832
11833#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
11834
11835typedef enum D3D12_COMMAND_LIST_FLAGS {
11836 D3D12_COMMAND_LIST_FLAG_NONE = 0x0
11837} D3D12_COMMAND_LIST_FLAGS;
11838DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_FLAGS);
11839typedef enum D3D12_COMMAND_POOL_FLAGS {
11840 D3D12_COMMAND_POOL_FLAG_NONE = 0x0
11841} D3D12_COMMAND_POOL_FLAGS;
11842DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_POOL_FLAGS);
11843typedef enum D3D12_COMMAND_RECORDER_FLAGS {
11844 D3D12_COMMAND_RECORDER_FLAG_NONE = 0x0
11845} D3D12_COMMAND_RECORDER_FLAGS;
11846DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_RECORDER_FLAGS);
11847/*****************************************************************************
11848 * ID3D12Device4 interface
11849 */
11850#ifndef __ID3D12Device4_INTERFACE_DEFINED__
11851#define __ID3D12Device4_INTERFACE_DEFINED__
11852
11853DEFINE_GUID(IID_ID3D12Device4, 0xe865df17, 0xa9ee, 0x46f9, 0xa4,0x63, 0x30,0x98,0x31,0x5a,0xa2,0xe5);
11854#if defined(__cplusplus) && !defined(CINTERFACE)
11855MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5")
11856ID3D12Device4 : public ID3D12Device3
11857{
11858 virtual HRESULT STDMETHODCALLTYPE CreateCommandList1(
11859 UINT node_mask,
11860 D3D12_COMMAND_LIST_TYPE type,
11861 D3D12_COMMAND_LIST_FLAGS flags,
11862 REFIID riid,
11863 void **command_list) = 0;
11864
11865 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession(
11866 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
11867 REFIID riid,
11868 void **session) = 0;
11869
11870 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1(
11871 const D3D12_HEAP_PROPERTIES *heap_properties,
11872 D3D12_HEAP_FLAGS heap_flags,
11873 const D3D12_RESOURCE_DESC *desc,
11874 D3D12_RESOURCE_STATES initial_resource_state,
11875 const D3D12_CLEAR_VALUE *optimized_clear_value,
11876 ID3D12ProtectedResourceSession *protected_session,
11877 REFIID riid_resource,
11878 void **resource) = 0;
11879
11880 virtual HRESULT STDMETHODCALLTYPE CreateHeap1(
11881 const D3D12_HEAP_DESC *desc,
11882 ID3D12ProtectedResourceSession *protected_session,
11883 REFIID riid,
11884 void **heap) = 0;
11885
11886 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1(
11887 const D3D12_RESOURCE_DESC *desc,
11888 D3D12_RESOURCE_STATES initial_state,
11889 const D3D12_CLEAR_VALUE *optimized_clear_value,
11890 ID3D12ProtectedResourceSession *protected_session,
11891 REFIID riid,
11892 void **resource) = 0;
11893
11894#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
11895 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo1(
11896 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
11897 UINT visible_mask,
11898 UINT resource_descs_count,
11899 const D3D12_RESOURCE_DESC *resource_descs,
11900 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0;
11901 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
11902 UINT visible_mask,
11903 UINT resource_descs_count,
11904 const D3D12_RESOURCE_DESC *resource_descs,
11905 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1)
11906 {
11907 D3D12_RESOURCE_ALLOCATION_INFO __ret;
11908 return *GetResourceAllocationInfo1(&__ret, visible_mask, resource_descs_count, resource_descs, resource_allocation_info1);
11909 }
11910#else
11911 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
11912 UINT visible_mask,
11913 UINT resource_descs_count,
11914 const D3D12_RESOURCE_DESC *resource_descs,
11915 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0;
11916#endif
11917
11918};
11919#ifdef __CRT_UUID_DECL
11920__CRT_UUID_DECL(ID3D12Device4, 0xe865df17, 0xa9ee, 0x46f9, 0xa4,0x63, 0x30,0x98,0x31,0x5a,0xa2,0xe5)
11921#endif
11922#else
11923typedef struct ID3D12Device4Vtbl {
11924 BEGIN_INTERFACE
11925
11926 /*** IUnknown methods ***/
11927 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11928 ID3D12Device4 *This,
11929 REFIID riid,
11930 void **ppvObject);
11931
11932 ULONG (STDMETHODCALLTYPE *AddRef)(
11933 ID3D12Device4 *This);
11934
11935 ULONG (STDMETHODCALLTYPE *Release)(
11936 ID3D12Device4 *This);
11937
11938 /*** ID3D12Object methods ***/
11939 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
11940 ID3D12Device4 *This,
11941 REFGUID guid,
11942 UINT *data_size,
11943 void *data);
11944
11945 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
11946 ID3D12Device4 *This,
11947 REFGUID guid,
11948 UINT data_size,
11949 const void *data);
11950
11951 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
11952 ID3D12Device4 *This,
11953 REFGUID guid,
11954 const IUnknown *data);
11955
11956 HRESULT (STDMETHODCALLTYPE *SetName)(
11957 ID3D12Device4 *This,
11958 const WCHAR *name);
11959
11960 /*** ID3D12Device methods ***/
11961 UINT (STDMETHODCALLTYPE *GetNodeCount)(
11962 ID3D12Device4 *This);
11963
11964 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
11965 ID3D12Device4 *This,
11966 const D3D12_COMMAND_QUEUE_DESC *desc,
11967 REFIID riid,
11968 void **command_queue);
11969
11970 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
11971 ID3D12Device4 *This,
11972 D3D12_COMMAND_LIST_TYPE type,
11973 REFIID riid,
11974 void **command_allocator);
11975
11976 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
11977 ID3D12Device4 *This,
11978 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
11979 REFIID riid,
11980 void **pipeline_state);
11981
11982 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
11983 ID3D12Device4 *This,
11984 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
11985 REFIID riid,
11986 void **pipeline_state);
11987
11988 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
11989 ID3D12Device4 *This,
11990 UINT node_mask,
11991 D3D12_COMMAND_LIST_TYPE type,
11992 ID3D12CommandAllocator *command_allocator,
11993 ID3D12PipelineState *initial_pipeline_state,
11994 REFIID riid,
11995 void **command_list);
11996
11997 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
11998 ID3D12Device4 *This,
11999 D3D12_FEATURE feature,
12000 void *feature_data,
12001 UINT feature_data_size);
12002
12003 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
12004 ID3D12Device4 *This,
12005 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
12006 REFIID riid,
12007 void **descriptor_heap);
12008
12009 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
12010 ID3D12Device4 *This,
12011 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
12012
12013 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
12014 ID3D12Device4 *This,
12015 UINT node_mask,
12016 const void *bytecode,
12017 SIZE_T bytecode_length,
12018 REFIID riid,
12019 void **root_signature);
12020
12021 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
12022 ID3D12Device4 *This,
12023 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
12024 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12025
12026 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
12027 ID3D12Device4 *This,
12028 ID3D12Resource *resource,
12029 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
12030 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12031
12032 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
12033 ID3D12Device4 *This,
12034 ID3D12Resource *resource,
12035 ID3D12Resource *counter_resource,
12036 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
12037 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12038
12039 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
12040 ID3D12Device4 *This,
12041 ID3D12Resource *resource,
12042 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
12043 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12044
12045 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
12046 ID3D12Device4 *This,
12047 ID3D12Resource *resource,
12048 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
12049 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12050
12051 void (STDMETHODCALLTYPE *CreateSampler)(
12052 ID3D12Device4 *This,
12053 const D3D12_SAMPLER_DESC *desc,
12054 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
12055
12056 void (STDMETHODCALLTYPE *CopyDescriptors)(
12057 ID3D12Device4 *This,
12058 UINT dst_descriptor_range_count,
12059 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
12060 const UINT *dst_descriptor_range_sizes,
12061 UINT src_descriptor_range_count,
12062 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
12063 const UINT *src_descriptor_range_sizes,
12064 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
12065
12066 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
12067 ID3D12Device4 *This,
12068 UINT descriptor_count,
12069 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
12070 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
12071 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
12072
12073 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
12074 ID3D12Device4 *This,
12075 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
12076 UINT visible_mask,
12077 UINT reource_desc_count,
12078 const D3D12_RESOURCE_DESC *resource_descs);
12079
12080 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
12081 ID3D12Device4 *This,
12082 D3D12_HEAP_PROPERTIES *__ret,
12083 UINT node_mask,
12084 D3D12_HEAP_TYPE heap_type);
12085
12086 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
12087 ID3D12Device4 *This,
12088 const D3D12_HEAP_PROPERTIES *heap_properties,
12089 D3D12_HEAP_FLAGS heap_flags,
12090 const D3D12_RESOURCE_DESC *desc,
12091 D3D12_RESOURCE_STATES initial_state,
12092 const D3D12_CLEAR_VALUE *optimized_clear_value,
12093 REFIID riid,
12094 void **resource);
12095
12096 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
12097 ID3D12Device4 *This,
12098 const D3D12_HEAP_DESC *desc,
12099 REFIID riid,
12100 void **heap);
12101
12102 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
12103 ID3D12Device4 *This,
12104 ID3D12Heap *heap,
12105 UINT64 heap_offset,
12106 const D3D12_RESOURCE_DESC *desc,
12107 D3D12_RESOURCE_STATES initial_state,
12108 const D3D12_CLEAR_VALUE *optimized_clear_value,
12109 REFIID riid,
12110 void **resource);
12111
12112 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
12113 ID3D12Device4 *This,
12114 const D3D12_RESOURCE_DESC *desc,
12115 D3D12_RESOURCE_STATES initial_state,
12116 const D3D12_CLEAR_VALUE *optimized_clear_value,
12117 REFIID riid,
12118 void **resource);
12119
12120 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
12121 ID3D12Device4 *This,
12122 ID3D12DeviceChild *object,
12123 const SECURITY_ATTRIBUTES *attributes,
12124 DWORD access,
12125 const WCHAR *name,
12126 HANDLE *handle);
12127
12128 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
12129 ID3D12Device4 *This,
12130 HANDLE handle,
12131 REFIID riid,
12132 void **object);
12133
12134 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
12135 ID3D12Device4 *This,
12136 const WCHAR *name,
12137 DWORD access,
12138 HANDLE *handle);
12139
12140 HRESULT (STDMETHODCALLTYPE *MakeResident)(
12141 ID3D12Device4 *This,
12142 UINT object_count,
12143 ID3D12Pageable *const *objects);
12144
12145 HRESULT (STDMETHODCALLTYPE *Evict)(
12146 ID3D12Device4 *This,
12147 UINT object_count,
12148 ID3D12Pageable *const *objects);
12149
12150 HRESULT (STDMETHODCALLTYPE *CreateFence)(
12151 ID3D12Device4 *This,
12152 UINT64 initial_value,
12153 D3D12_FENCE_FLAGS flags,
12154 REFIID riid,
12155 void **fence);
12156
12157 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
12158 ID3D12Device4 *This);
12159
12160 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
12161 ID3D12Device4 *This,
12162 const D3D12_RESOURCE_DESC *desc,
12163 UINT first_sub_resource,
12164 UINT sub_resource_count,
12165 UINT64 base_offset,
12166 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
12167 UINT *row_count,
12168 UINT64 *row_size,
12169 UINT64 *total_bytes);
12170
12171 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
12172 ID3D12Device4 *This,
12173 const D3D12_QUERY_HEAP_DESC *desc,
12174 REFIID riid,
12175 void **heap);
12176
12177 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
12178 ID3D12Device4 *This,
12179 WINBOOL enable);
12180
12181 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
12182 ID3D12Device4 *This,
12183 const D3D12_COMMAND_SIGNATURE_DESC *desc,
12184 ID3D12RootSignature *root_signature,
12185 REFIID riid,
12186 void **command_signature);
12187
12188 void (STDMETHODCALLTYPE *GetResourceTiling)(
12189 ID3D12Device4 *This,
12190 ID3D12Resource *resource,
12191 UINT *total_tile_count,
12192 D3D12_PACKED_MIP_INFO *packed_mip_info,
12193 D3D12_TILE_SHAPE *standard_tile_shape,
12194 UINT *sub_resource_tiling_count,
12195 UINT first_sub_resource_tiling,
12196 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
12197
12198 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
12199 ID3D12Device4 *This,
12200 LUID *__ret);
12201
12202 /*** ID3D12Device1 methods ***/
12203 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
12204 ID3D12Device4 *This,
12205 const void *blob,
12206 SIZE_T blob_size,
12207 REFIID iid,
12208 void **lib);
12209
12210 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
12211 ID3D12Device4 *This,
12212 ID3D12Fence *const *fences,
12213 const UINT64 *values,
12214 UINT fence_count,
12215 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
12216 HANDLE event);
12217
12218 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
12219 ID3D12Device4 *This,
12220 UINT object_count,
12221 ID3D12Pageable *const *objects,
12222 const D3D12_RESIDENCY_PRIORITY *priorities);
12223
12224 /*** ID3D12Device2 methods ***/
12225 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
12226 ID3D12Device4 *This,
12227 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
12228 REFIID riid,
12229 void **pipeline_state);
12230
12231 /*** ID3D12Device3 methods ***/
12232 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
12233 ID3D12Device4 *This,
12234 const void *address,
12235 REFIID riid,
12236 void **heap);
12237
12238 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
12239 ID3D12Device4 *This,
12240 HANDLE file_mapping,
12241 REFIID riid,
12242 void **heap);
12243
12244 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
12245 ID3D12Device4 *This,
12246 D3D12_RESIDENCY_FLAGS flags,
12247 UINT num_objects,
12248 ID3D12Pageable *const *objects,
12249 ID3D12Fence *fence,
12250 UINT64 fence_value);
12251
12252 /*** ID3D12Device4 methods ***/
12253 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
12254 ID3D12Device4 *This,
12255 UINT node_mask,
12256 D3D12_COMMAND_LIST_TYPE type,
12257 D3D12_COMMAND_LIST_FLAGS flags,
12258 REFIID riid,
12259 void **command_list);
12260
12261 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
12262 ID3D12Device4 *This,
12263 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
12264 REFIID riid,
12265 void **session);
12266
12267 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
12268 ID3D12Device4 *This,
12269 const D3D12_HEAP_PROPERTIES *heap_properties,
12270 D3D12_HEAP_FLAGS heap_flags,
12271 const D3D12_RESOURCE_DESC *desc,
12272 D3D12_RESOURCE_STATES initial_resource_state,
12273 const D3D12_CLEAR_VALUE *optimized_clear_value,
12274 ID3D12ProtectedResourceSession *protected_session,
12275 REFIID riid_resource,
12276 void **resource);
12277
12278 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
12279 ID3D12Device4 *This,
12280 const D3D12_HEAP_DESC *desc,
12281 ID3D12ProtectedResourceSession *protected_session,
12282 REFIID riid,
12283 void **heap);
12284
12285 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
12286 ID3D12Device4 *This,
12287 const D3D12_RESOURCE_DESC *desc,
12288 D3D12_RESOURCE_STATES initial_state,
12289 const D3D12_CLEAR_VALUE *optimized_clear_value,
12290 ID3D12ProtectedResourceSession *protected_session,
12291 REFIID riid,
12292 void **resource);
12293
12294 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
12295 ID3D12Device4 *This,
12296 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
12297 UINT visible_mask,
12298 UINT resource_descs_count,
12299 const D3D12_RESOURCE_DESC *resource_descs,
12300 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
12301
12302 END_INTERFACE
12303} ID3D12Device4Vtbl;
12304
12305interface ID3D12Device4 {
12306 CONST_VTBL ID3D12Device4Vtbl* lpVtbl;
12307};
12308
12309#ifdef COBJMACROS
12310#ifndef WIDL_C_INLINE_WRAPPERS
12311/*** IUnknown methods ***/
12312#define ID3D12Device4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12313#define ID3D12Device4_AddRef(This) (This)->lpVtbl->AddRef(This)
12314#define ID3D12Device4_Release(This) (This)->lpVtbl->Release(This)
12315/*** ID3D12Object methods ***/
12316#define ID3D12Device4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
12317#define ID3D12Device4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
12318#define ID3D12Device4_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
12319#define ID3D12Device4_SetName(This,name) (This)->lpVtbl->SetName(This,name)
12320/*** ID3D12Device methods ***/
12321#define ID3D12Device4_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
12322#define ID3D12Device4_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
12323#define ID3D12Device4_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
12324#define ID3D12Device4_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
12325#define ID3D12Device4_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
12326#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)
12327#define ID3D12Device4_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
12328#define ID3D12Device4_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
12329#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
12330#define ID3D12Device4_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
12331#define ID3D12Device4_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
12332#define ID3D12Device4_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
12333#define ID3D12Device4_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
12334#define ID3D12Device4_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
12335#define ID3D12Device4_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
12336#define ID3D12Device4_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
12337#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)
12338#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)
12339#define ID3D12Device4_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device4_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12340#define ID3D12Device4_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device4_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12341#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)
12342#define ID3D12Device4_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
12343#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)
12344#define ID3D12Device4_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
12345#define ID3D12Device4_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
12346#define ID3D12Device4_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
12347#define ID3D12Device4_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
12348#define ID3D12Device4_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
12349#define ID3D12Device4_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
12350#define ID3D12Device4_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
12351#define ID3D12Device4_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
12352#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)
12353#define ID3D12Device4_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
12354#define ID3D12Device4_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
12355#define ID3D12Device4_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
12356#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)
12357#define ID3D12Device4_GetAdapterLuid(This) ID3D12Device4_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12358/*** ID3D12Device1 methods ***/
12359#define ID3D12Device4_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
12360#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
12361#define ID3D12Device4_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
12362/*** ID3D12Device2 methods ***/
12363#define ID3D12Device4_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
12364/*** ID3D12Device3 methods ***/
12365#define ID3D12Device4_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
12366#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
12367#define ID3D12Device4_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
12368/*** ID3D12Device4 methods ***/
12369#define ID3D12Device4_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
12370#define ID3D12Device4_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
12371#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)
12372#define ID3D12Device4_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
12373#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)
12374#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
12375#else
12376/*** IUnknown methods ***/
12377static inline HRESULT ID3D12Device4_QueryInterface(ID3D12Device4* This,REFIID riid,void **ppvObject) {
12378 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12379}
12380static inline ULONG ID3D12Device4_AddRef(ID3D12Device4* This) {
12381 return This->lpVtbl->AddRef(This);
12382}
12383static inline ULONG ID3D12Device4_Release(ID3D12Device4* This) {
12384 return This->lpVtbl->Release(This);
12385}
12386/*** ID3D12Object methods ***/
12387static inline HRESULT ID3D12Device4_GetPrivateData(ID3D12Device4* This,REFGUID guid,UINT *data_size,void *data) {
12388 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
12389}
12390static inline HRESULT ID3D12Device4_SetPrivateData(ID3D12Device4* This,REFGUID guid,UINT data_size,const void *data) {
12391 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
12392}
12393static inline HRESULT ID3D12Device4_SetPrivateDataInterface(ID3D12Device4* This,REFGUID guid,const IUnknown *data) {
12394 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
12395}
12396static inline HRESULT ID3D12Device4_SetName(ID3D12Device4* This,const WCHAR *name) {
12397 return This->lpVtbl->SetName(This,name);
12398}
12399/*** ID3D12Device methods ***/
12400static inline UINT ID3D12Device4_GetNodeCount(ID3D12Device4* This) {
12401 return This->lpVtbl->GetNodeCount(This);
12402}
12403static inline HRESULT ID3D12Device4_CreateCommandQueue(ID3D12Device4* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
12404 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
12405}
12406static inline HRESULT ID3D12Device4_CreateCommandAllocator(ID3D12Device4* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
12407 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
12408}
12409static inline HRESULT ID3D12Device4_CreateGraphicsPipelineState(ID3D12Device4* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
12410 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
12411}
12412static inline HRESULT ID3D12Device4_CreateComputePipelineState(ID3D12Device4* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
12413 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
12414}
12415static 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) {
12416 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
12417}
12418static inline HRESULT ID3D12Device4_CheckFeatureSupport(ID3D12Device4* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
12419 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
12420}
12421static inline HRESULT ID3D12Device4_CreateDescriptorHeap(ID3D12Device4* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
12422 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
12423}
12424static inline UINT ID3D12Device4_GetDescriptorHandleIncrementSize(ID3D12Device4* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
12425 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
12426}
12427static inline HRESULT ID3D12Device4_CreateRootSignature(ID3D12Device4* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
12428 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
12429}
12430static inline void ID3D12Device4_CreateConstantBufferView(ID3D12Device4* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12431 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
12432}
12433static inline void ID3D12Device4_CreateShaderResourceView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12434 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
12435}
12436static inline void ID3D12Device4_CreateUnorderedAccessView(ID3D12Device4* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12437 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
12438}
12439static inline void ID3D12Device4_CreateRenderTargetView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12440 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
12441}
12442static inline void ID3D12Device4_CreateDepthStencilView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12443 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
12444}
12445static inline void ID3D12Device4_CreateSampler(ID3D12Device4* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
12446 This->lpVtbl->CreateSampler(This,desc,descriptor);
12447}
12448static 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) {
12449 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);
12450}
12451static 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) {
12452 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
12453}
12454static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device4_GetResourceAllocationInfo(ID3D12Device4* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
12455 D3D12_RESOURCE_ALLOCATION_INFO __ret;
12456 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
12457}
12458static inline D3D12_HEAP_PROPERTIES ID3D12Device4_GetCustomHeapProperties(ID3D12Device4* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
12459 D3D12_HEAP_PROPERTIES __ret;
12460 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
12461}
12462static 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) {
12463 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
12464}
12465static inline HRESULT ID3D12Device4_CreateHeap(ID3D12Device4* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
12466 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
12467}
12468static 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) {
12469 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
12470}
12471static 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) {
12472 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
12473}
12474static inline HRESULT ID3D12Device4_CreateSharedHandle(ID3D12Device4* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
12475 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
12476}
12477static inline HRESULT ID3D12Device4_OpenSharedHandle(ID3D12Device4* This,HANDLE handle,REFIID riid,void **object) {
12478 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
12479}
12480static inline HRESULT ID3D12Device4_OpenSharedHandleByName(ID3D12Device4* This,const WCHAR *name,DWORD access,HANDLE *handle) {
12481 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
12482}
12483static inline HRESULT ID3D12Device4_MakeResident(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects) {
12484 return This->lpVtbl->MakeResident(This,object_count,objects);
12485}
12486static inline HRESULT ID3D12Device4_Evict(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects) {
12487 return This->lpVtbl->Evict(This,object_count,objects);
12488}
12489static inline HRESULT ID3D12Device4_CreateFence(ID3D12Device4* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
12490 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
12491}
12492static inline HRESULT ID3D12Device4_GetDeviceRemovedReason(ID3D12Device4* This) {
12493 return This->lpVtbl->GetDeviceRemovedReason(This);
12494}
12495static 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) {
12496 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
12497}
12498static inline HRESULT ID3D12Device4_CreateQueryHeap(ID3D12Device4* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
12499 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
12500}
12501static inline HRESULT ID3D12Device4_SetStablePowerState(ID3D12Device4* This,WINBOOL enable) {
12502 return This->lpVtbl->SetStablePowerState(This,enable);
12503}
12504static inline HRESULT ID3D12Device4_CreateCommandSignature(ID3D12Device4* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
12505 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
12506}
12507static 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) {
12508 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);
12509}
12510static inline LUID ID3D12Device4_GetAdapterLuid(ID3D12Device4* This) {
12511 LUID __ret;
12512 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
12513}
12514/*** ID3D12Device1 methods ***/
12515static inline HRESULT ID3D12Device4_CreatePipelineLibrary(ID3D12Device4* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
12516 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
12517}
12518static inline HRESULT ID3D12Device4_SetEventOnMultipleFenceCompletion(ID3D12Device4* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
12519 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
12520}
12521static inline HRESULT ID3D12Device4_SetResidencyPriority(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
12522 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
12523}
12524/*** ID3D12Device2 methods ***/
12525static inline HRESULT ID3D12Device4_CreatePipelineState(ID3D12Device4* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
12526 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
12527}
12528/*** ID3D12Device3 methods ***/
12529static inline HRESULT ID3D12Device4_OpenExistingHeapFromAddress(ID3D12Device4* This,const void *address,REFIID riid,void **heap) {
12530 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
12531}
12532static inline HRESULT ID3D12Device4_OpenExistingHeapFromFileMapping(ID3D12Device4* This,HANDLE file_mapping,REFIID riid,void **heap) {
12533 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
12534}
12535static inline HRESULT ID3D12Device4_EnqueueMakeResident(ID3D12Device4* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
12536 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
12537}
12538/*** ID3D12Device4 methods ***/
12539static inline HRESULT ID3D12Device4_CreateCommandList1(ID3D12Device4* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
12540 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
12541}
12542static inline HRESULT ID3D12Device4_CreateProtectedResourceSession(ID3D12Device4* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
12543 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
12544}
12545static 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) {
12546 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
12547}
12548static inline HRESULT ID3D12Device4_CreateHeap1(ID3D12Device4* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
12549 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
12550}
12551static 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) {
12552 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
12553}
12554static 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) {
12555 D3D12_RESOURCE_ALLOCATION_INFO __ret;
12556 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
12557}
12558#endif
12559#endif
12560
12561#endif
12562
12563
12564#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
12565
12566typedef enum D3D12_LIFETIME_STATE {
12567 D3D12_LIFETIME_STATE_IN_USE = 0x0,
12568 D3D12_LIFETIME_STATE_NOT_IN_USE = 0x1
12569} D3D12_LIFETIME_STATE;
12570/*****************************************************************************
12571 * ID3D12LifetimeOwner interface
12572 */
12573#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__
12574#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__
12575
12576DEFINE_GUID(IID_ID3D12LifetimeOwner, 0xe667af9f, 0xcd56, 0x4f46, 0x83,0xce, 0x03,0x2e,0x59,0x5d,0x70,0xa8);
12577#if defined(__cplusplus) && !defined(CINTERFACE)
12578MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8")
12579ID3D12LifetimeOwner : public IUnknown
12580{
12581 virtual void STDMETHODCALLTYPE LifetimeStateUpdated(
12582 D3D12_LIFETIME_STATE NewState) = 0;
12583
12584};
12585#ifdef __CRT_UUID_DECL
12586__CRT_UUID_DECL(ID3D12LifetimeOwner, 0xe667af9f, 0xcd56, 0x4f46, 0x83,0xce, 0x03,0x2e,0x59,0x5d,0x70,0xa8)
12587#endif
12588#else
12589typedef struct ID3D12LifetimeOwnerVtbl {
12590 BEGIN_INTERFACE
12591
12592 /*** IUnknown methods ***/
12593 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12594 ID3D12LifetimeOwner *This,
12595 REFIID riid,
12596 void **ppvObject);
12597
12598 ULONG (STDMETHODCALLTYPE *AddRef)(
12599 ID3D12LifetimeOwner *This);
12600
12601 ULONG (STDMETHODCALLTYPE *Release)(
12602 ID3D12LifetimeOwner *This);
12603
12604 /*** ID3D12LifetimeOwner methods ***/
12605 void (STDMETHODCALLTYPE *LifetimeStateUpdated)(
12606 ID3D12LifetimeOwner *This,
12607 D3D12_LIFETIME_STATE NewState);
12608
12609 END_INTERFACE
12610} ID3D12LifetimeOwnerVtbl;
12611
12612interface ID3D12LifetimeOwner {
12613 CONST_VTBL ID3D12LifetimeOwnerVtbl* lpVtbl;
12614};
12615
12616#ifdef COBJMACROS
12617#ifndef WIDL_C_INLINE_WRAPPERS
12618/*** IUnknown methods ***/
12619#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12620#define ID3D12LifetimeOwner_AddRef(This) (This)->lpVtbl->AddRef(This)
12621#define ID3D12LifetimeOwner_Release(This) (This)->lpVtbl->Release(This)
12622/*** ID3D12LifetimeOwner methods ***/
12623#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) (This)->lpVtbl->LifetimeStateUpdated(This,NewState)
12624#else
12625/*** IUnknown methods ***/
12626static inline HRESULT ID3D12LifetimeOwner_QueryInterface(ID3D12LifetimeOwner* This,REFIID riid,void **ppvObject) {
12627 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12628}
12629static inline ULONG ID3D12LifetimeOwner_AddRef(ID3D12LifetimeOwner* This) {
12630 return This->lpVtbl->AddRef(This);
12631}
12632static inline ULONG ID3D12LifetimeOwner_Release(ID3D12LifetimeOwner* This) {
12633 return This->lpVtbl->Release(This);
12634}
12635/*** ID3D12LifetimeOwner methods ***/
12636static inline void ID3D12LifetimeOwner_LifetimeStateUpdated(ID3D12LifetimeOwner* This,D3D12_LIFETIME_STATE NewState) {
12637 This->lpVtbl->LifetimeStateUpdated(This,NewState);
12638}
12639#endif
12640#endif
12641
12642#endif
12643
12644
12645#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */
12646
12647/*****************************************************************************
12648 * ID3D12SwapChainAssistant interface
12649 */
12650#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
12651#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
12652
12653DEFINE_GUID(IID_ID3D12SwapChainAssistant, 0xf1df64b6, 0x57fd, 0x49cd, 0x88,0x07, 0xc0,0xeb,0x88,0xb4,0x5c,0x8f);
12654#if defined(__cplusplus) && !defined(CINTERFACE)
12655MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f")
12656ID3D12SwapChainAssistant : public IUnknown
12657{
12658#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
12659 virtual LUID* STDMETHODCALLTYPE GetLUID(
12660 LUID *__ret) = 0;
12661 LUID STDMETHODCALLTYPE GetLUID(
12662 )
12663 {
12664 LUID __ret;
12665 return *GetLUID(&__ret);
12666 }
12667#else
12668 virtual LUID STDMETHODCALLTYPE GetLUID(
12669 ) = 0;
12670#endif
12671
12672 virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject(
12673 REFIID riid,
12674 void **ppv) = 0;
12675
12676 virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue(
12677 REFIID riid_resource,
12678 void **resource,
12679 REFIID riid_queue,
12680 void **queue) = 0;
12681
12682 virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync(
12683 ) = 0;
12684
12685};
12686#ifdef __CRT_UUID_DECL
12687__CRT_UUID_DECL(ID3D12SwapChainAssistant, 0xf1df64b6, 0x57fd, 0x49cd, 0x88,0x07, 0xc0,0xeb,0x88,0xb4,0x5c,0x8f)
12688#endif
12689#else
12690typedef struct ID3D12SwapChainAssistantVtbl {
12691 BEGIN_INTERFACE
12692
12693 /*** IUnknown methods ***/
12694 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12695 ID3D12SwapChainAssistant *This,
12696 REFIID riid,
12697 void **ppvObject);
12698
12699 ULONG (STDMETHODCALLTYPE *AddRef)(
12700 ID3D12SwapChainAssistant *This);
12701
12702 ULONG (STDMETHODCALLTYPE *Release)(
12703 ID3D12SwapChainAssistant *This);
12704
12705 /*** ID3D12SwapChainAssistant methods ***/
12706 LUID * (STDMETHODCALLTYPE *GetLUID)(
12707 ID3D12SwapChainAssistant *This,
12708 LUID *__ret);
12709
12710 HRESULT (STDMETHODCALLTYPE *GetSwapChainObject)(
12711 ID3D12SwapChainAssistant *This,
12712 REFIID riid,
12713 void **ppv);
12714
12715 HRESULT (STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue)(
12716 ID3D12SwapChainAssistant *This,
12717 REFIID riid_resource,
12718 void **resource,
12719 REFIID riid_queue,
12720 void **queue);
12721
12722 HRESULT (STDMETHODCALLTYPE *InsertImplicitSync)(
12723 ID3D12SwapChainAssistant *This);
12724
12725 END_INTERFACE
12726} ID3D12SwapChainAssistantVtbl;
12727
12728interface ID3D12SwapChainAssistant {
12729 CONST_VTBL ID3D12SwapChainAssistantVtbl* lpVtbl;
12730};
12731
12732#ifdef COBJMACROS
12733#ifndef WIDL_C_INLINE_WRAPPERS
12734/*** IUnknown methods ***/
12735#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12736#define ID3D12SwapChainAssistant_AddRef(This) (This)->lpVtbl->AddRef(This)
12737#define ID3D12SwapChainAssistant_Release(This) (This)->lpVtbl->Release(This)
12738/*** ID3D12SwapChainAssistant methods ***/
12739#define ID3D12SwapChainAssistant_GetLUID(This) ID3D12SwapChainAssistant_GetLUID_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
12740#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) (This)->lpVtbl->GetSwapChainObject(This,riid,ppv)
12741#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue) (This)->lpVtbl->GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue)
12742#define ID3D12SwapChainAssistant_InsertImplicitSync(This) (This)->lpVtbl->InsertImplicitSync(This)
12743#else
12744/*** IUnknown methods ***/
12745static inline HRESULT ID3D12SwapChainAssistant_QueryInterface(ID3D12SwapChainAssistant* This,REFIID riid,void **ppvObject) {
12746 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12747}
12748static inline ULONG ID3D12SwapChainAssistant_AddRef(ID3D12SwapChainAssistant* This) {
12749 return This->lpVtbl->AddRef(This);
12750}
12751static inline ULONG ID3D12SwapChainAssistant_Release(ID3D12SwapChainAssistant* This) {
12752 return This->lpVtbl->Release(This);
12753}
12754/*** ID3D12SwapChainAssistant methods ***/
12755static inline LUID ID3D12SwapChainAssistant_GetLUID(ID3D12SwapChainAssistant* This) {
12756 LUID __ret;
12757 return *This->lpVtbl->GetLUID(This,&__ret);
12758}
12759static inline HRESULT ID3D12SwapChainAssistant_GetSwapChainObject(ID3D12SwapChainAssistant* This,REFIID riid,void **ppv) {
12760 return This->lpVtbl->GetSwapChainObject(This,riid,ppv);
12761}
12762static inline HRESULT ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(ID3D12SwapChainAssistant* This,REFIID riid_resource,void **resource,REFIID riid_queue,void **queue) {
12763 return This->lpVtbl->GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue);
12764}
12765static inline HRESULT ID3D12SwapChainAssistant_InsertImplicitSync(ID3D12SwapChainAssistant* This) {
12766 return This->lpVtbl->InsertImplicitSync(This);
12767}
12768#endif
12769#endif
12770
12771#endif
12772
12773
12774#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
12775
12776/*****************************************************************************
12777 * ID3D12LifetimeTracker interface
12778 */
12779#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__
12780#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__
12781
12782DEFINE_GUID(IID_ID3D12LifetimeTracker, 0x3fd03d36, 0x4eb1, 0x424a, 0xa5,0x82, 0x49,0x4e,0xcb,0x8b,0xa8,0x13);
12783#if defined(__cplusplus) && !defined(CINTERFACE)
12784MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813")
12785ID3D12LifetimeTracker : public ID3D12DeviceChild
12786{
12787 virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject(
12788 ID3D12DeviceChild *object) = 0;
12789
12790};
12791#ifdef __CRT_UUID_DECL
12792__CRT_UUID_DECL(ID3D12LifetimeTracker, 0x3fd03d36, 0x4eb1, 0x424a, 0xa5,0x82, 0x49,0x4e,0xcb,0x8b,0xa8,0x13)
12793#endif
12794#else
12795typedef struct ID3D12LifetimeTrackerVtbl {
12796 BEGIN_INTERFACE
12797
12798 /*** IUnknown methods ***/
12799 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12800 ID3D12LifetimeTracker *This,
12801 REFIID riid,
12802 void **ppvObject);
12803
12804 ULONG (STDMETHODCALLTYPE *AddRef)(
12805 ID3D12LifetimeTracker *This);
12806
12807 ULONG (STDMETHODCALLTYPE *Release)(
12808 ID3D12LifetimeTracker *This);
12809
12810 /*** ID3D12Object methods ***/
12811 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
12812 ID3D12LifetimeTracker *This,
12813 REFGUID guid,
12814 UINT *data_size,
12815 void *data);
12816
12817 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
12818 ID3D12LifetimeTracker *This,
12819 REFGUID guid,
12820 UINT data_size,
12821 const void *data);
12822
12823 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
12824 ID3D12LifetimeTracker *This,
12825 REFGUID guid,
12826 const IUnknown *data);
12827
12828 HRESULT (STDMETHODCALLTYPE *SetName)(
12829 ID3D12LifetimeTracker *This,
12830 const WCHAR *name);
12831
12832 /*** ID3D12DeviceChild methods ***/
12833 HRESULT (STDMETHODCALLTYPE *GetDevice)(
12834 ID3D12LifetimeTracker *This,
12835 REFIID riid,
12836 void **device);
12837
12838 /*** ID3D12LifetimeTracker methods ***/
12839 HRESULT (STDMETHODCALLTYPE *DestroyOwnedObject)(
12840 ID3D12LifetimeTracker *This,
12841 ID3D12DeviceChild *object);
12842
12843 END_INTERFACE
12844} ID3D12LifetimeTrackerVtbl;
12845
12846interface ID3D12LifetimeTracker {
12847 CONST_VTBL ID3D12LifetimeTrackerVtbl* lpVtbl;
12848};
12849
12850#ifdef COBJMACROS
12851#ifndef WIDL_C_INLINE_WRAPPERS
12852/*** IUnknown methods ***/
12853#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12854#define ID3D12LifetimeTracker_AddRef(This) (This)->lpVtbl->AddRef(This)
12855#define ID3D12LifetimeTracker_Release(This) (This)->lpVtbl->Release(This)
12856/*** ID3D12Object methods ***/
12857#define ID3D12LifetimeTracker_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
12858#define ID3D12LifetimeTracker_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
12859#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
12860#define ID3D12LifetimeTracker_SetName(This,name) (This)->lpVtbl->SetName(This,name)
12861/*** ID3D12DeviceChild methods ***/
12862#define ID3D12LifetimeTracker_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
12863/*** ID3D12LifetimeTracker methods ***/
12864#define ID3D12LifetimeTracker_DestroyOwnedObject(This,object) (This)->lpVtbl->DestroyOwnedObject(This,object)
12865#else
12866/*** IUnknown methods ***/
12867static inline HRESULT ID3D12LifetimeTracker_QueryInterface(ID3D12LifetimeTracker* This,REFIID riid,void **ppvObject) {
12868 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12869}
12870static inline ULONG ID3D12LifetimeTracker_AddRef(ID3D12LifetimeTracker* This) {
12871 return This->lpVtbl->AddRef(This);
12872}
12873static inline ULONG ID3D12LifetimeTracker_Release(ID3D12LifetimeTracker* This) {
12874 return This->lpVtbl->Release(This);
12875}
12876/*** ID3D12Object methods ***/
12877static inline HRESULT ID3D12LifetimeTracker_GetPrivateData(ID3D12LifetimeTracker* This,REFGUID guid,UINT *data_size,void *data) {
12878 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
12879}
12880static inline HRESULT ID3D12LifetimeTracker_SetPrivateData(ID3D12LifetimeTracker* This,REFGUID guid,UINT data_size,const void *data) {
12881 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
12882}
12883static inline HRESULT ID3D12LifetimeTracker_SetPrivateDataInterface(ID3D12LifetimeTracker* This,REFGUID guid,const IUnknown *data) {
12884 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
12885}
12886static inline HRESULT ID3D12LifetimeTracker_SetName(ID3D12LifetimeTracker* This,const WCHAR *name) {
12887 return This->lpVtbl->SetName(This,name);
12888}
12889/*** ID3D12DeviceChild methods ***/
12890static inline HRESULT ID3D12LifetimeTracker_GetDevice(ID3D12LifetimeTracker* This,REFIID riid,void **device) {
12891 return This->lpVtbl->GetDevice(This,riid,device);
12892}
12893/*** ID3D12LifetimeTracker methods ***/
12894static inline HRESULT ID3D12LifetimeTracker_DestroyOwnedObject(ID3D12LifetimeTracker* This,ID3D12DeviceChild *object) {
12895 return This->lpVtbl->DestroyOwnedObject(This,object);
12896}
12897#endif
12898#endif
12899
12900#endif
12901
12902
12903#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */
12904
12905typedef enum D3D12_META_COMMAND_PARAMETER_TYPE {
12906 D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0x0,
12907 D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 0x1,
12908 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 0x2,
12909 D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 0x3,
12910 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 0x4
12911} D3D12_META_COMMAND_PARAMETER_TYPE;
12912typedef enum D3D12_META_COMMAND_PARAMETER_FLAGS {
12913 D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1,
12914 D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2
12915} D3D12_META_COMMAND_PARAMETER_FLAGS;
12916DEFINE_ENUM_FLAG_OPERATORS(D3D12_META_COMMAND_PARAMETER_FLAGS);
12917typedef enum D3D12_META_COMMAND_PARAMETER_STAGE {
12918 D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0x0,
12919 D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 0x1,
12920 D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 0x2
12921} D3D12_META_COMMAND_PARAMETER_STAGE;
12922typedef struct D3D12_META_COMMAND_PARAMETER_DESC {
12923 const WCHAR *Name;
12924 D3D12_META_COMMAND_PARAMETER_TYPE Type;
12925 D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
12926 D3D12_RESOURCE_STATES RequiredResourceState;
12927 UINT StructureOffset;
12928} D3D12_META_COMMAND_PARAMETER_DESC;
12929typedef enum D3D12_GRAPHICS_STATES {
12930 D3D12_GRAPHICS_STATE_NONE = 0x0,
12931 D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = 0x1,
12932 D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = 0x2,
12933 D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = 0x4,
12934 D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = 0x8,
12935 D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = 0x10,
12936 D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = 0x20,
12937 D3D12_GRAPHICS_STATE_RS_VIEWPORTS = 0x40,
12938 D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = 0x80,
12939 D3D12_GRAPHICS_STATE_PREDICATION = 0x100,
12940 D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = 0x200,
12941 D3D12_GRAPHICS_STATE_OM_STENCIL_REF = 0x400,
12942 D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = 0x800,
12943 D3D12_GRAPHICS_STATE_PIPELINE_STATE = 0x1000,
12944 D3D12_GRAPHICS_STATE_SO_TARGETS = 0x2000,
12945 D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = 0x4000,
12946 D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = 0x8000,
12947 D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = 0x10000
12948} D3D12_GRAPHICS_STATES;
12949DEFINE_ENUM_FLAG_OPERATORS(D3D12_GRAPHICS_STATES);
12950typedef struct D3D12_META_COMMAND_DESC {
12951 GUID Id;
12952 const WCHAR *Name;
12953 D3D12_GRAPHICS_STATES InitializationDirtyState;
12954 D3D12_GRAPHICS_STATES ExecutionDirtyState;
12955} D3D12_META_COMMAND_DESC;
12956/*****************************************************************************
12957 * ID3D12StateObject interface
12958 */
12959#ifndef __ID3D12StateObject_INTERFACE_DEFINED__
12960#define __ID3D12StateObject_INTERFACE_DEFINED__
12961
12962DEFINE_GUID(IID_ID3D12StateObject, 0x47016943, 0xfca8, 0x4594, 0x93,0xea, 0xaf,0x25,0x8b,0x55,0x34,0x6d);
12963#if defined(__cplusplus) && !defined(CINTERFACE)
12964MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d")
12965ID3D12StateObject : public ID3D12Pageable
12966{
12967};
12968#ifdef __CRT_UUID_DECL
12969__CRT_UUID_DECL(ID3D12StateObject, 0x47016943, 0xfca8, 0x4594, 0x93,0xea, 0xaf,0x25,0x8b,0x55,0x34,0x6d)
12970#endif
12971#else
12972typedef struct ID3D12StateObjectVtbl {
12973 BEGIN_INTERFACE
12974
12975 /*** IUnknown methods ***/
12976 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12977 ID3D12StateObject *This,
12978 REFIID riid,
12979 void **ppvObject);
12980
12981 ULONG (STDMETHODCALLTYPE *AddRef)(
12982 ID3D12StateObject *This);
12983
12984 ULONG (STDMETHODCALLTYPE *Release)(
12985 ID3D12StateObject *This);
12986
12987 /*** ID3D12Object methods ***/
12988 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
12989 ID3D12StateObject *This,
12990 REFGUID guid,
12991 UINT *data_size,
12992 void *data);
12993
12994 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
12995 ID3D12StateObject *This,
12996 REFGUID guid,
12997 UINT data_size,
12998 const void *data);
12999
13000 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
13001 ID3D12StateObject *This,
13002 REFGUID guid,
13003 const IUnknown *data);
13004
13005 HRESULT (STDMETHODCALLTYPE *SetName)(
13006 ID3D12StateObject *This,
13007 const WCHAR *name);
13008
13009 /*** ID3D12DeviceChild methods ***/
13010 HRESULT (STDMETHODCALLTYPE *GetDevice)(
13011 ID3D12StateObject *This,
13012 REFIID riid,
13013 void **device);
13014
13015 END_INTERFACE
13016} ID3D12StateObjectVtbl;
13017
13018interface ID3D12StateObject {
13019 CONST_VTBL ID3D12StateObjectVtbl* lpVtbl;
13020};
13021
13022#ifdef COBJMACROS
13023#ifndef WIDL_C_INLINE_WRAPPERS
13024/*** IUnknown methods ***/
13025#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13026#define ID3D12StateObject_AddRef(This) (This)->lpVtbl->AddRef(This)
13027#define ID3D12StateObject_Release(This) (This)->lpVtbl->Release(This)
13028/*** ID3D12Object methods ***/
13029#define ID3D12StateObject_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
13030#define ID3D12StateObject_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
13031#define ID3D12StateObject_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
13032#define ID3D12StateObject_SetName(This,name) (This)->lpVtbl->SetName(This,name)
13033/*** ID3D12DeviceChild methods ***/
13034#define ID3D12StateObject_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
13035#else
13036/*** IUnknown methods ***/
13037static inline HRESULT ID3D12StateObject_QueryInterface(ID3D12StateObject* This,REFIID riid,void **ppvObject) {
13038 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13039}
13040static inline ULONG ID3D12StateObject_AddRef(ID3D12StateObject* This) {
13041 return This->lpVtbl->AddRef(This);
13042}
13043static inline ULONG ID3D12StateObject_Release(ID3D12StateObject* This) {
13044 return This->lpVtbl->Release(This);
13045}
13046/*** ID3D12Object methods ***/
13047static inline HRESULT ID3D12StateObject_GetPrivateData(ID3D12StateObject* This,REFGUID guid,UINT *data_size,void *data) {
13048 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
13049}
13050static inline HRESULT ID3D12StateObject_SetPrivateData(ID3D12StateObject* This,REFGUID guid,UINT data_size,const void *data) {
13051 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
13052}
13053static inline HRESULT ID3D12StateObject_SetPrivateDataInterface(ID3D12StateObject* This,REFGUID guid,const IUnknown *data) {
13054 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
13055}
13056static inline HRESULT ID3D12StateObject_SetName(ID3D12StateObject* This,const WCHAR *name) {
13057 return This->lpVtbl->SetName(This,name);
13058}
13059/*** ID3D12DeviceChild methods ***/
13060static inline HRESULT ID3D12StateObject_GetDevice(ID3D12StateObject* This,REFIID riid,void **device) {
13061 return This->lpVtbl->GetDevice(This,riid,device);
13062}
13063#endif
13064#endif
13065
13066#endif
13067
13068
13069#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */
13070
13071/*****************************************************************************
13072 * ID3D12StateObjectProperties interface
13073 */
13074#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__
13075#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__
13076
13077DEFINE_GUID(IID_ID3D12StateObjectProperties, 0xde5fa827, 0x9bf9, 0x4f26, 0x89,0xff, 0xd7,0xf5,0x6f,0xde,0x38,0x60);
13078#if defined(__cplusplus) && !defined(CINTERFACE)
13079MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860")
13080ID3D12StateObjectProperties : public IUnknown
13081{
13082 virtual void * STDMETHODCALLTYPE GetShaderIdentifier(
13083 const WCHAR *export_name) = 0;
13084
13085 virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize(
13086 const WCHAR *export_name) = 0;
13087
13088 virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize(
13089 ) = 0;
13090
13091 virtual void STDMETHODCALLTYPE SetPipelineStackSize(
13092 UINT64 pipeline_stack_size_in_bytes) = 0;
13093
13094};
13095#ifdef __CRT_UUID_DECL
13096__CRT_UUID_DECL(ID3D12StateObjectProperties, 0xde5fa827, 0x9bf9, 0x4f26, 0x89,0xff, 0xd7,0xf5,0x6f,0xde,0x38,0x60)
13097#endif
13098#else
13099typedef struct ID3D12StateObjectPropertiesVtbl {
13100 BEGIN_INTERFACE
13101
13102 /*** IUnknown methods ***/
13103 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13104 ID3D12StateObjectProperties *This,
13105 REFIID riid,
13106 void **ppvObject);
13107
13108 ULONG (STDMETHODCALLTYPE *AddRef)(
13109 ID3D12StateObjectProperties *This);
13110
13111 ULONG (STDMETHODCALLTYPE *Release)(
13112 ID3D12StateObjectProperties *This);
13113
13114 /*** ID3D12StateObjectProperties methods ***/
13115 void * (STDMETHODCALLTYPE *GetShaderIdentifier)(
13116 ID3D12StateObjectProperties *This,
13117 const WCHAR *export_name);
13118
13119 UINT64 (STDMETHODCALLTYPE *GetShaderStackSize)(
13120 ID3D12StateObjectProperties *This,
13121 const WCHAR *export_name);
13122
13123 UINT64 (STDMETHODCALLTYPE *GetPipelineStackSize)(
13124 ID3D12StateObjectProperties *This);
13125
13126 void (STDMETHODCALLTYPE *SetPipelineStackSize)(
13127 ID3D12StateObjectProperties *This,
13128 UINT64 pipeline_stack_size_in_bytes);
13129
13130 END_INTERFACE
13131} ID3D12StateObjectPropertiesVtbl;
13132
13133interface ID3D12StateObjectProperties {
13134 CONST_VTBL ID3D12StateObjectPropertiesVtbl* lpVtbl;
13135};
13136
13137#ifdef COBJMACROS
13138#ifndef WIDL_C_INLINE_WRAPPERS
13139/*** IUnknown methods ***/
13140#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13141#define ID3D12StateObjectProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
13142#define ID3D12StateObjectProperties_Release(This) (This)->lpVtbl->Release(This)
13143/*** ID3D12StateObjectProperties methods ***/
13144#define ID3D12StateObjectProperties_GetShaderIdentifier(This,export_name) (This)->lpVtbl->GetShaderIdentifier(This,export_name)
13145#define ID3D12StateObjectProperties_GetShaderStackSize(This,export_name) (This)->lpVtbl->GetShaderStackSize(This,export_name)
13146#define ID3D12StateObjectProperties_GetPipelineStackSize(This) (This)->lpVtbl->GetPipelineStackSize(This)
13147#define ID3D12StateObjectProperties_SetPipelineStackSize(This,pipeline_stack_size_in_bytes) (This)->lpVtbl->SetPipelineStackSize(This,pipeline_stack_size_in_bytes)
13148#else
13149/*** IUnknown methods ***/
13150static inline HRESULT ID3D12StateObjectProperties_QueryInterface(ID3D12StateObjectProperties* This,REFIID riid,void **ppvObject) {
13151 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13152}
13153static inline ULONG ID3D12StateObjectProperties_AddRef(ID3D12StateObjectProperties* This) {
13154 return This->lpVtbl->AddRef(This);
13155}
13156static inline ULONG ID3D12StateObjectProperties_Release(ID3D12StateObjectProperties* This) {
13157 return This->lpVtbl->Release(This);
13158}
13159/*** ID3D12StateObjectProperties methods ***/
13160static inline void * ID3D12StateObjectProperties_GetShaderIdentifier(ID3D12StateObjectProperties* This,const WCHAR *export_name) {
13161 return This->lpVtbl->GetShaderIdentifier(This,export_name);
13162}
13163static inline UINT64 ID3D12StateObjectProperties_GetShaderStackSize(ID3D12StateObjectProperties* This,const WCHAR *export_name) {
13164 return This->lpVtbl->GetShaderStackSize(This,export_name);
13165}
13166static inline UINT64 ID3D12StateObjectProperties_GetPipelineStackSize(ID3D12StateObjectProperties* This) {
13167 return This->lpVtbl->GetPipelineStackSize(This);
13168}
13169static inline void ID3D12StateObjectProperties_SetPipelineStackSize(ID3D12StateObjectProperties* This,UINT64 pipeline_stack_size_in_bytes) {
13170 This->lpVtbl->SetPipelineStackSize(This,pipeline_stack_size_in_bytes);
13171}
13172#endif
13173#endif
13174
13175#endif
13176
13177
13178#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */
13179
13180typedef enum D3D12_STATE_SUBOBJECT_TYPE {
13181 D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0x0,
13182 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 0x1,
13183 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 0x2,
13184 D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 0x3,
13185 D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 0x5,
13186 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 0x6,
13187 D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 0x7,
13188 D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 0x8,
13189 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 0x9,
13190 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 0xa,
13191 D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 0xb,
13192 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 0xc,
13193 D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = 0xd
13194} D3D12_STATE_SUBOBJECT_TYPE;
13195typedef struct D3D12_STATE_SUBOBJECT {
13196 D3D12_STATE_SUBOBJECT_TYPE Type;
13197 const void *pDesc;
13198} D3D12_STATE_SUBOBJECT;
13199typedef enum D3D12_STATE_OBJECT_FLAGS {
13200 D3D12_STATE_OBJECT_FLAG_NONE = 0x0,
13201 D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
13202 D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
13203 D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4
13204} D3D12_STATE_OBJECT_FLAGS;
13205DEFINE_ENUM_FLAG_OPERATORS(D3D12_STATE_OBJECT_FLAGS);
13206typedef struct D3D12_STATE_OBJECT_CONFIG {
13207 D3D12_STATE_OBJECT_FLAGS Flags;
13208} D3D12_STATE_OBJECT_CONFIG;
13209typedef struct D3D12_GLOBAL_ROOT_SIGNATURE {
13210 ID3D12RootSignature *pGlobalRootSignature;
13211} D3D12_GLOBAL_ROOT_SIGNATURE;
13212typedef struct D3D12_LOCAL_ROOT_SIGNATURE {
13213 ID3D12RootSignature *pLocalRootSignature;
13214} D3D12_LOCAL_ROOT_SIGNATURE;
13215typedef struct D3D12_NODE_MASK {
13216 UINT NodeMask;
13217} D3D12_NODE_MASK;
13218typedef enum D3D12_EXPORT_FLAGS {
13219 D3D12_EXPORT_FLAG_NONE = 0x0
13220} D3D12_EXPORT_FLAGS;
13221DEFINE_ENUM_FLAG_OPERATORS(D3D12_EXPORT_FLAGS);
13222typedef struct D3D12_EXPORT_DESC {
13223 const WCHAR *Name;
13224 const WCHAR *ExportToRename;
13225 D3D12_EXPORT_FLAGS Flags;
13226} D3D12_EXPORT_DESC;
13227typedef struct D3D12_DXIL_LIBRARY_DESC {
13228 D3D12_SHADER_BYTECODE DXILLibrary;
13229 UINT NumExports;
13230 D3D12_EXPORT_DESC *pExports;
13231} D3D12_DXIL_LIBRARY_DESC;
13232typedef struct D3D12_EXISTING_COLLECTION_DESC {
13233 ID3D12StateObject *pExistingCollection;
13234 UINT NumExports;
13235 D3D12_EXPORT_DESC *pExports;
13236} D3D12_EXISTING_COLLECTION_DESC;
13237typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
13238 const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate;
13239 UINT NumExports;
13240 const WCHAR **pExports;
13241} D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
13242typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
13243 const WCHAR *SubobjectToAssociate;
13244 UINT NumExports;
13245 const WCHAR **pExports;
13246} D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
13247typedef enum D3D12_HIT_GROUP_TYPE {
13248 D3D12_HIT_GROUP_TYPE_TRIANGLES = 0x0,
13249 D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1
13250} D3D12_HIT_GROUP_TYPE;
13251typedef struct D3D12_HIT_GROUP_DESC {
13252 const WCHAR *HitGroupExport;
13253 D3D12_HIT_GROUP_TYPE Type;
13254 const WCHAR *AnyHitShaderImport;
13255 const WCHAR *ClosestHitShaderImport;
13256 const WCHAR *IntersectionShaderImport;
13257} D3D12_HIT_GROUP_DESC;
13258typedef struct D3D12_RAYTRACING_SHADER_CONFIG {
13259 UINT MaxPayloadSizeInBytes;
13260 UINT MaxAttributeSizeInBytes;
13261} D3D12_RAYTRACING_SHADER_CONFIG;
13262typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG {
13263 UINT MaxTraceRecursionDepth;
13264} D3D12_RAYTRACING_PIPELINE_CONFIG;
13265typedef enum D3D12_RAYTRACING_PIPELINE_FLAGS {
13266 D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0x0,
13267 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100,
13268 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200
13269} D3D12_RAYTRACING_PIPELINE_FLAGS;
13270DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_PIPELINE_FLAGS);
13271typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 {
13272 UINT MaxTraceRecursionDepth;
13273 D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
13274} D3D12_RAYTRACING_PIPELINE_CONFIG1;
13275typedef enum D3D12_STATE_OBJECT_TYPE {
13276 D3D12_STATE_OBJECT_TYPE_COLLECTION = 0x0,
13277 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 0x3
13278} D3D12_STATE_OBJECT_TYPE;
13279typedef struct D3D12_STATE_OBJECT_DESC {
13280 D3D12_STATE_OBJECT_TYPE Type;
13281 UINT NumSubobjects;
13282 const D3D12_STATE_SUBOBJECT *pSubobjects;
13283} D3D12_STATE_OBJECT_DESC;
13284typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS {
13285 D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0x0,
13286 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
13287 D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
13288} D3D12_RAYTRACING_GEOMETRY_FLAGS;
13289DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_GEOMETRY_FLAGS);
13290typedef enum D3D12_RAYTRACING_GEOMETRY_TYPE {
13291 D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0x0,
13292 D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = 0x1
13293} D3D12_RAYTRACING_GEOMETRY_TYPE;
13294typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS {
13295 D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0x0,
13296 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
13297 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
13298 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
13299 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8
13300} D3D12_RAYTRACING_INSTANCE_FLAGS;
13301DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_INSTANCE_FLAGS);
13302typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
13303 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13304 UINT64 StrideInBytes;
13305} D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
13306typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
13307 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13308 UINT64 SizeInBytes;
13309} D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
13310typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
13311 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13312 UINT64 SizeInBytes;
13313 UINT64 StrideInBytes;
13314} D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
13315typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
13316 D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
13317 DXGI_FORMAT IndexFormat;
13318 DXGI_FORMAT VertexFormat;
13319 UINT IndexCount;
13320 UINT VertexCount;
13321 D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
13322 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
13323} D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
13324typedef struct D3D12_RAYTRACING_AABB {
13325 FLOAT MinX;
13326 FLOAT MinY;
13327 FLOAT MinZ;
13328 FLOAT MaxX;
13329 FLOAT MaxY;
13330 FLOAT MaxZ;
13331} D3D12_RAYTRACING_AABB;
13332typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
13333 UINT64 AABBCount;
13334 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
13335} D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
13336typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
13337 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0x0,
13338 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
13339 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
13340 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
13341 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
13342 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
13343 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20
13344} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
13345DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS);
13346typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {
13347 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0x0,
13348 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
13349 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
13350 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
13351 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
13352} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
13353typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE {
13354 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0x0,
13355 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1
13356} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
13357typedef enum D3D12_ELEMENTS_LAYOUT {
13358 D3D12_ELEMENTS_LAYOUT_ARRAY = 0x0,
13359 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
13360} D3D12_ELEMENTS_LAYOUT;
13361typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE {
13362 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0x0,
13363 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
13364 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
13365 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3
13366} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
13367typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
13368 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
13369 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
13370} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
13371typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {
13372 UINT64 CompactedSizeInBytes;
13373} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
13374typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {
13375 UINT64 DecodedSizeInBytes;
13376} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
13377typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {
13378 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
13379 UINT NumDescs;
13380} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
13381typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {
13382 UINT64 SerializedSizeInBytes;
13383 UINT64 NumBottomLevelAccelerationStructurePointers;
13384} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
13385typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
13386 GUID DriverOpaqueGUID;
13387 BYTE DriverOpaqueVersioningData[16];
13388} D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
13389typedef enum D3D12_SERIALIZED_DATA_TYPE {
13390 D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0x0
13391} D3D12_SERIALIZED_DATA_TYPE;
13392typedef enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
13393 D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0x0,
13394 D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
13395 D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
13396 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
13397 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4
13398} D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
13399typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
13400 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
13401 UINT64 SerializedSizeInBytesIncludingHeader;
13402 UINT64 DeserializedSizeInBytes;
13403 UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
13404} D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
13405typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {
13406 UINT64 CurrentSizeInBytes;
13407} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
13408typedef struct D3D12_RAYTRACING_INSTANCE_DESC {
13409 FLOAT Transform[3][4];
13410 UINT InstanceID : 24;
13411 UINT InstanceMask : 8;
13412 UINT InstanceContributionToHitGroupIndex : 24;
13413 UINT Flags : 8;
13414 D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
13415} D3D12_RAYTRACING_INSTANCE_DESC;
13416typedef struct D3D12_RAYTRACING_GEOMETRY_DESC {
13417 D3D12_RAYTRACING_GEOMETRY_TYPE Type;
13418 D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
13419 __C89_NAMELESS union {
13420 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
13421 D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
13422 } __C89_NAMELESSUNIONNAME;
13423} D3D12_RAYTRACING_GEOMETRY_DESC;
13424typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
13425 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
13426 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
13427 UINT NumDescs;
13428 D3D12_ELEMENTS_LAYOUT DescsLayout;
13429 __C89_NAMELESS union {
13430 D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
13431 const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
13432 const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs;
13433 } __C89_NAMELESSUNIONNAME;
13434} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
13435typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
13436 D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
13437 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
13438 D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
13439 D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
13440} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
13441typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
13442 UINT64 ResultDataMaxSizeInBytes;
13443 UINT64 ScratchDataSizeInBytes;
13444 UINT64 UpdateScratchDataSizeInBytes;
13445} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
13446typedef enum D3D12_RAY_FLAGS {
13447 D3D12_RAY_FLAG_NONE = 0x0,
13448 D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
13449 D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
13450 D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
13451 D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
13452 D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
13453 D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
13454 D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
13455 D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
13456 D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100,
13457 D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200
13458} D3D12_RAY_FLAGS;
13459DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAY_FLAGS);
13460typedef enum D3D12_HIT_KIND {
13461 D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
13462 D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff
13463} D3D12_HIT_KIND;
13464/*****************************************************************************
13465 * ID3D12Device5 interface
13466 */
13467#ifndef __ID3D12Device5_INTERFACE_DEFINED__
13468#define __ID3D12Device5_INTERFACE_DEFINED__
13469
13470DEFINE_GUID(IID_ID3D12Device5, 0x8b4f173b, 0x2fea, 0x4b80, 0x8f,0x58, 0x43,0x07,0x19,0x1a,0xb9,0x5d);
13471#if defined(__cplusplus) && !defined(CINTERFACE)
13472MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d")
13473ID3D12Device5 : public ID3D12Device4
13474{
13475 virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker(
13476 ID3D12LifetimeOwner *owner,
13477 REFIID riid,
13478 void **tracker) = 0;
13479
13480 virtual void STDMETHODCALLTYPE RemoveDevice(
13481 ) = 0;
13482
13483 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands(
13484 UINT *meta_commands_count,
13485 D3D12_META_COMMAND_DESC *descs) = 0;
13486
13487 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters(
13488 REFGUID command_id,
13489 D3D12_META_COMMAND_PARAMETER_STAGE stage,
13490 UINT *total_structure_size_in_bytes,
13491 UINT *parameter_count,
13492 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) = 0;
13493
13494 virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand(
13495 REFGUID command_id,
13496 UINT node_mask,
13497 const void *creation_parameters_data,
13498 SIZE_T creation_parameters_data_size_in_bytes,
13499 REFIID riid,
13500 void **meta_command) = 0;
13501
13502 virtual HRESULT STDMETHODCALLTYPE CreateStateObject(
13503 const D3D12_STATE_OBJECT_DESC *desc,
13504 REFIID riid,
13505 void **state_object) = 0;
13506
13507 virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo(
13508 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
13509 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) = 0;
13510
13511 virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier(
13512 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
13513 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) = 0;
13514
13515};
13516#ifdef __CRT_UUID_DECL
13517__CRT_UUID_DECL(ID3D12Device5, 0x8b4f173b, 0x2fea, 0x4b80, 0x8f,0x58, 0x43,0x07,0x19,0x1a,0xb9,0x5d)
13518#endif
13519#else
13520typedef struct ID3D12Device5Vtbl {
13521 BEGIN_INTERFACE
13522
13523 /*** IUnknown methods ***/
13524 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13525 ID3D12Device5 *This,
13526 REFIID riid,
13527 void **ppvObject);
13528
13529 ULONG (STDMETHODCALLTYPE *AddRef)(
13530 ID3D12Device5 *This);
13531
13532 ULONG (STDMETHODCALLTYPE *Release)(
13533 ID3D12Device5 *This);
13534
13535 /*** ID3D12Object methods ***/
13536 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
13537 ID3D12Device5 *This,
13538 REFGUID guid,
13539 UINT *data_size,
13540 void *data);
13541
13542 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
13543 ID3D12Device5 *This,
13544 REFGUID guid,
13545 UINT data_size,
13546 const void *data);
13547
13548 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
13549 ID3D12Device5 *This,
13550 REFGUID guid,
13551 const IUnknown *data);
13552
13553 HRESULT (STDMETHODCALLTYPE *SetName)(
13554 ID3D12Device5 *This,
13555 const WCHAR *name);
13556
13557 /*** ID3D12Device methods ***/
13558 UINT (STDMETHODCALLTYPE *GetNodeCount)(
13559 ID3D12Device5 *This);
13560
13561 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
13562 ID3D12Device5 *This,
13563 const D3D12_COMMAND_QUEUE_DESC *desc,
13564 REFIID riid,
13565 void **command_queue);
13566
13567 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
13568 ID3D12Device5 *This,
13569 D3D12_COMMAND_LIST_TYPE type,
13570 REFIID riid,
13571 void **command_allocator);
13572
13573 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
13574 ID3D12Device5 *This,
13575 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
13576 REFIID riid,
13577 void **pipeline_state);
13578
13579 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
13580 ID3D12Device5 *This,
13581 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
13582 REFIID riid,
13583 void **pipeline_state);
13584
13585 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
13586 ID3D12Device5 *This,
13587 UINT node_mask,
13588 D3D12_COMMAND_LIST_TYPE type,
13589 ID3D12CommandAllocator *command_allocator,
13590 ID3D12PipelineState *initial_pipeline_state,
13591 REFIID riid,
13592 void **command_list);
13593
13594 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
13595 ID3D12Device5 *This,
13596 D3D12_FEATURE feature,
13597 void *feature_data,
13598 UINT feature_data_size);
13599
13600 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
13601 ID3D12Device5 *This,
13602 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
13603 REFIID riid,
13604 void **descriptor_heap);
13605
13606 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
13607 ID3D12Device5 *This,
13608 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
13609
13610 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
13611 ID3D12Device5 *This,
13612 UINT node_mask,
13613 const void *bytecode,
13614 SIZE_T bytecode_length,
13615 REFIID riid,
13616 void **root_signature);
13617
13618 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
13619 ID3D12Device5 *This,
13620 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
13621 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13622
13623 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
13624 ID3D12Device5 *This,
13625 ID3D12Resource *resource,
13626 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
13627 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13628
13629 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
13630 ID3D12Device5 *This,
13631 ID3D12Resource *resource,
13632 ID3D12Resource *counter_resource,
13633 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
13634 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13635
13636 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
13637 ID3D12Device5 *This,
13638 ID3D12Resource *resource,
13639 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
13640 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13641
13642 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
13643 ID3D12Device5 *This,
13644 ID3D12Resource *resource,
13645 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
13646 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13647
13648 void (STDMETHODCALLTYPE *CreateSampler)(
13649 ID3D12Device5 *This,
13650 const D3D12_SAMPLER_DESC *desc,
13651 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
13652
13653 void (STDMETHODCALLTYPE *CopyDescriptors)(
13654 ID3D12Device5 *This,
13655 UINT dst_descriptor_range_count,
13656 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
13657 const UINT *dst_descriptor_range_sizes,
13658 UINT src_descriptor_range_count,
13659 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
13660 const UINT *src_descriptor_range_sizes,
13661 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
13662
13663 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
13664 ID3D12Device5 *This,
13665 UINT descriptor_count,
13666 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
13667 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
13668 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
13669
13670 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
13671 ID3D12Device5 *This,
13672 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
13673 UINT visible_mask,
13674 UINT reource_desc_count,
13675 const D3D12_RESOURCE_DESC *resource_descs);
13676
13677 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
13678 ID3D12Device5 *This,
13679 D3D12_HEAP_PROPERTIES *__ret,
13680 UINT node_mask,
13681 D3D12_HEAP_TYPE heap_type);
13682
13683 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
13684 ID3D12Device5 *This,
13685 const D3D12_HEAP_PROPERTIES *heap_properties,
13686 D3D12_HEAP_FLAGS heap_flags,
13687 const D3D12_RESOURCE_DESC *desc,
13688 D3D12_RESOURCE_STATES initial_state,
13689 const D3D12_CLEAR_VALUE *optimized_clear_value,
13690 REFIID riid,
13691 void **resource);
13692
13693 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
13694 ID3D12Device5 *This,
13695 const D3D12_HEAP_DESC *desc,
13696 REFIID riid,
13697 void **heap);
13698
13699 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
13700 ID3D12Device5 *This,
13701 ID3D12Heap *heap,
13702 UINT64 heap_offset,
13703 const D3D12_RESOURCE_DESC *desc,
13704 D3D12_RESOURCE_STATES initial_state,
13705 const D3D12_CLEAR_VALUE *optimized_clear_value,
13706 REFIID riid,
13707 void **resource);
13708
13709 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
13710 ID3D12Device5 *This,
13711 const D3D12_RESOURCE_DESC *desc,
13712 D3D12_RESOURCE_STATES initial_state,
13713 const D3D12_CLEAR_VALUE *optimized_clear_value,
13714 REFIID riid,
13715 void **resource);
13716
13717 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
13718 ID3D12Device5 *This,
13719 ID3D12DeviceChild *object,
13720 const SECURITY_ATTRIBUTES *attributes,
13721 DWORD access,
13722 const WCHAR *name,
13723 HANDLE *handle);
13724
13725 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
13726 ID3D12Device5 *This,
13727 HANDLE handle,
13728 REFIID riid,
13729 void **object);
13730
13731 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
13732 ID3D12Device5 *This,
13733 const WCHAR *name,
13734 DWORD access,
13735 HANDLE *handle);
13736
13737 HRESULT (STDMETHODCALLTYPE *MakeResident)(
13738 ID3D12Device5 *This,
13739 UINT object_count,
13740 ID3D12Pageable *const *objects);
13741
13742 HRESULT (STDMETHODCALLTYPE *Evict)(
13743 ID3D12Device5 *This,
13744 UINT object_count,
13745 ID3D12Pageable *const *objects);
13746
13747 HRESULT (STDMETHODCALLTYPE *CreateFence)(
13748 ID3D12Device5 *This,
13749 UINT64 initial_value,
13750 D3D12_FENCE_FLAGS flags,
13751 REFIID riid,
13752 void **fence);
13753
13754 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
13755 ID3D12Device5 *This);
13756
13757 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
13758 ID3D12Device5 *This,
13759 const D3D12_RESOURCE_DESC *desc,
13760 UINT first_sub_resource,
13761 UINT sub_resource_count,
13762 UINT64 base_offset,
13763 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
13764 UINT *row_count,
13765 UINT64 *row_size,
13766 UINT64 *total_bytes);
13767
13768 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
13769 ID3D12Device5 *This,
13770 const D3D12_QUERY_HEAP_DESC *desc,
13771 REFIID riid,
13772 void **heap);
13773
13774 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
13775 ID3D12Device5 *This,
13776 WINBOOL enable);
13777
13778 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
13779 ID3D12Device5 *This,
13780 const D3D12_COMMAND_SIGNATURE_DESC *desc,
13781 ID3D12RootSignature *root_signature,
13782 REFIID riid,
13783 void **command_signature);
13784
13785 void (STDMETHODCALLTYPE *GetResourceTiling)(
13786 ID3D12Device5 *This,
13787 ID3D12Resource *resource,
13788 UINT *total_tile_count,
13789 D3D12_PACKED_MIP_INFO *packed_mip_info,
13790 D3D12_TILE_SHAPE *standard_tile_shape,
13791 UINT *sub_resource_tiling_count,
13792 UINT first_sub_resource_tiling,
13793 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
13794
13795 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
13796 ID3D12Device5 *This,
13797 LUID *__ret);
13798
13799 /*** ID3D12Device1 methods ***/
13800 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
13801 ID3D12Device5 *This,
13802 const void *blob,
13803 SIZE_T blob_size,
13804 REFIID iid,
13805 void **lib);
13806
13807 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
13808 ID3D12Device5 *This,
13809 ID3D12Fence *const *fences,
13810 const UINT64 *values,
13811 UINT fence_count,
13812 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
13813 HANDLE event);
13814
13815 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
13816 ID3D12Device5 *This,
13817 UINT object_count,
13818 ID3D12Pageable *const *objects,
13819 const D3D12_RESIDENCY_PRIORITY *priorities);
13820
13821 /*** ID3D12Device2 methods ***/
13822 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
13823 ID3D12Device5 *This,
13824 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
13825 REFIID riid,
13826 void **pipeline_state);
13827
13828 /*** ID3D12Device3 methods ***/
13829 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
13830 ID3D12Device5 *This,
13831 const void *address,
13832 REFIID riid,
13833 void **heap);
13834
13835 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
13836 ID3D12Device5 *This,
13837 HANDLE file_mapping,
13838 REFIID riid,
13839 void **heap);
13840
13841 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
13842 ID3D12Device5 *This,
13843 D3D12_RESIDENCY_FLAGS flags,
13844 UINT num_objects,
13845 ID3D12Pageable *const *objects,
13846 ID3D12Fence *fence,
13847 UINT64 fence_value);
13848
13849 /*** ID3D12Device4 methods ***/
13850 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
13851 ID3D12Device5 *This,
13852 UINT node_mask,
13853 D3D12_COMMAND_LIST_TYPE type,
13854 D3D12_COMMAND_LIST_FLAGS flags,
13855 REFIID riid,
13856 void **command_list);
13857
13858 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
13859 ID3D12Device5 *This,
13860 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
13861 REFIID riid,
13862 void **session);
13863
13864 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
13865 ID3D12Device5 *This,
13866 const D3D12_HEAP_PROPERTIES *heap_properties,
13867 D3D12_HEAP_FLAGS heap_flags,
13868 const D3D12_RESOURCE_DESC *desc,
13869 D3D12_RESOURCE_STATES initial_resource_state,
13870 const D3D12_CLEAR_VALUE *optimized_clear_value,
13871 ID3D12ProtectedResourceSession *protected_session,
13872 REFIID riid_resource,
13873 void **resource);
13874
13875 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
13876 ID3D12Device5 *This,
13877 const D3D12_HEAP_DESC *desc,
13878 ID3D12ProtectedResourceSession *protected_session,
13879 REFIID riid,
13880 void **heap);
13881
13882 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
13883 ID3D12Device5 *This,
13884 const D3D12_RESOURCE_DESC *desc,
13885 D3D12_RESOURCE_STATES initial_state,
13886 const D3D12_CLEAR_VALUE *optimized_clear_value,
13887 ID3D12ProtectedResourceSession *protected_session,
13888 REFIID riid,
13889 void **resource);
13890
13891 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
13892 ID3D12Device5 *This,
13893 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
13894 UINT visible_mask,
13895 UINT resource_descs_count,
13896 const D3D12_RESOURCE_DESC *resource_descs,
13897 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
13898
13899 /*** ID3D12Device5 methods ***/
13900 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
13901 ID3D12Device5 *This,
13902 ID3D12LifetimeOwner *owner,
13903 REFIID riid,
13904 void **tracker);
13905
13906 void (STDMETHODCALLTYPE *RemoveDevice)(
13907 ID3D12Device5 *This);
13908
13909 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
13910 ID3D12Device5 *This,
13911 UINT *meta_commands_count,
13912 D3D12_META_COMMAND_DESC *descs);
13913
13914 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
13915 ID3D12Device5 *This,
13916 REFGUID command_id,
13917 D3D12_META_COMMAND_PARAMETER_STAGE stage,
13918 UINT *total_structure_size_in_bytes,
13919 UINT *parameter_count,
13920 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
13921
13922 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
13923 ID3D12Device5 *This,
13924 REFGUID command_id,
13925 UINT node_mask,
13926 const void *creation_parameters_data,
13927 SIZE_T creation_parameters_data_size_in_bytes,
13928 REFIID riid,
13929 void **meta_command);
13930
13931 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
13932 ID3D12Device5 *This,
13933 const D3D12_STATE_OBJECT_DESC *desc,
13934 REFIID riid,
13935 void **state_object);
13936
13937 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
13938 ID3D12Device5 *This,
13939 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
13940 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
13941
13942 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
13943 ID3D12Device5 *This,
13944 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
13945 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
13946
13947 END_INTERFACE
13948} ID3D12Device5Vtbl;
13949
13950interface ID3D12Device5 {
13951 CONST_VTBL ID3D12Device5Vtbl* lpVtbl;
13952};
13953
13954#ifdef COBJMACROS
13955#ifndef WIDL_C_INLINE_WRAPPERS
13956/*** IUnknown methods ***/
13957#define ID3D12Device5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13958#define ID3D12Device5_AddRef(This) (This)->lpVtbl->AddRef(This)
13959#define ID3D12Device5_Release(This) (This)->lpVtbl->Release(This)
13960/*** ID3D12Object methods ***/
13961#define ID3D12Device5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
13962#define ID3D12Device5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
13963#define ID3D12Device5_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
13964#define ID3D12Device5_SetName(This,name) (This)->lpVtbl->SetName(This,name)
13965/*** ID3D12Device methods ***/
13966#define ID3D12Device5_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
13967#define ID3D12Device5_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
13968#define ID3D12Device5_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
13969#define ID3D12Device5_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
13970#define ID3D12Device5_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
13971#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)
13972#define ID3D12Device5_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
13973#define ID3D12Device5_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
13974#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
13975#define ID3D12Device5_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
13976#define ID3D12Device5_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
13977#define ID3D12Device5_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
13978#define ID3D12Device5_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
13979#define ID3D12Device5_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
13980#define ID3D12Device5_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
13981#define ID3D12Device5_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
13982#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)
13983#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)
13984#define ID3D12Device5_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device5_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
13985#define ID3D12Device5_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device5_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
13986#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)
13987#define ID3D12Device5_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
13988#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)
13989#define ID3D12Device5_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
13990#define ID3D12Device5_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
13991#define ID3D12Device5_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
13992#define ID3D12Device5_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
13993#define ID3D12Device5_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
13994#define ID3D12Device5_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
13995#define ID3D12Device5_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
13996#define ID3D12Device5_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
13997#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)
13998#define ID3D12Device5_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
13999#define ID3D12Device5_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
14000#define ID3D12Device5_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
14001#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)
14002#define ID3D12Device5_GetAdapterLuid(This) ID3D12Device5_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
14003/*** ID3D12Device1 methods ***/
14004#define ID3D12Device5_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
14005#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
14006#define ID3D12Device5_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
14007/*** ID3D12Device2 methods ***/
14008#define ID3D12Device5_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
14009/*** ID3D12Device3 methods ***/
14010#define ID3D12Device5_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
14011#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
14012#define ID3D12Device5_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
14013/*** ID3D12Device4 methods ***/
14014#define ID3D12Device5_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
14015#define ID3D12Device5_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
14016#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)
14017#define ID3D12Device5_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
14018#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)
14019#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
14020/*** ID3D12Device5 methods ***/
14021#define ID3D12Device5_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
14022#define ID3D12Device5_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
14023#define ID3D12Device5_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
14024#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)
14025#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)
14026#define ID3D12Device5_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
14027#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
14028#define ID3D12Device5_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
14029#else
14030/*** IUnknown methods ***/
14031static inline HRESULT ID3D12Device5_QueryInterface(ID3D12Device5* This,REFIID riid,void **ppvObject) {
14032 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14033}
14034static inline ULONG ID3D12Device5_AddRef(ID3D12Device5* This) {
14035 return This->lpVtbl->AddRef(This);
14036}
14037static inline ULONG ID3D12Device5_Release(ID3D12Device5* This) {
14038 return This->lpVtbl->Release(This);
14039}
14040/*** ID3D12Object methods ***/
14041static inline HRESULT ID3D12Device5_GetPrivateData(ID3D12Device5* This,REFGUID guid,UINT *data_size,void *data) {
14042 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
14043}
14044static inline HRESULT ID3D12Device5_SetPrivateData(ID3D12Device5* This,REFGUID guid,UINT data_size,const void *data) {
14045 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
14046}
14047static inline HRESULT ID3D12Device5_SetPrivateDataInterface(ID3D12Device5* This,REFGUID guid,const IUnknown *data) {
14048 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
14049}
14050static inline HRESULT ID3D12Device5_SetName(ID3D12Device5* This,const WCHAR *name) {
14051 return This->lpVtbl->SetName(This,name);
14052}
14053/*** ID3D12Device methods ***/
14054static inline UINT ID3D12Device5_GetNodeCount(ID3D12Device5* This) {
14055 return This->lpVtbl->GetNodeCount(This);
14056}
14057static inline HRESULT ID3D12Device5_CreateCommandQueue(ID3D12Device5* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
14058 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
14059}
14060static inline HRESULT ID3D12Device5_CreateCommandAllocator(ID3D12Device5* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
14061 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
14062}
14063static inline HRESULT ID3D12Device5_CreateGraphicsPipelineState(ID3D12Device5* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
14064 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
14065}
14066static inline HRESULT ID3D12Device5_CreateComputePipelineState(ID3D12Device5* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
14067 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
14068}
14069static 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) {
14070 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
14071}
14072static inline HRESULT ID3D12Device5_CheckFeatureSupport(ID3D12Device5* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
14073 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
14074}
14075static inline HRESULT ID3D12Device5_CreateDescriptorHeap(ID3D12Device5* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
14076 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
14077}
14078static inline UINT ID3D12Device5_GetDescriptorHandleIncrementSize(ID3D12Device5* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
14079 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
14080}
14081static inline HRESULT ID3D12Device5_CreateRootSignature(ID3D12Device5* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
14082 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
14083}
14084static inline void ID3D12Device5_CreateConstantBufferView(ID3D12Device5* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14085 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
14086}
14087static inline void ID3D12Device5_CreateShaderResourceView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14088 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
14089}
14090static inline void ID3D12Device5_CreateUnorderedAccessView(ID3D12Device5* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14091 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
14092}
14093static inline void ID3D12Device5_CreateRenderTargetView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14094 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
14095}
14096static inline void ID3D12Device5_CreateDepthStencilView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14097 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
14098}
14099static inline void ID3D12Device5_CreateSampler(ID3D12Device5* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
14100 This->lpVtbl->CreateSampler(This,desc,descriptor);
14101}
14102static 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) {
14103 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);
14104}
14105static 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) {
14106 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
14107}
14108static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device5_GetResourceAllocationInfo(ID3D12Device5* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
14109 D3D12_RESOURCE_ALLOCATION_INFO __ret;
14110 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
14111}
14112static inline D3D12_HEAP_PROPERTIES ID3D12Device5_GetCustomHeapProperties(ID3D12Device5* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
14113 D3D12_HEAP_PROPERTIES __ret;
14114 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
14115}
14116static 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) {
14117 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
14118}
14119static inline HRESULT ID3D12Device5_CreateHeap(ID3D12Device5* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
14120 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
14121}
14122static 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) {
14123 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
14124}
14125static 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) {
14126 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
14127}
14128static inline HRESULT ID3D12Device5_CreateSharedHandle(ID3D12Device5* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
14129 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
14130}
14131static inline HRESULT ID3D12Device5_OpenSharedHandle(ID3D12Device5* This,HANDLE handle,REFIID riid,void **object) {
14132 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
14133}
14134static inline HRESULT ID3D12Device5_OpenSharedHandleByName(ID3D12Device5* This,const WCHAR *name,DWORD access,HANDLE *handle) {
14135 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
14136}
14137static inline HRESULT ID3D12Device5_MakeResident(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects) {
14138 return This->lpVtbl->MakeResident(This,object_count,objects);
14139}
14140static inline HRESULT ID3D12Device5_Evict(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects) {
14141 return This->lpVtbl->Evict(This,object_count,objects);
14142}
14143static inline HRESULT ID3D12Device5_CreateFence(ID3D12Device5* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
14144 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
14145}
14146static inline HRESULT ID3D12Device5_GetDeviceRemovedReason(ID3D12Device5* This) {
14147 return This->lpVtbl->GetDeviceRemovedReason(This);
14148}
14149static 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) {
14150 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
14151}
14152static inline HRESULT ID3D12Device5_CreateQueryHeap(ID3D12Device5* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
14153 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
14154}
14155static inline HRESULT ID3D12Device5_SetStablePowerState(ID3D12Device5* This,WINBOOL enable) {
14156 return This->lpVtbl->SetStablePowerState(This,enable);
14157}
14158static inline HRESULT ID3D12Device5_CreateCommandSignature(ID3D12Device5* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
14159 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
14160}
14161static 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) {
14162 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);
14163}
14164static inline LUID ID3D12Device5_GetAdapterLuid(ID3D12Device5* This) {
14165 LUID __ret;
14166 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
14167}
14168/*** ID3D12Device1 methods ***/
14169static inline HRESULT ID3D12Device5_CreatePipelineLibrary(ID3D12Device5* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
14170 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
14171}
14172static inline HRESULT ID3D12Device5_SetEventOnMultipleFenceCompletion(ID3D12Device5* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
14173 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
14174}
14175static inline HRESULT ID3D12Device5_SetResidencyPriority(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
14176 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
14177}
14178/*** ID3D12Device2 methods ***/
14179static inline HRESULT ID3D12Device5_CreatePipelineState(ID3D12Device5* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
14180 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
14181}
14182/*** ID3D12Device3 methods ***/
14183static inline HRESULT ID3D12Device5_OpenExistingHeapFromAddress(ID3D12Device5* This,const void *address,REFIID riid,void **heap) {
14184 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
14185}
14186static inline HRESULT ID3D12Device5_OpenExistingHeapFromFileMapping(ID3D12Device5* This,HANDLE file_mapping,REFIID riid,void **heap) {
14187 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
14188}
14189static inline HRESULT ID3D12Device5_EnqueueMakeResident(ID3D12Device5* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
14190 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
14191}
14192/*** ID3D12Device4 methods ***/
14193static inline HRESULT ID3D12Device5_CreateCommandList1(ID3D12Device5* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
14194 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
14195}
14196static inline HRESULT ID3D12Device5_CreateProtectedResourceSession(ID3D12Device5* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
14197 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
14198}
14199static 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) {
14200 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
14201}
14202static inline HRESULT ID3D12Device5_CreateHeap1(ID3D12Device5* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
14203 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
14204}
14205static 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) {
14206 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
14207}
14208static 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) {
14209 D3D12_RESOURCE_ALLOCATION_INFO __ret;
14210 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
14211}
14212/*** ID3D12Device5 methods ***/
14213static inline HRESULT ID3D12Device5_CreateLifetimeTracker(ID3D12Device5* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
14214 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
14215}
14216static inline void ID3D12Device5_RemoveDevice(ID3D12Device5* This) {
14217 This->lpVtbl->RemoveDevice(This);
14218}
14219static inline HRESULT ID3D12Device5_EnumerateMetaCommands(ID3D12Device5* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
14220 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
14221}
14222static 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) {
14223 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
14224}
14225static 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) {
14226 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
14227}
14228static inline HRESULT ID3D12Device5_CreateStateObject(ID3D12Device5* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
14229 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
14230}
14231static inline void ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device5* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
14232 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
14233}
14234static 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) {
14235 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
14236}
14237#endif
14238#endif
14239
14240#endif
14241
14242
14243#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */
14244
14245typedef enum D3D12_AUTO_BREADCRUMB_OP {
14246 D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0x0,
14247 D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 0x1,
14248 D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 0x2,
14249 D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 0x3,
14250 D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 0x4,
14251 D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 0x5,
14252 D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 0x6,
14253 D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 0x7,
14254 D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 0x8,
14255 D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 0x9,
14256 D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 0xa,
14257 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 0xb,
14258 D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 0xc,
14259 D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 0xd,
14260 D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 0xe,
14261 D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 0xf,
14262 D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 0x10,
14263 D3D12_AUTO_BREADCRUMB_OP_PRESENT = 0x11,
14264 D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 0x12,
14265 D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 0x13,
14266 D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 0x14,
14267 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 0x15,
14268 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 0x16,
14269 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 0x17,
14270 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 0x18,
14271 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 0x19,
14272 D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 0x1a,
14273 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 0x1b,
14274 D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 0x1c,
14275 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 0x1d,
14276 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 0x1e,
14277 D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 0x1f,
14278 D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 0x20,
14279 D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 0x21,
14280 D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 0x22,
14281 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 0x23,
14282 D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 0x24,
14283 D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 0x25,
14284 D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 0x26,
14285 D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 0x27,
14286 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 0x28,
14287 D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 0x29,
14288 D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 0x2a,
14289 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 0x2b,
14290 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 0x2c
14291} D3D12_AUTO_BREADCRUMB_OP;
14292typedef struct D3D12_AUTO_BREADCRUMB_NODE {
14293 const char *pCommandListDebugNameA;
14294 const WCHAR *pCommandListDebugNameW;
14295 const char *pCommandQueueDebugNameA;
14296 const WCHAR *pCommandQueueDebugNameW;
14297 ID3D12GraphicsCommandList *pCommandList;
14298 ID3D12CommandQueue *pCommandQueue;
14299 UINT32 BreadcrumbCount;
14300 const UINT32 *pLastBreadcrumbValue;
14301 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
14302 const struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
14303} D3D12_AUTO_BREADCRUMB_NODE;
14304typedef struct D3D12_DRED_BREADCRUMB_CONTEXT {
14305 UINT BreadcrumbIndex;
14306 const WCHAR *pContextString;
14307} D3D12_DRED_BREADCRUMB_CONTEXT;
14308typedef struct D3D12_AUTO_BREADCRUMB_NODE1 {
14309 const char *pCommandListDebugNameA;
14310 const WCHAR *pCommandListDebugNameW;
14311 const char *pCommandQueueDebugNameA;
14312 const WCHAR *pCommandQueueDebugNameW;
14313 ID3D12GraphicsCommandList *pCommandList;
14314 ID3D12CommandQueue *pCommandQueue;
14315 UINT BreadcrumbCount;
14316 const UINT *pLastBreadcrumbValue;
14317 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
14318 const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext;
14319 UINT BreadcrumbContextsCount;
14320 D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
14321} D3D12_AUTO_BREADCRUMB_NODE1;
14322typedef enum D3D12_DRED_VERSION {
14323 D3D12_DRED_VERSION_1_0 = 0x1,
14324 D3D12_DRED_VERSION_1_1 = 0x2,
14325 D3D12_DRED_VERSION_1_2 = 0x3,
14326 D3D12_DRED_VERSION_1_3 = 0x4
14327} D3D12_DRED_VERSION;
14328typedef enum D3D12_DRED_FLAGS {
14329 D3D12_DRED_FLAG_NONE = 0x0,
14330 D3D12_DRED_FLAG_FORCE_ENABLE = 0x1,
14331 D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 0x2
14332} D3D12_DRED_FLAGS;
14333DEFINE_ENUM_FLAG_OPERATORS(D3D12_DRED_FLAGS);
14334typedef enum D3D12_DRED_ENABLEMENT {
14335 D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0x0,
14336 D3D12_DRED_ENABLEMENT_FORCED_OFF = 0x1,
14337 D3D12_DRED_ENABLEMENT_FORCED_ON = 0x2
14338} D3D12_DRED_ENABLEMENT;
14339typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA {
14340 D3D12_DRED_FLAGS Flags;
14341 D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
14342} D3D12_DEVICE_REMOVED_EXTENDED_DATA;
14343typedef enum D3D12_DRED_ALLOCATION_TYPE {
14344 D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 0x13,
14345 D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 0x14,
14346 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 0x15,
14347 D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 0x16,
14348 D3D12_DRED_ALLOCATION_TYPE_FENCE = 0x17,
14349 D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 0x18,
14350 D3D12_DRED_ALLOCATION_TYPE_HEAP = 0x19,
14351 D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 0x1b,
14352 D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 0x1c,
14353 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 0x1d,
14354 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 0x1e,
14355 D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 0x20,
14356 D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 0x22,
14357 D3D12_DRED_ALLOCATION_TYPE_PASS = 0x23,
14358 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 0x24,
14359 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 0x25,
14360 D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 0x26,
14361 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 0x27,
14362 D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 0x28,
14363 D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 0x29,
14364 D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 0x2a,
14365 D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 0x2b,
14366 D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 0x2c,
14367 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 0x2d,
14368 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 0x2e,
14369 D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 0x2f,
14370 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 0x30,
14371 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 0x31,
14372 D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff
14373} D3D12_DRED_ALLOCATION_TYPE;
14374typedef struct D3D12_DRED_ALLOCATION_NODE {
14375 const char *ObjectNameA;
14376 const WCHAR *ObjectNameW;
14377 D3D12_DRED_ALLOCATION_TYPE AllocationType;
14378 const struct D3D12_DRED_ALLOCATION_NODE *pNext;
14379} D3D12_DRED_ALLOCATION_NODE;
14380typedef struct D3D12_DRED_ALLOCATION_NODE1 {
14381 const char *ObjectNameA;
14382 const WCHAR *ObjectNameW;
14383 D3D12_DRED_ALLOCATION_TYPE AllocationType;
14384 const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
14385 const IUnknown *pObject;
14386} D3D12_DRED_ALLOCATION_NODE1;
14387typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
14388 const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
14389} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
14390typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
14391 const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode;
14392} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
14393typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT {
14394 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14395 const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
14396 const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
14397} D3D12_DRED_PAGE_FAULT_OUTPUT;
14398typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1 {
14399 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14400 const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
14401 const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
14402} D3D12_DRED_PAGE_FAULT_OUTPUT1;
14403typedef enum D3D12_DRED_PAGE_FAULT_FLAGS {
14404 D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0x0
14405} D3D12_DRED_PAGE_FAULT_FLAGS;
14406DEFINE_ENUM_FLAG_OPERATORS(D3D12_DRED_PAGE_FAULT_FLAGS);
14407typedef enum D3D12_DRED_DEVICE_STATE {
14408 D3D12_DRED_DEVICE_STATE_UNKNOWN = 0x0,
14409 D3D12_DRED_DEVICE_STATE_HUNG = 0x3,
14410 D3D12_DRED_DEVICE_STATE_FAULT = 0x6,
14411 D3D12_DRED_DEVICE_STATE_PAGEFAULT = 0x7
14412} D3D12_DRED_DEVICE_STATE;
14413typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2 {
14414 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14415 const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
14416 const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
14417 D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
14418} D3D12_DRED_PAGE_FAULT_OUTPUT2;
14419typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
14420 HRESULT DeviceRemovedReason;
14421 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
14422 D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
14423} D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
14424typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
14425 HRESULT DeviceRemovedReason;
14426 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
14427 D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
14428} D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
14429typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
14430 HRESULT DeviceRemovedReason;
14431 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
14432 D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
14433 D3D12_DRED_DEVICE_STATE DeviceState;
14434} D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
14435typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
14436 D3D12_DRED_VERSION Version;
14437 __C89_NAMELESS union {
14438 D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
14439 D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
14440 D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
14441 D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
14442 } __C89_NAMELESSUNIONNAME;
14443} D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
14444/*****************************************************************************
14445 * ID3D12DeviceRemovedExtendedDataSettings interface
14446 */
14447#ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
14448#define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
14449
14450DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings, 0x82bc481c, 0x6b9b, 0x4030, 0xae,0xdb, 0x7e,0xe3,0xd1,0xdf,0x1e,0x63);
14451#if defined(__cplusplus) && !defined(CINTERFACE)
14452MIDL_INTERFACE("82bc481c-6b9b-4030-aedb-7ee3d1df1e63")
14453ID3D12DeviceRemovedExtendedDataSettings : public IUnknown
14454{
14455 virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement(
14456 D3D12_DRED_ENABLEMENT enablement) = 0;
14457
14458 virtual void STDMETHODCALLTYPE SetPageFaultEnablement(
14459 D3D12_DRED_ENABLEMENT enablement) = 0;
14460
14461 virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement(
14462 D3D12_DRED_ENABLEMENT enablement) = 0;
14463
14464};
14465#ifdef __CRT_UUID_DECL
14466__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedDataSettings, 0x82bc481c, 0x6b9b, 0x4030, 0xae,0xdb, 0x7e,0xe3,0xd1,0xdf,0x1e,0x63)
14467#endif
14468#else
14469typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl {
14470 BEGIN_INTERFACE
14471
14472 /*** IUnknown methods ***/
14473 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14474 ID3D12DeviceRemovedExtendedDataSettings *This,
14475 REFIID riid,
14476 void **ppvObject);
14477
14478 ULONG (STDMETHODCALLTYPE *AddRef)(
14479 ID3D12DeviceRemovedExtendedDataSettings *This);
14480
14481 ULONG (STDMETHODCALLTYPE *Release)(
14482 ID3D12DeviceRemovedExtendedDataSettings *This);
14483
14484 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14485 void (STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement)(
14486 ID3D12DeviceRemovedExtendedDataSettings *This,
14487 D3D12_DRED_ENABLEMENT enablement);
14488
14489 void (STDMETHODCALLTYPE *SetPageFaultEnablement)(
14490 ID3D12DeviceRemovedExtendedDataSettings *This,
14491 D3D12_DRED_ENABLEMENT enablement);
14492
14493 void (STDMETHODCALLTYPE *SetWatsonDumpEnablement)(
14494 ID3D12DeviceRemovedExtendedDataSettings *This,
14495 D3D12_DRED_ENABLEMENT enablement);
14496
14497 END_INTERFACE
14498} ID3D12DeviceRemovedExtendedDataSettingsVtbl;
14499
14500interface ID3D12DeviceRemovedExtendedDataSettings {
14501 CONST_VTBL ID3D12DeviceRemovedExtendedDataSettingsVtbl* lpVtbl;
14502};
14503
14504#ifdef COBJMACROS
14505#ifndef WIDL_C_INLINE_WRAPPERS
14506/*** IUnknown methods ***/
14507#define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14508#define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
14509#define ID3D12DeviceRemovedExtendedDataSettings_Release(This) (This)->lpVtbl->Release(This)
14510/*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14511#define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,enablement) (This)->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement)
14512#define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,enablement) (This)->lpVtbl->SetPageFaultEnablement(This,enablement)
14513#define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,enablement) (This)->lpVtbl->SetWatsonDumpEnablement(This,enablement)
14514#else
14515/*** IUnknown methods ***/
14516static inline HRESULT ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(ID3D12DeviceRemovedExtendedDataSettings* This,REFIID riid,void **ppvObject) {
14517 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14518}
14519static inline ULONG ID3D12DeviceRemovedExtendedDataSettings_AddRef(ID3D12DeviceRemovedExtendedDataSettings* This) {
14520 return This->lpVtbl->AddRef(This);
14521}
14522static inline ULONG ID3D12DeviceRemovedExtendedDataSettings_Release(ID3D12DeviceRemovedExtendedDataSettings* This) {
14523 return This->lpVtbl->Release(This);
14524}
14525/*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14526static inline void ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) {
14527 This->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement);
14528}
14529static inline void ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) {
14530 This->lpVtbl->SetPageFaultEnablement(This,enablement);
14531}
14532static inline void ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) {
14533 This->lpVtbl->SetWatsonDumpEnablement(This,enablement);
14534}
14535#endif
14536#endif
14537
14538#endif
14539
14540
14541#endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */
14542
14543/*****************************************************************************
14544 * ID3D12DeviceRemovedExtendedDataSettings1 interface
14545 */
14546#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
14547#define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
14548
14549DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1, 0xdbd5ae51, 0x3317, 0x4f0a, 0xad,0xf9, 0x1d,0x7c,0xed,0xca,0xae,0x0b);
14550#if defined(__cplusplus) && !defined(CINTERFACE)
14551MIDL_INTERFACE("dbd5ae51-3317-4f0a-adf9-1d7cedcaae0b")
14552ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings
14553{
14554 virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement(
14555 D3D12_DRED_ENABLEMENT enablement) = 0;
14556
14557};
14558#ifdef __CRT_UUID_DECL
14559__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedDataSettings1, 0xdbd5ae51, 0x3317, 0x4f0a, 0xad,0xf9, 0x1d,0x7c,0xed,0xca,0xae,0x0b)
14560#endif
14561#else
14562typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl {
14563 BEGIN_INTERFACE
14564
14565 /*** IUnknown methods ***/
14566 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14567 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14568 REFIID riid,
14569 void **ppvObject);
14570
14571 ULONG (STDMETHODCALLTYPE *AddRef)(
14572 ID3D12DeviceRemovedExtendedDataSettings1 *This);
14573
14574 ULONG (STDMETHODCALLTYPE *Release)(
14575 ID3D12DeviceRemovedExtendedDataSettings1 *This);
14576
14577 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14578 void (STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement)(
14579 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14580 D3D12_DRED_ENABLEMENT enablement);
14581
14582 void (STDMETHODCALLTYPE *SetPageFaultEnablement)(
14583 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14584 D3D12_DRED_ENABLEMENT enablement);
14585
14586 void (STDMETHODCALLTYPE *SetWatsonDumpEnablement)(
14587 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14588 D3D12_DRED_ENABLEMENT enablement);
14589
14590 /*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/
14591 void (STDMETHODCALLTYPE *SetBreadcrumbContextEnablement)(
14592 ID3D12DeviceRemovedExtendedDataSettings1 *This,
14593 D3D12_DRED_ENABLEMENT enablement);
14594
14595 END_INTERFACE
14596} ID3D12DeviceRemovedExtendedDataSettings1Vtbl;
14597
14598interface ID3D12DeviceRemovedExtendedDataSettings1 {
14599 CONST_VTBL ID3D12DeviceRemovedExtendedDataSettings1Vtbl* lpVtbl;
14600};
14601
14602#ifdef COBJMACROS
14603#ifndef WIDL_C_INLINE_WRAPPERS
14604/*** IUnknown methods ***/
14605#define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14606#define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) (This)->lpVtbl->AddRef(This)
14607#define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) (This)->lpVtbl->Release(This)
14608/*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14609#define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,enablement) (This)->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement)
14610#define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,enablement) (This)->lpVtbl->SetPageFaultEnablement(This,enablement)
14611#define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,enablement) (This)->lpVtbl->SetWatsonDumpEnablement(This,enablement)
14612/*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/
14613#define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,enablement) (This)->lpVtbl->SetBreadcrumbContextEnablement(This,enablement)
14614#else
14615/*** IUnknown methods ***/
14616static inline HRESULT ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(ID3D12DeviceRemovedExtendedDataSettings1* This,REFIID riid,void **ppvObject) {
14617 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14618}
14619static inline ULONG ID3D12DeviceRemovedExtendedDataSettings1_AddRef(ID3D12DeviceRemovedExtendedDataSettings1* This) {
14620 return This->lpVtbl->AddRef(This);
14621}
14622static inline ULONG ID3D12DeviceRemovedExtendedDataSettings1_Release(ID3D12DeviceRemovedExtendedDataSettings1* This) {
14623 return This->lpVtbl->Release(This);
14624}
14625/*** ID3D12DeviceRemovedExtendedDataSettings methods ***/
14626static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) {
14627 This->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement);
14628}
14629static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) {
14630 This->lpVtbl->SetPageFaultEnablement(This,enablement);
14631}
14632static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) {
14633 This->lpVtbl->SetWatsonDumpEnablement(This,enablement);
14634}
14635/*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/
14636static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) {
14637 This->lpVtbl->SetBreadcrumbContextEnablement(This,enablement);
14638}
14639#endif
14640#endif
14641
14642#endif
14643
14644
14645#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */
14646
14647/*****************************************************************************
14648 * ID3D12DeviceRemovedExtendedData interface
14649 */
14650#ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
14651#define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
14652
14653DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData, 0x98931d33, 0x5ae8, 0x4791, 0xaa,0x3c, 0x1a,0x73,0xa2,0x93,0x4e,0x71);
14654#if defined(__cplusplus) && !defined(CINTERFACE)
14655MIDL_INTERFACE("98931d33-5ae8-4791-aa3c-1a73a2934e71")
14656ID3D12DeviceRemovedExtendedData : public IUnknown
14657{
14658 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput(
14659 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) = 0;
14660
14661 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput(
14662 D3D12_DRED_PAGE_FAULT_OUTPUT *output) = 0;
14663
14664};
14665#ifdef __CRT_UUID_DECL
14666__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData, 0x98931d33, 0x5ae8, 0x4791, 0xaa,0x3c, 0x1a,0x73,0xa2,0x93,0x4e,0x71)
14667#endif
14668#else
14669typedef struct ID3D12DeviceRemovedExtendedDataVtbl {
14670 BEGIN_INTERFACE
14671
14672 /*** IUnknown methods ***/
14673 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14674 ID3D12DeviceRemovedExtendedData *This,
14675 REFIID riid,
14676 void **ppvObject);
14677
14678 ULONG (STDMETHODCALLTYPE *AddRef)(
14679 ID3D12DeviceRemovedExtendedData *This);
14680
14681 ULONG (STDMETHODCALLTYPE *Release)(
14682 ID3D12DeviceRemovedExtendedData *This);
14683
14684 /*** ID3D12DeviceRemovedExtendedData methods ***/
14685 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)(
14686 ID3D12DeviceRemovedExtendedData *This,
14687 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output);
14688
14689 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)(
14690 ID3D12DeviceRemovedExtendedData *This,
14691 D3D12_DRED_PAGE_FAULT_OUTPUT *output);
14692
14693 END_INTERFACE
14694} ID3D12DeviceRemovedExtendedDataVtbl;
14695
14696interface ID3D12DeviceRemovedExtendedData {
14697 CONST_VTBL ID3D12DeviceRemovedExtendedDataVtbl* lpVtbl;
14698};
14699
14700#ifdef COBJMACROS
14701#ifndef WIDL_C_INLINE_WRAPPERS
14702/*** IUnknown methods ***/
14703#define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14704#define ID3D12DeviceRemovedExtendedData_AddRef(This) (This)->lpVtbl->AddRef(This)
14705#define ID3D12DeviceRemovedExtendedData_Release(This) (This)->lpVtbl->Release(This)
14706/*** ID3D12DeviceRemovedExtendedData methods ***/
14707#define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output)
14708#define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output)
14709#else
14710/*** IUnknown methods ***/
14711static inline HRESULT ID3D12DeviceRemovedExtendedData_QueryInterface(ID3D12DeviceRemovedExtendedData* This,REFIID riid,void **ppvObject) {
14712 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14713}
14714static inline ULONG ID3D12DeviceRemovedExtendedData_AddRef(ID3D12DeviceRemovedExtendedData* This) {
14715 return This->lpVtbl->AddRef(This);
14716}
14717static inline ULONG ID3D12DeviceRemovedExtendedData_Release(ID3D12DeviceRemovedExtendedData* This) {
14718 return This->lpVtbl->Release(This);
14719}
14720/*** ID3D12DeviceRemovedExtendedData methods ***/
14721static inline HRESULT ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) {
14722 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output);
14723}
14724static inline HRESULT ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) {
14725 return This->lpVtbl->GetPageFaultAllocationOutput(This,output);
14726}
14727#endif
14728#endif
14729
14730#endif
14731
14732
14733#endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */
14734
14735/*****************************************************************************
14736 * ID3D12DeviceRemovedExtendedData1 interface
14737 */
14738#ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
14739#define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
14740
14741DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1, 0x9727a022, 0xcf1d, 0x4dda, 0x9e,0xba, 0xef,0xfa,0x65,0x3f,0xc5,0x06);
14742#if defined(__cplusplus) && !defined(CINTERFACE)
14743MIDL_INTERFACE("9727a022-cf1d-4dda-9eba-effa653fc506")
14744ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData
14745{
14746 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1(
14747 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) = 0;
14748
14749 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1(
14750 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) = 0;
14751
14752};
14753#ifdef __CRT_UUID_DECL
14754__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData1, 0x9727a022, 0xcf1d, 0x4dda, 0x9e,0xba, 0xef,0xfa,0x65,0x3f,0xc5,0x06)
14755#endif
14756#else
14757typedef struct ID3D12DeviceRemovedExtendedData1Vtbl {
14758 BEGIN_INTERFACE
14759
14760 /*** IUnknown methods ***/
14761 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14762 ID3D12DeviceRemovedExtendedData1 *This,
14763 REFIID riid,
14764 void **ppvObject);
14765
14766 ULONG (STDMETHODCALLTYPE *AddRef)(
14767 ID3D12DeviceRemovedExtendedData1 *This);
14768
14769 ULONG (STDMETHODCALLTYPE *Release)(
14770 ID3D12DeviceRemovedExtendedData1 *This);
14771
14772 /*** ID3D12DeviceRemovedExtendedData methods ***/
14773 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)(
14774 ID3D12DeviceRemovedExtendedData1 *This,
14775 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output);
14776
14777 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)(
14778 ID3D12DeviceRemovedExtendedData1 *This,
14779 D3D12_DRED_PAGE_FAULT_OUTPUT *output);
14780
14781 /*** ID3D12DeviceRemovedExtendedData1 methods ***/
14782 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1)(
14783 ID3D12DeviceRemovedExtendedData1 *This,
14784 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output);
14785
14786 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput1)(
14787 ID3D12DeviceRemovedExtendedData1 *This,
14788 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output);
14789
14790 END_INTERFACE
14791} ID3D12DeviceRemovedExtendedData1Vtbl;
14792
14793interface ID3D12DeviceRemovedExtendedData1 {
14794 CONST_VTBL ID3D12DeviceRemovedExtendedData1Vtbl* lpVtbl;
14795};
14796
14797#ifdef COBJMACROS
14798#ifndef WIDL_C_INLINE_WRAPPERS
14799/*** IUnknown methods ***/
14800#define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14801#define ID3D12DeviceRemovedExtendedData1_AddRef(This) (This)->lpVtbl->AddRef(This)
14802#define ID3D12DeviceRemovedExtendedData1_Release(This) (This)->lpVtbl->Release(This)
14803/*** ID3D12DeviceRemovedExtendedData methods ***/
14804#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output)
14805#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output)
14806/*** ID3D12DeviceRemovedExtendedData1 methods ***/
14807#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput1(This,output)
14808#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput1(This,output)
14809#else
14810/*** IUnknown methods ***/
14811static inline HRESULT ID3D12DeviceRemovedExtendedData1_QueryInterface(ID3D12DeviceRemovedExtendedData1* This,REFIID riid,void **ppvObject) {
14812 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14813}
14814static inline ULONG ID3D12DeviceRemovedExtendedData1_AddRef(ID3D12DeviceRemovedExtendedData1* This) {
14815 return This->lpVtbl->AddRef(This);
14816}
14817static inline ULONG ID3D12DeviceRemovedExtendedData1_Release(ID3D12DeviceRemovedExtendedData1* This) {
14818 return This->lpVtbl->Release(This);
14819}
14820/*** ID3D12DeviceRemovedExtendedData methods ***/
14821static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) {
14822 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output);
14823}
14824static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) {
14825 return This->lpVtbl->GetPageFaultAllocationOutput(This,output);
14826}
14827/*** ID3D12DeviceRemovedExtendedData1 methods ***/
14828static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) {
14829 return This->lpVtbl->GetAutoBreadcrumbsOutput1(This,output);
14830}
14831static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) {
14832 return This->lpVtbl->GetPageFaultAllocationOutput1(This,output);
14833}
14834#endif
14835#endif
14836
14837#endif
14838
14839
14840#endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */
14841
14842/*****************************************************************************
14843 * ID3D12DeviceRemovedExtendedData2 interface
14844 */
14845#ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
14846#define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
14847
14848DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2, 0x67fc5816, 0xe4ca, 0x4915, 0xbf,0x18, 0x42,0x54,0x12,0x72,0xda,0x54);
14849#if defined(__cplusplus) && !defined(CINTERFACE)
14850MIDL_INTERFACE("67fc5816-e4ca-4915-bf18-42541272da54")
14851ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1
14852{
14853 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2(
14854 D3D12_DRED_PAGE_FAULT_OUTPUT2 *output) = 0;
14855
14856 virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState(
14857 ) = 0;
14858
14859};
14860#ifdef __CRT_UUID_DECL
14861__CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData2, 0x67fc5816, 0xe4ca, 0x4915, 0xbf,0x18, 0x42,0x54,0x12,0x72,0xda,0x54)
14862#endif
14863#else
14864typedef struct ID3D12DeviceRemovedExtendedData2Vtbl {
14865 BEGIN_INTERFACE
14866
14867 /*** IUnknown methods ***/
14868 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14869 ID3D12DeviceRemovedExtendedData2 *This,
14870 REFIID riid,
14871 void **ppvObject);
14872
14873 ULONG (STDMETHODCALLTYPE *AddRef)(
14874 ID3D12DeviceRemovedExtendedData2 *This);
14875
14876 ULONG (STDMETHODCALLTYPE *Release)(
14877 ID3D12DeviceRemovedExtendedData2 *This);
14878
14879 /*** ID3D12DeviceRemovedExtendedData methods ***/
14880 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)(
14881 ID3D12DeviceRemovedExtendedData2 *This,
14882 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output);
14883
14884 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)(
14885 ID3D12DeviceRemovedExtendedData2 *This,
14886 D3D12_DRED_PAGE_FAULT_OUTPUT *output);
14887
14888 /*** ID3D12DeviceRemovedExtendedData1 methods ***/
14889 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1)(
14890 ID3D12DeviceRemovedExtendedData2 *This,
14891 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output);
14892
14893 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput1)(
14894 ID3D12DeviceRemovedExtendedData2 *This,
14895 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output);
14896
14897 /*** ID3D12DeviceRemovedExtendedData2 methods ***/
14898 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput2)(
14899 ID3D12DeviceRemovedExtendedData2 *This,
14900 D3D12_DRED_PAGE_FAULT_OUTPUT2 *output);
14901
14902 D3D12_DRED_DEVICE_STATE (STDMETHODCALLTYPE *GetDeviceState)(
14903 ID3D12DeviceRemovedExtendedData2 *This);
14904
14905 END_INTERFACE
14906} ID3D12DeviceRemovedExtendedData2Vtbl;
14907
14908interface ID3D12DeviceRemovedExtendedData2 {
14909 CONST_VTBL ID3D12DeviceRemovedExtendedData2Vtbl* lpVtbl;
14910};
14911
14912#ifdef COBJMACROS
14913#ifndef WIDL_C_INLINE_WRAPPERS
14914/*** IUnknown methods ***/
14915#define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14916#define ID3D12DeviceRemovedExtendedData2_AddRef(This) (This)->lpVtbl->AddRef(This)
14917#define ID3D12DeviceRemovedExtendedData2_Release(This) (This)->lpVtbl->Release(This)
14918/*** ID3D12DeviceRemovedExtendedData methods ***/
14919#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output)
14920#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output)
14921/*** ID3D12DeviceRemovedExtendedData1 methods ***/
14922#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput1(This,output)
14923#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput1(This,output)
14924/*** ID3D12DeviceRemovedExtendedData2 methods ***/
14925#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput2(This,output)
14926#define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) (This)->lpVtbl->GetDeviceState(This)
14927#else
14928/*** IUnknown methods ***/
14929static inline HRESULT ID3D12DeviceRemovedExtendedData2_QueryInterface(ID3D12DeviceRemovedExtendedData2* This,REFIID riid,void **ppvObject) {
14930 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14931}
14932static inline ULONG ID3D12DeviceRemovedExtendedData2_AddRef(ID3D12DeviceRemovedExtendedData2* This) {
14933 return This->lpVtbl->AddRef(This);
14934}
14935static inline ULONG ID3D12DeviceRemovedExtendedData2_Release(ID3D12DeviceRemovedExtendedData2* This) {
14936 return This->lpVtbl->Release(This);
14937}
14938/*** ID3D12DeviceRemovedExtendedData methods ***/
14939static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) {
14940 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output);
14941}
14942static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) {
14943 return This->lpVtbl->GetPageFaultAllocationOutput(This,output);
14944}
14945/*** ID3D12DeviceRemovedExtendedData1 methods ***/
14946static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) {
14947 return This->lpVtbl->GetAutoBreadcrumbsOutput1(This,output);
14948}
14949static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) {
14950 return This->lpVtbl->GetPageFaultAllocationOutput1(This,output);
14951}
14952/*** ID3D12DeviceRemovedExtendedData2 methods ***/
14953static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT2 *output) {
14954 return This->lpVtbl->GetPageFaultAllocationOutput2(This,output);
14955}
14956static inline D3D12_DRED_DEVICE_STATE ID3D12DeviceRemovedExtendedData2_GetDeviceState(ID3D12DeviceRemovedExtendedData2* This) {
14957 return This->lpVtbl->GetDeviceState(This);
14958}
14959#endif
14960#endif
14961
14962#endif
14963
14964
14965#endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */
14966
14967typedef enum D3D12_BACKGROUND_PROCESSING_MODE {
14968 D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0x0,
14969 D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = 0x1,
14970 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = 0x2,
14971 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = 0x3
14972} D3D12_BACKGROUND_PROCESSING_MODE;
14973typedef enum D3D12_MEASUREMENTS_ACTION {
14974 D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0x0,
14975 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = 0x1,
14976 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = 0x2,
14977 D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = 0x3
14978} D3D12_MEASUREMENTS_ACTION;
14979/*****************************************************************************
14980 * ID3D12Device6 interface
14981 */
14982#ifndef __ID3D12Device6_INTERFACE_DEFINED__
14983#define __ID3D12Device6_INTERFACE_DEFINED__
14984
14985DEFINE_GUID(IID_ID3D12Device6, 0xc70b221b, 0x40e4, 0x4a17, 0x89,0xaf, 0x02,0x5a,0x07,0x27,0xa6,0xdc);
14986#if defined(__cplusplus) && !defined(CINTERFACE)
14987MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc")
14988ID3D12Device6 : public ID3D12Device5
14989{
14990 virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode(
14991 D3D12_BACKGROUND_PROCESSING_MODE mode,
14992 D3D12_MEASUREMENTS_ACTION action,
14993 HANDLE event,
14994 WINBOOL *further_measurements_desired) = 0;
14995
14996};
14997#ifdef __CRT_UUID_DECL
14998__CRT_UUID_DECL(ID3D12Device6, 0xc70b221b, 0x40e4, 0x4a17, 0x89,0xaf, 0x02,0x5a,0x07,0x27,0xa6,0xdc)
14999#endif
15000#else
15001typedef struct ID3D12Device6Vtbl {
15002 BEGIN_INTERFACE
15003
15004 /*** IUnknown methods ***/
15005 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15006 ID3D12Device6 *This,
15007 REFIID riid,
15008 void **ppvObject);
15009
15010 ULONG (STDMETHODCALLTYPE *AddRef)(
15011 ID3D12Device6 *This);
15012
15013 ULONG (STDMETHODCALLTYPE *Release)(
15014 ID3D12Device6 *This);
15015
15016 /*** ID3D12Object methods ***/
15017 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
15018 ID3D12Device6 *This,
15019 REFGUID guid,
15020 UINT *data_size,
15021 void *data);
15022
15023 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
15024 ID3D12Device6 *This,
15025 REFGUID guid,
15026 UINT data_size,
15027 const void *data);
15028
15029 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
15030 ID3D12Device6 *This,
15031 REFGUID guid,
15032 const IUnknown *data);
15033
15034 HRESULT (STDMETHODCALLTYPE *SetName)(
15035 ID3D12Device6 *This,
15036 const WCHAR *name);
15037
15038 /*** ID3D12Device methods ***/
15039 UINT (STDMETHODCALLTYPE *GetNodeCount)(
15040 ID3D12Device6 *This);
15041
15042 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
15043 ID3D12Device6 *This,
15044 const D3D12_COMMAND_QUEUE_DESC *desc,
15045 REFIID riid,
15046 void **command_queue);
15047
15048 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
15049 ID3D12Device6 *This,
15050 D3D12_COMMAND_LIST_TYPE type,
15051 REFIID riid,
15052 void **command_allocator);
15053
15054 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
15055 ID3D12Device6 *This,
15056 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
15057 REFIID riid,
15058 void **pipeline_state);
15059
15060 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
15061 ID3D12Device6 *This,
15062 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
15063 REFIID riid,
15064 void **pipeline_state);
15065
15066 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
15067 ID3D12Device6 *This,
15068 UINT node_mask,
15069 D3D12_COMMAND_LIST_TYPE type,
15070 ID3D12CommandAllocator *command_allocator,
15071 ID3D12PipelineState *initial_pipeline_state,
15072 REFIID riid,
15073 void **command_list);
15074
15075 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
15076 ID3D12Device6 *This,
15077 D3D12_FEATURE feature,
15078 void *feature_data,
15079 UINT feature_data_size);
15080
15081 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
15082 ID3D12Device6 *This,
15083 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
15084 REFIID riid,
15085 void **descriptor_heap);
15086
15087 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
15088 ID3D12Device6 *This,
15089 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
15090
15091 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
15092 ID3D12Device6 *This,
15093 UINT node_mask,
15094 const void *bytecode,
15095 SIZE_T bytecode_length,
15096 REFIID riid,
15097 void **root_signature);
15098
15099 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
15100 ID3D12Device6 *This,
15101 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
15102 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15103
15104 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
15105 ID3D12Device6 *This,
15106 ID3D12Resource *resource,
15107 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
15108 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15109
15110 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
15111 ID3D12Device6 *This,
15112 ID3D12Resource *resource,
15113 ID3D12Resource *counter_resource,
15114 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
15115 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15116
15117 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
15118 ID3D12Device6 *This,
15119 ID3D12Resource *resource,
15120 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
15121 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15122
15123 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
15124 ID3D12Device6 *This,
15125 ID3D12Resource *resource,
15126 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
15127 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15128
15129 void (STDMETHODCALLTYPE *CreateSampler)(
15130 ID3D12Device6 *This,
15131 const D3D12_SAMPLER_DESC *desc,
15132 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
15133
15134 void (STDMETHODCALLTYPE *CopyDescriptors)(
15135 ID3D12Device6 *This,
15136 UINT dst_descriptor_range_count,
15137 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
15138 const UINT *dst_descriptor_range_sizes,
15139 UINT src_descriptor_range_count,
15140 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
15141 const UINT *src_descriptor_range_sizes,
15142 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
15143
15144 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
15145 ID3D12Device6 *This,
15146 UINT descriptor_count,
15147 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
15148 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
15149 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
15150
15151 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
15152 ID3D12Device6 *This,
15153 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
15154 UINT visible_mask,
15155 UINT reource_desc_count,
15156 const D3D12_RESOURCE_DESC *resource_descs);
15157
15158 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
15159 ID3D12Device6 *This,
15160 D3D12_HEAP_PROPERTIES *__ret,
15161 UINT node_mask,
15162 D3D12_HEAP_TYPE heap_type);
15163
15164 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
15165 ID3D12Device6 *This,
15166 const D3D12_HEAP_PROPERTIES *heap_properties,
15167 D3D12_HEAP_FLAGS heap_flags,
15168 const D3D12_RESOURCE_DESC *desc,
15169 D3D12_RESOURCE_STATES initial_state,
15170 const D3D12_CLEAR_VALUE *optimized_clear_value,
15171 REFIID riid,
15172 void **resource);
15173
15174 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
15175 ID3D12Device6 *This,
15176 const D3D12_HEAP_DESC *desc,
15177 REFIID riid,
15178 void **heap);
15179
15180 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
15181 ID3D12Device6 *This,
15182 ID3D12Heap *heap,
15183 UINT64 heap_offset,
15184 const D3D12_RESOURCE_DESC *desc,
15185 D3D12_RESOURCE_STATES initial_state,
15186 const D3D12_CLEAR_VALUE *optimized_clear_value,
15187 REFIID riid,
15188 void **resource);
15189
15190 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
15191 ID3D12Device6 *This,
15192 const D3D12_RESOURCE_DESC *desc,
15193 D3D12_RESOURCE_STATES initial_state,
15194 const D3D12_CLEAR_VALUE *optimized_clear_value,
15195 REFIID riid,
15196 void **resource);
15197
15198 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
15199 ID3D12Device6 *This,
15200 ID3D12DeviceChild *object,
15201 const SECURITY_ATTRIBUTES *attributes,
15202 DWORD access,
15203 const WCHAR *name,
15204 HANDLE *handle);
15205
15206 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
15207 ID3D12Device6 *This,
15208 HANDLE handle,
15209 REFIID riid,
15210 void **object);
15211
15212 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
15213 ID3D12Device6 *This,
15214 const WCHAR *name,
15215 DWORD access,
15216 HANDLE *handle);
15217
15218 HRESULT (STDMETHODCALLTYPE *MakeResident)(
15219 ID3D12Device6 *This,
15220 UINT object_count,
15221 ID3D12Pageable *const *objects);
15222
15223 HRESULT (STDMETHODCALLTYPE *Evict)(
15224 ID3D12Device6 *This,
15225 UINT object_count,
15226 ID3D12Pageable *const *objects);
15227
15228 HRESULT (STDMETHODCALLTYPE *CreateFence)(
15229 ID3D12Device6 *This,
15230 UINT64 initial_value,
15231 D3D12_FENCE_FLAGS flags,
15232 REFIID riid,
15233 void **fence);
15234
15235 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
15236 ID3D12Device6 *This);
15237
15238 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
15239 ID3D12Device6 *This,
15240 const D3D12_RESOURCE_DESC *desc,
15241 UINT first_sub_resource,
15242 UINT sub_resource_count,
15243 UINT64 base_offset,
15244 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
15245 UINT *row_count,
15246 UINT64 *row_size,
15247 UINT64 *total_bytes);
15248
15249 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
15250 ID3D12Device6 *This,
15251 const D3D12_QUERY_HEAP_DESC *desc,
15252 REFIID riid,
15253 void **heap);
15254
15255 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
15256 ID3D12Device6 *This,
15257 WINBOOL enable);
15258
15259 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
15260 ID3D12Device6 *This,
15261 const D3D12_COMMAND_SIGNATURE_DESC *desc,
15262 ID3D12RootSignature *root_signature,
15263 REFIID riid,
15264 void **command_signature);
15265
15266 void (STDMETHODCALLTYPE *GetResourceTiling)(
15267 ID3D12Device6 *This,
15268 ID3D12Resource *resource,
15269 UINT *total_tile_count,
15270 D3D12_PACKED_MIP_INFO *packed_mip_info,
15271 D3D12_TILE_SHAPE *standard_tile_shape,
15272 UINT *sub_resource_tiling_count,
15273 UINT first_sub_resource_tiling,
15274 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
15275
15276 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
15277 ID3D12Device6 *This,
15278 LUID *__ret);
15279
15280 /*** ID3D12Device1 methods ***/
15281 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
15282 ID3D12Device6 *This,
15283 const void *blob,
15284 SIZE_T blob_size,
15285 REFIID iid,
15286 void **lib);
15287
15288 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
15289 ID3D12Device6 *This,
15290 ID3D12Fence *const *fences,
15291 const UINT64 *values,
15292 UINT fence_count,
15293 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
15294 HANDLE event);
15295
15296 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
15297 ID3D12Device6 *This,
15298 UINT object_count,
15299 ID3D12Pageable *const *objects,
15300 const D3D12_RESIDENCY_PRIORITY *priorities);
15301
15302 /*** ID3D12Device2 methods ***/
15303 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
15304 ID3D12Device6 *This,
15305 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
15306 REFIID riid,
15307 void **pipeline_state);
15308
15309 /*** ID3D12Device3 methods ***/
15310 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
15311 ID3D12Device6 *This,
15312 const void *address,
15313 REFIID riid,
15314 void **heap);
15315
15316 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
15317 ID3D12Device6 *This,
15318 HANDLE file_mapping,
15319 REFIID riid,
15320 void **heap);
15321
15322 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
15323 ID3D12Device6 *This,
15324 D3D12_RESIDENCY_FLAGS flags,
15325 UINT num_objects,
15326 ID3D12Pageable *const *objects,
15327 ID3D12Fence *fence,
15328 UINT64 fence_value);
15329
15330 /*** ID3D12Device4 methods ***/
15331 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
15332 ID3D12Device6 *This,
15333 UINT node_mask,
15334 D3D12_COMMAND_LIST_TYPE type,
15335 D3D12_COMMAND_LIST_FLAGS flags,
15336 REFIID riid,
15337 void **command_list);
15338
15339 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
15340 ID3D12Device6 *This,
15341 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
15342 REFIID riid,
15343 void **session);
15344
15345 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
15346 ID3D12Device6 *This,
15347 const D3D12_HEAP_PROPERTIES *heap_properties,
15348 D3D12_HEAP_FLAGS heap_flags,
15349 const D3D12_RESOURCE_DESC *desc,
15350 D3D12_RESOURCE_STATES initial_resource_state,
15351 const D3D12_CLEAR_VALUE *optimized_clear_value,
15352 ID3D12ProtectedResourceSession *protected_session,
15353 REFIID riid_resource,
15354 void **resource);
15355
15356 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
15357 ID3D12Device6 *This,
15358 const D3D12_HEAP_DESC *desc,
15359 ID3D12ProtectedResourceSession *protected_session,
15360 REFIID riid,
15361 void **heap);
15362
15363 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
15364 ID3D12Device6 *This,
15365 const D3D12_RESOURCE_DESC *desc,
15366 D3D12_RESOURCE_STATES initial_state,
15367 const D3D12_CLEAR_VALUE *optimized_clear_value,
15368 ID3D12ProtectedResourceSession *protected_session,
15369 REFIID riid,
15370 void **resource);
15371
15372 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
15373 ID3D12Device6 *This,
15374 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
15375 UINT visible_mask,
15376 UINT resource_descs_count,
15377 const D3D12_RESOURCE_DESC *resource_descs,
15378 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
15379
15380 /*** ID3D12Device5 methods ***/
15381 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
15382 ID3D12Device6 *This,
15383 ID3D12LifetimeOwner *owner,
15384 REFIID riid,
15385 void **tracker);
15386
15387 void (STDMETHODCALLTYPE *RemoveDevice)(
15388 ID3D12Device6 *This);
15389
15390 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
15391 ID3D12Device6 *This,
15392 UINT *meta_commands_count,
15393 D3D12_META_COMMAND_DESC *descs);
15394
15395 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
15396 ID3D12Device6 *This,
15397 REFGUID command_id,
15398 D3D12_META_COMMAND_PARAMETER_STAGE stage,
15399 UINT *total_structure_size_in_bytes,
15400 UINT *parameter_count,
15401 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
15402
15403 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
15404 ID3D12Device6 *This,
15405 REFGUID command_id,
15406 UINT node_mask,
15407 const void *creation_parameters_data,
15408 SIZE_T creation_parameters_data_size_in_bytes,
15409 REFIID riid,
15410 void **meta_command);
15411
15412 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
15413 ID3D12Device6 *This,
15414 const D3D12_STATE_OBJECT_DESC *desc,
15415 REFIID riid,
15416 void **state_object);
15417
15418 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
15419 ID3D12Device6 *This,
15420 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
15421 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
15422
15423 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
15424 ID3D12Device6 *This,
15425 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
15426 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
15427
15428 /*** ID3D12Device6 methods ***/
15429 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
15430 ID3D12Device6 *This,
15431 D3D12_BACKGROUND_PROCESSING_MODE mode,
15432 D3D12_MEASUREMENTS_ACTION action,
15433 HANDLE event,
15434 WINBOOL *further_measurements_desired);
15435
15436 END_INTERFACE
15437} ID3D12Device6Vtbl;
15438
15439interface ID3D12Device6 {
15440 CONST_VTBL ID3D12Device6Vtbl* lpVtbl;
15441};
15442
15443#ifdef COBJMACROS
15444#ifndef WIDL_C_INLINE_WRAPPERS
15445/*** IUnknown methods ***/
15446#define ID3D12Device6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15447#define ID3D12Device6_AddRef(This) (This)->lpVtbl->AddRef(This)
15448#define ID3D12Device6_Release(This) (This)->lpVtbl->Release(This)
15449/*** ID3D12Object methods ***/
15450#define ID3D12Device6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
15451#define ID3D12Device6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
15452#define ID3D12Device6_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
15453#define ID3D12Device6_SetName(This,name) (This)->lpVtbl->SetName(This,name)
15454/*** ID3D12Device methods ***/
15455#define ID3D12Device6_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
15456#define ID3D12Device6_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
15457#define ID3D12Device6_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
15458#define ID3D12Device6_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
15459#define ID3D12Device6_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
15460#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)
15461#define ID3D12Device6_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
15462#define ID3D12Device6_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
15463#define ID3D12Device6_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
15464#define ID3D12Device6_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
15465#define ID3D12Device6_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
15466#define ID3D12Device6_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
15467#define ID3D12Device6_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
15468#define ID3D12Device6_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
15469#define ID3D12Device6_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
15470#define ID3D12Device6_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
15471#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)
15472#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)
15473#define ID3D12Device6_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device6_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15474#define ID3D12Device6_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device6_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15475#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)
15476#define ID3D12Device6_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
15477#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)
15478#define ID3D12Device6_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
15479#define ID3D12Device6_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
15480#define ID3D12Device6_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
15481#define ID3D12Device6_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
15482#define ID3D12Device6_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
15483#define ID3D12Device6_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
15484#define ID3D12Device6_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
15485#define ID3D12Device6_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
15486#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)
15487#define ID3D12Device6_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
15488#define ID3D12Device6_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
15489#define ID3D12Device6_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
15490#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)
15491#define ID3D12Device6_GetAdapterLuid(This) ID3D12Device6_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15492/*** ID3D12Device1 methods ***/
15493#define ID3D12Device6_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
15494#define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
15495#define ID3D12Device6_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
15496/*** ID3D12Device2 methods ***/
15497#define ID3D12Device6_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
15498/*** ID3D12Device3 methods ***/
15499#define ID3D12Device6_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
15500#define ID3D12Device6_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
15501#define ID3D12Device6_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
15502/*** ID3D12Device4 methods ***/
15503#define ID3D12Device6_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
15504#define ID3D12Device6_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
15505#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)
15506#define ID3D12Device6_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
15507#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)
15508#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
15509/*** ID3D12Device5 methods ***/
15510#define ID3D12Device6_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
15511#define ID3D12Device6_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
15512#define ID3D12Device6_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
15513#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)
15514#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)
15515#define ID3D12Device6_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
15516#define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
15517#define ID3D12Device6_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
15518/*** ID3D12Device6 methods ***/
15519#define ID3D12Device6_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
15520#else
15521/*** IUnknown methods ***/
15522static inline HRESULT ID3D12Device6_QueryInterface(ID3D12Device6* This,REFIID riid,void **ppvObject) {
15523 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15524}
15525static inline ULONG ID3D12Device6_AddRef(ID3D12Device6* This) {
15526 return This->lpVtbl->AddRef(This);
15527}
15528static inline ULONG ID3D12Device6_Release(ID3D12Device6* This) {
15529 return This->lpVtbl->Release(This);
15530}
15531/*** ID3D12Object methods ***/
15532static inline HRESULT ID3D12Device6_GetPrivateData(ID3D12Device6* This,REFGUID guid,UINT *data_size,void *data) {
15533 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
15534}
15535static inline HRESULT ID3D12Device6_SetPrivateData(ID3D12Device6* This,REFGUID guid,UINT data_size,const void *data) {
15536 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
15537}
15538static inline HRESULT ID3D12Device6_SetPrivateDataInterface(ID3D12Device6* This,REFGUID guid,const IUnknown *data) {
15539 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
15540}
15541static inline HRESULT ID3D12Device6_SetName(ID3D12Device6* This,const WCHAR *name) {
15542 return This->lpVtbl->SetName(This,name);
15543}
15544/*** ID3D12Device methods ***/
15545static inline UINT ID3D12Device6_GetNodeCount(ID3D12Device6* This) {
15546 return This->lpVtbl->GetNodeCount(This);
15547}
15548static inline HRESULT ID3D12Device6_CreateCommandQueue(ID3D12Device6* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
15549 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
15550}
15551static inline HRESULT ID3D12Device6_CreateCommandAllocator(ID3D12Device6* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
15552 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
15553}
15554static inline HRESULT ID3D12Device6_CreateGraphicsPipelineState(ID3D12Device6* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
15555 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
15556}
15557static inline HRESULT ID3D12Device6_CreateComputePipelineState(ID3D12Device6* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
15558 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
15559}
15560static 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) {
15561 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
15562}
15563static inline HRESULT ID3D12Device6_CheckFeatureSupport(ID3D12Device6* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
15564 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
15565}
15566static inline HRESULT ID3D12Device6_CreateDescriptorHeap(ID3D12Device6* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
15567 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
15568}
15569static inline UINT ID3D12Device6_GetDescriptorHandleIncrementSize(ID3D12Device6* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
15570 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
15571}
15572static inline HRESULT ID3D12Device6_CreateRootSignature(ID3D12Device6* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
15573 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
15574}
15575static inline void ID3D12Device6_CreateConstantBufferView(ID3D12Device6* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15576 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
15577}
15578static inline void ID3D12Device6_CreateShaderResourceView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15579 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
15580}
15581static inline void ID3D12Device6_CreateUnorderedAccessView(ID3D12Device6* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15582 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
15583}
15584static inline void ID3D12Device6_CreateRenderTargetView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15585 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
15586}
15587static inline void ID3D12Device6_CreateDepthStencilView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15588 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
15589}
15590static inline void ID3D12Device6_CreateSampler(ID3D12Device6* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
15591 This->lpVtbl->CreateSampler(This,desc,descriptor);
15592}
15593static 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) {
15594 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);
15595}
15596static 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) {
15597 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
15598}
15599static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device6_GetResourceAllocationInfo(ID3D12Device6* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
15600 D3D12_RESOURCE_ALLOCATION_INFO __ret;
15601 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
15602}
15603static inline D3D12_HEAP_PROPERTIES ID3D12Device6_GetCustomHeapProperties(ID3D12Device6* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
15604 D3D12_HEAP_PROPERTIES __ret;
15605 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
15606}
15607static 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) {
15608 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
15609}
15610static inline HRESULT ID3D12Device6_CreateHeap(ID3D12Device6* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
15611 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
15612}
15613static 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) {
15614 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
15615}
15616static 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) {
15617 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
15618}
15619static inline HRESULT ID3D12Device6_CreateSharedHandle(ID3D12Device6* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
15620 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
15621}
15622static inline HRESULT ID3D12Device6_OpenSharedHandle(ID3D12Device6* This,HANDLE handle,REFIID riid,void **object) {
15623 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
15624}
15625static inline HRESULT ID3D12Device6_OpenSharedHandleByName(ID3D12Device6* This,const WCHAR *name,DWORD access,HANDLE *handle) {
15626 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
15627}
15628static inline HRESULT ID3D12Device6_MakeResident(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects) {
15629 return This->lpVtbl->MakeResident(This,object_count,objects);
15630}
15631static inline HRESULT ID3D12Device6_Evict(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects) {
15632 return This->lpVtbl->Evict(This,object_count,objects);
15633}
15634static inline HRESULT ID3D12Device6_CreateFence(ID3D12Device6* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
15635 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
15636}
15637static inline HRESULT ID3D12Device6_GetDeviceRemovedReason(ID3D12Device6* This) {
15638 return This->lpVtbl->GetDeviceRemovedReason(This);
15639}
15640static 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) {
15641 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
15642}
15643static inline HRESULT ID3D12Device6_CreateQueryHeap(ID3D12Device6* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
15644 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
15645}
15646static inline HRESULT ID3D12Device6_SetStablePowerState(ID3D12Device6* This,WINBOOL enable) {
15647 return This->lpVtbl->SetStablePowerState(This,enable);
15648}
15649static inline HRESULT ID3D12Device6_CreateCommandSignature(ID3D12Device6* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
15650 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
15651}
15652static 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) {
15653 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);
15654}
15655static inline LUID ID3D12Device6_GetAdapterLuid(ID3D12Device6* This) {
15656 LUID __ret;
15657 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
15658}
15659/*** ID3D12Device1 methods ***/
15660static inline HRESULT ID3D12Device6_CreatePipelineLibrary(ID3D12Device6* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
15661 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
15662}
15663static inline HRESULT ID3D12Device6_SetEventOnMultipleFenceCompletion(ID3D12Device6* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
15664 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
15665}
15666static inline HRESULT ID3D12Device6_SetResidencyPriority(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
15667 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
15668}
15669/*** ID3D12Device2 methods ***/
15670static inline HRESULT ID3D12Device6_CreatePipelineState(ID3D12Device6* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
15671 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
15672}
15673/*** ID3D12Device3 methods ***/
15674static inline HRESULT ID3D12Device6_OpenExistingHeapFromAddress(ID3D12Device6* This,const void *address,REFIID riid,void **heap) {
15675 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
15676}
15677static inline HRESULT ID3D12Device6_OpenExistingHeapFromFileMapping(ID3D12Device6* This,HANDLE file_mapping,REFIID riid,void **heap) {
15678 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
15679}
15680static inline HRESULT ID3D12Device6_EnqueueMakeResident(ID3D12Device6* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
15681 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
15682}
15683/*** ID3D12Device4 methods ***/
15684static inline HRESULT ID3D12Device6_CreateCommandList1(ID3D12Device6* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
15685 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
15686}
15687static inline HRESULT ID3D12Device6_CreateProtectedResourceSession(ID3D12Device6* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
15688 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
15689}
15690static 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) {
15691 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
15692}
15693static inline HRESULT ID3D12Device6_CreateHeap1(ID3D12Device6* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
15694 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
15695}
15696static 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) {
15697 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
15698}
15699static 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) {
15700 D3D12_RESOURCE_ALLOCATION_INFO __ret;
15701 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
15702}
15703/*** ID3D12Device5 methods ***/
15704static inline HRESULT ID3D12Device6_CreateLifetimeTracker(ID3D12Device6* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
15705 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
15706}
15707static inline void ID3D12Device6_RemoveDevice(ID3D12Device6* This) {
15708 This->lpVtbl->RemoveDevice(This);
15709}
15710static inline HRESULT ID3D12Device6_EnumerateMetaCommands(ID3D12Device6* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
15711 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
15712}
15713static 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) {
15714 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
15715}
15716static 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) {
15717 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
15718}
15719static inline HRESULT ID3D12Device6_CreateStateObject(ID3D12Device6* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
15720 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
15721}
15722static inline void ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device6* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
15723 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
15724}
15725static 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) {
15726 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
15727}
15728/*** ID3D12Device6 methods ***/
15729static inline HRESULT ID3D12Device6_SetBackgroundProcessingMode(ID3D12Device6* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
15730 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
15731}
15732#endif
15733#endif
15734
15735#endif
15736
15737
15738#endif /* __ID3D12Device6_INTERFACE_DEFINED__ */
15739
15740DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62b0084e, 0xc70e, 0x4daa, 0xa1, 0x09, 0x30, 0xff, 0x8d, 0x5a, 0x04, 0x82);
15741typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
15742 UINT NodeIndex;
15743 UINT Count;
15744} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT;
15745typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
15746 UINT NodeIndex;
15747 UINT Count;
15748 GUID *pTypes;
15749} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES;
15750typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
15751 UINT NodeMask;
15752 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
15753 GUID ProtectionType;
15754} D3D12_PROTECTED_RESOURCE_SESSION_DESC1;
15755/*****************************************************************************
15756 * ID3D12ProtectedResourceSession1 interface
15757 */
15758#ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
15759#define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
15760
15761DEFINE_GUID(IID_ID3D12ProtectedResourceSession1, 0xd6f12dd6, 0x76fb, 0x406e, 0x89,0x61, 0x42,0x96,0xee,0xfc,0x04,0x09);
15762#if defined(__cplusplus) && !defined(CINTERFACE)
15763MIDL_INTERFACE("d6f12dd6-76fb-406e-8961-4296eefc0409")
15764ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession
15765{
15766#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
15767 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1* STDMETHODCALLTYPE GetDesc1(
15768 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *__ret) = 0;
15769 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1(
15770 )
15771 {
15772 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 __ret;
15773 return *GetDesc1(&__ret);
15774 }
15775#else
15776 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1(
15777 ) = 0;
15778#endif
15779
15780};
15781#ifdef __CRT_UUID_DECL
15782__CRT_UUID_DECL(ID3D12ProtectedResourceSession1, 0xd6f12dd6, 0x76fb, 0x406e, 0x89,0x61, 0x42,0x96,0xee,0xfc,0x04,0x09)
15783#endif
15784#else
15785typedef struct ID3D12ProtectedResourceSession1Vtbl {
15786 BEGIN_INTERFACE
15787
15788 /*** IUnknown methods ***/
15789 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15790 ID3D12ProtectedResourceSession1 *This,
15791 REFIID riid,
15792 void **ppvObject);
15793
15794 ULONG (STDMETHODCALLTYPE *AddRef)(
15795 ID3D12ProtectedResourceSession1 *This);
15796
15797 ULONG (STDMETHODCALLTYPE *Release)(
15798 ID3D12ProtectedResourceSession1 *This);
15799
15800 /*** ID3D12Object methods ***/
15801 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
15802 ID3D12ProtectedResourceSession1 *This,
15803 REFGUID guid,
15804 UINT *data_size,
15805 void *data);
15806
15807 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
15808 ID3D12ProtectedResourceSession1 *This,
15809 REFGUID guid,
15810 UINT data_size,
15811 const void *data);
15812
15813 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
15814 ID3D12ProtectedResourceSession1 *This,
15815 REFGUID guid,
15816 const IUnknown *data);
15817
15818 HRESULT (STDMETHODCALLTYPE *SetName)(
15819 ID3D12ProtectedResourceSession1 *This,
15820 const WCHAR *name);
15821
15822 /*** ID3D12DeviceChild methods ***/
15823 HRESULT (STDMETHODCALLTYPE *GetDevice)(
15824 ID3D12ProtectedResourceSession1 *This,
15825 REFIID riid,
15826 void **device);
15827
15828 /*** ID3D12ProtectedSession methods ***/
15829 HRESULT (STDMETHODCALLTYPE *GetStatusFence)(
15830 ID3D12ProtectedResourceSession1 *This,
15831 REFIID riid,
15832 void **fence);
15833
15834 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)(
15835 ID3D12ProtectedResourceSession1 *This);
15836
15837 /*** ID3D12ProtectedResourceSession methods ***/
15838 D3D12_PROTECTED_RESOURCE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)(
15839 ID3D12ProtectedResourceSession1 *This,
15840 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret);
15841
15842 /*** ID3D12ProtectedResourceSession1 methods ***/
15843 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * (STDMETHODCALLTYPE *GetDesc1)(
15844 ID3D12ProtectedResourceSession1 *This,
15845 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *__ret);
15846
15847 END_INTERFACE
15848} ID3D12ProtectedResourceSession1Vtbl;
15849
15850interface ID3D12ProtectedResourceSession1 {
15851 CONST_VTBL ID3D12ProtectedResourceSession1Vtbl* lpVtbl;
15852};
15853
15854#ifdef COBJMACROS
15855#ifndef WIDL_C_INLINE_WRAPPERS
15856/*** IUnknown methods ***/
15857#define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15858#define ID3D12ProtectedResourceSession1_AddRef(This) (This)->lpVtbl->AddRef(This)
15859#define ID3D12ProtectedResourceSession1_Release(This) (This)->lpVtbl->Release(This)
15860/*** ID3D12Object methods ***/
15861#define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
15862#define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
15863#define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
15864#define ID3D12ProtectedResourceSession1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
15865/*** ID3D12DeviceChild methods ***/
15866#define ID3D12ProtectedResourceSession1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
15867/*** ID3D12ProtectedSession methods ***/
15868#define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence)
15869#define ID3D12ProtectedResourceSession1_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This)
15870/*** ID3D12ProtectedResourceSession methods ***/
15871#define ID3D12ProtectedResourceSession1_GetDesc(This) ID3D12ProtectedResourceSession1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15872/*** ID3D12ProtectedResourceSession1 methods ***/
15873#define ID3D12ProtectedResourceSession1_GetDesc1(This) ID3D12ProtectedResourceSession1_GetDesc1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
15874#else
15875/*** IUnknown methods ***/
15876static inline HRESULT ID3D12ProtectedResourceSession1_QueryInterface(ID3D12ProtectedResourceSession1* This,REFIID riid,void **ppvObject) {
15877 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15878}
15879static inline ULONG ID3D12ProtectedResourceSession1_AddRef(ID3D12ProtectedResourceSession1* This) {
15880 return This->lpVtbl->AddRef(This);
15881}
15882static inline ULONG ID3D12ProtectedResourceSession1_Release(ID3D12ProtectedResourceSession1* This) {
15883 return This->lpVtbl->Release(This);
15884}
15885/*** ID3D12Object methods ***/
15886static inline HRESULT ID3D12ProtectedResourceSession1_GetPrivateData(ID3D12ProtectedResourceSession1* This,REFGUID guid,UINT *data_size,void *data) {
15887 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
15888}
15889static inline HRESULT ID3D12ProtectedResourceSession1_SetPrivateData(ID3D12ProtectedResourceSession1* This,REFGUID guid,UINT data_size,const void *data) {
15890 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
15891}
15892static inline HRESULT ID3D12ProtectedResourceSession1_SetPrivateDataInterface(ID3D12ProtectedResourceSession1* This,REFGUID guid,const IUnknown *data) {
15893 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
15894}
15895static inline HRESULT ID3D12ProtectedResourceSession1_SetName(ID3D12ProtectedResourceSession1* This,const WCHAR *name) {
15896 return This->lpVtbl->SetName(This,name);
15897}
15898/*** ID3D12DeviceChild methods ***/
15899static inline HRESULT ID3D12ProtectedResourceSession1_GetDevice(ID3D12ProtectedResourceSession1* This,REFIID riid,void **device) {
15900 return This->lpVtbl->GetDevice(This,riid,device);
15901}
15902/*** ID3D12ProtectedSession methods ***/
15903static inline HRESULT ID3D12ProtectedResourceSession1_GetStatusFence(ID3D12ProtectedResourceSession1* This,REFIID riid,void **fence) {
15904 return This->lpVtbl->GetStatusFence(This,riid,fence);
15905}
15906static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedResourceSession1_GetSessionStatus(ID3D12ProtectedResourceSession1* This) {
15907 return This->lpVtbl->GetSessionStatus(This);
15908}
15909/*** ID3D12ProtectedResourceSession methods ***/
15910static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC ID3D12ProtectedResourceSession1_GetDesc(ID3D12ProtectedResourceSession1* This) {
15911 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret;
15912 return *This->lpVtbl->GetDesc(This,&__ret);
15913}
15914/*** ID3D12ProtectedResourceSession1 methods ***/
15915static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ID3D12ProtectedResourceSession1_GetDesc1(ID3D12ProtectedResourceSession1* This) {
15916 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 __ret;
15917 return *This->lpVtbl->GetDesc1(This,&__ret);
15918}
15919#endif
15920#endif
15921
15922#endif
15923
15924
15925#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */
15926
15927/*****************************************************************************
15928 * ID3D12Device7 interface
15929 */
15930#ifndef __ID3D12Device7_INTERFACE_DEFINED__
15931#define __ID3D12Device7_INTERFACE_DEFINED__
15932
15933DEFINE_GUID(IID_ID3D12Device7, 0x5c014b53, 0x68a1, 0x4b9b, 0x8b,0xd1, 0xdd,0x60,0x46,0xb9,0x35,0x8b);
15934#if defined(__cplusplus) && !defined(CINTERFACE)
15935MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b")
15936ID3D12Device7 : public ID3D12Device6
15937{
15938 virtual HRESULT STDMETHODCALLTYPE AddToStateObject(
15939 const D3D12_STATE_OBJECT_DESC *addition,
15940 ID3D12StateObject *state_object_to_grow_from,
15941 REFIID riid,
15942 void **new_state_object) = 0;
15943
15944 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1(
15945 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
15946 REFIID riid,
15947 void **session) = 0;
15948
15949};
15950#ifdef __CRT_UUID_DECL
15951__CRT_UUID_DECL(ID3D12Device7, 0x5c014b53, 0x68a1, 0x4b9b, 0x8b,0xd1, 0xdd,0x60,0x46,0xb9,0x35,0x8b)
15952#endif
15953#else
15954typedef struct ID3D12Device7Vtbl {
15955 BEGIN_INTERFACE
15956
15957 /*** IUnknown methods ***/
15958 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15959 ID3D12Device7 *This,
15960 REFIID riid,
15961 void **ppvObject);
15962
15963 ULONG (STDMETHODCALLTYPE *AddRef)(
15964 ID3D12Device7 *This);
15965
15966 ULONG (STDMETHODCALLTYPE *Release)(
15967 ID3D12Device7 *This);
15968
15969 /*** ID3D12Object methods ***/
15970 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
15971 ID3D12Device7 *This,
15972 REFGUID guid,
15973 UINT *data_size,
15974 void *data);
15975
15976 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
15977 ID3D12Device7 *This,
15978 REFGUID guid,
15979 UINT data_size,
15980 const void *data);
15981
15982 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
15983 ID3D12Device7 *This,
15984 REFGUID guid,
15985 const IUnknown *data);
15986
15987 HRESULT (STDMETHODCALLTYPE *SetName)(
15988 ID3D12Device7 *This,
15989 const WCHAR *name);
15990
15991 /*** ID3D12Device methods ***/
15992 UINT (STDMETHODCALLTYPE *GetNodeCount)(
15993 ID3D12Device7 *This);
15994
15995 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
15996 ID3D12Device7 *This,
15997 const D3D12_COMMAND_QUEUE_DESC *desc,
15998 REFIID riid,
15999 void **command_queue);
16000
16001 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
16002 ID3D12Device7 *This,
16003 D3D12_COMMAND_LIST_TYPE type,
16004 REFIID riid,
16005 void **command_allocator);
16006
16007 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
16008 ID3D12Device7 *This,
16009 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
16010 REFIID riid,
16011 void **pipeline_state);
16012
16013 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
16014 ID3D12Device7 *This,
16015 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
16016 REFIID riid,
16017 void **pipeline_state);
16018
16019 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
16020 ID3D12Device7 *This,
16021 UINT node_mask,
16022 D3D12_COMMAND_LIST_TYPE type,
16023 ID3D12CommandAllocator *command_allocator,
16024 ID3D12PipelineState *initial_pipeline_state,
16025 REFIID riid,
16026 void **command_list);
16027
16028 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
16029 ID3D12Device7 *This,
16030 D3D12_FEATURE feature,
16031 void *feature_data,
16032 UINT feature_data_size);
16033
16034 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
16035 ID3D12Device7 *This,
16036 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
16037 REFIID riid,
16038 void **descriptor_heap);
16039
16040 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
16041 ID3D12Device7 *This,
16042 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16043
16044 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
16045 ID3D12Device7 *This,
16046 UINT node_mask,
16047 const void *bytecode,
16048 SIZE_T bytecode_length,
16049 REFIID riid,
16050 void **root_signature);
16051
16052 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
16053 ID3D12Device7 *This,
16054 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
16055 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16056
16057 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
16058 ID3D12Device7 *This,
16059 ID3D12Resource *resource,
16060 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
16061 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16062
16063 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
16064 ID3D12Device7 *This,
16065 ID3D12Resource *resource,
16066 ID3D12Resource *counter_resource,
16067 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
16068 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16069
16070 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
16071 ID3D12Device7 *This,
16072 ID3D12Resource *resource,
16073 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
16074 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16075
16076 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
16077 ID3D12Device7 *This,
16078 ID3D12Resource *resource,
16079 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
16080 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16081
16082 void (STDMETHODCALLTYPE *CreateSampler)(
16083 ID3D12Device7 *This,
16084 const D3D12_SAMPLER_DESC *desc,
16085 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16086
16087 void (STDMETHODCALLTYPE *CopyDescriptors)(
16088 ID3D12Device7 *This,
16089 UINT dst_descriptor_range_count,
16090 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
16091 const UINT *dst_descriptor_range_sizes,
16092 UINT src_descriptor_range_count,
16093 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
16094 const UINT *src_descriptor_range_sizes,
16095 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16096
16097 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
16098 ID3D12Device7 *This,
16099 UINT descriptor_count,
16100 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
16101 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
16102 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16103
16104 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
16105 ID3D12Device7 *This,
16106 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
16107 UINT visible_mask,
16108 UINT reource_desc_count,
16109 const D3D12_RESOURCE_DESC *resource_descs);
16110
16111 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
16112 ID3D12Device7 *This,
16113 D3D12_HEAP_PROPERTIES *__ret,
16114 UINT node_mask,
16115 D3D12_HEAP_TYPE heap_type);
16116
16117 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
16118 ID3D12Device7 *This,
16119 const D3D12_HEAP_PROPERTIES *heap_properties,
16120 D3D12_HEAP_FLAGS heap_flags,
16121 const D3D12_RESOURCE_DESC *desc,
16122 D3D12_RESOURCE_STATES initial_state,
16123 const D3D12_CLEAR_VALUE *optimized_clear_value,
16124 REFIID riid,
16125 void **resource);
16126
16127 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
16128 ID3D12Device7 *This,
16129 const D3D12_HEAP_DESC *desc,
16130 REFIID riid,
16131 void **heap);
16132
16133 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
16134 ID3D12Device7 *This,
16135 ID3D12Heap *heap,
16136 UINT64 heap_offset,
16137 const D3D12_RESOURCE_DESC *desc,
16138 D3D12_RESOURCE_STATES initial_state,
16139 const D3D12_CLEAR_VALUE *optimized_clear_value,
16140 REFIID riid,
16141 void **resource);
16142
16143 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
16144 ID3D12Device7 *This,
16145 const D3D12_RESOURCE_DESC *desc,
16146 D3D12_RESOURCE_STATES initial_state,
16147 const D3D12_CLEAR_VALUE *optimized_clear_value,
16148 REFIID riid,
16149 void **resource);
16150
16151 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
16152 ID3D12Device7 *This,
16153 ID3D12DeviceChild *object,
16154 const SECURITY_ATTRIBUTES *attributes,
16155 DWORD access,
16156 const WCHAR *name,
16157 HANDLE *handle);
16158
16159 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
16160 ID3D12Device7 *This,
16161 HANDLE handle,
16162 REFIID riid,
16163 void **object);
16164
16165 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
16166 ID3D12Device7 *This,
16167 const WCHAR *name,
16168 DWORD access,
16169 HANDLE *handle);
16170
16171 HRESULT (STDMETHODCALLTYPE *MakeResident)(
16172 ID3D12Device7 *This,
16173 UINT object_count,
16174 ID3D12Pageable *const *objects);
16175
16176 HRESULT (STDMETHODCALLTYPE *Evict)(
16177 ID3D12Device7 *This,
16178 UINT object_count,
16179 ID3D12Pageable *const *objects);
16180
16181 HRESULT (STDMETHODCALLTYPE *CreateFence)(
16182 ID3D12Device7 *This,
16183 UINT64 initial_value,
16184 D3D12_FENCE_FLAGS flags,
16185 REFIID riid,
16186 void **fence);
16187
16188 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
16189 ID3D12Device7 *This);
16190
16191 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
16192 ID3D12Device7 *This,
16193 const D3D12_RESOURCE_DESC *desc,
16194 UINT first_sub_resource,
16195 UINT sub_resource_count,
16196 UINT64 base_offset,
16197 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
16198 UINT *row_count,
16199 UINT64 *row_size,
16200 UINT64 *total_bytes);
16201
16202 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
16203 ID3D12Device7 *This,
16204 const D3D12_QUERY_HEAP_DESC *desc,
16205 REFIID riid,
16206 void **heap);
16207
16208 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
16209 ID3D12Device7 *This,
16210 WINBOOL enable);
16211
16212 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
16213 ID3D12Device7 *This,
16214 const D3D12_COMMAND_SIGNATURE_DESC *desc,
16215 ID3D12RootSignature *root_signature,
16216 REFIID riid,
16217 void **command_signature);
16218
16219 void (STDMETHODCALLTYPE *GetResourceTiling)(
16220 ID3D12Device7 *This,
16221 ID3D12Resource *resource,
16222 UINT *total_tile_count,
16223 D3D12_PACKED_MIP_INFO *packed_mip_info,
16224 D3D12_TILE_SHAPE *standard_tile_shape,
16225 UINT *sub_resource_tiling_count,
16226 UINT first_sub_resource_tiling,
16227 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
16228
16229 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
16230 ID3D12Device7 *This,
16231 LUID *__ret);
16232
16233 /*** ID3D12Device1 methods ***/
16234 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
16235 ID3D12Device7 *This,
16236 const void *blob,
16237 SIZE_T blob_size,
16238 REFIID iid,
16239 void **lib);
16240
16241 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
16242 ID3D12Device7 *This,
16243 ID3D12Fence *const *fences,
16244 const UINT64 *values,
16245 UINT fence_count,
16246 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
16247 HANDLE event);
16248
16249 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
16250 ID3D12Device7 *This,
16251 UINT object_count,
16252 ID3D12Pageable *const *objects,
16253 const D3D12_RESIDENCY_PRIORITY *priorities);
16254
16255 /*** ID3D12Device2 methods ***/
16256 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
16257 ID3D12Device7 *This,
16258 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
16259 REFIID riid,
16260 void **pipeline_state);
16261
16262 /*** ID3D12Device3 methods ***/
16263 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
16264 ID3D12Device7 *This,
16265 const void *address,
16266 REFIID riid,
16267 void **heap);
16268
16269 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
16270 ID3D12Device7 *This,
16271 HANDLE file_mapping,
16272 REFIID riid,
16273 void **heap);
16274
16275 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
16276 ID3D12Device7 *This,
16277 D3D12_RESIDENCY_FLAGS flags,
16278 UINT num_objects,
16279 ID3D12Pageable *const *objects,
16280 ID3D12Fence *fence,
16281 UINT64 fence_value);
16282
16283 /*** ID3D12Device4 methods ***/
16284 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
16285 ID3D12Device7 *This,
16286 UINT node_mask,
16287 D3D12_COMMAND_LIST_TYPE type,
16288 D3D12_COMMAND_LIST_FLAGS flags,
16289 REFIID riid,
16290 void **command_list);
16291
16292 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
16293 ID3D12Device7 *This,
16294 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
16295 REFIID riid,
16296 void **session);
16297
16298 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
16299 ID3D12Device7 *This,
16300 const D3D12_HEAP_PROPERTIES *heap_properties,
16301 D3D12_HEAP_FLAGS heap_flags,
16302 const D3D12_RESOURCE_DESC *desc,
16303 D3D12_RESOURCE_STATES initial_resource_state,
16304 const D3D12_CLEAR_VALUE *optimized_clear_value,
16305 ID3D12ProtectedResourceSession *protected_session,
16306 REFIID riid_resource,
16307 void **resource);
16308
16309 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
16310 ID3D12Device7 *This,
16311 const D3D12_HEAP_DESC *desc,
16312 ID3D12ProtectedResourceSession *protected_session,
16313 REFIID riid,
16314 void **heap);
16315
16316 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
16317 ID3D12Device7 *This,
16318 const D3D12_RESOURCE_DESC *desc,
16319 D3D12_RESOURCE_STATES initial_state,
16320 const D3D12_CLEAR_VALUE *optimized_clear_value,
16321 ID3D12ProtectedResourceSession *protected_session,
16322 REFIID riid,
16323 void **resource);
16324
16325 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
16326 ID3D12Device7 *This,
16327 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
16328 UINT visible_mask,
16329 UINT resource_descs_count,
16330 const D3D12_RESOURCE_DESC *resource_descs,
16331 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
16332
16333 /*** ID3D12Device5 methods ***/
16334 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
16335 ID3D12Device7 *This,
16336 ID3D12LifetimeOwner *owner,
16337 REFIID riid,
16338 void **tracker);
16339
16340 void (STDMETHODCALLTYPE *RemoveDevice)(
16341 ID3D12Device7 *This);
16342
16343 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
16344 ID3D12Device7 *This,
16345 UINT *meta_commands_count,
16346 D3D12_META_COMMAND_DESC *descs);
16347
16348 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
16349 ID3D12Device7 *This,
16350 REFGUID command_id,
16351 D3D12_META_COMMAND_PARAMETER_STAGE stage,
16352 UINT *total_structure_size_in_bytes,
16353 UINT *parameter_count,
16354 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
16355
16356 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
16357 ID3D12Device7 *This,
16358 REFGUID command_id,
16359 UINT node_mask,
16360 const void *creation_parameters_data,
16361 SIZE_T creation_parameters_data_size_in_bytes,
16362 REFIID riid,
16363 void **meta_command);
16364
16365 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
16366 ID3D12Device7 *This,
16367 const D3D12_STATE_OBJECT_DESC *desc,
16368 REFIID riid,
16369 void **state_object);
16370
16371 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
16372 ID3D12Device7 *This,
16373 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
16374 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
16375
16376 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
16377 ID3D12Device7 *This,
16378 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
16379 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
16380
16381 /*** ID3D12Device6 methods ***/
16382 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
16383 ID3D12Device7 *This,
16384 D3D12_BACKGROUND_PROCESSING_MODE mode,
16385 D3D12_MEASUREMENTS_ACTION action,
16386 HANDLE event,
16387 WINBOOL *further_measurements_desired);
16388
16389 /*** ID3D12Device7 methods ***/
16390 HRESULT (STDMETHODCALLTYPE *AddToStateObject)(
16391 ID3D12Device7 *This,
16392 const D3D12_STATE_OBJECT_DESC *addition,
16393 ID3D12StateObject *state_object_to_grow_from,
16394 REFIID riid,
16395 void **new_state_object);
16396
16397 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)(
16398 ID3D12Device7 *This,
16399 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
16400 REFIID riid,
16401 void **session);
16402
16403 END_INTERFACE
16404} ID3D12Device7Vtbl;
16405
16406interface ID3D12Device7 {
16407 CONST_VTBL ID3D12Device7Vtbl* lpVtbl;
16408};
16409
16410#ifdef COBJMACROS
16411#ifndef WIDL_C_INLINE_WRAPPERS
16412/*** IUnknown methods ***/
16413#define ID3D12Device7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16414#define ID3D12Device7_AddRef(This) (This)->lpVtbl->AddRef(This)
16415#define ID3D12Device7_Release(This) (This)->lpVtbl->Release(This)
16416/*** ID3D12Object methods ***/
16417#define ID3D12Device7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
16418#define ID3D12Device7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
16419#define ID3D12Device7_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
16420#define ID3D12Device7_SetName(This,name) (This)->lpVtbl->SetName(This,name)
16421/*** ID3D12Device methods ***/
16422#define ID3D12Device7_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
16423#define ID3D12Device7_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
16424#define ID3D12Device7_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
16425#define ID3D12Device7_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
16426#define ID3D12Device7_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
16427#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)
16428#define ID3D12Device7_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
16429#define ID3D12Device7_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
16430#define ID3D12Device7_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
16431#define ID3D12Device7_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
16432#define ID3D12Device7_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
16433#define ID3D12Device7_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
16434#define ID3D12Device7_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
16435#define ID3D12Device7_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
16436#define ID3D12Device7_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
16437#define ID3D12Device7_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
16438#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)
16439#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)
16440#define ID3D12Device7_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device7_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
16441#define ID3D12Device7_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device7_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
16442#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)
16443#define ID3D12Device7_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
16444#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)
16445#define ID3D12Device7_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
16446#define ID3D12Device7_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
16447#define ID3D12Device7_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
16448#define ID3D12Device7_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
16449#define ID3D12Device7_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
16450#define ID3D12Device7_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
16451#define ID3D12Device7_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
16452#define ID3D12Device7_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
16453#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)
16454#define ID3D12Device7_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
16455#define ID3D12Device7_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
16456#define ID3D12Device7_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
16457#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)
16458#define ID3D12Device7_GetAdapterLuid(This) ID3D12Device7_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
16459/*** ID3D12Device1 methods ***/
16460#define ID3D12Device7_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
16461#define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
16462#define ID3D12Device7_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
16463/*** ID3D12Device2 methods ***/
16464#define ID3D12Device7_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
16465/*** ID3D12Device3 methods ***/
16466#define ID3D12Device7_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
16467#define ID3D12Device7_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
16468#define ID3D12Device7_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
16469/*** ID3D12Device4 methods ***/
16470#define ID3D12Device7_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
16471#define ID3D12Device7_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
16472#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)
16473#define ID3D12Device7_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
16474#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)
16475#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
16476/*** ID3D12Device5 methods ***/
16477#define ID3D12Device7_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
16478#define ID3D12Device7_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
16479#define ID3D12Device7_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
16480#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)
16481#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)
16482#define ID3D12Device7_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
16483#define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
16484#define ID3D12Device7_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
16485/*** ID3D12Device6 methods ***/
16486#define ID3D12Device7_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
16487/*** ID3D12Device7 methods ***/
16488#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)
16489#define ID3D12Device7_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session)
16490#else
16491/*** IUnknown methods ***/
16492static inline HRESULT ID3D12Device7_QueryInterface(ID3D12Device7* This,REFIID riid,void **ppvObject) {
16493 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16494}
16495static inline ULONG ID3D12Device7_AddRef(ID3D12Device7* This) {
16496 return This->lpVtbl->AddRef(This);
16497}
16498static inline ULONG ID3D12Device7_Release(ID3D12Device7* This) {
16499 return This->lpVtbl->Release(This);
16500}
16501/*** ID3D12Object methods ***/
16502static inline HRESULT ID3D12Device7_GetPrivateData(ID3D12Device7* This,REFGUID guid,UINT *data_size,void *data) {
16503 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
16504}
16505static inline HRESULT ID3D12Device7_SetPrivateData(ID3D12Device7* This,REFGUID guid,UINT data_size,const void *data) {
16506 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
16507}
16508static inline HRESULT ID3D12Device7_SetPrivateDataInterface(ID3D12Device7* This,REFGUID guid,const IUnknown *data) {
16509 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
16510}
16511static inline HRESULT ID3D12Device7_SetName(ID3D12Device7* This,const WCHAR *name) {
16512 return This->lpVtbl->SetName(This,name);
16513}
16514/*** ID3D12Device methods ***/
16515static inline UINT ID3D12Device7_GetNodeCount(ID3D12Device7* This) {
16516 return This->lpVtbl->GetNodeCount(This);
16517}
16518static inline HRESULT ID3D12Device7_CreateCommandQueue(ID3D12Device7* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
16519 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
16520}
16521static inline HRESULT ID3D12Device7_CreateCommandAllocator(ID3D12Device7* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
16522 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
16523}
16524static inline HRESULT ID3D12Device7_CreateGraphicsPipelineState(ID3D12Device7* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
16525 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
16526}
16527static inline HRESULT ID3D12Device7_CreateComputePipelineState(ID3D12Device7* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
16528 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
16529}
16530static 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) {
16531 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
16532}
16533static inline HRESULT ID3D12Device7_CheckFeatureSupport(ID3D12Device7* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
16534 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
16535}
16536static inline HRESULT ID3D12Device7_CreateDescriptorHeap(ID3D12Device7* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
16537 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
16538}
16539static inline UINT ID3D12Device7_GetDescriptorHandleIncrementSize(ID3D12Device7* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
16540 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
16541}
16542static inline HRESULT ID3D12Device7_CreateRootSignature(ID3D12Device7* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
16543 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
16544}
16545static inline void ID3D12Device7_CreateConstantBufferView(ID3D12Device7* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16546 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
16547}
16548static inline void ID3D12Device7_CreateShaderResourceView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16549 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
16550}
16551static inline void ID3D12Device7_CreateUnorderedAccessView(ID3D12Device7* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16552 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
16553}
16554static inline void ID3D12Device7_CreateRenderTargetView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16555 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
16556}
16557static inline void ID3D12Device7_CreateDepthStencilView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16558 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
16559}
16560static inline void ID3D12Device7_CreateSampler(ID3D12Device7* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
16561 This->lpVtbl->CreateSampler(This,desc,descriptor);
16562}
16563static 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) {
16564 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);
16565}
16566static 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) {
16567 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
16568}
16569static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device7_GetResourceAllocationInfo(ID3D12Device7* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
16570 D3D12_RESOURCE_ALLOCATION_INFO __ret;
16571 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
16572}
16573static inline D3D12_HEAP_PROPERTIES ID3D12Device7_GetCustomHeapProperties(ID3D12Device7* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
16574 D3D12_HEAP_PROPERTIES __ret;
16575 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
16576}
16577static 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) {
16578 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
16579}
16580static inline HRESULT ID3D12Device7_CreateHeap(ID3D12Device7* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
16581 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
16582}
16583static 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) {
16584 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
16585}
16586static 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) {
16587 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
16588}
16589static inline HRESULT ID3D12Device7_CreateSharedHandle(ID3D12Device7* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
16590 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
16591}
16592static inline HRESULT ID3D12Device7_OpenSharedHandle(ID3D12Device7* This,HANDLE handle,REFIID riid,void **object) {
16593 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
16594}
16595static inline HRESULT ID3D12Device7_OpenSharedHandleByName(ID3D12Device7* This,const WCHAR *name,DWORD access,HANDLE *handle) {
16596 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
16597}
16598static inline HRESULT ID3D12Device7_MakeResident(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects) {
16599 return This->lpVtbl->MakeResident(This,object_count,objects);
16600}
16601static inline HRESULT ID3D12Device7_Evict(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects) {
16602 return This->lpVtbl->Evict(This,object_count,objects);
16603}
16604static inline HRESULT ID3D12Device7_CreateFence(ID3D12Device7* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
16605 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
16606}
16607static inline HRESULT ID3D12Device7_GetDeviceRemovedReason(ID3D12Device7* This) {
16608 return This->lpVtbl->GetDeviceRemovedReason(This);
16609}
16610static 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) {
16611 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
16612}
16613static inline HRESULT ID3D12Device7_CreateQueryHeap(ID3D12Device7* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
16614 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
16615}
16616static inline HRESULT ID3D12Device7_SetStablePowerState(ID3D12Device7* This,WINBOOL enable) {
16617 return This->lpVtbl->SetStablePowerState(This,enable);
16618}
16619static inline HRESULT ID3D12Device7_CreateCommandSignature(ID3D12Device7* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
16620 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
16621}
16622static 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) {
16623 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);
16624}
16625static inline LUID ID3D12Device7_GetAdapterLuid(ID3D12Device7* This) {
16626 LUID __ret;
16627 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
16628}
16629/*** ID3D12Device1 methods ***/
16630static inline HRESULT ID3D12Device7_CreatePipelineLibrary(ID3D12Device7* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
16631 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
16632}
16633static inline HRESULT ID3D12Device7_SetEventOnMultipleFenceCompletion(ID3D12Device7* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
16634 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
16635}
16636static inline HRESULT ID3D12Device7_SetResidencyPriority(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
16637 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
16638}
16639/*** ID3D12Device2 methods ***/
16640static inline HRESULT ID3D12Device7_CreatePipelineState(ID3D12Device7* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
16641 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
16642}
16643/*** ID3D12Device3 methods ***/
16644static inline HRESULT ID3D12Device7_OpenExistingHeapFromAddress(ID3D12Device7* This,const void *address,REFIID riid,void **heap) {
16645 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
16646}
16647static inline HRESULT ID3D12Device7_OpenExistingHeapFromFileMapping(ID3D12Device7* This,HANDLE file_mapping,REFIID riid,void **heap) {
16648 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
16649}
16650static inline HRESULT ID3D12Device7_EnqueueMakeResident(ID3D12Device7* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
16651 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
16652}
16653/*** ID3D12Device4 methods ***/
16654static inline HRESULT ID3D12Device7_CreateCommandList1(ID3D12Device7* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
16655 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
16656}
16657static inline HRESULT ID3D12Device7_CreateProtectedResourceSession(ID3D12Device7* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
16658 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
16659}
16660static 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) {
16661 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
16662}
16663static inline HRESULT ID3D12Device7_CreateHeap1(ID3D12Device7* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
16664 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
16665}
16666static 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) {
16667 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
16668}
16669static 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) {
16670 D3D12_RESOURCE_ALLOCATION_INFO __ret;
16671 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
16672}
16673/*** ID3D12Device5 methods ***/
16674static inline HRESULT ID3D12Device7_CreateLifetimeTracker(ID3D12Device7* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
16675 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
16676}
16677static inline void ID3D12Device7_RemoveDevice(ID3D12Device7* This) {
16678 This->lpVtbl->RemoveDevice(This);
16679}
16680static inline HRESULT ID3D12Device7_EnumerateMetaCommands(ID3D12Device7* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
16681 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
16682}
16683static 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) {
16684 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
16685}
16686static 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) {
16687 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
16688}
16689static inline HRESULT ID3D12Device7_CreateStateObject(ID3D12Device7* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
16690 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
16691}
16692static inline void ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device7* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
16693 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
16694}
16695static 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) {
16696 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
16697}
16698/*** ID3D12Device6 methods ***/
16699static inline HRESULT ID3D12Device7_SetBackgroundProcessingMode(ID3D12Device7* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
16700 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
16701}
16702/*** ID3D12Device7 methods ***/
16703static inline HRESULT ID3D12Device7_AddToStateObject(ID3D12Device7* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) {
16704 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object);
16705}
16706static inline HRESULT ID3D12Device7_CreateProtectedResourceSession1(ID3D12Device7* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) {
16707 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session);
16708}
16709#endif
16710#endif
16711
16712#endif
16713
16714
16715#endif /* __ID3D12Device7_INTERFACE_DEFINED__ */
16716
16717/*****************************************************************************
16718 * ID3D12Device8 interface
16719 */
16720#ifndef __ID3D12Device8_INTERFACE_DEFINED__
16721#define __ID3D12Device8_INTERFACE_DEFINED__
16722
16723DEFINE_GUID(IID_ID3D12Device8, 0x9218e6bb, 0xf944, 0x4f7e, 0xa7,0x5c, 0xb1,0xb2,0xc7,0xb7,0x01,0xf3);
16724#if defined(__cplusplus) && !defined(CINTERFACE)
16725MIDL_INTERFACE("9218e6bb-f944-4f7e-a75c-b1b2c7b701f3")
16726ID3D12Device8 : public ID3D12Device7
16727{
16728#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
16729 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo2(
16730 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
16731 UINT visible_mask,
16732 UINT resource_descs_count,
16733 const D3D12_RESOURCE_DESC1 *resource_descs,
16734 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0;
16735 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
16736 UINT visible_mask,
16737 UINT resource_descs_count,
16738 const D3D12_RESOURCE_DESC1 *resource_descs,
16739 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1)
16740 {
16741 D3D12_RESOURCE_ALLOCATION_INFO __ret;
16742 return *GetResourceAllocationInfo2(&__ret, visible_mask, resource_descs_count, resource_descs, resource_allocation_info1);
16743 }
16744#else
16745 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
16746 UINT visible_mask,
16747 UINT resource_descs_count,
16748 const D3D12_RESOURCE_DESC1 *resource_descs,
16749 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0;
16750#endif
16751
16752 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2(
16753 const D3D12_HEAP_PROPERTIES *heap_properties,
16754 D3D12_HEAP_FLAGS heap_flags,
16755 const D3D12_RESOURCE_DESC1 *desc,
16756 D3D12_RESOURCE_STATES initial_resource_state,
16757 const D3D12_CLEAR_VALUE *optimized_clear_value,
16758 ID3D12ProtectedResourceSession *protected_session,
16759 REFIID riid_resource,
16760 void **resource) = 0;
16761
16762 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1(
16763 ID3D12Heap *heap,
16764 UINT64 heap_offset,
16765 const D3D12_RESOURCE_DESC1 *desc,
16766 D3D12_RESOURCE_STATES initial_state,
16767 const D3D12_CLEAR_VALUE *optimized_clear_value,
16768 REFIID riid,
16769 void **resource) = 0;
16770
16771 virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView(
16772 ID3D12Resource *targeted_resource,
16773 ID3D12Resource *feedback_resource,
16774 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) = 0;
16775
16776 virtual void STDMETHODCALLTYPE GetCopyableFootprints1(
16777 const D3D12_RESOURCE_DESC1 *resource_desc,
16778 UINT first_subresource,
16779 UINT subresources_count,
16780 UINT64 base_offset,
16781 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
16782 UINT *rows_count,
16783 UINT64 *row_size_in_bytes,
16784 UINT64 *total_bytes) = 0;
16785
16786};
16787#ifdef __CRT_UUID_DECL
16788__CRT_UUID_DECL(ID3D12Device8, 0x9218e6bb, 0xf944, 0x4f7e, 0xa7,0x5c, 0xb1,0xb2,0xc7,0xb7,0x01,0xf3)
16789#endif
16790#else
16791typedef struct ID3D12Device8Vtbl {
16792 BEGIN_INTERFACE
16793
16794 /*** IUnknown methods ***/
16795 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16796 ID3D12Device8 *This,
16797 REFIID riid,
16798 void **ppvObject);
16799
16800 ULONG (STDMETHODCALLTYPE *AddRef)(
16801 ID3D12Device8 *This);
16802
16803 ULONG (STDMETHODCALLTYPE *Release)(
16804 ID3D12Device8 *This);
16805
16806 /*** ID3D12Object methods ***/
16807 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
16808 ID3D12Device8 *This,
16809 REFGUID guid,
16810 UINT *data_size,
16811 void *data);
16812
16813 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
16814 ID3D12Device8 *This,
16815 REFGUID guid,
16816 UINT data_size,
16817 const void *data);
16818
16819 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
16820 ID3D12Device8 *This,
16821 REFGUID guid,
16822 const IUnknown *data);
16823
16824 HRESULT (STDMETHODCALLTYPE *SetName)(
16825 ID3D12Device8 *This,
16826 const WCHAR *name);
16827
16828 /*** ID3D12Device methods ***/
16829 UINT (STDMETHODCALLTYPE *GetNodeCount)(
16830 ID3D12Device8 *This);
16831
16832 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
16833 ID3D12Device8 *This,
16834 const D3D12_COMMAND_QUEUE_DESC *desc,
16835 REFIID riid,
16836 void **command_queue);
16837
16838 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
16839 ID3D12Device8 *This,
16840 D3D12_COMMAND_LIST_TYPE type,
16841 REFIID riid,
16842 void **command_allocator);
16843
16844 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
16845 ID3D12Device8 *This,
16846 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
16847 REFIID riid,
16848 void **pipeline_state);
16849
16850 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
16851 ID3D12Device8 *This,
16852 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
16853 REFIID riid,
16854 void **pipeline_state);
16855
16856 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
16857 ID3D12Device8 *This,
16858 UINT node_mask,
16859 D3D12_COMMAND_LIST_TYPE type,
16860 ID3D12CommandAllocator *command_allocator,
16861 ID3D12PipelineState *initial_pipeline_state,
16862 REFIID riid,
16863 void **command_list);
16864
16865 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
16866 ID3D12Device8 *This,
16867 D3D12_FEATURE feature,
16868 void *feature_data,
16869 UINT feature_data_size);
16870
16871 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
16872 ID3D12Device8 *This,
16873 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
16874 REFIID riid,
16875 void **descriptor_heap);
16876
16877 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
16878 ID3D12Device8 *This,
16879 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16880
16881 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
16882 ID3D12Device8 *This,
16883 UINT node_mask,
16884 const void *bytecode,
16885 SIZE_T bytecode_length,
16886 REFIID riid,
16887 void **root_signature);
16888
16889 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
16890 ID3D12Device8 *This,
16891 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
16892 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16893
16894 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
16895 ID3D12Device8 *This,
16896 ID3D12Resource *resource,
16897 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
16898 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16899
16900 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
16901 ID3D12Device8 *This,
16902 ID3D12Resource *resource,
16903 ID3D12Resource *counter_resource,
16904 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
16905 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16906
16907 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
16908 ID3D12Device8 *This,
16909 ID3D12Resource *resource,
16910 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
16911 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16912
16913 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
16914 ID3D12Device8 *This,
16915 ID3D12Resource *resource,
16916 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
16917 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16918
16919 void (STDMETHODCALLTYPE *CreateSampler)(
16920 ID3D12Device8 *This,
16921 const D3D12_SAMPLER_DESC *desc,
16922 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
16923
16924 void (STDMETHODCALLTYPE *CopyDescriptors)(
16925 ID3D12Device8 *This,
16926 UINT dst_descriptor_range_count,
16927 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
16928 const UINT *dst_descriptor_range_sizes,
16929 UINT src_descriptor_range_count,
16930 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
16931 const UINT *src_descriptor_range_sizes,
16932 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16933
16934 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
16935 ID3D12Device8 *This,
16936 UINT descriptor_count,
16937 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
16938 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
16939 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
16940
16941 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
16942 ID3D12Device8 *This,
16943 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
16944 UINT visible_mask,
16945 UINT reource_desc_count,
16946 const D3D12_RESOURCE_DESC *resource_descs);
16947
16948 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
16949 ID3D12Device8 *This,
16950 D3D12_HEAP_PROPERTIES *__ret,
16951 UINT node_mask,
16952 D3D12_HEAP_TYPE heap_type);
16953
16954 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
16955 ID3D12Device8 *This,
16956 const D3D12_HEAP_PROPERTIES *heap_properties,
16957 D3D12_HEAP_FLAGS heap_flags,
16958 const D3D12_RESOURCE_DESC *desc,
16959 D3D12_RESOURCE_STATES initial_state,
16960 const D3D12_CLEAR_VALUE *optimized_clear_value,
16961 REFIID riid,
16962 void **resource);
16963
16964 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
16965 ID3D12Device8 *This,
16966 const D3D12_HEAP_DESC *desc,
16967 REFIID riid,
16968 void **heap);
16969
16970 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
16971 ID3D12Device8 *This,
16972 ID3D12Heap *heap,
16973 UINT64 heap_offset,
16974 const D3D12_RESOURCE_DESC *desc,
16975 D3D12_RESOURCE_STATES initial_state,
16976 const D3D12_CLEAR_VALUE *optimized_clear_value,
16977 REFIID riid,
16978 void **resource);
16979
16980 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
16981 ID3D12Device8 *This,
16982 const D3D12_RESOURCE_DESC *desc,
16983 D3D12_RESOURCE_STATES initial_state,
16984 const D3D12_CLEAR_VALUE *optimized_clear_value,
16985 REFIID riid,
16986 void **resource);
16987
16988 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
16989 ID3D12Device8 *This,
16990 ID3D12DeviceChild *object,
16991 const SECURITY_ATTRIBUTES *attributes,
16992 DWORD access,
16993 const WCHAR *name,
16994 HANDLE *handle);
16995
16996 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
16997 ID3D12Device8 *This,
16998 HANDLE handle,
16999 REFIID riid,
17000 void **object);
17001
17002 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
17003 ID3D12Device8 *This,
17004 const WCHAR *name,
17005 DWORD access,
17006 HANDLE *handle);
17007
17008 HRESULT (STDMETHODCALLTYPE *MakeResident)(
17009 ID3D12Device8 *This,
17010 UINT object_count,
17011 ID3D12Pageable *const *objects);
17012
17013 HRESULT (STDMETHODCALLTYPE *Evict)(
17014 ID3D12Device8 *This,
17015 UINT object_count,
17016 ID3D12Pageable *const *objects);
17017
17018 HRESULT (STDMETHODCALLTYPE *CreateFence)(
17019 ID3D12Device8 *This,
17020 UINT64 initial_value,
17021 D3D12_FENCE_FLAGS flags,
17022 REFIID riid,
17023 void **fence);
17024
17025 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
17026 ID3D12Device8 *This);
17027
17028 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
17029 ID3D12Device8 *This,
17030 const D3D12_RESOURCE_DESC *desc,
17031 UINT first_sub_resource,
17032 UINT sub_resource_count,
17033 UINT64 base_offset,
17034 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
17035 UINT *row_count,
17036 UINT64 *row_size,
17037 UINT64 *total_bytes);
17038
17039 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
17040 ID3D12Device8 *This,
17041 const D3D12_QUERY_HEAP_DESC *desc,
17042 REFIID riid,
17043 void **heap);
17044
17045 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
17046 ID3D12Device8 *This,
17047 WINBOOL enable);
17048
17049 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
17050 ID3D12Device8 *This,
17051 const D3D12_COMMAND_SIGNATURE_DESC *desc,
17052 ID3D12RootSignature *root_signature,
17053 REFIID riid,
17054 void **command_signature);
17055
17056 void (STDMETHODCALLTYPE *GetResourceTiling)(
17057 ID3D12Device8 *This,
17058 ID3D12Resource *resource,
17059 UINT *total_tile_count,
17060 D3D12_PACKED_MIP_INFO *packed_mip_info,
17061 D3D12_TILE_SHAPE *standard_tile_shape,
17062 UINT *sub_resource_tiling_count,
17063 UINT first_sub_resource_tiling,
17064 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
17065
17066 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
17067 ID3D12Device8 *This,
17068 LUID *__ret);
17069
17070 /*** ID3D12Device1 methods ***/
17071 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
17072 ID3D12Device8 *This,
17073 const void *blob,
17074 SIZE_T blob_size,
17075 REFIID iid,
17076 void **lib);
17077
17078 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
17079 ID3D12Device8 *This,
17080 ID3D12Fence *const *fences,
17081 const UINT64 *values,
17082 UINT fence_count,
17083 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
17084 HANDLE event);
17085
17086 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
17087 ID3D12Device8 *This,
17088 UINT object_count,
17089 ID3D12Pageable *const *objects,
17090 const D3D12_RESIDENCY_PRIORITY *priorities);
17091
17092 /*** ID3D12Device2 methods ***/
17093 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
17094 ID3D12Device8 *This,
17095 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
17096 REFIID riid,
17097 void **pipeline_state);
17098
17099 /*** ID3D12Device3 methods ***/
17100 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
17101 ID3D12Device8 *This,
17102 const void *address,
17103 REFIID riid,
17104 void **heap);
17105
17106 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
17107 ID3D12Device8 *This,
17108 HANDLE file_mapping,
17109 REFIID riid,
17110 void **heap);
17111
17112 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
17113 ID3D12Device8 *This,
17114 D3D12_RESIDENCY_FLAGS flags,
17115 UINT num_objects,
17116 ID3D12Pageable *const *objects,
17117 ID3D12Fence *fence,
17118 UINT64 fence_value);
17119
17120 /*** ID3D12Device4 methods ***/
17121 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
17122 ID3D12Device8 *This,
17123 UINT node_mask,
17124 D3D12_COMMAND_LIST_TYPE type,
17125 D3D12_COMMAND_LIST_FLAGS flags,
17126 REFIID riid,
17127 void **command_list);
17128
17129 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
17130 ID3D12Device8 *This,
17131 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
17132 REFIID riid,
17133 void **session);
17134
17135 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
17136 ID3D12Device8 *This,
17137 const D3D12_HEAP_PROPERTIES *heap_properties,
17138 D3D12_HEAP_FLAGS heap_flags,
17139 const D3D12_RESOURCE_DESC *desc,
17140 D3D12_RESOURCE_STATES initial_resource_state,
17141 const D3D12_CLEAR_VALUE *optimized_clear_value,
17142 ID3D12ProtectedResourceSession *protected_session,
17143 REFIID riid_resource,
17144 void **resource);
17145
17146 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
17147 ID3D12Device8 *This,
17148 const D3D12_HEAP_DESC *desc,
17149 ID3D12ProtectedResourceSession *protected_session,
17150 REFIID riid,
17151 void **heap);
17152
17153 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
17154 ID3D12Device8 *This,
17155 const D3D12_RESOURCE_DESC *desc,
17156 D3D12_RESOURCE_STATES initial_state,
17157 const D3D12_CLEAR_VALUE *optimized_clear_value,
17158 ID3D12ProtectedResourceSession *protected_session,
17159 REFIID riid,
17160 void **resource);
17161
17162 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
17163 ID3D12Device8 *This,
17164 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
17165 UINT visible_mask,
17166 UINT resource_descs_count,
17167 const D3D12_RESOURCE_DESC *resource_descs,
17168 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
17169
17170 /*** ID3D12Device5 methods ***/
17171 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
17172 ID3D12Device8 *This,
17173 ID3D12LifetimeOwner *owner,
17174 REFIID riid,
17175 void **tracker);
17176
17177 void (STDMETHODCALLTYPE *RemoveDevice)(
17178 ID3D12Device8 *This);
17179
17180 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
17181 ID3D12Device8 *This,
17182 UINT *meta_commands_count,
17183 D3D12_META_COMMAND_DESC *descs);
17184
17185 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
17186 ID3D12Device8 *This,
17187 REFGUID command_id,
17188 D3D12_META_COMMAND_PARAMETER_STAGE stage,
17189 UINT *total_structure_size_in_bytes,
17190 UINT *parameter_count,
17191 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
17192
17193 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
17194 ID3D12Device8 *This,
17195 REFGUID command_id,
17196 UINT node_mask,
17197 const void *creation_parameters_data,
17198 SIZE_T creation_parameters_data_size_in_bytes,
17199 REFIID riid,
17200 void **meta_command);
17201
17202 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
17203 ID3D12Device8 *This,
17204 const D3D12_STATE_OBJECT_DESC *desc,
17205 REFIID riid,
17206 void **state_object);
17207
17208 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
17209 ID3D12Device8 *This,
17210 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
17211 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
17212
17213 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
17214 ID3D12Device8 *This,
17215 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
17216 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
17217
17218 /*** ID3D12Device6 methods ***/
17219 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
17220 ID3D12Device8 *This,
17221 D3D12_BACKGROUND_PROCESSING_MODE mode,
17222 D3D12_MEASUREMENTS_ACTION action,
17223 HANDLE event,
17224 WINBOOL *further_measurements_desired);
17225
17226 /*** ID3D12Device7 methods ***/
17227 HRESULT (STDMETHODCALLTYPE *AddToStateObject)(
17228 ID3D12Device8 *This,
17229 const D3D12_STATE_OBJECT_DESC *addition,
17230 ID3D12StateObject *state_object_to_grow_from,
17231 REFIID riid,
17232 void **new_state_object);
17233
17234 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)(
17235 ID3D12Device8 *This,
17236 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
17237 REFIID riid,
17238 void **session);
17239
17240 /*** ID3D12Device8 methods ***/
17241 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)(
17242 ID3D12Device8 *This,
17243 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
17244 UINT visible_mask,
17245 UINT resource_descs_count,
17246 const D3D12_RESOURCE_DESC1 *resource_descs,
17247 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
17248
17249 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)(
17250 ID3D12Device8 *This,
17251 const D3D12_HEAP_PROPERTIES *heap_properties,
17252 D3D12_HEAP_FLAGS heap_flags,
17253 const D3D12_RESOURCE_DESC1 *desc,
17254 D3D12_RESOURCE_STATES initial_resource_state,
17255 const D3D12_CLEAR_VALUE *optimized_clear_value,
17256 ID3D12ProtectedResourceSession *protected_session,
17257 REFIID riid_resource,
17258 void **resource);
17259
17260 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)(
17261 ID3D12Device8 *This,
17262 ID3D12Heap *heap,
17263 UINT64 heap_offset,
17264 const D3D12_RESOURCE_DESC1 *desc,
17265 D3D12_RESOURCE_STATES initial_state,
17266 const D3D12_CLEAR_VALUE *optimized_clear_value,
17267 REFIID riid,
17268 void **resource);
17269
17270 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)(
17271 ID3D12Device8 *This,
17272 ID3D12Resource *targeted_resource,
17273 ID3D12Resource *feedback_resource,
17274 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor);
17275
17276 void (STDMETHODCALLTYPE *GetCopyableFootprints1)(
17277 ID3D12Device8 *This,
17278 const D3D12_RESOURCE_DESC1 *resource_desc,
17279 UINT first_subresource,
17280 UINT subresources_count,
17281 UINT64 base_offset,
17282 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
17283 UINT *rows_count,
17284 UINT64 *row_size_in_bytes,
17285 UINT64 *total_bytes);
17286
17287 END_INTERFACE
17288} ID3D12Device8Vtbl;
17289
17290interface ID3D12Device8 {
17291 CONST_VTBL ID3D12Device8Vtbl* lpVtbl;
17292};
17293
17294#ifdef COBJMACROS
17295#ifndef WIDL_C_INLINE_WRAPPERS
17296/*** IUnknown methods ***/
17297#define ID3D12Device8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17298#define ID3D12Device8_AddRef(This) (This)->lpVtbl->AddRef(This)
17299#define ID3D12Device8_Release(This) (This)->lpVtbl->Release(This)
17300/*** ID3D12Object methods ***/
17301#define ID3D12Device8_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
17302#define ID3D12Device8_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
17303#define ID3D12Device8_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
17304#define ID3D12Device8_SetName(This,name) (This)->lpVtbl->SetName(This,name)
17305/*** ID3D12Device methods ***/
17306#define ID3D12Device8_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
17307#define ID3D12Device8_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
17308#define ID3D12Device8_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
17309#define ID3D12Device8_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
17310#define ID3D12Device8_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
17311#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)
17312#define ID3D12Device8_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
17313#define ID3D12Device8_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
17314#define ID3D12Device8_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
17315#define ID3D12Device8_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
17316#define ID3D12Device8_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
17317#define ID3D12Device8_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
17318#define ID3D12Device8_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
17319#define ID3D12Device8_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
17320#define ID3D12Device8_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
17321#define ID3D12Device8_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
17322#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)
17323#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)
17324#define ID3D12Device8_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device8_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17325#define ID3D12Device8_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device8_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17326#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)
17327#define ID3D12Device8_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
17328#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)
17329#define ID3D12Device8_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
17330#define ID3D12Device8_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
17331#define ID3D12Device8_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
17332#define ID3D12Device8_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
17333#define ID3D12Device8_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
17334#define ID3D12Device8_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
17335#define ID3D12Device8_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
17336#define ID3D12Device8_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
17337#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)
17338#define ID3D12Device8_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
17339#define ID3D12Device8_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
17340#define ID3D12Device8_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
17341#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)
17342#define ID3D12Device8_GetAdapterLuid(This) ID3D12Device8_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17343/*** ID3D12Device1 methods ***/
17344#define ID3D12Device8_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
17345#define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
17346#define ID3D12Device8_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
17347/*** ID3D12Device2 methods ***/
17348#define ID3D12Device8_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
17349/*** ID3D12Device3 methods ***/
17350#define ID3D12Device8_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
17351#define ID3D12Device8_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
17352#define ID3D12Device8_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
17353/*** ID3D12Device4 methods ***/
17354#define ID3D12Device8_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
17355#define ID3D12Device8_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
17356#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)
17357#define ID3D12Device8_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
17358#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)
17359#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
17360/*** ID3D12Device5 methods ***/
17361#define ID3D12Device8_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
17362#define ID3D12Device8_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
17363#define ID3D12Device8_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
17364#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)
17365#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)
17366#define ID3D12Device8_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
17367#define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
17368#define ID3D12Device8_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
17369/*** ID3D12Device6 methods ***/
17370#define ID3D12Device8_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
17371/*** ID3D12Device7 methods ***/
17372#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)
17373#define ID3D12Device8_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session)
17374/*** ID3D12Device8 methods ***/
17375#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
17376#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)
17377#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)
17378#define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor)
17379#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)
17380#else
17381/*** IUnknown methods ***/
17382static inline HRESULT ID3D12Device8_QueryInterface(ID3D12Device8* This,REFIID riid,void **ppvObject) {
17383 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17384}
17385static inline ULONG ID3D12Device8_AddRef(ID3D12Device8* This) {
17386 return This->lpVtbl->AddRef(This);
17387}
17388static inline ULONG ID3D12Device8_Release(ID3D12Device8* This) {
17389 return This->lpVtbl->Release(This);
17390}
17391/*** ID3D12Object methods ***/
17392static inline HRESULT ID3D12Device8_GetPrivateData(ID3D12Device8* This,REFGUID guid,UINT *data_size,void *data) {
17393 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
17394}
17395static inline HRESULT ID3D12Device8_SetPrivateData(ID3D12Device8* This,REFGUID guid,UINT data_size,const void *data) {
17396 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
17397}
17398static inline HRESULT ID3D12Device8_SetPrivateDataInterface(ID3D12Device8* This,REFGUID guid,const IUnknown *data) {
17399 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
17400}
17401static inline HRESULT ID3D12Device8_SetName(ID3D12Device8* This,const WCHAR *name) {
17402 return This->lpVtbl->SetName(This,name);
17403}
17404/*** ID3D12Device methods ***/
17405static inline UINT ID3D12Device8_GetNodeCount(ID3D12Device8* This) {
17406 return This->lpVtbl->GetNodeCount(This);
17407}
17408static inline HRESULT ID3D12Device8_CreateCommandQueue(ID3D12Device8* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
17409 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
17410}
17411static inline HRESULT ID3D12Device8_CreateCommandAllocator(ID3D12Device8* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
17412 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
17413}
17414static inline HRESULT ID3D12Device8_CreateGraphicsPipelineState(ID3D12Device8* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
17415 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
17416}
17417static inline HRESULT ID3D12Device8_CreateComputePipelineState(ID3D12Device8* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
17418 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
17419}
17420static 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) {
17421 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
17422}
17423static inline HRESULT ID3D12Device8_CheckFeatureSupport(ID3D12Device8* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
17424 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
17425}
17426static inline HRESULT ID3D12Device8_CreateDescriptorHeap(ID3D12Device8* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
17427 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
17428}
17429static inline UINT ID3D12Device8_GetDescriptorHandleIncrementSize(ID3D12Device8* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
17430 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
17431}
17432static inline HRESULT ID3D12Device8_CreateRootSignature(ID3D12Device8* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
17433 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
17434}
17435static inline void ID3D12Device8_CreateConstantBufferView(ID3D12Device8* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17436 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
17437}
17438static inline void ID3D12Device8_CreateShaderResourceView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17439 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
17440}
17441static inline void ID3D12Device8_CreateUnorderedAccessView(ID3D12Device8* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17442 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
17443}
17444static inline void ID3D12Device8_CreateRenderTargetView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17445 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
17446}
17447static inline void ID3D12Device8_CreateDepthStencilView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17448 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
17449}
17450static inline void ID3D12Device8_CreateSampler(ID3D12Device8* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
17451 This->lpVtbl->CreateSampler(This,desc,descriptor);
17452}
17453static 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) {
17454 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);
17455}
17456static 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) {
17457 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
17458}
17459static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device8_GetResourceAllocationInfo(ID3D12Device8* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
17460 D3D12_RESOURCE_ALLOCATION_INFO __ret;
17461 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
17462}
17463static inline D3D12_HEAP_PROPERTIES ID3D12Device8_GetCustomHeapProperties(ID3D12Device8* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
17464 D3D12_HEAP_PROPERTIES __ret;
17465 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
17466}
17467static 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) {
17468 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
17469}
17470static inline HRESULT ID3D12Device8_CreateHeap(ID3D12Device8* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
17471 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
17472}
17473static 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) {
17474 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
17475}
17476static 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) {
17477 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
17478}
17479static inline HRESULT ID3D12Device8_CreateSharedHandle(ID3D12Device8* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
17480 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
17481}
17482static inline HRESULT ID3D12Device8_OpenSharedHandle(ID3D12Device8* This,HANDLE handle,REFIID riid,void **object) {
17483 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
17484}
17485static inline HRESULT ID3D12Device8_OpenSharedHandleByName(ID3D12Device8* This,const WCHAR *name,DWORD access,HANDLE *handle) {
17486 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
17487}
17488static inline HRESULT ID3D12Device8_MakeResident(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects) {
17489 return This->lpVtbl->MakeResident(This,object_count,objects);
17490}
17491static inline HRESULT ID3D12Device8_Evict(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects) {
17492 return This->lpVtbl->Evict(This,object_count,objects);
17493}
17494static inline HRESULT ID3D12Device8_CreateFence(ID3D12Device8* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
17495 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
17496}
17497static inline HRESULT ID3D12Device8_GetDeviceRemovedReason(ID3D12Device8* This) {
17498 return This->lpVtbl->GetDeviceRemovedReason(This);
17499}
17500static 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) {
17501 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
17502}
17503static inline HRESULT ID3D12Device8_CreateQueryHeap(ID3D12Device8* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
17504 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
17505}
17506static inline HRESULT ID3D12Device8_SetStablePowerState(ID3D12Device8* This,WINBOOL enable) {
17507 return This->lpVtbl->SetStablePowerState(This,enable);
17508}
17509static inline HRESULT ID3D12Device8_CreateCommandSignature(ID3D12Device8* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
17510 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
17511}
17512static 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) {
17513 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);
17514}
17515static inline LUID ID3D12Device8_GetAdapterLuid(ID3D12Device8* This) {
17516 LUID __ret;
17517 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
17518}
17519/*** ID3D12Device1 methods ***/
17520static inline HRESULT ID3D12Device8_CreatePipelineLibrary(ID3D12Device8* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
17521 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
17522}
17523static inline HRESULT ID3D12Device8_SetEventOnMultipleFenceCompletion(ID3D12Device8* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
17524 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
17525}
17526static inline HRESULT ID3D12Device8_SetResidencyPriority(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
17527 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
17528}
17529/*** ID3D12Device2 methods ***/
17530static inline HRESULT ID3D12Device8_CreatePipelineState(ID3D12Device8* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
17531 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
17532}
17533/*** ID3D12Device3 methods ***/
17534static inline HRESULT ID3D12Device8_OpenExistingHeapFromAddress(ID3D12Device8* This,const void *address,REFIID riid,void **heap) {
17535 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
17536}
17537static inline HRESULT ID3D12Device8_OpenExistingHeapFromFileMapping(ID3D12Device8* This,HANDLE file_mapping,REFIID riid,void **heap) {
17538 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
17539}
17540static inline HRESULT ID3D12Device8_EnqueueMakeResident(ID3D12Device8* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
17541 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
17542}
17543/*** ID3D12Device4 methods ***/
17544static inline HRESULT ID3D12Device8_CreateCommandList1(ID3D12Device8* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
17545 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
17546}
17547static inline HRESULT ID3D12Device8_CreateProtectedResourceSession(ID3D12Device8* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
17548 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
17549}
17550static 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) {
17551 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
17552}
17553static inline HRESULT ID3D12Device8_CreateHeap1(ID3D12Device8* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
17554 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
17555}
17556static 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) {
17557 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
17558}
17559static 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) {
17560 D3D12_RESOURCE_ALLOCATION_INFO __ret;
17561 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
17562}
17563/*** ID3D12Device5 methods ***/
17564static inline HRESULT ID3D12Device8_CreateLifetimeTracker(ID3D12Device8* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
17565 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
17566}
17567static inline void ID3D12Device8_RemoveDevice(ID3D12Device8* This) {
17568 This->lpVtbl->RemoveDevice(This);
17569}
17570static inline HRESULT ID3D12Device8_EnumerateMetaCommands(ID3D12Device8* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
17571 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
17572}
17573static 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) {
17574 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
17575}
17576static 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) {
17577 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
17578}
17579static inline HRESULT ID3D12Device8_CreateStateObject(ID3D12Device8* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
17580 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
17581}
17582static inline void ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device8* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
17583 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
17584}
17585static 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) {
17586 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
17587}
17588/*** ID3D12Device6 methods ***/
17589static inline HRESULT ID3D12Device8_SetBackgroundProcessingMode(ID3D12Device8* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
17590 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
17591}
17592/*** ID3D12Device7 methods ***/
17593static inline HRESULT ID3D12Device8_AddToStateObject(ID3D12Device8* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) {
17594 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object);
17595}
17596static inline HRESULT ID3D12Device8_CreateProtectedResourceSession1(ID3D12Device8* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) {
17597 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session);
17598}
17599/*** ID3D12Device8 methods ***/
17600static 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) {
17601 D3D12_RESOURCE_ALLOCATION_INFO __ret;
17602 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
17603}
17604static 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) {
17605 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
17606}
17607static 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) {
17608 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
17609}
17610static inline void ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device8* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) {
17611 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor);
17612}
17613static 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) {
17614 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes);
17615}
17616#endif
17617#endif
17618
17619#endif
17620
17621
17622#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */
17623
17624/*****************************************************************************
17625 * ID3D12Resource1 interface
17626 */
17627#ifndef __ID3D12Resource1_INTERFACE_DEFINED__
17628#define __ID3D12Resource1_INTERFACE_DEFINED__
17629
17630DEFINE_GUID(IID_ID3D12Resource1, 0x9d5e227a, 0x4430, 0x4161, 0x88,0xb3, 0x3e,0xca,0x6b,0xb1,0x6e,0x19);
17631#if defined(__cplusplus) && !defined(CINTERFACE)
17632MIDL_INTERFACE("9d5e227a-4430-4161-88b3-3eca6bb16e19")
17633ID3D12Resource1 : public ID3D12Resource
17634{
17635 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
17636 REFIID riid,
17637 void **protected_session) = 0;
17638
17639};
17640#ifdef __CRT_UUID_DECL
17641__CRT_UUID_DECL(ID3D12Resource1, 0x9d5e227a, 0x4430, 0x4161, 0x88,0xb3, 0x3e,0xca,0x6b,0xb1,0x6e,0x19)
17642#endif
17643#else
17644typedef struct ID3D12Resource1Vtbl {
17645 BEGIN_INTERFACE
17646
17647 /*** IUnknown methods ***/
17648 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17649 ID3D12Resource1 *This,
17650 REFIID riid,
17651 void **ppvObject);
17652
17653 ULONG (STDMETHODCALLTYPE *AddRef)(
17654 ID3D12Resource1 *This);
17655
17656 ULONG (STDMETHODCALLTYPE *Release)(
17657 ID3D12Resource1 *This);
17658
17659 /*** ID3D12Object methods ***/
17660 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
17661 ID3D12Resource1 *This,
17662 REFGUID guid,
17663 UINT *data_size,
17664 void *data);
17665
17666 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
17667 ID3D12Resource1 *This,
17668 REFGUID guid,
17669 UINT data_size,
17670 const void *data);
17671
17672 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
17673 ID3D12Resource1 *This,
17674 REFGUID guid,
17675 const IUnknown *data);
17676
17677 HRESULT (STDMETHODCALLTYPE *SetName)(
17678 ID3D12Resource1 *This,
17679 const WCHAR *name);
17680
17681 /*** ID3D12DeviceChild methods ***/
17682 HRESULT (STDMETHODCALLTYPE *GetDevice)(
17683 ID3D12Resource1 *This,
17684 REFIID riid,
17685 void **device);
17686
17687 /*** ID3D12Resource methods ***/
17688 HRESULT (STDMETHODCALLTYPE *Map)(
17689 ID3D12Resource1 *This,
17690 UINT sub_resource,
17691 const D3D12_RANGE *read_range,
17692 void **data);
17693
17694 void (STDMETHODCALLTYPE *Unmap)(
17695 ID3D12Resource1 *This,
17696 UINT sub_resource,
17697 const D3D12_RANGE *written_range);
17698
17699 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)(
17700 ID3D12Resource1 *This,
17701 D3D12_RESOURCE_DESC *__ret);
17702
17703 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)(
17704 ID3D12Resource1 *This);
17705
17706 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)(
17707 ID3D12Resource1 *This,
17708 UINT dst_sub_resource,
17709 const D3D12_BOX *dst_box,
17710 const void *src_data,
17711 UINT src_row_pitch,
17712 UINT src_slice_pitch);
17713
17714 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)(
17715 ID3D12Resource1 *This,
17716 void *dst_data,
17717 UINT dst_row_pitch,
17718 UINT dst_slice_pitch,
17719 UINT src_sub_resource,
17720 const D3D12_BOX *src_box);
17721
17722 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)(
17723 ID3D12Resource1 *This,
17724 D3D12_HEAP_PROPERTIES *heap_properties,
17725 D3D12_HEAP_FLAGS *flags);
17726
17727 /*** ID3D12Resource1 methods ***/
17728 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)(
17729 ID3D12Resource1 *This,
17730 REFIID riid,
17731 void **protected_session);
17732
17733 END_INTERFACE
17734} ID3D12Resource1Vtbl;
17735
17736interface ID3D12Resource1 {
17737 CONST_VTBL ID3D12Resource1Vtbl* lpVtbl;
17738};
17739
17740#ifdef COBJMACROS
17741#ifndef WIDL_C_INLINE_WRAPPERS
17742/*** IUnknown methods ***/
17743#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17744#define ID3D12Resource1_AddRef(This) (This)->lpVtbl->AddRef(This)
17745#define ID3D12Resource1_Release(This) (This)->lpVtbl->Release(This)
17746/*** ID3D12Object methods ***/
17747#define ID3D12Resource1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
17748#define ID3D12Resource1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
17749#define ID3D12Resource1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
17750#define ID3D12Resource1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
17751/*** ID3D12DeviceChild methods ***/
17752#define ID3D12Resource1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
17753/*** ID3D12Resource methods ***/
17754#define ID3D12Resource1_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data)
17755#define ID3D12Resource1_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range)
17756#define ID3D12Resource1_GetDesc(This) ID3D12Resource1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17757#define ID3D12Resource1_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This)
17758#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)
17759#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)
17760#define ID3D12Resource1_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags)
17761/*** ID3D12Resource1 methods ***/
17762#define ID3D12Resource1_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session)
17763#else
17764/*** IUnknown methods ***/
17765static inline HRESULT ID3D12Resource1_QueryInterface(ID3D12Resource1* This,REFIID riid,void **ppvObject) {
17766 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17767}
17768static inline ULONG ID3D12Resource1_AddRef(ID3D12Resource1* This) {
17769 return This->lpVtbl->AddRef(This);
17770}
17771static inline ULONG ID3D12Resource1_Release(ID3D12Resource1* This) {
17772 return This->lpVtbl->Release(This);
17773}
17774/*** ID3D12Object methods ***/
17775static inline HRESULT ID3D12Resource1_GetPrivateData(ID3D12Resource1* This,REFGUID guid,UINT *data_size,void *data) {
17776 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
17777}
17778static inline HRESULT ID3D12Resource1_SetPrivateData(ID3D12Resource1* This,REFGUID guid,UINT data_size,const void *data) {
17779 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
17780}
17781static inline HRESULT ID3D12Resource1_SetPrivateDataInterface(ID3D12Resource1* This,REFGUID guid,const IUnknown *data) {
17782 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
17783}
17784static inline HRESULT ID3D12Resource1_SetName(ID3D12Resource1* This,const WCHAR *name) {
17785 return This->lpVtbl->SetName(This,name);
17786}
17787/*** ID3D12DeviceChild methods ***/
17788static inline HRESULT ID3D12Resource1_GetDevice(ID3D12Resource1* This,REFIID riid,void **device) {
17789 return This->lpVtbl->GetDevice(This,riid,device);
17790}
17791/*** ID3D12Resource methods ***/
17792static inline HRESULT ID3D12Resource1_Map(ID3D12Resource1* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) {
17793 return This->lpVtbl->Map(This,sub_resource,read_range,data);
17794}
17795static inline void ID3D12Resource1_Unmap(ID3D12Resource1* This,UINT sub_resource,const D3D12_RANGE *written_range) {
17796 This->lpVtbl->Unmap(This,sub_resource,written_range);
17797}
17798static inline D3D12_RESOURCE_DESC ID3D12Resource1_GetDesc(ID3D12Resource1* This) {
17799 D3D12_RESOURCE_DESC __ret;
17800 return *This->lpVtbl->GetDesc(This,&__ret);
17801}
17802static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource1_GetGPUVirtualAddress(ID3D12Resource1* This) {
17803 return This->lpVtbl->GetGPUVirtualAddress(This);
17804}
17805static 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) {
17806 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch);
17807}
17808static 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) {
17809 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box);
17810}
17811static inline HRESULT ID3D12Resource1_GetHeapProperties(ID3D12Resource1* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) {
17812 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags);
17813}
17814/*** ID3D12Resource1 methods ***/
17815static inline HRESULT ID3D12Resource1_GetProtectedResourceSession(ID3D12Resource1* This,REFIID riid,void **protected_session) {
17816 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session);
17817}
17818#endif
17819#endif
17820
17821#endif
17822
17823
17824#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */
17825
17826/*****************************************************************************
17827 * ID3D12Resource2 interface
17828 */
17829#ifndef __ID3D12Resource2_INTERFACE_DEFINED__
17830#define __ID3D12Resource2_INTERFACE_DEFINED__
17831
17832DEFINE_GUID(IID_ID3D12Resource2, 0xbe36ec3b, 0xea85, 0x4aeb, 0xa4,0x5a, 0xe9,0xd7,0x64,0x04,0xa4,0x95);
17833#if defined(__cplusplus) && !defined(CINTERFACE)
17834MIDL_INTERFACE("be36ec3b-ea85-4aeb-a45a-e9d76404a495")
17835ID3D12Resource2 : public ID3D12Resource1
17836{
17837#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
17838 virtual D3D12_RESOURCE_DESC1* STDMETHODCALLTYPE GetDesc1(
17839 D3D12_RESOURCE_DESC1 *__ret) = 0;
17840 D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1(
17841 )
17842 {
17843 D3D12_RESOURCE_DESC1 __ret;
17844 return *GetDesc1(&__ret);
17845 }
17846#else
17847 virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1(
17848 ) = 0;
17849#endif
17850
17851};
17852#ifdef __CRT_UUID_DECL
17853__CRT_UUID_DECL(ID3D12Resource2, 0xbe36ec3b, 0xea85, 0x4aeb, 0xa4,0x5a, 0xe9,0xd7,0x64,0x04,0xa4,0x95)
17854#endif
17855#else
17856typedef struct ID3D12Resource2Vtbl {
17857 BEGIN_INTERFACE
17858
17859 /*** IUnknown methods ***/
17860 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17861 ID3D12Resource2 *This,
17862 REFIID riid,
17863 void **ppvObject);
17864
17865 ULONG (STDMETHODCALLTYPE *AddRef)(
17866 ID3D12Resource2 *This);
17867
17868 ULONG (STDMETHODCALLTYPE *Release)(
17869 ID3D12Resource2 *This);
17870
17871 /*** ID3D12Object methods ***/
17872 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
17873 ID3D12Resource2 *This,
17874 REFGUID guid,
17875 UINT *data_size,
17876 void *data);
17877
17878 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
17879 ID3D12Resource2 *This,
17880 REFGUID guid,
17881 UINT data_size,
17882 const void *data);
17883
17884 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
17885 ID3D12Resource2 *This,
17886 REFGUID guid,
17887 const IUnknown *data);
17888
17889 HRESULT (STDMETHODCALLTYPE *SetName)(
17890 ID3D12Resource2 *This,
17891 const WCHAR *name);
17892
17893 /*** ID3D12DeviceChild methods ***/
17894 HRESULT (STDMETHODCALLTYPE *GetDevice)(
17895 ID3D12Resource2 *This,
17896 REFIID riid,
17897 void **device);
17898
17899 /*** ID3D12Resource methods ***/
17900 HRESULT (STDMETHODCALLTYPE *Map)(
17901 ID3D12Resource2 *This,
17902 UINT sub_resource,
17903 const D3D12_RANGE *read_range,
17904 void **data);
17905
17906 void (STDMETHODCALLTYPE *Unmap)(
17907 ID3D12Resource2 *This,
17908 UINT sub_resource,
17909 const D3D12_RANGE *written_range);
17910
17911 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)(
17912 ID3D12Resource2 *This,
17913 D3D12_RESOURCE_DESC *__ret);
17914
17915 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)(
17916 ID3D12Resource2 *This);
17917
17918 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)(
17919 ID3D12Resource2 *This,
17920 UINT dst_sub_resource,
17921 const D3D12_BOX *dst_box,
17922 const void *src_data,
17923 UINT src_row_pitch,
17924 UINT src_slice_pitch);
17925
17926 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)(
17927 ID3D12Resource2 *This,
17928 void *dst_data,
17929 UINT dst_row_pitch,
17930 UINT dst_slice_pitch,
17931 UINT src_sub_resource,
17932 const D3D12_BOX *src_box);
17933
17934 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)(
17935 ID3D12Resource2 *This,
17936 D3D12_HEAP_PROPERTIES *heap_properties,
17937 D3D12_HEAP_FLAGS *flags);
17938
17939 /*** ID3D12Resource1 methods ***/
17940 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)(
17941 ID3D12Resource2 *This,
17942 REFIID riid,
17943 void **protected_session);
17944
17945 /*** ID3D12Resource2 methods ***/
17946 D3D12_RESOURCE_DESC1 * (STDMETHODCALLTYPE *GetDesc1)(
17947 ID3D12Resource2 *This,
17948 D3D12_RESOURCE_DESC1 *__ret);
17949
17950 END_INTERFACE
17951} ID3D12Resource2Vtbl;
17952
17953interface ID3D12Resource2 {
17954 CONST_VTBL ID3D12Resource2Vtbl* lpVtbl;
17955};
17956
17957#ifdef COBJMACROS
17958#ifndef WIDL_C_INLINE_WRAPPERS
17959/*** IUnknown methods ***/
17960#define ID3D12Resource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17961#define ID3D12Resource2_AddRef(This) (This)->lpVtbl->AddRef(This)
17962#define ID3D12Resource2_Release(This) (This)->lpVtbl->Release(This)
17963/*** ID3D12Object methods ***/
17964#define ID3D12Resource2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
17965#define ID3D12Resource2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
17966#define ID3D12Resource2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
17967#define ID3D12Resource2_SetName(This,name) (This)->lpVtbl->SetName(This,name)
17968/*** ID3D12DeviceChild methods ***/
17969#define ID3D12Resource2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
17970/*** ID3D12Resource methods ***/
17971#define ID3D12Resource2_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data)
17972#define ID3D12Resource2_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range)
17973#define ID3D12Resource2_GetDesc(This) ID3D12Resource2_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17974#define ID3D12Resource2_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This)
17975#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)
17976#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)
17977#define ID3D12Resource2_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags)
17978/*** ID3D12Resource1 methods ***/
17979#define ID3D12Resource2_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session)
17980/*** ID3D12Resource2 methods ***/
17981#define ID3D12Resource2_GetDesc1(This) ID3D12Resource2_GetDesc1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
17982#else
17983/*** IUnknown methods ***/
17984static inline HRESULT ID3D12Resource2_QueryInterface(ID3D12Resource2* This,REFIID riid,void **ppvObject) {
17985 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17986}
17987static inline ULONG ID3D12Resource2_AddRef(ID3D12Resource2* This) {
17988 return This->lpVtbl->AddRef(This);
17989}
17990static inline ULONG ID3D12Resource2_Release(ID3D12Resource2* This) {
17991 return This->lpVtbl->Release(This);
17992}
17993/*** ID3D12Object methods ***/
17994static inline HRESULT ID3D12Resource2_GetPrivateData(ID3D12Resource2* This,REFGUID guid,UINT *data_size,void *data) {
17995 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
17996}
17997static inline HRESULT ID3D12Resource2_SetPrivateData(ID3D12Resource2* This,REFGUID guid,UINT data_size,const void *data) {
17998 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
17999}
18000static inline HRESULT ID3D12Resource2_SetPrivateDataInterface(ID3D12Resource2* This,REFGUID guid,const IUnknown *data) {
18001 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
18002}
18003static inline HRESULT ID3D12Resource2_SetName(ID3D12Resource2* This,const WCHAR *name) {
18004 return This->lpVtbl->SetName(This,name);
18005}
18006/*** ID3D12DeviceChild methods ***/
18007static inline HRESULT ID3D12Resource2_GetDevice(ID3D12Resource2* This,REFIID riid,void **device) {
18008 return This->lpVtbl->GetDevice(This,riid,device);
18009}
18010/*** ID3D12Resource methods ***/
18011static inline HRESULT ID3D12Resource2_Map(ID3D12Resource2* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) {
18012 return This->lpVtbl->Map(This,sub_resource,read_range,data);
18013}
18014static inline void ID3D12Resource2_Unmap(ID3D12Resource2* This,UINT sub_resource,const D3D12_RANGE *written_range) {
18015 This->lpVtbl->Unmap(This,sub_resource,written_range);
18016}
18017static inline D3D12_RESOURCE_DESC ID3D12Resource2_GetDesc(ID3D12Resource2* This) {
18018 D3D12_RESOURCE_DESC __ret;
18019 return *This->lpVtbl->GetDesc(This,&__ret);
18020}
18021static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource2_GetGPUVirtualAddress(ID3D12Resource2* This) {
18022 return This->lpVtbl->GetGPUVirtualAddress(This);
18023}
18024static 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) {
18025 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch);
18026}
18027static 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) {
18028 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box);
18029}
18030static inline HRESULT ID3D12Resource2_GetHeapProperties(ID3D12Resource2* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) {
18031 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags);
18032}
18033/*** ID3D12Resource1 methods ***/
18034static inline HRESULT ID3D12Resource2_GetProtectedResourceSession(ID3D12Resource2* This,REFIID riid,void **protected_session) {
18035 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session);
18036}
18037/*** ID3D12Resource2 methods ***/
18038static inline D3D12_RESOURCE_DESC1 ID3D12Resource2_GetDesc1(ID3D12Resource2* This) {
18039 D3D12_RESOURCE_DESC1 __ret;
18040 return *This->lpVtbl->GetDesc1(This,&__ret);
18041}
18042#endif
18043#endif
18044
18045#endif
18046
18047
18048#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */
18049
18050/*****************************************************************************
18051 * ID3D12Heap1 interface
18052 */
18053#ifndef __ID3D12Heap1_INTERFACE_DEFINED__
18054#define __ID3D12Heap1_INTERFACE_DEFINED__
18055
18056DEFINE_GUID(IID_ID3D12Heap1, 0x572f7389, 0x2168, 0x49e3, 0x96,0x93, 0xd6,0xdf,0x58,0x71,0xbf,0x6d);
18057#if defined(__cplusplus) && !defined(CINTERFACE)
18058MIDL_INTERFACE("572f7389-2168-49e3-9693-d6df5871bf6d")
18059ID3D12Heap1 : public ID3D12Heap
18060{
18061 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
18062 REFIID riid,
18063 void **protected_session) = 0;
18064
18065};
18066#ifdef __CRT_UUID_DECL
18067__CRT_UUID_DECL(ID3D12Heap1, 0x572f7389, 0x2168, 0x49e3, 0x96,0x93, 0xd6,0xdf,0x58,0x71,0xbf,0x6d)
18068#endif
18069#else
18070typedef struct ID3D12Heap1Vtbl {
18071 BEGIN_INTERFACE
18072
18073 /*** IUnknown methods ***/
18074 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18075 ID3D12Heap1 *This,
18076 REFIID riid,
18077 void **ppvObject);
18078
18079 ULONG (STDMETHODCALLTYPE *AddRef)(
18080 ID3D12Heap1 *This);
18081
18082 ULONG (STDMETHODCALLTYPE *Release)(
18083 ID3D12Heap1 *This);
18084
18085 /*** ID3D12Object methods ***/
18086 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
18087 ID3D12Heap1 *This,
18088 REFGUID guid,
18089 UINT *data_size,
18090 void *data);
18091
18092 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
18093 ID3D12Heap1 *This,
18094 REFGUID guid,
18095 UINT data_size,
18096 const void *data);
18097
18098 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
18099 ID3D12Heap1 *This,
18100 REFGUID guid,
18101 const IUnknown *data);
18102
18103 HRESULT (STDMETHODCALLTYPE *SetName)(
18104 ID3D12Heap1 *This,
18105 const WCHAR *name);
18106
18107 /*** ID3D12DeviceChild methods ***/
18108 HRESULT (STDMETHODCALLTYPE *GetDevice)(
18109 ID3D12Heap1 *This,
18110 REFIID riid,
18111 void **device);
18112
18113 /*** ID3D12Heap methods ***/
18114 D3D12_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
18115 ID3D12Heap1 *This,
18116 D3D12_HEAP_DESC *__ret);
18117
18118 /*** ID3D12Heap1 methods ***/
18119 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)(
18120 ID3D12Heap1 *This,
18121 REFIID riid,
18122 void **protected_session);
18123
18124 END_INTERFACE
18125} ID3D12Heap1Vtbl;
18126
18127interface ID3D12Heap1 {
18128 CONST_VTBL ID3D12Heap1Vtbl* lpVtbl;
18129};
18130
18131#ifdef COBJMACROS
18132#ifndef WIDL_C_INLINE_WRAPPERS
18133/*** IUnknown methods ***/
18134#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18135#define ID3D12Heap1_AddRef(This) (This)->lpVtbl->AddRef(This)
18136#define ID3D12Heap1_Release(This) (This)->lpVtbl->Release(This)
18137/*** ID3D12Object methods ***/
18138#define ID3D12Heap1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
18139#define ID3D12Heap1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
18140#define ID3D12Heap1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
18141#define ID3D12Heap1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
18142/*** ID3D12DeviceChild methods ***/
18143#define ID3D12Heap1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
18144/*** ID3D12Heap methods ***/
18145#define ID3D12Heap1_GetDesc(This) ID3D12Heap1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
18146/*** ID3D12Heap1 methods ***/
18147#define ID3D12Heap1_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session)
18148#else
18149/*** IUnknown methods ***/
18150static inline HRESULT ID3D12Heap1_QueryInterface(ID3D12Heap1* This,REFIID riid,void **ppvObject) {
18151 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18152}
18153static inline ULONG ID3D12Heap1_AddRef(ID3D12Heap1* This) {
18154 return This->lpVtbl->AddRef(This);
18155}
18156static inline ULONG ID3D12Heap1_Release(ID3D12Heap1* This) {
18157 return This->lpVtbl->Release(This);
18158}
18159/*** ID3D12Object methods ***/
18160static inline HRESULT ID3D12Heap1_GetPrivateData(ID3D12Heap1* This,REFGUID guid,UINT *data_size,void *data) {
18161 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
18162}
18163static inline HRESULT ID3D12Heap1_SetPrivateData(ID3D12Heap1* This,REFGUID guid,UINT data_size,const void *data) {
18164 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
18165}
18166static inline HRESULT ID3D12Heap1_SetPrivateDataInterface(ID3D12Heap1* This,REFGUID guid,const IUnknown *data) {
18167 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
18168}
18169static inline HRESULT ID3D12Heap1_SetName(ID3D12Heap1* This,const WCHAR *name) {
18170 return This->lpVtbl->SetName(This,name);
18171}
18172/*** ID3D12DeviceChild methods ***/
18173static inline HRESULT ID3D12Heap1_GetDevice(ID3D12Heap1* This,REFIID riid,void **device) {
18174 return This->lpVtbl->GetDevice(This,riid,device);
18175}
18176/*** ID3D12Heap methods ***/
18177static inline D3D12_HEAP_DESC ID3D12Heap1_GetDesc(ID3D12Heap1* This) {
18178 D3D12_HEAP_DESC __ret;
18179 return *This->lpVtbl->GetDesc(This,&__ret);
18180}
18181/*** ID3D12Heap1 methods ***/
18182static inline HRESULT ID3D12Heap1_GetProtectedResourceSession(ID3D12Heap1* This,REFIID riid,void **protected_session) {
18183 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session);
18184}
18185#endif
18186#endif
18187
18188#endif
18189
18190
18191#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */
18192
18193typedef enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE {
18194 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0x0,
18195 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = 0x1,
18196 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = 0x2,
18197 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = 0x3
18198} D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
18199typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
18200 D3D12_CLEAR_VALUE ClearValue;
18201} D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
18202typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS {
18203 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
18204 __C89_NAMELESS union {
18205 D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
18206 } __C89_NAMELESSUNIONNAME;
18207} D3D12_RENDER_PASS_BEGINNING_ACCESS;
18208typedef enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE {
18209 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0x0,
18210 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = 0x1,
18211 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = 0x2,
18212 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = 0x3
18213} D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
18214typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
18215 UINT SrcSubresource;
18216 UINT DstSubresource;
18217 UINT DstX;
18218 UINT DstY;
18219 D3D12_RECT SrcRect;
18220} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
18221typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
18222 ID3D12Resource *pSrcResource;
18223 ID3D12Resource *pDstResource;
18224 UINT SubresourceCount;
18225 const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
18226 DXGI_FORMAT Format;
18227 D3D12_RESOLVE_MODE ResolveMode;
18228 WINBOOL PreserveResolveSource;
18229} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
18230typedef struct D3D12_RENDER_PASS_ENDING_ACCESS {
18231 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
18232 __C89_NAMELESS union {
18233 D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
18234 } __C89_NAMELESSUNIONNAME;
18235} D3D12_RENDER_PASS_ENDING_ACCESS;
18236typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC {
18237 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
18238 D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
18239 D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
18240} D3D12_RENDER_PASS_RENDER_TARGET_DESC;
18241typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
18242 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
18243 D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
18244 D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
18245 D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
18246 D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
18247} D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
18248typedef enum D3D12_RENDER_PASS_FLAGS {
18249 D3D12_RENDER_PASS_FLAG_NONE = 0x0,
18250 D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
18251 D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
18252 D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4,
18253 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8,
18254 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10
18255} D3D12_RENDER_PASS_FLAGS;
18256DEFINE_ENUM_FLAG_OPERATORS(D3D12_RENDER_PASS_FLAGS);
18257/*****************************************************************************
18258 * ID3D12MetaCommand interface
18259 */
18260#ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__
18261#define __ID3D12MetaCommand_INTERFACE_DEFINED__
18262
18263DEFINE_GUID(IID_ID3D12MetaCommand, 0xdbb84c27, 0x36ce, 0x4fc9, 0xb8,0x01, 0xf0,0x48,0xc4,0x6a,0xc5,0x70);
18264#if defined(__cplusplus) && !defined(CINTERFACE)
18265MIDL_INTERFACE("dbb84c27-36ce-4fc9-b801-f048c46ac570")
18266ID3D12MetaCommand : public ID3D12Pageable
18267{
18268 virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize(
18269 D3D12_META_COMMAND_PARAMETER_STAGE stage,
18270 UINT parameter_index) = 0;
18271
18272};
18273#ifdef __CRT_UUID_DECL
18274__CRT_UUID_DECL(ID3D12MetaCommand, 0xdbb84c27, 0x36ce, 0x4fc9, 0xb8,0x01, 0xf0,0x48,0xc4,0x6a,0xc5,0x70)
18275#endif
18276#else
18277typedef struct ID3D12MetaCommandVtbl {
18278 BEGIN_INTERFACE
18279
18280 /*** IUnknown methods ***/
18281 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18282 ID3D12MetaCommand *This,
18283 REFIID riid,
18284 void **ppvObject);
18285
18286 ULONG (STDMETHODCALLTYPE *AddRef)(
18287 ID3D12MetaCommand *This);
18288
18289 ULONG (STDMETHODCALLTYPE *Release)(
18290 ID3D12MetaCommand *This);
18291
18292 /*** ID3D12Object methods ***/
18293 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
18294 ID3D12MetaCommand *This,
18295 REFGUID guid,
18296 UINT *data_size,
18297 void *data);
18298
18299 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
18300 ID3D12MetaCommand *This,
18301 REFGUID guid,
18302 UINT data_size,
18303 const void *data);
18304
18305 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
18306 ID3D12MetaCommand *This,
18307 REFGUID guid,
18308 const IUnknown *data);
18309
18310 HRESULT (STDMETHODCALLTYPE *SetName)(
18311 ID3D12MetaCommand *This,
18312 const WCHAR *name);
18313
18314 /*** ID3D12DeviceChild methods ***/
18315 HRESULT (STDMETHODCALLTYPE *GetDevice)(
18316 ID3D12MetaCommand *This,
18317 REFIID riid,
18318 void **device);
18319
18320 /*** ID3D12MetaCommand methods ***/
18321 UINT64 (STDMETHODCALLTYPE *GetRequiredParameterResourceSize)(
18322 ID3D12MetaCommand *This,
18323 D3D12_META_COMMAND_PARAMETER_STAGE stage,
18324 UINT parameter_index);
18325
18326 END_INTERFACE
18327} ID3D12MetaCommandVtbl;
18328
18329interface ID3D12MetaCommand {
18330 CONST_VTBL ID3D12MetaCommandVtbl* lpVtbl;
18331};
18332
18333#ifdef COBJMACROS
18334#ifndef WIDL_C_INLINE_WRAPPERS
18335/*** IUnknown methods ***/
18336#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18337#define ID3D12MetaCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
18338#define ID3D12MetaCommand_Release(This) (This)->lpVtbl->Release(This)
18339/*** ID3D12Object methods ***/
18340#define ID3D12MetaCommand_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
18341#define ID3D12MetaCommand_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
18342#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
18343#define ID3D12MetaCommand_SetName(This,name) (This)->lpVtbl->SetName(This,name)
18344/*** ID3D12DeviceChild methods ***/
18345#define ID3D12MetaCommand_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
18346/*** ID3D12MetaCommand methods ***/
18347#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,stage,parameter_index) (This)->lpVtbl->GetRequiredParameterResourceSize(This,stage,parameter_index)
18348#else
18349/*** IUnknown methods ***/
18350static inline HRESULT ID3D12MetaCommand_QueryInterface(ID3D12MetaCommand* This,REFIID riid,void **ppvObject) {
18351 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18352}
18353static inline ULONG ID3D12MetaCommand_AddRef(ID3D12MetaCommand* This) {
18354 return This->lpVtbl->AddRef(This);
18355}
18356static inline ULONG ID3D12MetaCommand_Release(ID3D12MetaCommand* This) {
18357 return This->lpVtbl->Release(This);
18358}
18359/*** ID3D12Object methods ***/
18360static inline HRESULT ID3D12MetaCommand_GetPrivateData(ID3D12MetaCommand* This,REFGUID guid,UINT *data_size,void *data) {
18361 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
18362}
18363static inline HRESULT ID3D12MetaCommand_SetPrivateData(ID3D12MetaCommand* This,REFGUID guid,UINT data_size,const void *data) {
18364 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
18365}
18366static inline HRESULT ID3D12MetaCommand_SetPrivateDataInterface(ID3D12MetaCommand* This,REFGUID guid,const IUnknown *data) {
18367 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
18368}
18369static inline HRESULT ID3D12MetaCommand_SetName(ID3D12MetaCommand* This,const WCHAR *name) {
18370 return This->lpVtbl->SetName(This,name);
18371}
18372/*** ID3D12DeviceChild methods ***/
18373static inline HRESULT ID3D12MetaCommand_GetDevice(ID3D12MetaCommand* This,REFIID riid,void **device) {
18374 return This->lpVtbl->GetDevice(This,riid,device);
18375}
18376/*** ID3D12MetaCommand methods ***/
18377static inline UINT64 ID3D12MetaCommand_GetRequiredParameterResourceSize(ID3D12MetaCommand* This,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT parameter_index) {
18378 return This->lpVtbl->GetRequiredParameterResourceSize(This,stage,parameter_index);
18379}
18380#endif
18381#endif
18382
18383#endif
18384
18385
18386#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */
18387
18388typedef struct D3D12_DISPATCH_RAYS_DESC {
18389 D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
18390 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
18391 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
18392 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
18393 UINT Width;
18394 UINT Height;
18395 UINT Depth;
18396} D3D12_DISPATCH_RAYS_DESC;
18397/*****************************************************************************
18398 * ID3D12GraphicsCommandList4 interface
18399 */
18400#ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
18401#define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
18402
18403DEFINE_GUID(IID_ID3D12GraphicsCommandList4, 0x8754318e, 0xd3a9, 0x4541, 0x98,0xcf, 0x64,0x5b,0x50,0xdc,0x48,0x74);
18404#if defined(__cplusplus) && !defined(CINTERFACE)
18405MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874")
18406ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3
18407{
18408 virtual void STDMETHODCALLTYPE BeginRenderPass(
18409 UINT render_targets_count,
18410 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
18411 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
18412 D3D12_RENDER_PASS_FLAGS flags) = 0;
18413
18414 virtual void STDMETHODCALLTYPE EndRenderPass(
18415 ) = 0;
18416
18417 virtual void STDMETHODCALLTYPE InitializeMetaCommand(
18418 ID3D12MetaCommand *meta_command,
18419 const void *initialization_parameters_data,
18420 SIZE_T initialization_parameters_data_size_in_bytes) = 0;
18421
18422 virtual void STDMETHODCALLTYPE ExecuteMetaCommand(
18423 ID3D12MetaCommand *meta_command,
18424 const void *execution_parameters_data,
18425 SIZE_T execution_parameters_data_size_in_bytes) = 0;
18426
18427 virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure(
18428 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
18429 UINT postbuild_info_descs_count,
18430 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) = 0;
18431
18432 virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo(
18433 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
18434 UINT src_acceleration_structures_count,
18435 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) = 0;
18436
18437 virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure(
18438 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
18439 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
18440 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) = 0;
18441
18442 virtual void STDMETHODCALLTYPE SetPipelineState1(
18443 ID3D12StateObject *state_object) = 0;
18444
18445 virtual void STDMETHODCALLTYPE DispatchRays(
18446 const D3D12_DISPATCH_RAYS_DESC *desc) = 0;
18447
18448};
18449#ifdef __CRT_UUID_DECL
18450__CRT_UUID_DECL(ID3D12GraphicsCommandList4, 0x8754318e, 0xd3a9, 0x4541, 0x98,0xcf, 0x64,0x5b,0x50,0xdc,0x48,0x74)
18451#endif
18452#else
18453typedef struct ID3D12GraphicsCommandList4Vtbl {
18454 BEGIN_INTERFACE
18455
18456 /*** IUnknown methods ***/
18457 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18458 ID3D12GraphicsCommandList4 *This,
18459 REFIID riid,
18460 void **ppvObject);
18461
18462 ULONG (STDMETHODCALLTYPE *AddRef)(
18463 ID3D12GraphicsCommandList4 *This);
18464
18465 ULONG (STDMETHODCALLTYPE *Release)(
18466 ID3D12GraphicsCommandList4 *This);
18467
18468 /*** ID3D12Object methods ***/
18469 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
18470 ID3D12GraphicsCommandList4 *This,
18471 REFGUID guid,
18472 UINT *data_size,
18473 void *data);
18474
18475 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
18476 ID3D12GraphicsCommandList4 *This,
18477 REFGUID guid,
18478 UINT data_size,
18479 const void *data);
18480
18481 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
18482 ID3D12GraphicsCommandList4 *This,
18483 REFGUID guid,
18484 const IUnknown *data);
18485
18486 HRESULT (STDMETHODCALLTYPE *SetName)(
18487 ID3D12GraphicsCommandList4 *This,
18488 const WCHAR *name);
18489
18490 /*** ID3D12DeviceChild methods ***/
18491 HRESULT (STDMETHODCALLTYPE *GetDevice)(
18492 ID3D12GraphicsCommandList4 *This,
18493 REFIID riid,
18494 void **device);
18495
18496 /*** ID3D12CommandList methods ***/
18497 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
18498 ID3D12GraphicsCommandList4 *This);
18499
18500 /*** ID3D12GraphicsCommandList methods ***/
18501 HRESULT (STDMETHODCALLTYPE *Close)(
18502 ID3D12GraphicsCommandList4 *This);
18503
18504 HRESULT (STDMETHODCALLTYPE *Reset)(
18505 ID3D12GraphicsCommandList4 *This,
18506 ID3D12CommandAllocator *allocator,
18507 ID3D12PipelineState *initial_state);
18508
18509 void (STDMETHODCALLTYPE *ClearState)(
18510 ID3D12GraphicsCommandList4 *This,
18511 ID3D12PipelineState *pipeline_state);
18512
18513 void (STDMETHODCALLTYPE *DrawInstanced)(
18514 ID3D12GraphicsCommandList4 *This,
18515 UINT vertex_count_per_instance,
18516 UINT instance_count,
18517 UINT start_vertex_location,
18518 UINT start_instance_location);
18519
18520 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
18521 ID3D12GraphicsCommandList4 *This,
18522 UINT index_count_per_instance,
18523 UINT instance_count,
18524 UINT start_vertex_location,
18525 INT base_vertex_location,
18526 UINT start_instance_location);
18527
18528 void (STDMETHODCALLTYPE *Dispatch)(
18529 ID3D12GraphicsCommandList4 *This,
18530 UINT x,
18531 UINT u,
18532 UINT z);
18533
18534 void (STDMETHODCALLTYPE *CopyBufferRegion)(
18535 ID3D12GraphicsCommandList4 *This,
18536 ID3D12Resource *dst_buffer,
18537 UINT64 dst_offset,
18538 ID3D12Resource *src_buffer,
18539 UINT64 src_offset,
18540 UINT64 byte_count);
18541
18542 void (STDMETHODCALLTYPE *CopyTextureRegion)(
18543 ID3D12GraphicsCommandList4 *This,
18544 const D3D12_TEXTURE_COPY_LOCATION *dst,
18545 UINT dst_x,
18546 UINT dst_y,
18547 UINT dst_z,
18548 const D3D12_TEXTURE_COPY_LOCATION *src,
18549 const D3D12_BOX *src_box);
18550
18551 void (STDMETHODCALLTYPE *CopyResource)(
18552 ID3D12GraphicsCommandList4 *This,
18553 ID3D12Resource *dst_resource,
18554 ID3D12Resource *src_resource);
18555
18556 void (STDMETHODCALLTYPE *CopyTiles)(
18557 ID3D12GraphicsCommandList4 *This,
18558 ID3D12Resource *tiled_resource,
18559 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
18560 const D3D12_TILE_REGION_SIZE *tile_region_size,
18561 ID3D12Resource *buffer,
18562 UINT64 buffer_offset,
18563 D3D12_TILE_COPY_FLAGS flags);
18564
18565 void (STDMETHODCALLTYPE *ResolveSubresource)(
18566 ID3D12GraphicsCommandList4 *This,
18567 ID3D12Resource *dst_resource,
18568 UINT dst_sub_resource,
18569 ID3D12Resource *src_resource,
18570 UINT src_sub_resource,
18571 DXGI_FORMAT format);
18572
18573 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
18574 ID3D12GraphicsCommandList4 *This,
18575 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
18576
18577 void (STDMETHODCALLTYPE *RSSetViewports)(
18578 ID3D12GraphicsCommandList4 *This,
18579 UINT viewport_count,
18580 const D3D12_VIEWPORT *viewports);
18581
18582 void (STDMETHODCALLTYPE *RSSetScissorRects)(
18583 ID3D12GraphicsCommandList4 *This,
18584 UINT rect_count,
18585 const D3D12_RECT *rects);
18586
18587 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
18588 ID3D12GraphicsCommandList4 *This,
18589 const FLOAT blend_factor[4]);
18590
18591 void (STDMETHODCALLTYPE *OMSetStencilRef)(
18592 ID3D12GraphicsCommandList4 *This,
18593 UINT stencil_ref);
18594
18595 void (STDMETHODCALLTYPE *SetPipelineState)(
18596 ID3D12GraphicsCommandList4 *This,
18597 ID3D12PipelineState *pipeline_state);
18598
18599 void (STDMETHODCALLTYPE *ResourceBarrier)(
18600 ID3D12GraphicsCommandList4 *This,
18601 UINT barrier_count,
18602 const D3D12_RESOURCE_BARRIER *barriers);
18603
18604 void (STDMETHODCALLTYPE *ExecuteBundle)(
18605 ID3D12GraphicsCommandList4 *This,
18606 ID3D12GraphicsCommandList *command_list);
18607
18608 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
18609 ID3D12GraphicsCommandList4 *This,
18610 UINT heap_count,
18611 ID3D12DescriptorHeap *const *heaps);
18612
18613 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
18614 ID3D12GraphicsCommandList4 *This,
18615 ID3D12RootSignature *root_signature);
18616
18617 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
18618 ID3D12GraphicsCommandList4 *This,
18619 ID3D12RootSignature *root_signature);
18620
18621 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
18622 ID3D12GraphicsCommandList4 *This,
18623 UINT root_parameter_index,
18624 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
18625
18626 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
18627 ID3D12GraphicsCommandList4 *This,
18628 UINT root_parameter_index,
18629 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
18630
18631 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
18632 ID3D12GraphicsCommandList4 *This,
18633 UINT root_parameter_index,
18634 UINT data,
18635 UINT dst_offset);
18636
18637 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
18638 ID3D12GraphicsCommandList4 *This,
18639 UINT root_parameter_index,
18640 UINT data,
18641 UINT dst_offset);
18642
18643 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
18644 ID3D12GraphicsCommandList4 *This,
18645 UINT root_parameter_index,
18646 UINT constant_count,
18647 const void *data,
18648 UINT dst_offset);
18649
18650 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
18651 ID3D12GraphicsCommandList4 *This,
18652 UINT root_parameter_index,
18653 UINT constant_count,
18654 const void *data,
18655 UINT dst_offset);
18656
18657 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
18658 ID3D12GraphicsCommandList4 *This,
18659 UINT root_parameter_index,
18660 D3D12_GPU_VIRTUAL_ADDRESS address);
18661
18662 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
18663 ID3D12GraphicsCommandList4 *This,
18664 UINT root_parameter_index,
18665 D3D12_GPU_VIRTUAL_ADDRESS address);
18666
18667 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
18668 ID3D12GraphicsCommandList4 *This,
18669 UINT root_parameter_index,
18670 D3D12_GPU_VIRTUAL_ADDRESS address);
18671
18672 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
18673 ID3D12GraphicsCommandList4 *This,
18674 UINT root_parameter_index,
18675 D3D12_GPU_VIRTUAL_ADDRESS address);
18676
18677 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
18678 ID3D12GraphicsCommandList4 *This,
18679 UINT root_parameter_index,
18680 D3D12_GPU_VIRTUAL_ADDRESS address);
18681
18682 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
18683 ID3D12GraphicsCommandList4 *This,
18684 UINT root_parameter_index,
18685 D3D12_GPU_VIRTUAL_ADDRESS address);
18686
18687 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
18688 ID3D12GraphicsCommandList4 *This,
18689 const D3D12_INDEX_BUFFER_VIEW *view);
18690
18691 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
18692 ID3D12GraphicsCommandList4 *This,
18693 UINT start_slot,
18694 UINT view_count,
18695 const D3D12_VERTEX_BUFFER_VIEW *views);
18696
18697 void (STDMETHODCALLTYPE *SOSetTargets)(
18698 ID3D12GraphicsCommandList4 *This,
18699 UINT start_slot,
18700 UINT view_count,
18701 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
18702
18703 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
18704 ID3D12GraphicsCommandList4 *This,
18705 UINT render_target_descriptor_count,
18706 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
18707 WINBOOL single_descriptor_handle,
18708 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
18709
18710 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
18711 ID3D12GraphicsCommandList4 *This,
18712 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
18713 D3D12_CLEAR_FLAGS flags,
18714 FLOAT depth,
18715 UINT8 stencil,
18716 UINT rect_count,
18717 const D3D12_RECT *rects);
18718
18719 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
18720 ID3D12GraphicsCommandList4 *This,
18721 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
18722 const FLOAT color[4],
18723 UINT rect_count,
18724 const D3D12_RECT *rects);
18725
18726 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
18727 ID3D12GraphicsCommandList4 *This,
18728 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
18729 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
18730 ID3D12Resource *resource,
18731 const UINT values[4],
18732 UINT rect_count,
18733 const D3D12_RECT *rects);
18734
18735 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
18736 ID3D12GraphicsCommandList4 *This,
18737 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
18738 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
18739 ID3D12Resource *resource,
18740 const float values[4],
18741 UINT rect_count,
18742 const D3D12_RECT *rects);
18743
18744 void (STDMETHODCALLTYPE *DiscardResource)(
18745 ID3D12GraphicsCommandList4 *This,
18746 ID3D12Resource *resource,
18747 const D3D12_DISCARD_REGION *region);
18748
18749 void (STDMETHODCALLTYPE *BeginQuery)(
18750 ID3D12GraphicsCommandList4 *This,
18751 ID3D12QueryHeap *heap,
18752 D3D12_QUERY_TYPE type,
18753 UINT index);
18754
18755 void (STDMETHODCALLTYPE *EndQuery)(
18756 ID3D12GraphicsCommandList4 *This,
18757 ID3D12QueryHeap *heap,
18758 D3D12_QUERY_TYPE type,
18759 UINT index);
18760
18761 void (STDMETHODCALLTYPE *ResolveQueryData)(
18762 ID3D12GraphicsCommandList4 *This,
18763 ID3D12QueryHeap *heap,
18764 D3D12_QUERY_TYPE type,
18765 UINT start_index,
18766 UINT query_count,
18767 ID3D12Resource *dst_buffer,
18768 UINT64 aligned_dst_buffer_offset);
18769
18770 void (STDMETHODCALLTYPE *SetPredication)(
18771 ID3D12GraphicsCommandList4 *This,
18772 ID3D12Resource *buffer,
18773 UINT64 aligned_buffer_offset,
18774 D3D12_PREDICATION_OP operation);
18775
18776 void (STDMETHODCALLTYPE *SetMarker)(
18777 ID3D12GraphicsCommandList4 *This,
18778 UINT metadata,
18779 const void *data,
18780 UINT size);
18781
18782 void (STDMETHODCALLTYPE *BeginEvent)(
18783 ID3D12GraphicsCommandList4 *This,
18784 UINT metadata,
18785 const void *data,
18786 UINT size);
18787
18788 void (STDMETHODCALLTYPE *EndEvent)(
18789 ID3D12GraphicsCommandList4 *This);
18790
18791 void (STDMETHODCALLTYPE *ExecuteIndirect)(
18792 ID3D12GraphicsCommandList4 *This,
18793 ID3D12CommandSignature *command_signature,
18794 UINT max_command_count,
18795 ID3D12Resource *arg_buffer,
18796 UINT64 arg_buffer_offset,
18797 ID3D12Resource *count_buffer,
18798 UINT64 count_buffer_offset);
18799
18800 /*** ID3D12GraphicsCommandList1 methods ***/
18801 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
18802 ID3D12GraphicsCommandList4 *This,
18803 ID3D12Resource *dst_buffer,
18804 UINT64 dst_offset,
18805 ID3D12Resource *src_buffer,
18806 UINT64 src_offset,
18807 UINT dependent_resource_count,
18808 ID3D12Resource *const *dependent_resources,
18809 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
18810
18811 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
18812 ID3D12GraphicsCommandList4 *This,
18813 ID3D12Resource *dst_buffer,
18814 UINT64 dst_offset,
18815 ID3D12Resource *src_buffer,
18816 UINT64 src_offset,
18817 UINT dependent_resource_count,
18818 ID3D12Resource *const *dependent_resources,
18819 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
18820
18821 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
18822 ID3D12GraphicsCommandList4 *This,
18823 FLOAT min,
18824 FLOAT max);
18825
18826 void (STDMETHODCALLTYPE *SetSamplePositions)(
18827 ID3D12GraphicsCommandList4 *This,
18828 UINT sample_count,
18829 UINT pixel_count,
18830 D3D12_SAMPLE_POSITION *sample_positions);
18831
18832 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
18833 ID3D12GraphicsCommandList4 *This,
18834 ID3D12Resource *dst_resource,
18835 UINT dst_sub_resource_idx,
18836 UINT dst_x,
18837 UINT dst_y,
18838 ID3D12Resource *src_resource,
18839 UINT src_sub_resource_idx,
18840 D3D12_RECT *src_rect,
18841 DXGI_FORMAT format,
18842 D3D12_RESOLVE_MODE mode);
18843
18844 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
18845 ID3D12GraphicsCommandList4 *This,
18846 UINT mask);
18847
18848 /*** ID3D12GraphicsCommandList2 methods ***/
18849 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
18850 ID3D12GraphicsCommandList4 *This,
18851 UINT count,
18852 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
18853 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
18854
18855 /*** ID3D12GraphicsCommandList3 methods ***/
18856 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
18857 ID3D12GraphicsCommandList4 *This,
18858 ID3D12ProtectedResourceSession *protected_resource_session);
18859
18860 /*** ID3D12GraphicsCommandList4 methods ***/
18861 void (STDMETHODCALLTYPE *BeginRenderPass)(
18862 ID3D12GraphicsCommandList4 *This,
18863 UINT render_targets_count,
18864 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
18865 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
18866 D3D12_RENDER_PASS_FLAGS flags);
18867
18868 void (STDMETHODCALLTYPE *EndRenderPass)(
18869 ID3D12GraphicsCommandList4 *This);
18870
18871 void (STDMETHODCALLTYPE *InitializeMetaCommand)(
18872 ID3D12GraphicsCommandList4 *This,
18873 ID3D12MetaCommand *meta_command,
18874 const void *initialization_parameters_data,
18875 SIZE_T initialization_parameters_data_size_in_bytes);
18876
18877 void (STDMETHODCALLTYPE *ExecuteMetaCommand)(
18878 ID3D12GraphicsCommandList4 *This,
18879 ID3D12MetaCommand *meta_command,
18880 const void *execution_parameters_data,
18881 SIZE_T execution_parameters_data_size_in_bytes);
18882
18883 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)(
18884 ID3D12GraphicsCommandList4 *This,
18885 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
18886 UINT postbuild_info_descs_count,
18887 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
18888
18889 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)(
18890 ID3D12GraphicsCommandList4 *This,
18891 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
18892 UINT src_acceleration_structures_count,
18893 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
18894
18895 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)(
18896 ID3D12GraphicsCommandList4 *This,
18897 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
18898 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
18899 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
18900
18901 void (STDMETHODCALLTYPE *SetPipelineState1)(
18902 ID3D12GraphicsCommandList4 *This,
18903 ID3D12StateObject *state_object);
18904
18905 void (STDMETHODCALLTYPE *DispatchRays)(
18906 ID3D12GraphicsCommandList4 *This,
18907 const D3D12_DISPATCH_RAYS_DESC *desc);
18908
18909 END_INTERFACE
18910} ID3D12GraphicsCommandList4Vtbl;
18911
18912interface ID3D12GraphicsCommandList4 {
18913 CONST_VTBL ID3D12GraphicsCommandList4Vtbl* lpVtbl;
18914};
18915
18916#ifdef COBJMACROS
18917#ifndef WIDL_C_INLINE_WRAPPERS
18918/*** IUnknown methods ***/
18919#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18920#define ID3D12GraphicsCommandList4_AddRef(This) (This)->lpVtbl->AddRef(This)
18921#define ID3D12GraphicsCommandList4_Release(This) (This)->lpVtbl->Release(This)
18922/*** ID3D12Object methods ***/
18923#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
18924#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
18925#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
18926#define ID3D12GraphicsCommandList4_SetName(This,name) (This)->lpVtbl->SetName(This,name)
18927/*** ID3D12DeviceChild methods ***/
18928#define ID3D12GraphicsCommandList4_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
18929/*** ID3D12CommandList methods ***/
18930#define ID3D12GraphicsCommandList4_GetType(This) (This)->lpVtbl->GetType(This)
18931/*** ID3D12GraphicsCommandList methods ***/
18932#define ID3D12GraphicsCommandList4_Close(This) (This)->lpVtbl->Close(This)
18933#define ID3D12GraphicsCommandList4_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
18934#define ID3D12GraphicsCommandList4_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
18935#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)
18936#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)
18937#define ID3D12GraphicsCommandList4_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
18938#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)
18939#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)
18940#define ID3D12GraphicsCommandList4_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
18941#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)
18942#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)
18943#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
18944#define ID3D12GraphicsCommandList4_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
18945#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
18946#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
18947#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
18948#define ID3D12GraphicsCommandList4_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
18949#define ID3D12GraphicsCommandList4_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
18950#define ID3D12GraphicsCommandList4_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
18951#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
18952#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
18953#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
18954#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
18955#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
18956#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
18957#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
18958#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
18959#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
18960#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
18961#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
18962#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
18963#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
18964#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
18965#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
18966#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
18967#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
18968#define ID3D12GraphicsCommandList4_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
18969#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)
18970#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
18971#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
18972#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)
18973#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)
18974#define ID3D12GraphicsCommandList4_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
18975#define ID3D12GraphicsCommandList4_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
18976#define ID3D12GraphicsCommandList4_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
18977#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)
18978#define ID3D12GraphicsCommandList4_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
18979#define ID3D12GraphicsCommandList4_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
18980#define ID3D12GraphicsCommandList4_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
18981#define ID3D12GraphicsCommandList4_EndEvent(This) (This)->lpVtbl->EndEvent(This)
18982#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)
18983/*** ID3D12GraphicsCommandList1 methods ***/
18984#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)
18985#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)
18986#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
18987#define ID3D12GraphicsCommandList4_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
18988#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)
18989#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
18990/*** ID3D12GraphicsCommandList2 methods ***/
18991#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
18992/*** ID3D12GraphicsCommandList3 methods ***/
18993#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
18994/*** ID3D12GraphicsCommandList4 methods ***/
18995#define ID3D12GraphicsCommandList4_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags)
18996#define ID3D12GraphicsCommandList4_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This)
18997#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)
18998#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)
18999#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs)
19000#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)
19001#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)
19002#define ID3D12GraphicsCommandList4_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object)
19003#define ID3D12GraphicsCommandList4_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc)
19004#else
19005/*** IUnknown methods ***/
19006static inline HRESULT ID3D12GraphicsCommandList4_QueryInterface(ID3D12GraphicsCommandList4* This,REFIID riid,void **ppvObject) {
19007 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19008}
19009static inline ULONG ID3D12GraphicsCommandList4_AddRef(ID3D12GraphicsCommandList4* This) {
19010 return This->lpVtbl->AddRef(This);
19011}
19012static inline ULONG ID3D12GraphicsCommandList4_Release(ID3D12GraphicsCommandList4* This) {
19013 return This->lpVtbl->Release(This);
19014}
19015/*** ID3D12Object methods ***/
19016static inline HRESULT ID3D12GraphicsCommandList4_GetPrivateData(ID3D12GraphicsCommandList4* This,REFGUID guid,UINT *data_size,void *data) {
19017 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
19018}
19019static inline HRESULT ID3D12GraphicsCommandList4_SetPrivateData(ID3D12GraphicsCommandList4* This,REFGUID guid,UINT data_size,const void *data) {
19020 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
19021}
19022static inline HRESULT ID3D12GraphicsCommandList4_SetPrivateDataInterface(ID3D12GraphicsCommandList4* This,REFGUID guid,const IUnknown *data) {
19023 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
19024}
19025static inline HRESULT ID3D12GraphicsCommandList4_SetName(ID3D12GraphicsCommandList4* This,const WCHAR *name) {
19026 return This->lpVtbl->SetName(This,name);
19027}
19028/*** ID3D12DeviceChild methods ***/
19029static inline HRESULT ID3D12GraphicsCommandList4_GetDevice(ID3D12GraphicsCommandList4* This,REFIID riid,void **device) {
19030 return This->lpVtbl->GetDevice(This,riid,device);
19031}
19032/*** ID3D12CommandList methods ***/
19033static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList4_GetType(ID3D12GraphicsCommandList4* This) {
19034 return This->lpVtbl->GetType(This);
19035}
19036/*** ID3D12GraphicsCommandList methods ***/
19037static inline HRESULT ID3D12GraphicsCommandList4_Close(ID3D12GraphicsCommandList4* This) {
19038 return This->lpVtbl->Close(This);
19039}
19040static inline HRESULT ID3D12GraphicsCommandList4_Reset(ID3D12GraphicsCommandList4* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
19041 return This->lpVtbl->Reset(This,allocator,initial_state);
19042}
19043static inline void ID3D12GraphicsCommandList4_ClearState(ID3D12GraphicsCommandList4* This,ID3D12PipelineState *pipeline_state) {
19044 This->lpVtbl->ClearState(This,pipeline_state);
19045}
19046static inline void ID3D12GraphicsCommandList4_DrawInstanced(ID3D12GraphicsCommandList4* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
19047 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
19048}
19049static 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) {
19050 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
19051}
19052static inline void ID3D12GraphicsCommandList4_Dispatch(ID3D12GraphicsCommandList4* This,UINT x,UINT u,UINT z) {
19053 This->lpVtbl->Dispatch(This,x,u,z);
19054}
19055static inline void ID3D12GraphicsCommandList4_CopyBufferRegion(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
19056 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
19057}
19058static 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) {
19059 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
19060}
19061static inline void ID3D12GraphicsCommandList4_CopyResource(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
19062 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
19063}
19064static 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) {
19065 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
19066}
19067static inline void ID3D12GraphicsCommandList4_ResolveSubresource(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
19068 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
19069}
19070static inline void ID3D12GraphicsCommandList4_IASetPrimitiveTopology(ID3D12GraphicsCommandList4* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
19071 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
19072}
19073static inline void ID3D12GraphicsCommandList4_RSSetViewports(ID3D12GraphicsCommandList4* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
19074 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
19075}
19076static inline void ID3D12GraphicsCommandList4_RSSetScissorRects(ID3D12GraphicsCommandList4* This,UINT rect_count,const D3D12_RECT *rects) {
19077 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
19078}
19079static inline void ID3D12GraphicsCommandList4_OMSetBlendFactor(ID3D12GraphicsCommandList4* This,const FLOAT blend_factor[4]) {
19080 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
19081}
19082static inline void ID3D12GraphicsCommandList4_OMSetStencilRef(ID3D12GraphicsCommandList4* This,UINT stencil_ref) {
19083 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
19084}
19085static inline void ID3D12GraphicsCommandList4_SetPipelineState(ID3D12GraphicsCommandList4* This,ID3D12PipelineState *pipeline_state) {
19086 This->lpVtbl->SetPipelineState(This,pipeline_state);
19087}
19088static inline void ID3D12GraphicsCommandList4_ResourceBarrier(ID3D12GraphicsCommandList4* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
19089 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
19090}
19091static inline void ID3D12GraphicsCommandList4_ExecuteBundle(ID3D12GraphicsCommandList4* This,ID3D12GraphicsCommandList *command_list) {
19092 This->lpVtbl->ExecuteBundle(This,command_list);
19093}
19094static inline void ID3D12GraphicsCommandList4_SetDescriptorHeaps(ID3D12GraphicsCommandList4* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
19095 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
19096}
19097static inline void ID3D12GraphicsCommandList4_SetComputeRootSignature(ID3D12GraphicsCommandList4* This,ID3D12RootSignature *root_signature) {
19098 This->lpVtbl->SetComputeRootSignature(This,root_signature);
19099}
19100static inline void ID3D12GraphicsCommandList4_SetGraphicsRootSignature(ID3D12GraphicsCommandList4* This,ID3D12RootSignature *root_signature) {
19101 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
19102}
19103static inline void ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
19104 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
19105}
19106static inline void ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
19107 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
19108}
19109static inline void ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
19110 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
19111}
19112static inline void ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
19113 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
19114}
19115static inline void ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
19116 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
19117}
19118static inline void ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
19119 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
19120}
19121static inline void ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19122 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
19123}
19124static inline void ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19125 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
19126}
19127static inline void ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19128 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
19129}
19130static inline void ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19131 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
19132}
19133static inline void ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19134 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
19135}
19136static inline void ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
19137 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
19138}
19139static inline void ID3D12GraphicsCommandList4_IASetIndexBuffer(ID3D12GraphicsCommandList4* This,const D3D12_INDEX_BUFFER_VIEW *view) {
19140 This->lpVtbl->IASetIndexBuffer(This,view);
19141}
19142static inline void ID3D12GraphicsCommandList4_IASetVertexBuffers(ID3D12GraphicsCommandList4* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
19143 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
19144}
19145static inline void ID3D12GraphicsCommandList4_SOSetTargets(ID3D12GraphicsCommandList4* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
19146 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
19147}
19148static 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) {
19149 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
19150}
19151static 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) {
19152 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
19153}
19154static inline void ID3D12GraphicsCommandList4_ClearRenderTargetView(ID3D12GraphicsCommandList4* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
19155 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
19156}
19157static 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) {
19158 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
19159}
19160static 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) {
19161 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
19162}
19163static inline void ID3D12GraphicsCommandList4_DiscardResource(ID3D12GraphicsCommandList4* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
19164 This->lpVtbl->DiscardResource(This,resource,region);
19165}
19166static inline void ID3D12GraphicsCommandList4_BeginQuery(ID3D12GraphicsCommandList4* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
19167 This->lpVtbl->BeginQuery(This,heap,type,index);
19168}
19169static inline void ID3D12GraphicsCommandList4_EndQuery(ID3D12GraphicsCommandList4* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
19170 This->lpVtbl->EndQuery(This,heap,type,index);
19171}
19172static 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) {
19173 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
19174}
19175static inline void ID3D12GraphicsCommandList4_SetPredication(ID3D12GraphicsCommandList4* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
19176 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
19177}
19178static inline void ID3D12GraphicsCommandList4_SetMarker(ID3D12GraphicsCommandList4* This,UINT metadata,const void *data,UINT size) {
19179 This->lpVtbl->SetMarker(This,metadata,data,size);
19180}
19181static inline void ID3D12GraphicsCommandList4_BeginEvent(ID3D12GraphicsCommandList4* This,UINT metadata,const void *data,UINT size) {
19182 This->lpVtbl->BeginEvent(This,metadata,data,size);
19183}
19184static inline void ID3D12GraphicsCommandList4_EndEvent(ID3D12GraphicsCommandList4* This) {
19185 This->lpVtbl->EndEvent(This);
19186}
19187static 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) {
19188 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
19189}
19190/*** ID3D12GraphicsCommandList1 methods ***/
19191static 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) {
19192 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
19193}
19194static 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) {
19195 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
19196}
19197static inline void ID3D12GraphicsCommandList4_OMSetDepthBounds(ID3D12GraphicsCommandList4* This,FLOAT min,FLOAT max) {
19198 This->lpVtbl->OMSetDepthBounds(This,min,max);
19199}
19200static inline void ID3D12GraphicsCommandList4_SetSamplePositions(ID3D12GraphicsCommandList4* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
19201 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
19202}
19203static 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) {
19204 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
19205}
19206static inline void ID3D12GraphicsCommandList4_SetViewInstanceMask(ID3D12GraphicsCommandList4* This,UINT mask) {
19207 This->lpVtbl->SetViewInstanceMask(This,mask);
19208}
19209/*** ID3D12GraphicsCommandList2 methods ***/
19210static inline void ID3D12GraphicsCommandList4_WriteBufferImmediate(ID3D12GraphicsCommandList4* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
19211 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
19212}
19213/*** ID3D12GraphicsCommandList3 methods ***/
19214static inline void ID3D12GraphicsCommandList4_SetProtectedResourceSession(ID3D12GraphicsCommandList4* This,ID3D12ProtectedResourceSession *protected_resource_session) {
19215 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
19216}
19217/*** ID3D12GraphicsCommandList4 methods ***/
19218static 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) {
19219 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags);
19220}
19221static inline void ID3D12GraphicsCommandList4_EndRenderPass(ID3D12GraphicsCommandList4* This) {
19222 This->lpVtbl->EndRenderPass(This);
19223}
19224static inline void ID3D12GraphicsCommandList4_InitializeMetaCommand(ID3D12GraphicsCommandList4* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) {
19225 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes);
19226}
19227static inline void ID3D12GraphicsCommandList4_ExecuteMetaCommand(ID3D12GraphicsCommandList4* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) {
19228 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes);
19229}
19230static 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) {
19231 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs);
19232}
19233static 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) {
19234 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data);
19235}
19236static 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) {
19237 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode);
19238}
19239static inline void ID3D12GraphicsCommandList4_SetPipelineState1(ID3D12GraphicsCommandList4* This,ID3D12StateObject *state_object) {
19240 This->lpVtbl->SetPipelineState1(This,state_object);
19241}
19242static inline void ID3D12GraphicsCommandList4_DispatchRays(ID3D12GraphicsCommandList4* This,const D3D12_DISPATCH_RAYS_DESC *desc) {
19243 This->lpVtbl->DispatchRays(This,desc);
19244}
19245#endif
19246#endif
19247
19248#endif
19249
19250
19251#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */
19252
19253typedef enum D3D12_SHADER_CACHE_MODE {
19254 D3D12_SHADER_CACHE_MODE_MEMORY = 0x0,
19255 D3D12_SHADER_CACHE_MODE_DISK = 0x1
19256} D3D12_SHADER_CACHE_MODE;
19257typedef enum D3D12_SHADER_CACHE_FLAGS {
19258 D3D12_SHADER_CACHE_FLAG_NONE = 0x0,
19259 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1,
19260 D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2
19261} D3D12_SHADER_CACHE_FLAGS;
19262DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_FLAGS);
19263typedef struct D3D12_SHADER_CACHE_SESSION_DESC {
19264 GUID Identifier;
19265 D3D12_SHADER_CACHE_MODE Mode;
19266 D3D12_SHADER_CACHE_FLAGS Flags;
19267 UINT MaximumInMemoryCacheSizeBytes;
19268 UINT MaximumInMemoryCacheEntries;
19269 UINT MaximumValueFileSizeBytes;
19270 UINT64 Version;
19271} D3D12_SHADER_CACHE_SESSION_DESC;
19272typedef enum D3D12_BARRIER_LAYOUT {
19273 D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
19274 D3D12_BARRIER_LAYOUT_COMMON = 0x0,
19275 D3D12_BARRIER_LAYOUT_PRESENT = 0x0,
19276 D3D12_BARRIER_LAYOUT_GENERIC_READ = 0x1,
19277 D3D12_BARRIER_LAYOUT_RENDER_TARGET = 0x2,
19278 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 0x3,
19279 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 0x4,
19280 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 0x5,
19281 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 0x6,
19282 D3D12_BARRIER_LAYOUT_COPY_SOURCE = 0x7,
19283 D3D12_BARRIER_LAYOUT_COPY_DEST = 0x8,
19284 D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 0x9,
19285 D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 0xa,
19286 D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 0xb,
19287 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 0xc,
19288 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 0xd,
19289 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 0xe,
19290 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 0xf,
19291 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 0x10,
19292 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 0x11,
19293 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 0x12,
19294 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 0x13,
19295 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 0x14,
19296 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 0x15,
19297 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 0x16,
19298 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 0x17,
19299 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 0x18,
19300 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 0x19,
19301 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 0x1a,
19302 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 0x1b,
19303 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 0x1c,
19304 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 0x1d,
19305 D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON = 0x1e
19306} D3D12_BARRIER_LAYOUT;
19307typedef enum D3D12_BARRIER_SYNC {
19308 D3D12_BARRIER_SYNC_NONE = 0x0,
19309 D3D12_BARRIER_SYNC_ALL = 0x1,
19310 D3D12_BARRIER_SYNC_DRAW = 0x2,
19311 D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4,
19312 D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
19313 D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
19314 D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
19315 D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40,
19316 D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80,
19317 D3D12_BARRIER_SYNC_RAYTRACING = 0x100,
19318 D3D12_BARRIER_SYNC_COPY = 0x200,
19319 D3D12_BARRIER_SYNC_RESOLVE = 0x400,
19320 D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800,
19321 D3D12_BARRIER_SYNC_PREDICATION = 0x800,
19322 D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
19323 D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
19324 D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
19325 D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000,
19326 D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
19327 D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
19328 D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
19329 D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000,
19330 D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000,
19331 D3D12_BARRIER_SYNC_SPLIT = 0x80000000
19332} D3D12_BARRIER_SYNC;
19333DEFINE_ENUM_FLAG_OPERATORS(D3D12_BARRIER_SYNC);
19334typedef enum D3D12_BARRIER_ACCESS {
19335 D3D12_BARRIER_ACCESS_COMMON = 0,
19336 D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
19337 D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
19338 D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
19339 D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8,
19340 D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
19341 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
19342 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
19343 D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
19344 D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
19345 D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
19346 D3D12_BARRIER_ACCESS_PREDICATION = 0x200,
19347 D3D12_BARRIER_ACCESS_COPY_DEST = 0x400,
19348 D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800,
19349 D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
19350 D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
19351 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
19352 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
19353 D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
19354 D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
19355 D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
19356 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
19357 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
19358 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
19359 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
19360 D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000
19361} D3D12_BARRIER_ACCESS;
19362DEFINE_ENUM_FLAG_OPERATORS(D3D12_BARRIER_ACCESS);
19363typedef enum D3D12_BARRIER_TYPE {
19364 D3D12_BARRIER_TYPE_GLOBAL = 0x0,
19365 D3D12_BARRIER_TYPE_TEXTURE = 0x1,
19366 D3D12_BARRIER_TYPE_BUFFER = 0x2
19367} D3D12_BARRIER_TYPE;
19368typedef enum D3D12_TEXTURE_BARRIER_FLAGS {
19369 D3D12_TEXTURE_BARRIER_FLAG_NONE = 0x0,
19370 D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1
19371} D3D12_TEXTURE_BARRIER_FLAGS;
19372DEFINE_ENUM_FLAG_OPERATORS(D3D12_TEXTURE_BARRIER_FLAGS);
19373typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE {
19374 UINT IndexOrFirstMipLevel;
19375 UINT NumMipLevels;
19376 UINT FirstArraySlice;
19377 UINT NumArraySlices;
19378 UINT FirstPlane;
19379 UINT NumPlanes;
19380} D3D12_BARRIER_SUBRESOURCE_RANGE;
19381typedef struct D3D12_GLOBAL_BARRIER {
19382 D3D12_BARRIER_SYNC SyncBefore;
19383 D3D12_BARRIER_SYNC SyncAfter;
19384 D3D12_BARRIER_ACCESS AccessBefore;
19385 D3D12_BARRIER_ACCESS AccessAfter;
19386} D3D12_GLOBAL_BARRIER;
19387typedef struct D3D12_TEXTURE_BARRIER {
19388 D3D12_BARRIER_SYNC SyncBefore;
19389 D3D12_BARRIER_SYNC SyncAfter;
19390 D3D12_BARRIER_ACCESS AccessBefore;
19391 D3D12_BARRIER_ACCESS AccessAfter;
19392 D3D12_BARRIER_LAYOUT LayoutBefore;
19393 D3D12_BARRIER_LAYOUT LayoutAfter;
19394 ID3D12Resource *pResource;
19395 D3D12_BARRIER_SUBRESOURCE_RANGE Subresources;
19396 D3D12_TEXTURE_BARRIER_FLAGS Flags;
19397} D3D12_TEXTURE_BARRIER;
19398typedef struct D3D12_BUFFER_BARRIER {
19399 D3D12_BARRIER_SYNC SyncBefore;
19400 D3D12_BARRIER_SYNC SyncAfter;
19401 D3D12_BARRIER_ACCESS AccessBefore;
19402 D3D12_BARRIER_ACCESS AccessAfter;
19403 ID3D12Resource *pResource;
19404 UINT64 Offset;
19405 UINT64 Size;
19406} D3D12_BUFFER_BARRIER;
19407typedef struct D3D12_BARRIER_GROUP {
19408 D3D12_BARRIER_TYPE Type;
19409 UINT32 NumBarriers;
19410 __C89_NAMELESS union {
19411 const D3D12_GLOBAL_BARRIER *pGlobalBarriers;
19412 const D3D12_TEXTURE_BARRIER *pTextureBarriers;
19413 const D3D12_BUFFER_BARRIER *pBufferBarriers;
19414 } __C89_NAMELESSUNIONNAME;
19415} D3D12_BARRIER_GROUP;
19416/*****************************************************************************
19417 * ID3D12ShaderCacheSession interface
19418 */
19419#ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
19420#define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
19421
19422DEFINE_GUID(IID_ID3D12ShaderCacheSession, 0x28e2495d, 0x0f64, 0x4ae4, 0xa6,0xec, 0x12,0x92,0x55,0xdc,0x49,0xa8);
19423#if defined(__cplusplus) && !defined(CINTERFACE)
19424MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8")
19425ID3D12ShaderCacheSession : public ID3D12DeviceChild
19426{
19427 virtual HRESULT STDMETHODCALLTYPE FindValue(
19428 const void *key,
19429 UINT key_size,
19430 void *value,
19431 UINT *value_size) = 0;
19432
19433 virtual HRESULT STDMETHODCALLTYPE StoreValue(
19434 const void *key,
19435 UINT key_size,
19436 const void *value,
19437 UINT value_size) = 0;
19438
19439 virtual void STDMETHODCALLTYPE SetDeleteOnDestroy(
19440 ) = 0;
19441
19442#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
19443 virtual D3D12_SHADER_CACHE_SESSION_DESC* STDMETHODCALLTYPE GetDesc(
19444 D3D12_SHADER_CACHE_SESSION_DESC *__ret) = 0;
19445 D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc(
19446 )
19447 {
19448 D3D12_SHADER_CACHE_SESSION_DESC __ret;
19449 return *GetDesc(&__ret);
19450 }
19451#else
19452 virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc(
19453 ) = 0;
19454#endif
19455
19456};
19457#ifdef __CRT_UUID_DECL
19458__CRT_UUID_DECL(ID3D12ShaderCacheSession, 0x28e2495d, 0x0f64, 0x4ae4, 0xa6,0xec, 0x12,0x92,0x55,0xdc,0x49,0xa8)
19459#endif
19460#else
19461typedef struct ID3D12ShaderCacheSessionVtbl {
19462 BEGIN_INTERFACE
19463
19464 /*** IUnknown methods ***/
19465 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19466 ID3D12ShaderCacheSession *This,
19467 REFIID riid,
19468 void **ppvObject);
19469
19470 ULONG (STDMETHODCALLTYPE *AddRef)(
19471 ID3D12ShaderCacheSession *This);
19472
19473 ULONG (STDMETHODCALLTYPE *Release)(
19474 ID3D12ShaderCacheSession *This);
19475
19476 /*** ID3D12Object methods ***/
19477 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
19478 ID3D12ShaderCacheSession *This,
19479 REFGUID guid,
19480 UINT *data_size,
19481 void *data);
19482
19483 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
19484 ID3D12ShaderCacheSession *This,
19485 REFGUID guid,
19486 UINT data_size,
19487 const void *data);
19488
19489 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
19490 ID3D12ShaderCacheSession *This,
19491 REFGUID guid,
19492 const IUnknown *data);
19493
19494 HRESULT (STDMETHODCALLTYPE *SetName)(
19495 ID3D12ShaderCacheSession *This,
19496 const WCHAR *name);
19497
19498 /*** ID3D12DeviceChild methods ***/
19499 HRESULT (STDMETHODCALLTYPE *GetDevice)(
19500 ID3D12ShaderCacheSession *This,
19501 REFIID riid,
19502 void **device);
19503
19504 /*** ID3D12ShaderCacheSession methods ***/
19505 HRESULT (STDMETHODCALLTYPE *FindValue)(
19506 ID3D12ShaderCacheSession *This,
19507 const void *key,
19508 UINT key_size,
19509 void *value,
19510 UINT *value_size);
19511
19512 HRESULT (STDMETHODCALLTYPE *StoreValue)(
19513 ID3D12ShaderCacheSession *This,
19514 const void *key,
19515 UINT key_size,
19516 const void *value,
19517 UINT value_size);
19518
19519 void (STDMETHODCALLTYPE *SetDeleteOnDestroy)(
19520 ID3D12ShaderCacheSession *This);
19521
19522 D3D12_SHADER_CACHE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)(
19523 ID3D12ShaderCacheSession *This,
19524 D3D12_SHADER_CACHE_SESSION_DESC *__ret);
19525
19526 END_INTERFACE
19527} ID3D12ShaderCacheSessionVtbl;
19528
19529interface ID3D12ShaderCacheSession {
19530 CONST_VTBL ID3D12ShaderCacheSessionVtbl* lpVtbl;
19531};
19532
19533#ifdef COBJMACROS
19534#ifndef WIDL_C_INLINE_WRAPPERS
19535/*** IUnknown methods ***/
19536#define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19537#define ID3D12ShaderCacheSession_AddRef(This) (This)->lpVtbl->AddRef(This)
19538#define ID3D12ShaderCacheSession_Release(This) (This)->lpVtbl->Release(This)
19539/*** ID3D12Object methods ***/
19540#define ID3D12ShaderCacheSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
19541#define ID3D12ShaderCacheSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
19542#define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
19543#define ID3D12ShaderCacheSession_SetName(This,name) (This)->lpVtbl->SetName(This,name)
19544/*** ID3D12DeviceChild methods ***/
19545#define ID3D12ShaderCacheSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
19546/*** ID3D12ShaderCacheSession methods ***/
19547#define ID3D12ShaderCacheSession_FindValue(This,key,key_size,value,value_size) (This)->lpVtbl->FindValue(This,key,key_size,value,value_size)
19548#define ID3D12ShaderCacheSession_StoreValue(This,key,key_size,value,value_size) (This)->lpVtbl->StoreValue(This,key,key_size,value,value_size)
19549#define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) (This)->lpVtbl->SetDeleteOnDestroy(This)
19550#define ID3D12ShaderCacheSession_GetDesc(This) ID3D12ShaderCacheSession_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
19551#else
19552/*** IUnknown methods ***/
19553static inline HRESULT ID3D12ShaderCacheSession_QueryInterface(ID3D12ShaderCacheSession* This,REFIID riid,void **ppvObject) {
19554 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19555}
19556static inline ULONG ID3D12ShaderCacheSession_AddRef(ID3D12ShaderCacheSession* This) {
19557 return This->lpVtbl->AddRef(This);
19558}
19559static inline ULONG ID3D12ShaderCacheSession_Release(ID3D12ShaderCacheSession* This) {
19560 return This->lpVtbl->Release(This);
19561}
19562/*** ID3D12Object methods ***/
19563static inline HRESULT ID3D12ShaderCacheSession_GetPrivateData(ID3D12ShaderCacheSession* This,REFGUID guid,UINT *data_size,void *data) {
19564 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
19565}
19566static inline HRESULT ID3D12ShaderCacheSession_SetPrivateData(ID3D12ShaderCacheSession* This,REFGUID guid,UINT data_size,const void *data) {
19567 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
19568}
19569static inline HRESULT ID3D12ShaderCacheSession_SetPrivateDataInterface(ID3D12ShaderCacheSession* This,REFGUID guid,const IUnknown *data) {
19570 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
19571}
19572static inline HRESULT ID3D12ShaderCacheSession_SetName(ID3D12ShaderCacheSession* This,const WCHAR *name) {
19573 return This->lpVtbl->SetName(This,name);
19574}
19575/*** ID3D12DeviceChild methods ***/
19576static inline HRESULT ID3D12ShaderCacheSession_GetDevice(ID3D12ShaderCacheSession* This,REFIID riid,void **device) {
19577 return This->lpVtbl->GetDevice(This,riid,device);
19578}
19579/*** ID3D12ShaderCacheSession methods ***/
19580static inline HRESULT ID3D12ShaderCacheSession_FindValue(ID3D12ShaderCacheSession* This,const void *key,UINT key_size,void *value,UINT *value_size) {
19581 return This->lpVtbl->FindValue(This,key,key_size,value,value_size);
19582}
19583static inline HRESULT ID3D12ShaderCacheSession_StoreValue(ID3D12ShaderCacheSession* This,const void *key,UINT key_size,const void *value,UINT value_size) {
19584 return This->lpVtbl->StoreValue(This,key,key_size,value,value_size);
19585}
19586static inline void ID3D12ShaderCacheSession_SetDeleteOnDestroy(ID3D12ShaderCacheSession* This) {
19587 This->lpVtbl->SetDeleteOnDestroy(This);
19588}
19589static inline D3D12_SHADER_CACHE_SESSION_DESC ID3D12ShaderCacheSession_GetDesc(ID3D12ShaderCacheSession* This) {
19590 D3D12_SHADER_CACHE_SESSION_DESC __ret;
19591 return *This->lpVtbl->GetDesc(This,&__ret);
19592}
19593#endif
19594#endif
19595
19596#endif
19597
19598
19599#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */
19600
19601typedef enum D3D12_SHADER_CACHE_KIND_FLAGS {
19602 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1,
19603 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2,
19604 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4,
19605 D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8
19606} D3D12_SHADER_CACHE_KIND_FLAGS;
19607DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_KIND_FLAGS);
19608typedef enum D3D12_SHADER_CACHE_CONTROL_FLAGS {
19609 D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1,
19610 D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2,
19611 D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4
19612} D3D12_SHADER_CACHE_CONTROL_FLAGS;
19613DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_CONTROL_FLAGS);
19614/*****************************************************************************
19615 * ID3D12Device9 interface
19616 */
19617#ifndef __ID3D12Device9_INTERFACE_DEFINED__
19618#define __ID3D12Device9_INTERFACE_DEFINED__
19619
19620DEFINE_GUID(IID_ID3D12Device9, 0x4c80e962, 0xf032, 0x4f60, 0xbc,0x9e, 0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);
19621#if defined(__cplusplus) && !defined(CINTERFACE)
19622MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c")
19623ID3D12Device9 : public ID3D12Device8
19624{
19625 virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession(
19626 const D3D12_SHADER_CACHE_SESSION_DESC *desc,
19627 REFIID riid,
19628 void **session) = 0;
19629
19630 virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl(
19631 D3D12_SHADER_CACHE_KIND_FLAGS kinds,
19632 D3D12_SHADER_CACHE_CONTROL_FLAGS control) = 0;
19633
19634 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1(
19635 const D3D12_COMMAND_QUEUE_DESC *desc,
19636 REFIID creator_id,
19637 REFIID riid,
19638 void **command_queue) = 0;
19639
19640};
19641#ifdef __CRT_UUID_DECL
19642__CRT_UUID_DECL(ID3D12Device9, 0x4c80e962, 0xf032, 0x4f60, 0xbc,0x9e, 0xeb,0xc2,0xcf,0xa1,0xd8,0x3c)
19643#endif
19644#else
19645typedef struct ID3D12Device9Vtbl {
19646 BEGIN_INTERFACE
19647
19648 /*** IUnknown methods ***/
19649 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19650 ID3D12Device9 *This,
19651 REFIID riid,
19652 void **ppvObject);
19653
19654 ULONG (STDMETHODCALLTYPE *AddRef)(
19655 ID3D12Device9 *This);
19656
19657 ULONG (STDMETHODCALLTYPE *Release)(
19658 ID3D12Device9 *This);
19659
19660 /*** ID3D12Object methods ***/
19661 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
19662 ID3D12Device9 *This,
19663 REFGUID guid,
19664 UINT *data_size,
19665 void *data);
19666
19667 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
19668 ID3D12Device9 *This,
19669 REFGUID guid,
19670 UINT data_size,
19671 const void *data);
19672
19673 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
19674 ID3D12Device9 *This,
19675 REFGUID guid,
19676 const IUnknown *data);
19677
19678 HRESULT (STDMETHODCALLTYPE *SetName)(
19679 ID3D12Device9 *This,
19680 const WCHAR *name);
19681
19682 /*** ID3D12Device methods ***/
19683 UINT (STDMETHODCALLTYPE *GetNodeCount)(
19684 ID3D12Device9 *This);
19685
19686 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
19687 ID3D12Device9 *This,
19688 const D3D12_COMMAND_QUEUE_DESC *desc,
19689 REFIID riid,
19690 void **command_queue);
19691
19692 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
19693 ID3D12Device9 *This,
19694 D3D12_COMMAND_LIST_TYPE type,
19695 REFIID riid,
19696 void **command_allocator);
19697
19698 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
19699 ID3D12Device9 *This,
19700 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
19701 REFIID riid,
19702 void **pipeline_state);
19703
19704 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
19705 ID3D12Device9 *This,
19706 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
19707 REFIID riid,
19708 void **pipeline_state);
19709
19710 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
19711 ID3D12Device9 *This,
19712 UINT node_mask,
19713 D3D12_COMMAND_LIST_TYPE type,
19714 ID3D12CommandAllocator *command_allocator,
19715 ID3D12PipelineState *initial_pipeline_state,
19716 REFIID riid,
19717 void **command_list);
19718
19719 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
19720 ID3D12Device9 *This,
19721 D3D12_FEATURE feature,
19722 void *feature_data,
19723 UINT feature_data_size);
19724
19725 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
19726 ID3D12Device9 *This,
19727 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
19728 REFIID riid,
19729 void **descriptor_heap);
19730
19731 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
19732 ID3D12Device9 *This,
19733 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
19734
19735 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
19736 ID3D12Device9 *This,
19737 UINT node_mask,
19738 const void *bytecode,
19739 SIZE_T bytecode_length,
19740 REFIID riid,
19741 void **root_signature);
19742
19743 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
19744 ID3D12Device9 *This,
19745 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
19746 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19747
19748 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
19749 ID3D12Device9 *This,
19750 ID3D12Resource *resource,
19751 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
19752 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19753
19754 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
19755 ID3D12Device9 *This,
19756 ID3D12Resource *resource,
19757 ID3D12Resource *counter_resource,
19758 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
19759 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19760
19761 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
19762 ID3D12Device9 *This,
19763 ID3D12Resource *resource,
19764 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
19765 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19766
19767 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
19768 ID3D12Device9 *This,
19769 ID3D12Resource *resource,
19770 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
19771 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19772
19773 void (STDMETHODCALLTYPE *CreateSampler)(
19774 ID3D12Device9 *This,
19775 const D3D12_SAMPLER_DESC *desc,
19776 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
19777
19778 void (STDMETHODCALLTYPE *CopyDescriptors)(
19779 ID3D12Device9 *This,
19780 UINT dst_descriptor_range_count,
19781 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
19782 const UINT *dst_descriptor_range_sizes,
19783 UINT src_descriptor_range_count,
19784 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
19785 const UINT *src_descriptor_range_sizes,
19786 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
19787
19788 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
19789 ID3D12Device9 *This,
19790 UINT descriptor_count,
19791 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
19792 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
19793 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
19794
19795 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
19796 ID3D12Device9 *This,
19797 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
19798 UINT visible_mask,
19799 UINT reource_desc_count,
19800 const D3D12_RESOURCE_DESC *resource_descs);
19801
19802 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
19803 ID3D12Device9 *This,
19804 D3D12_HEAP_PROPERTIES *__ret,
19805 UINT node_mask,
19806 D3D12_HEAP_TYPE heap_type);
19807
19808 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
19809 ID3D12Device9 *This,
19810 const D3D12_HEAP_PROPERTIES *heap_properties,
19811 D3D12_HEAP_FLAGS heap_flags,
19812 const D3D12_RESOURCE_DESC *desc,
19813 D3D12_RESOURCE_STATES initial_state,
19814 const D3D12_CLEAR_VALUE *optimized_clear_value,
19815 REFIID riid,
19816 void **resource);
19817
19818 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
19819 ID3D12Device9 *This,
19820 const D3D12_HEAP_DESC *desc,
19821 REFIID riid,
19822 void **heap);
19823
19824 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
19825 ID3D12Device9 *This,
19826 ID3D12Heap *heap,
19827 UINT64 heap_offset,
19828 const D3D12_RESOURCE_DESC *desc,
19829 D3D12_RESOURCE_STATES initial_state,
19830 const D3D12_CLEAR_VALUE *optimized_clear_value,
19831 REFIID riid,
19832 void **resource);
19833
19834 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
19835 ID3D12Device9 *This,
19836 const D3D12_RESOURCE_DESC *desc,
19837 D3D12_RESOURCE_STATES initial_state,
19838 const D3D12_CLEAR_VALUE *optimized_clear_value,
19839 REFIID riid,
19840 void **resource);
19841
19842 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
19843 ID3D12Device9 *This,
19844 ID3D12DeviceChild *object,
19845 const SECURITY_ATTRIBUTES *attributes,
19846 DWORD access,
19847 const WCHAR *name,
19848 HANDLE *handle);
19849
19850 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
19851 ID3D12Device9 *This,
19852 HANDLE handle,
19853 REFIID riid,
19854 void **object);
19855
19856 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
19857 ID3D12Device9 *This,
19858 const WCHAR *name,
19859 DWORD access,
19860 HANDLE *handle);
19861
19862 HRESULT (STDMETHODCALLTYPE *MakeResident)(
19863 ID3D12Device9 *This,
19864 UINT object_count,
19865 ID3D12Pageable *const *objects);
19866
19867 HRESULT (STDMETHODCALLTYPE *Evict)(
19868 ID3D12Device9 *This,
19869 UINT object_count,
19870 ID3D12Pageable *const *objects);
19871
19872 HRESULT (STDMETHODCALLTYPE *CreateFence)(
19873 ID3D12Device9 *This,
19874 UINT64 initial_value,
19875 D3D12_FENCE_FLAGS flags,
19876 REFIID riid,
19877 void **fence);
19878
19879 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
19880 ID3D12Device9 *This);
19881
19882 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
19883 ID3D12Device9 *This,
19884 const D3D12_RESOURCE_DESC *desc,
19885 UINT first_sub_resource,
19886 UINT sub_resource_count,
19887 UINT64 base_offset,
19888 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
19889 UINT *row_count,
19890 UINT64 *row_size,
19891 UINT64 *total_bytes);
19892
19893 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
19894 ID3D12Device9 *This,
19895 const D3D12_QUERY_HEAP_DESC *desc,
19896 REFIID riid,
19897 void **heap);
19898
19899 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
19900 ID3D12Device9 *This,
19901 WINBOOL enable);
19902
19903 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
19904 ID3D12Device9 *This,
19905 const D3D12_COMMAND_SIGNATURE_DESC *desc,
19906 ID3D12RootSignature *root_signature,
19907 REFIID riid,
19908 void **command_signature);
19909
19910 void (STDMETHODCALLTYPE *GetResourceTiling)(
19911 ID3D12Device9 *This,
19912 ID3D12Resource *resource,
19913 UINT *total_tile_count,
19914 D3D12_PACKED_MIP_INFO *packed_mip_info,
19915 D3D12_TILE_SHAPE *standard_tile_shape,
19916 UINT *sub_resource_tiling_count,
19917 UINT first_sub_resource_tiling,
19918 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
19919
19920 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
19921 ID3D12Device9 *This,
19922 LUID *__ret);
19923
19924 /*** ID3D12Device1 methods ***/
19925 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
19926 ID3D12Device9 *This,
19927 const void *blob,
19928 SIZE_T blob_size,
19929 REFIID iid,
19930 void **lib);
19931
19932 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
19933 ID3D12Device9 *This,
19934 ID3D12Fence *const *fences,
19935 const UINT64 *values,
19936 UINT fence_count,
19937 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
19938 HANDLE event);
19939
19940 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
19941 ID3D12Device9 *This,
19942 UINT object_count,
19943 ID3D12Pageable *const *objects,
19944 const D3D12_RESIDENCY_PRIORITY *priorities);
19945
19946 /*** ID3D12Device2 methods ***/
19947 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
19948 ID3D12Device9 *This,
19949 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
19950 REFIID riid,
19951 void **pipeline_state);
19952
19953 /*** ID3D12Device3 methods ***/
19954 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
19955 ID3D12Device9 *This,
19956 const void *address,
19957 REFIID riid,
19958 void **heap);
19959
19960 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
19961 ID3D12Device9 *This,
19962 HANDLE file_mapping,
19963 REFIID riid,
19964 void **heap);
19965
19966 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
19967 ID3D12Device9 *This,
19968 D3D12_RESIDENCY_FLAGS flags,
19969 UINT num_objects,
19970 ID3D12Pageable *const *objects,
19971 ID3D12Fence *fence,
19972 UINT64 fence_value);
19973
19974 /*** ID3D12Device4 methods ***/
19975 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
19976 ID3D12Device9 *This,
19977 UINT node_mask,
19978 D3D12_COMMAND_LIST_TYPE type,
19979 D3D12_COMMAND_LIST_FLAGS flags,
19980 REFIID riid,
19981 void **command_list);
19982
19983 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
19984 ID3D12Device9 *This,
19985 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
19986 REFIID riid,
19987 void **session);
19988
19989 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
19990 ID3D12Device9 *This,
19991 const D3D12_HEAP_PROPERTIES *heap_properties,
19992 D3D12_HEAP_FLAGS heap_flags,
19993 const D3D12_RESOURCE_DESC *desc,
19994 D3D12_RESOURCE_STATES initial_resource_state,
19995 const D3D12_CLEAR_VALUE *optimized_clear_value,
19996 ID3D12ProtectedResourceSession *protected_session,
19997 REFIID riid_resource,
19998 void **resource);
19999
20000 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
20001 ID3D12Device9 *This,
20002 const D3D12_HEAP_DESC *desc,
20003 ID3D12ProtectedResourceSession *protected_session,
20004 REFIID riid,
20005 void **heap);
20006
20007 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
20008 ID3D12Device9 *This,
20009 const D3D12_RESOURCE_DESC *desc,
20010 D3D12_RESOURCE_STATES initial_state,
20011 const D3D12_CLEAR_VALUE *optimized_clear_value,
20012 ID3D12ProtectedResourceSession *protected_session,
20013 REFIID riid,
20014 void **resource);
20015
20016 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
20017 ID3D12Device9 *This,
20018 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
20019 UINT visible_mask,
20020 UINT resource_descs_count,
20021 const D3D12_RESOURCE_DESC *resource_descs,
20022 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
20023
20024 /*** ID3D12Device5 methods ***/
20025 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
20026 ID3D12Device9 *This,
20027 ID3D12LifetimeOwner *owner,
20028 REFIID riid,
20029 void **tracker);
20030
20031 void (STDMETHODCALLTYPE *RemoveDevice)(
20032 ID3D12Device9 *This);
20033
20034 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
20035 ID3D12Device9 *This,
20036 UINT *meta_commands_count,
20037 D3D12_META_COMMAND_DESC *descs);
20038
20039 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
20040 ID3D12Device9 *This,
20041 REFGUID command_id,
20042 D3D12_META_COMMAND_PARAMETER_STAGE stage,
20043 UINT *total_structure_size_in_bytes,
20044 UINT *parameter_count,
20045 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
20046
20047 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
20048 ID3D12Device9 *This,
20049 REFGUID command_id,
20050 UINT node_mask,
20051 const void *creation_parameters_data,
20052 SIZE_T creation_parameters_data_size_in_bytes,
20053 REFIID riid,
20054 void **meta_command);
20055
20056 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
20057 ID3D12Device9 *This,
20058 const D3D12_STATE_OBJECT_DESC *desc,
20059 REFIID riid,
20060 void **state_object);
20061
20062 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
20063 ID3D12Device9 *This,
20064 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
20065 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
20066
20067 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
20068 ID3D12Device9 *This,
20069 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
20070 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
20071
20072 /*** ID3D12Device6 methods ***/
20073 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
20074 ID3D12Device9 *This,
20075 D3D12_BACKGROUND_PROCESSING_MODE mode,
20076 D3D12_MEASUREMENTS_ACTION action,
20077 HANDLE event,
20078 WINBOOL *further_measurements_desired);
20079
20080 /*** ID3D12Device7 methods ***/
20081 HRESULT (STDMETHODCALLTYPE *AddToStateObject)(
20082 ID3D12Device9 *This,
20083 const D3D12_STATE_OBJECT_DESC *addition,
20084 ID3D12StateObject *state_object_to_grow_from,
20085 REFIID riid,
20086 void **new_state_object);
20087
20088 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)(
20089 ID3D12Device9 *This,
20090 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
20091 REFIID riid,
20092 void **session);
20093
20094 /*** ID3D12Device8 methods ***/
20095 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)(
20096 ID3D12Device9 *This,
20097 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
20098 UINT visible_mask,
20099 UINT resource_descs_count,
20100 const D3D12_RESOURCE_DESC1 *resource_descs,
20101 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
20102
20103 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)(
20104 ID3D12Device9 *This,
20105 const D3D12_HEAP_PROPERTIES *heap_properties,
20106 D3D12_HEAP_FLAGS heap_flags,
20107 const D3D12_RESOURCE_DESC1 *desc,
20108 D3D12_RESOURCE_STATES initial_resource_state,
20109 const D3D12_CLEAR_VALUE *optimized_clear_value,
20110 ID3D12ProtectedResourceSession *protected_session,
20111 REFIID riid_resource,
20112 void **resource);
20113
20114 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)(
20115 ID3D12Device9 *This,
20116 ID3D12Heap *heap,
20117 UINT64 heap_offset,
20118 const D3D12_RESOURCE_DESC1 *desc,
20119 D3D12_RESOURCE_STATES initial_state,
20120 const D3D12_CLEAR_VALUE *optimized_clear_value,
20121 REFIID riid,
20122 void **resource);
20123
20124 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)(
20125 ID3D12Device9 *This,
20126 ID3D12Resource *targeted_resource,
20127 ID3D12Resource *feedback_resource,
20128 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor);
20129
20130 void (STDMETHODCALLTYPE *GetCopyableFootprints1)(
20131 ID3D12Device9 *This,
20132 const D3D12_RESOURCE_DESC1 *resource_desc,
20133 UINT first_subresource,
20134 UINT subresources_count,
20135 UINT64 base_offset,
20136 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
20137 UINT *rows_count,
20138 UINT64 *row_size_in_bytes,
20139 UINT64 *total_bytes);
20140
20141 /*** ID3D12Device9 methods ***/
20142 HRESULT (STDMETHODCALLTYPE *CreateShaderCacheSession)(
20143 ID3D12Device9 *This,
20144 const D3D12_SHADER_CACHE_SESSION_DESC *desc,
20145 REFIID riid,
20146 void **session);
20147
20148 HRESULT (STDMETHODCALLTYPE *ShaderCacheControl)(
20149 ID3D12Device9 *This,
20150 D3D12_SHADER_CACHE_KIND_FLAGS kinds,
20151 D3D12_SHADER_CACHE_CONTROL_FLAGS control);
20152
20153 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue1)(
20154 ID3D12Device9 *This,
20155 const D3D12_COMMAND_QUEUE_DESC *desc,
20156 REFIID creator_id,
20157 REFIID riid,
20158 void **command_queue);
20159
20160 END_INTERFACE
20161} ID3D12Device9Vtbl;
20162
20163interface ID3D12Device9 {
20164 CONST_VTBL ID3D12Device9Vtbl* lpVtbl;
20165};
20166
20167#ifdef COBJMACROS
20168#ifndef WIDL_C_INLINE_WRAPPERS
20169/*** IUnknown methods ***/
20170#define ID3D12Device9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20171#define ID3D12Device9_AddRef(This) (This)->lpVtbl->AddRef(This)
20172#define ID3D12Device9_Release(This) (This)->lpVtbl->Release(This)
20173/*** ID3D12Object methods ***/
20174#define ID3D12Device9_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
20175#define ID3D12Device9_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
20176#define ID3D12Device9_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
20177#define ID3D12Device9_SetName(This,name) (This)->lpVtbl->SetName(This,name)
20178/*** ID3D12Device methods ***/
20179#define ID3D12Device9_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
20180#define ID3D12Device9_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
20181#define ID3D12Device9_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
20182#define ID3D12Device9_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
20183#define ID3D12Device9_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
20184#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)
20185#define ID3D12Device9_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
20186#define ID3D12Device9_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
20187#define ID3D12Device9_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
20188#define ID3D12Device9_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
20189#define ID3D12Device9_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
20190#define ID3D12Device9_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
20191#define ID3D12Device9_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
20192#define ID3D12Device9_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
20193#define ID3D12Device9_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
20194#define ID3D12Device9_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
20195#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)
20196#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)
20197#define ID3D12Device9_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device9_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
20198#define ID3D12Device9_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device9_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
20199#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)
20200#define ID3D12Device9_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
20201#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)
20202#define ID3D12Device9_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
20203#define ID3D12Device9_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
20204#define ID3D12Device9_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
20205#define ID3D12Device9_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
20206#define ID3D12Device9_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
20207#define ID3D12Device9_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
20208#define ID3D12Device9_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
20209#define ID3D12Device9_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
20210#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)
20211#define ID3D12Device9_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
20212#define ID3D12Device9_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
20213#define ID3D12Device9_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
20214#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)
20215#define ID3D12Device9_GetAdapterLuid(This) ID3D12Device9_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
20216/*** ID3D12Device1 methods ***/
20217#define ID3D12Device9_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
20218#define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
20219#define ID3D12Device9_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
20220/*** ID3D12Device2 methods ***/
20221#define ID3D12Device9_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
20222/*** ID3D12Device3 methods ***/
20223#define ID3D12Device9_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
20224#define ID3D12Device9_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
20225#define ID3D12Device9_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
20226/*** ID3D12Device4 methods ***/
20227#define ID3D12Device9_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
20228#define ID3D12Device9_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
20229#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)
20230#define ID3D12Device9_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
20231#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)
20232#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
20233/*** ID3D12Device5 methods ***/
20234#define ID3D12Device9_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
20235#define ID3D12Device9_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
20236#define ID3D12Device9_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
20237#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)
20238#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)
20239#define ID3D12Device9_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
20240#define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
20241#define ID3D12Device9_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
20242/*** ID3D12Device6 methods ***/
20243#define ID3D12Device9_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
20244/*** ID3D12Device7 methods ***/
20245#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)
20246#define ID3D12Device9_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session)
20247/*** ID3D12Device8 methods ***/
20248#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
20249#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)
20250#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)
20251#define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor)
20252#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)
20253/*** ID3D12Device9 methods ***/
20254#define ID3D12Device9_CreateShaderCacheSession(This,desc,riid,session) (This)->lpVtbl->CreateShaderCacheSession(This,desc,riid,session)
20255#define ID3D12Device9_ShaderCacheControl(This,kinds,control) (This)->lpVtbl->ShaderCacheControl(This,kinds,control)
20256#define ID3D12Device9_CreateCommandQueue1(This,desc,creator_id,riid,command_queue) (This)->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue)
20257#else
20258/*** IUnknown methods ***/
20259static inline HRESULT ID3D12Device9_QueryInterface(ID3D12Device9* This,REFIID riid,void **ppvObject) {
20260 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20261}
20262static inline ULONG ID3D12Device9_AddRef(ID3D12Device9* This) {
20263 return This->lpVtbl->AddRef(This);
20264}
20265static inline ULONG ID3D12Device9_Release(ID3D12Device9* This) {
20266 return This->lpVtbl->Release(This);
20267}
20268/*** ID3D12Object methods ***/
20269static inline HRESULT ID3D12Device9_GetPrivateData(ID3D12Device9* This,REFGUID guid,UINT *data_size,void *data) {
20270 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
20271}
20272static inline HRESULT ID3D12Device9_SetPrivateData(ID3D12Device9* This,REFGUID guid,UINT data_size,const void *data) {
20273 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
20274}
20275static inline HRESULT ID3D12Device9_SetPrivateDataInterface(ID3D12Device9* This,REFGUID guid,const IUnknown *data) {
20276 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
20277}
20278static inline HRESULT ID3D12Device9_SetName(ID3D12Device9* This,const WCHAR *name) {
20279 return This->lpVtbl->SetName(This,name);
20280}
20281/*** ID3D12Device methods ***/
20282static inline UINT ID3D12Device9_GetNodeCount(ID3D12Device9* This) {
20283 return This->lpVtbl->GetNodeCount(This);
20284}
20285static inline HRESULT ID3D12Device9_CreateCommandQueue(ID3D12Device9* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
20286 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
20287}
20288static inline HRESULT ID3D12Device9_CreateCommandAllocator(ID3D12Device9* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
20289 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
20290}
20291static inline HRESULT ID3D12Device9_CreateGraphicsPipelineState(ID3D12Device9* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
20292 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
20293}
20294static inline HRESULT ID3D12Device9_CreateComputePipelineState(ID3D12Device9* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
20295 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
20296}
20297static 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) {
20298 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
20299}
20300static inline HRESULT ID3D12Device9_CheckFeatureSupport(ID3D12Device9* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
20301 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
20302}
20303static inline HRESULT ID3D12Device9_CreateDescriptorHeap(ID3D12Device9* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
20304 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
20305}
20306static inline UINT ID3D12Device9_GetDescriptorHandleIncrementSize(ID3D12Device9* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
20307 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
20308}
20309static inline HRESULT ID3D12Device9_CreateRootSignature(ID3D12Device9* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
20310 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
20311}
20312static inline void ID3D12Device9_CreateConstantBufferView(ID3D12Device9* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20313 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
20314}
20315static inline void ID3D12Device9_CreateShaderResourceView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20316 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
20317}
20318static inline void ID3D12Device9_CreateUnorderedAccessView(ID3D12Device9* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20319 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
20320}
20321static inline void ID3D12Device9_CreateRenderTargetView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20322 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
20323}
20324static inline void ID3D12Device9_CreateDepthStencilView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20325 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
20326}
20327static inline void ID3D12Device9_CreateSampler(ID3D12Device9* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
20328 This->lpVtbl->CreateSampler(This,desc,descriptor);
20329}
20330static 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) {
20331 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);
20332}
20333static 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) {
20334 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
20335}
20336static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device9_GetResourceAllocationInfo(ID3D12Device9* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
20337 D3D12_RESOURCE_ALLOCATION_INFO __ret;
20338 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
20339}
20340static inline D3D12_HEAP_PROPERTIES ID3D12Device9_GetCustomHeapProperties(ID3D12Device9* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
20341 D3D12_HEAP_PROPERTIES __ret;
20342 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
20343}
20344static 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) {
20345 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
20346}
20347static inline HRESULT ID3D12Device9_CreateHeap(ID3D12Device9* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
20348 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
20349}
20350static 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) {
20351 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
20352}
20353static 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) {
20354 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
20355}
20356static inline HRESULT ID3D12Device9_CreateSharedHandle(ID3D12Device9* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
20357 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
20358}
20359static inline HRESULT ID3D12Device9_OpenSharedHandle(ID3D12Device9* This,HANDLE handle,REFIID riid,void **object) {
20360 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
20361}
20362static inline HRESULT ID3D12Device9_OpenSharedHandleByName(ID3D12Device9* This,const WCHAR *name,DWORD access,HANDLE *handle) {
20363 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
20364}
20365static inline HRESULT ID3D12Device9_MakeResident(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects) {
20366 return This->lpVtbl->MakeResident(This,object_count,objects);
20367}
20368static inline HRESULT ID3D12Device9_Evict(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects) {
20369 return This->lpVtbl->Evict(This,object_count,objects);
20370}
20371static inline HRESULT ID3D12Device9_CreateFence(ID3D12Device9* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
20372 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
20373}
20374static inline HRESULT ID3D12Device9_GetDeviceRemovedReason(ID3D12Device9* This) {
20375 return This->lpVtbl->GetDeviceRemovedReason(This);
20376}
20377static 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) {
20378 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
20379}
20380static inline HRESULT ID3D12Device9_CreateQueryHeap(ID3D12Device9* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
20381 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
20382}
20383static inline HRESULT ID3D12Device9_SetStablePowerState(ID3D12Device9* This,WINBOOL enable) {
20384 return This->lpVtbl->SetStablePowerState(This,enable);
20385}
20386static inline HRESULT ID3D12Device9_CreateCommandSignature(ID3D12Device9* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
20387 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
20388}
20389static 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) {
20390 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);
20391}
20392static inline LUID ID3D12Device9_GetAdapterLuid(ID3D12Device9* This) {
20393 LUID __ret;
20394 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
20395}
20396/*** ID3D12Device1 methods ***/
20397static inline HRESULT ID3D12Device9_CreatePipelineLibrary(ID3D12Device9* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
20398 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
20399}
20400static inline HRESULT ID3D12Device9_SetEventOnMultipleFenceCompletion(ID3D12Device9* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
20401 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
20402}
20403static inline HRESULT ID3D12Device9_SetResidencyPriority(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
20404 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
20405}
20406/*** ID3D12Device2 methods ***/
20407static inline HRESULT ID3D12Device9_CreatePipelineState(ID3D12Device9* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
20408 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
20409}
20410/*** ID3D12Device3 methods ***/
20411static inline HRESULT ID3D12Device9_OpenExistingHeapFromAddress(ID3D12Device9* This,const void *address,REFIID riid,void **heap) {
20412 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
20413}
20414static inline HRESULT ID3D12Device9_OpenExistingHeapFromFileMapping(ID3D12Device9* This,HANDLE file_mapping,REFIID riid,void **heap) {
20415 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
20416}
20417static inline HRESULT ID3D12Device9_EnqueueMakeResident(ID3D12Device9* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
20418 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
20419}
20420/*** ID3D12Device4 methods ***/
20421static inline HRESULT ID3D12Device9_CreateCommandList1(ID3D12Device9* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
20422 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
20423}
20424static inline HRESULT ID3D12Device9_CreateProtectedResourceSession(ID3D12Device9* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
20425 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
20426}
20427static 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) {
20428 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
20429}
20430static inline HRESULT ID3D12Device9_CreateHeap1(ID3D12Device9* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
20431 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
20432}
20433static 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) {
20434 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
20435}
20436static 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) {
20437 D3D12_RESOURCE_ALLOCATION_INFO __ret;
20438 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
20439}
20440/*** ID3D12Device5 methods ***/
20441static inline HRESULT ID3D12Device9_CreateLifetimeTracker(ID3D12Device9* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
20442 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
20443}
20444static inline void ID3D12Device9_RemoveDevice(ID3D12Device9* This) {
20445 This->lpVtbl->RemoveDevice(This);
20446}
20447static inline HRESULT ID3D12Device9_EnumerateMetaCommands(ID3D12Device9* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
20448 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
20449}
20450static 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) {
20451 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
20452}
20453static 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) {
20454 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
20455}
20456static inline HRESULT ID3D12Device9_CreateStateObject(ID3D12Device9* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
20457 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
20458}
20459static inline void ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device9* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
20460 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
20461}
20462static 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) {
20463 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
20464}
20465/*** ID3D12Device6 methods ***/
20466static inline HRESULT ID3D12Device9_SetBackgroundProcessingMode(ID3D12Device9* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
20467 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
20468}
20469/*** ID3D12Device7 methods ***/
20470static inline HRESULT ID3D12Device9_AddToStateObject(ID3D12Device9* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) {
20471 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object);
20472}
20473static inline HRESULT ID3D12Device9_CreateProtectedResourceSession1(ID3D12Device9* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) {
20474 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session);
20475}
20476/*** ID3D12Device8 methods ***/
20477static 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) {
20478 D3D12_RESOURCE_ALLOCATION_INFO __ret;
20479 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
20480}
20481static 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) {
20482 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
20483}
20484static 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) {
20485 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
20486}
20487static inline void ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device9* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) {
20488 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor);
20489}
20490static 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) {
20491 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes);
20492}
20493/*** ID3D12Device9 methods ***/
20494static inline HRESULT ID3D12Device9_CreateShaderCacheSession(ID3D12Device9* This,const D3D12_SHADER_CACHE_SESSION_DESC *desc,REFIID riid,void **session) {
20495 return This->lpVtbl->CreateShaderCacheSession(This,desc,riid,session);
20496}
20497static inline HRESULT ID3D12Device9_ShaderCacheControl(ID3D12Device9* This,D3D12_SHADER_CACHE_KIND_FLAGS kinds,D3D12_SHADER_CACHE_CONTROL_FLAGS control) {
20498 return This->lpVtbl->ShaderCacheControl(This,kinds,control);
20499}
20500static inline HRESULT ID3D12Device9_CreateCommandQueue1(ID3D12Device9* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID creator_id,REFIID riid,void **command_queue) {
20501 return This->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue);
20502}
20503#endif
20504#endif
20505
20506#endif
20507
20508
20509#endif /* __ID3D12Device9_INTERFACE_DEFINED__ */
20510
20511/*****************************************************************************
20512 * ID3D12Device10 interface
20513 */
20514#ifndef __ID3D12Device10_INTERFACE_DEFINED__
20515#define __ID3D12Device10_INTERFACE_DEFINED__
20516
20517DEFINE_GUID(IID_ID3D12Device10, 0x517f8718, 0xaa66, 0x49f9, 0xb0,0x2b, 0xa7,0xab,0x89,0xc0,0x60,0x31);
20518#if defined(__cplusplus) && !defined(CINTERFACE)
20519MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031")
20520ID3D12Device10 : public ID3D12Device9
20521{
20522 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3(
20523 const D3D12_HEAP_PROPERTIES *heap_properties,
20524 D3D12_HEAP_FLAGS heap_flags,
20525 const D3D12_RESOURCE_DESC1 *desc,
20526 D3D12_BARRIER_LAYOUT initial_layout,
20527 const D3D12_CLEAR_VALUE *optimized_clear_value,
20528 ID3D12ProtectedResourceSession *protected_session,
20529 UINT32 castable_formats_count,
20530 DXGI_FORMAT *castable_formats,
20531 REFIID riid_resource,
20532 void **resource) = 0;
20533
20534 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2(
20535 ID3D12Heap *heap,
20536 UINT64 heap_offset,
20537 const D3D12_RESOURCE_DESC1 *desc,
20538 D3D12_BARRIER_LAYOUT initial_layout,
20539 const D3D12_CLEAR_VALUE *optimized_clear_value,
20540 UINT32 castable_formats_count,
20541 DXGI_FORMAT *castable_formats,
20542 REFIID riid,
20543 void **resource) = 0;
20544
20545 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2(
20546 const D3D12_RESOURCE_DESC *desc,
20547 D3D12_BARRIER_LAYOUT initial_layout,
20548 const D3D12_CLEAR_VALUE *optimized_clear_value,
20549 ID3D12ProtectedResourceSession *protected_session,
20550 UINT32 castable_formats_count,
20551 DXGI_FORMAT *castable_formats,
20552 REFIID riid,
20553 void **resource) = 0;
20554
20555};
20556#ifdef __CRT_UUID_DECL
20557__CRT_UUID_DECL(ID3D12Device10, 0x517f8718, 0xaa66, 0x49f9, 0xb0,0x2b, 0xa7,0xab,0x89,0xc0,0x60,0x31)
20558#endif
20559#else
20560typedef struct ID3D12Device10Vtbl {
20561 BEGIN_INTERFACE
20562
20563 /*** IUnknown methods ***/
20564 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20565 ID3D12Device10 *This,
20566 REFIID riid,
20567 void **ppvObject);
20568
20569 ULONG (STDMETHODCALLTYPE *AddRef)(
20570 ID3D12Device10 *This);
20571
20572 ULONG (STDMETHODCALLTYPE *Release)(
20573 ID3D12Device10 *This);
20574
20575 /*** ID3D12Object methods ***/
20576 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
20577 ID3D12Device10 *This,
20578 REFGUID guid,
20579 UINT *data_size,
20580 void *data);
20581
20582 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
20583 ID3D12Device10 *This,
20584 REFGUID guid,
20585 UINT data_size,
20586 const void *data);
20587
20588 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
20589 ID3D12Device10 *This,
20590 REFGUID guid,
20591 const IUnknown *data);
20592
20593 HRESULT (STDMETHODCALLTYPE *SetName)(
20594 ID3D12Device10 *This,
20595 const WCHAR *name);
20596
20597 /*** ID3D12Device methods ***/
20598 UINT (STDMETHODCALLTYPE *GetNodeCount)(
20599 ID3D12Device10 *This);
20600
20601 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
20602 ID3D12Device10 *This,
20603 const D3D12_COMMAND_QUEUE_DESC *desc,
20604 REFIID riid,
20605 void **command_queue);
20606
20607 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
20608 ID3D12Device10 *This,
20609 D3D12_COMMAND_LIST_TYPE type,
20610 REFIID riid,
20611 void **command_allocator);
20612
20613 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
20614 ID3D12Device10 *This,
20615 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
20616 REFIID riid,
20617 void **pipeline_state);
20618
20619 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
20620 ID3D12Device10 *This,
20621 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
20622 REFIID riid,
20623 void **pipeline_state);
20624
20625 HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
20626 ID3D12Device10 *This,
20627 UINT node_mask,
20628 D3D12_COMMAND_LIST_TYPE type,
20629 ID3D12CommandAllocator *command_allocator,
20630 ID3D12PipelineState *initial_pipeline_state,
20631 REFIID riid,
20632 void **command_list);
20633
20634 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
20635 ID3D12Device10 *This,
20636 D3D12_FEATURE feature,
20637 void *feature_data,
20638 UINT feature_data_size);
20639
20640 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
20641 ID3D12Device10 *This,
20642 const D3D12_DESCRIPTOR_HEAP_DESC *desc,
20643 REFIID riid,
20644 void **descriptor_heap);
20645
20646 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
20647 ID3D12Device10 *This,
20648 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
20649
20650 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
20651 ID3D12Device10 *This,
20652 UINT node_mask,
20653 const void *bytecode,
20654 SIZE_T bytecode_length,
20655 REFIID riid,
20656 void **root_signature);
20657
20658 void (STDMETHODCALLTYPE *CreateConstantBufferView)(
20659 ID3D12Device10 *This,
20660 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
20661 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20662
20663 void (STDMETHODCALLTYPE *CreateShaderResourceView)(
20664 ID3D12Device10 *This,
20665 ID3D12Resource *resource,
20666 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
20667 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20668
20669 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
20670 ID3D12Device10 *This,
20671 ID3D12Resource *resource,
20672 ID3D12Resource *counter_resource,
20673 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
20674 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20675
20676 void (STDMETHODCALLTYPE *CreateRenderTargetView)(
20677 ID3D12Device10 *This,
20678 ID3D12Resource *resource,
20679 const D3D12_RENDER_TARGET_VIEW_DESC *desc,
20680 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20681
20682 void (STDMETHODCALLTYPE *CreateDepthStencilView)(
20683 ID3D12Device10 *This,
20684 ID3D12Resource *resource,
20685 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
20686 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20687
20688 void (STDMETHODCALLTYPE *CreateSampler)(
20689 ID3D12Device10 *This,
20690 const D3D12_SAMPLER_DESC *desc,
20691 D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
20692
20693 void (STDMETHODCALLTYPE *CopyDescriptors)(
20694 ID3D12Device10 *This,
20695 UINT dst_descriptor_range_count,
20696 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
20697 const UINT *dst_descriptor_range_sizes,
20698 UINT src_descriptor_range_count,
20699 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
20700 const UINT *src_descriptor_range_sizes,
20701 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
20702
20703 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
20704 ID3D12Device10 *This,
20705 UINT descriptor_count,
20706 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
20707 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
20708 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
20709
20710 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
20711 ID3D12Device10 *This,
20712 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
20713 UINT visible_mask,
20714 UINT reource_desc_count,
20715 const D3D12_RESOURCE_DESC *resource_descs);
20716
20717 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
20718 ID3D12Device10 *This,
20719 D3D12_HEAP_PROPERTIES *__ret,
20720 UINT node_mask,
20721 D3D12_HEAP_TYPE heap_type);
20722
20723 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
20724 ID3D12Device10 *This,
20725 const D3D12_HEAP_PROPERTIES *heap_properties,
20726 D3D12_HEAP_FLAGS heap_flags,
20727 const D3D12_RESOURCE_DESC *desc,
20728 D3D12_RESOURCE_STATES initial_state,
20729 const D3D12_CLEAR_VALUE *optimized_clear_value,
20730 REFIID riid,
20731 void **resource);
20732
20733 HRESULT (STDMETHODCALLTYPE *CreateHeap)(
20734 ID3D12Device10 *This,
20735 const D3D12_HEAP_DESC *desc,
20736 REFIID riid,
20737 void **heap);
20738
20739 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
20740 ID3D12Device10 *This,
20741 ID3D12Heap *heap,
20742 UINT64 heap_offset,
20743 const D3D12_RESOURCE_DESC *desc,
20744 D3D12_RESOURCE_STATES initial_state,
20745 const D3D12_CLEAR_VALUE *optimized_clear_value,
20746 REFIID riid,
20747 void **resource);
20748
20749 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
20750 ID3D12Device10 *This,
20751 const D3D12_RESOURCE_DESC *desc,
20752 D3D12_RESOURCE_STATES initial_state,
20753 const D3D12_CLEAR_VALUE *optimized_clear_value,
20754 REFIID riid,
20755 void **resource);
20756
20757 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
20758 ID3D12Device10 *This,
20759 ID3D12DeviceChild *object,
20760 const SECURITY_ATTRIBUTES *attributes,
20761 DWORD access,
20762 const WCHAR *name,
20763 HANDLE *handle);
20764
20765 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
20766 ID3D12Device10 *This,
20767 HANDLE handle,
20768 REFIID riid,
20769 void **object);
20770
20771 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
20772 ID3D12Device10 *This,
20773 const WCHAR *name,
20774 DWORD access,
20775 HANDLE *handle);
20776
20777 HRESULT (STDMETHODCALLTYPE *MakeResident)(
20778 ID3D12Device10 *This,
20779 UINT object_count,
20780 ID3D12Pageable *const *objects);
20781
20782 HRESULT (STDMETHODCALLTYPE *Evict)(
20783 ID3D12Device10 *This,
20784 UINT object_count,
20785 ID3D12Pageable *const *objects);
20786
20787 HRESULT (STDMETHODCALLTYPE *CreateFence)(
20788 ID3D12Device10 *This,
20789 UINT64 initial_value,
20790 D3D12_FENCE_FLAGS flags,
20791 REFIID riid,
20792 void **fence);
20793
20794 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
20795 ID3D12Device10 *This);
20796
20797 void (STDMETHODCALLTYPE *GetCopyableFootprints)(
20798 ID3D12Device10 *This,
20799 const D3D12_RESOURCE_DESC *desc,
20800 UINT first_sub_resource,
20801 UINT sub_resource_count,
20802 UINT64 base_offset,
20803 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
20804 UINT *row_count,
20805 UINT64 *row_size,
20806 UINT64 *total_bytes);
20807
20808 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
20809 ID3D12Device10 *This,
20810 const D3D12_QUERY_HEAP_DESC *desc,
20811 REFIID riid,
20812 void **heap);
20813
20814 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
20815 ID3D12Device10 *This,
20816 WINBOOL enable);
20817
20818 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
20819 ID3D12Device10 *This,
20820 const D3D12_COMMAND_SIGNATURE_DESC *desc,
20821 ID3D12RootSignature *root_signature,
20822 REFIID riid,
20823 void **command_signature);
20824
20825 void (STDMETHODCALLTYPE *GetResourceTiling)(
20826 ID3D12Device10 *This,
20827 ID3D12Resource *resource,
20828 UINT *total_tile_count,
20829 D3D12_PACKED_MIP_INFO *packed_mip_info,
20830 D3D12_TILE_SHAPE *standard_tile_shape,
20831 UINT *sub_resource_tiling_count,
20832 UINT first_sub_resource_tiling,
20833 D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
20834
20835 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
20836 ID3D12Device10 *This,
20837 LUID *__ret);
20838
20839 /*** ID3D12Device1 methods ***/
20840 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
20841 ID3D12Device10 *This,
20842 const void *blob,
20843 SIZE_T blob_size,
20844 REFIID iid,
20845 void **lib);
20846
20847 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
20848 ID3D12Device10 *This,
20849 ID3D12Fence *const *fences,
20850 const UINT64 *values,
20851 UINT fence_count,
20852 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
20853 HANDLE event);
20854
20855 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
20856 ID3D12Device10 *This,
20857 UINT object_count,
20858 ID3D12Pageable *const *objects,
20859 const D3D12_RESIDENCY_PRIORITY *priorities);
20860
20861 /*** ID3D12Device2 methods ***/
20862 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)(
20863 ID3D12Device10 *This,
20864 const D3D12_PIPELINE_STATE_STREAM_DESC *desc,
20865 REFIID riid,
20866 void **pipeline_state);
20867
20868 /*** ID3D12Device3 methods ***/
20869 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)(
20870 ID3D12Device10 *This,
20871 const void *address,
20872 REFIID riid,
20873 void **heap);
20874
20875 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)(
20876 ID3D12Device10 *This,
20877 HANDLE file_mapping,
20878 REFIID riid,
20879 void **heap);
20880
20881 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)(
20882 ID3D12Device10 *This,
20883 D3D12_RESIDENCY_FLAGS flags,
20884 UINT num_objects,
20885 ID3D12Pageable *const *objects,
20886 ID3D12Fence *fence,
20887 UINT64 fence_value);
20888
20889 /*** ID3D12Device4 methods ***/
20890 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)(
20891 ID3D12Device10 *This,
20892 UINT node_mask,
20893 D3D12_COMMAND_LIST_TYPE type,
20894 D3D12_COMMAND_LIST_FLAGS flags,
20895 REFIID riid,
20896 void **command_list);
20897
20898 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)(
20899 ID3D12Device10 *This,
20900 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,
20901 REFIID riid,
20902 void **session);
20903
20904 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)(
20905 ID3D12Device10 *This,
20906 const D3D12_HEAP_PROPERTIES *heap_properties,
20907 D3D12_HEAP_FLAGS heap_flags,
20908 const D3D12_RESOURCE_DESC *desc,
20909 D3D12_RESOURCE_STATES initial_resource_state,
20910 const D3D12_CLEAR_VALUE *optimized_clear_value,
20911 ID3D12ProtectedResourceSession *protected_session,
20912 REFIID riid_resource,
20913 void **resource);
20914
20915 HRESULT (STDMETHODCALLTYPE *CreateHeap1)(
20916 ID3D12Device10 *This,
20917 const D3D12_HEAP_DESC *desc,
20918 ID3D12ProtectedResourceSession *protected_session,
20919 REFIID riid,
20920 void **heap);
20921
20922 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)(
20923 ID3D12Device10 *This,
20924 const D3D12_RESOURCE_DESC *desc,
20925 D3D12_RESOURCE_STATES initial_state,
20926 const D3D12_CLEAR_VALUE *optimized_clear_value,
20927 ID3D12ProtectedResourceSession *protected_session,
20928 REFIID riid,
20929 void **resource);
20930
20931 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)(
20932 ID3D12Device10 *This,
20933 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
20934 UINT visible_mask,
20935 UINT resource_descs_count,
20936 const D3D12_RESOURCE_DESC *resource_descs,
20937 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
20938
20939 /*** ID3D12Device5 methods ***/
20940 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)(
20941 ID3D12Device10 *This,
20942 ID3D12LifetimeOwner *owner,
20943 REFIID riid,
20944 void **tracker);
20945
20946 void (STDMETHODCALLTYPE *RemoveDevice)(
20947 ID3D12Device10 *This);
20948
20949 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)(
20950 ID3D12Device10 *This,
20951 UINT *meta_commands_count,
20952 D3D12_META_COMMAND_DESC *descs);
20953
20954 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)(
20955 ID3D12Device10 *This,
20956 REFGUID command_id,
20957 D3D12_META_COMMAND_PARAMETER_STAGE stage,
20958 UINT *total_structure_size_in_bytes,
20959 UINT *parameter_count,
20960 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs);
20961
20962 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)(
20963 ID3D12Device10 *This,
20964 REFGUID command_id,
20965 UINT node_mask,
20966 const void *creation_parameters_data,
20967 SIZE_T creation_parameters_data_size_in_bytes,
20968 REFIID riid,
20969 void **meta_command);
20970
20971 HRESULT (STDMETHODCALLTYPE *CreateStateObject)(
20972 ID3D12Device10 *This,
20973 const D3D12_STATE_OBJECT_DESC *desc,
20974 REFIID riid,
20975 void **state_object);
20976
20977 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)(
20978 ID3D12Device10 *This,
20979 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,
20980 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info);
20981
20982 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)(
20983 ID3D12Device10 *This,
20984 D3D12_SERIALIZED_DATA_TYPE serialized_data_type,
20985 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
20986
20987 /*** ID3D12Device6 methods ***/
20988 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)(
20989 ID3D12Device10 *This,
20990 D3D12_BACKGROUND_PROCESSING_MODE mode,
20991 D3D12_MEASUREMENTS_ACTION action,
20992 HANDLE event,
20993 WINBOOL *further_measurements_desired);
20994
20995 /*** ID3D12Device7 methods ***/
20996 HRESULT (STDMETHODCALLTYPE *AddToStateObject)(
20997 ID3D12Device10 *This,
20998 const D3D12_STATE_OBJECT_DESC *addition,
20999 ID3D12StateObject *state_object_to_grow_from,
21000 REFIID riid,
21001 void **new_state_object);
21002
21003 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)(
21004 ID3D12Device10 *This,
21005 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,
21006 REFIID riid,
21007 void **session);
21008
21009 /*** ID3D12Device8 methods ***/
21010 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)(
21011 ID3D12Device10 *This,
21012 D3D12_RESOURCE_ALLOCATION_INFO *__ret,
21013 UINT visible_mask,
21014 UINT resource_descs_count,
21015 const D3D12_RESOURCE_DESC1 *resource_descs,
21016 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1);
21017
21018 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)(
21019 ID3D12Device10 *This,
21020 const D3D12_HEAP_PROPERTIES *heap_properties,
21021 D3D12_HEAP_FLAGS heap_flags,
21022 const D3D12_RESOURCE_DESC1 *desc,
21023 D3D12_RESOURCE_STATES initial_resource_state,
21024 const D3D12_CLEAR_VALUE *optimized_clear_value,
21025 ID3D12ProtectedResourceSession *protected_session,
21026 REFIID riid_resource,
21027 void **resource);
21028
21029 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)(
21030 ID3D12Device10 *This,
21031 ID3D12Heap *heap,
21032 UINT64 heap_offset,
21033 const D3D12_RESOURCE_DESC1 *desc,
21034 D3D12_RESOURCE_STATES initial_state,
21035 const D3D12_CLEAR_VALUE *optimized_clear_value,
21036 REFIID riid,
21037 void **resource);
21038
21039 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)(
21040 ID3D12Device10 *This,
21041 ID3D12Resource *targeted_resource,
21042 ID3D12Resource *feedback_resource,
21043 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor);
21044
21045 void (STDMETHODCALLTYPE *GetCopyableFootprints1)(
21046 ID3D12Device10 *This,
21047 const D3D12_RESOURCE_DESC1 *resource_desc,
21048 UINT first_subresource,
21049 UINT subresources_count,
21050 UINT64 base_offset,
21051 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
21052 UINT *rows_count,
21053 UINT64 *row_size_in_bytes,
21054 UINT64 *total_bytes);
21055
21056 /*** ID3D12Device9 methods ***/
21057 HRESULT (STDMETHODCALLTYPE *CreateShaderCacheSession)(
21058 ID3D12Device10 *This,
21059 const D3D12_SHADER_CACHE_SESSION_DESC *desc,
21060 REFIID riid,
21061 void **session);
21062
21063 HRESULT (STDMETHODCALLTYPE *ShaderCacheControl)(
21064 ID3D12Device10 *This,
21065 D3D12_SHADER_CACHE_KIND_FLAGS kinds,
21066 D3D12_SHADER_CACHE_CONTROL_FLAGS control);
21067
21068 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue1)(
21069 ID3D12Device10 *This,
21070 const D3D12_COMMAND_QUEUE_DESC *desc,
21071 REFIID creator_id,
21072 REFIID riid,
21073 void **command_queue);
21074
21075 /*** ID3D12Device10 methods ***/
21076 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource3)(
21077 ID3D12Device10 *This,
21078 const D3D12_HEAP_PROPERTIES *heap_properties,
21079 D3D12_HEAP_FLAGS heap_flags,
21080 const D3D12_RESOURCE_DESC1 *desc,
21081 D3D12_BARRIER_LAYOUT initial_layout,
21082 const D3D12_CLEAR_VALUE *optimized_clear_value,
21083 ID3D12ProtectedResourceSession *protected_session,
21084 UINT32 castable_formats_count,
21085 DXGI_FORMAT *castable_formats,
21086 REFIID riid_resource,
21087 void **resource);
21088
21089 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource2)(
21090 ID3D12Device10 *This,
21091 ID3D12Heap *heap,
21092 UINT64 heap_offset,
21093 const D3D12_RESOURCE_DESC1 *desc,
21094 D3D12_BARRIER_LAYOUT initial_layout,
21095 const D3D12_CLEAR_VALUE *optimized_clear_value,
21096 UINT32 castable_formats_count,
21097 DXGI_FORMAT *castable_formats,
21098 REFIID riid,
21099 void **resource);
21100
21101 HRESULT (STDMETHODCALLTYPE *CreateReservedResource2)(
21102 ID3D12Device10 *This,
21103 const D3D12_RESOURCE_DESC *desc,
21104 D3D12_BARRIER_LAYOUT initial_layout,
21105 const D3D12_CLEAR_VALUE *optimized_clear_value,
21106 ID3D12ProtectedResourceSession *protected_session,
21107 UINT32 castable_formats_count,
21108 DXGI_FORMAT *castable_formats,
21109 REFIID riid,
21110 void **resource);
21111
21112 END_INTERFACE
21113} ID3D12Device10Vtbl;
21114
21115interface ID3D12Device10 {
21116 CONST_VTBL ID3D12Device10Vtbl* lpVtbl;
21117};
21118
21119#ifdef COBJMACROS
21120#ifndef WIDL_C_INLINE_WRAPPERS
21121/*** IUnknown methods ***/
21122#define ID3D12Device10_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21123#define ID3D12Device10_AddRef(This) (This)->lpVtbl->AddRef(This)
21124#define ID3D12Device10_Release(This) (This)->lpVtbl->Release(This)
21125/*** ID3D12Object methods ***/
21126#define ID3D12Device10_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
21127#define ID3D12Device10_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
21128#define ID3D12Device10_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
21129#define ID3D12Device10_SetName(This,name) (This)->lpVtbl->SetName(This,name)
21130/*** ID3D12Device methods ***/
21131#define ID3D12Device10_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
21132#define ID3D12Device10_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
21133#define ID3D12Device10_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
21134#define ID3D12Device10_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
21135#define ID3D12Device10_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
21136#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)
21137#define ID3D12Device10_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
21138#define ID3D12Device10_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
21139#define ID3D12Device10_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
21140#define ID3D12Device10_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
21141#define ID3D12Device10_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
21142#define ID3D12Device10_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
21143#define ID3D12Device10_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
21144#define ID3D12Device10_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
21145#define ID3D12Device10_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
21146#define ID3D12Device10_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
21147#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)
21148#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)
21149#define ID3D12Device10_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device10_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
21150#define ID3D12Device10_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device10_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
21151#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)
21152#define ID3D12Device10_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
21153#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)
21154#define ID3D12Device10_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
21155#define ID3D12Device10_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
21156#define ID3D12Device10_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
21157#define ID3D12Device10_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
21158#define ID3D12Device10_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
21159#define ID3D12Device10_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
21160#define ID3D12Device10_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
21161#define ID3D12Device10_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
21162#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)
21163#define ID3D12Device10_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
21164#define ID3D12Device10_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
21165#define ID3D12Device10_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
21166#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)
21167#define ID3D12Device10_GetAdapterLuid(This) ID3D12Device10_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
21168/*** ID3D12Device1 methods ***/
21169#define ID3D12Device10_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
21170#define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
21171#define ID3D12Device10_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
21172/*** ID3D12Device2 methods ***/
21173#define ID3D12Device10_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state)
21174/*** ID3D12Device3 methods ***/
21175#define ID3D12Device10_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap)
21176#define ID3D12Device10_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap)
21177#define ID3D12Device10_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value)
21178/*** ID3D12Device4 methods ***/
21179#define ID3D12Device10_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list)
21180#define ID3D12Device10_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session)
21181#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)
21182#define ID3D12Device10_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap)
21183#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)
21184#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
21185/*** ID3D12Device5 methods ***/
21186#define ID3D12Device10_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker)
21187#define ID3D12Device10_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This)
21188#define ID3D12Device10_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs)
21189#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)
21190#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)
21191#define ID3D12Device10_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object)
21192#define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info)
21193#define ID3D12Device10_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check)
21194/*** ID3D12Device6 methods ***/
21195#define ID3D12Device10_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired)
21196/*** ID3D12Device7 methods ***/
21197#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)
21198#define ID3D12Device10_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session)
21199/*** ID3D12Device8 methods ***/
21200#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
21201#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)
21202#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)
21203#define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor)
21204#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)
21205/*** ID3D12Device9 methods ***/
21206#define ID3D12Device10_CreateShaderCacheSession(This,desc,riid,session) (This)->lpVtbl->CreateShaderCacheSession(This,desc,riid,session)
21207#define ID3D12Device10_ShaderCacheControl(This,kinds,control) (This)->lpVtbl->ShaderCacheControl(This,kinds,control)
21208#define ID3D12Device10_CreateCommandQueue1(This,desc,creator_id,riid,command_queue) (This)->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue)
21209/*** ID3D12Device10 methods ***/
21210#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)
21211#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)
21212#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)
21213#else
21214/*** IUnknown methods ***/
21215static inline HRESULT ID3D12Device10_QueryInterface(ID3D12Device10* This,REFIID riid,void **ppvObject) {
21216 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21217}
21218static inline ULONG ID3D12Device10_AddRef(ID3D12Device10* This) {
21219 return This->lpVtbl->AddRef(This);
21220}
21221static inline ULONG ID3D12Device10_Release(ID3D12Device10* This) {
21222 return This->lpVtbl->Release(This);
21223}
21224/*** ID3D12Object methods ***/
21225static inline HRESULT ID3D12Device10_GetPrivateData(ID3D12Device10* This,REFGUID guid,UINT *data_size,void *data) {
21226 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
21227}
21228static inline HRESULT ID3D12Device10_SetPrivateData(ID3D12Device10* This,REFGUID guid,UINT data_size,const void *data) {
21229 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
21230}
21231static inline HRESULT ID3D12Device10_SetPrivateDataInterface(ID3D12Device10* This,REFGUID guid,const IUnknown *data) {
21232 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
21233}
21234static inline HRESULT ID3D12Device10_SetName(ID3D12Device10* This,const WCHAR *name) {
21235 return This->lpVtbl->SetName(This,name);
21236}
21237/*** ID3D12Device methods ***/
21238static inline UINT ID3D12Device10_GetNodeCount(ID3D12Device10* This) {
21239 return This->lpVtbl->GetNodeCount(This);
21240}
21241static inline HRESULT ID3D12Device10_CreateCommandQueue(ID3D12Device10* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
21242 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
21243}
21244static inline HRESULT ID3D12Device10_CreateCommandAllocator(ID3D12Device10* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
21245 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
21246}
21247static inline HRESULT ID3D12Device10_CreateGraphicsPipelineState(ID3D12Device10* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
21248 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
21249}
21250static inline HRESULT ID3D12Device10_CreateComputePipelineState(ID3D12Device10* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
21251 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
21252}
21253static 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) {
21254 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
21255}
21256static inline HRESULT ID3D12Device10_CheckFeatureSupport(ID3D12Device10* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
21257 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
21258}
21259static inline HRESULT ID3D12Device10_CreateDescriptorHeap(ID3D12Device10* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
21260 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
21261}
21262static inline UINT ID3D12Device10_GetDescriptorHandleIncrementSize(ID3D12Device10* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
21263 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
21264}
21265static inline HRESULT ID3D12Device10_CreateRootSignature(ID3D12Device10* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
21266 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
21267}
21268static inline void ID3D12Device10_CreateConstantBufferView(ID3D12Device10* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21269 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
21270}
21271static inline void ID3D12Device10_CreateShaderResourceView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21272 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
21273}
21274static inline void ID3D12Device10_CreateUnorderedAccessView(ID3D12Device10* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21275 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
21276}
21277static inline void ID3D12Device10_CreateRenderTargetView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21278 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
21279}
21280static inline void ID3D12Device10_CreateDepthStencilView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21281 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
21282}
21283static inline void ID3D12Device10_CreateSampler(ID3D12Device10* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
21284 This->lpVtbl->CreateSampler(This,desc,descriptor);
21285}
21286static 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) {
21287 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);
21288}
21289static 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) {
21290 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
21291}
21292static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device10_GetResourceAllocationInfo(ID3D12Device10* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
21293 D3D12_RESOURCE_ALLOCATION_INFO __ret;
21294 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
21295}
21296static inline D3D12_HEAP_PROPERTIES ID3D12Device10_GetCustomHeapProperties(ID3D12Device10* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
21297 D3D12_HEAP_PROPERTIES __ret;
21298 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
21299}
21300static 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) {
21301 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
21302}
21303static inline HRESULT ID3D12Device10_CreateHeap(ID3D12Device10* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
21304 return This->lpVtbl->CreateHeap(This,desc,riid,heap);
21305}
21306static 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) {
21307 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
21308}
21309static 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) {
21310 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
21311}
21312static inline HRESULT ID3D12Device10_CreateSharedHandle(ID3D12Device10* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
21313 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
21314}
21315static inline HRESULT ID3D12Device10_OpenSharedHandle(ID3D12Device10* This,HANDLE handle,REFIID riid,void **object) {
21316 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
21317}
21318static inline HRESULT ID3D12Device10_OpenSharedHandleByName(ID3D12Device10* This,const WCHAR *name,DWORD access,HANDLE *handle) {
21319 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
21320}
21321static inline HRESULT ID3D12Device10_MakeResident(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects) {
21322 return This->lpVtbl->MakeResident(This,object_count,objects);
21323}
21324static inline HRESULT ID3D12Device10_Evict(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects) {
21325 return This->lpVtbl->Evict(This,object_count,objects);
21326}
21327static inline HRESULT ID3D12Device10_CreateFence(ID3D12Device10* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
21328 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
21329}
21330static inline HRESULT ID3D12Device10_GetDeviceRemovedReason(ID3D12Device10* This) {
21331 return This->lpVtbl->GetDeviceRemovedReason(This);
21332}
21333static 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) {
21334 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
21335}
21336static inline HRESULT ID3D12Device10_CreateQueryHeap(ID3D12Device10* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
21337 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
21338}
21339static inline HRESULT ID3D12Device10_SetStablePowerState(ID3D12Device10* This,WINBOOL enable) {
21340 return This->lpVtbl->SetStablePowerState(This,enable);
21341}
21342static inline HRESULT ID3D12Device10_CreateCommandSignature(ID3D12Device10* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
21343 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
21344}
21345static 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) {
21346 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);
21347}
21348static inline LUID ID3D12Device10_GetAdapterLuid(ID3D12Device10* This) {
21349 LUID __ret;
21350 return *This->lpVtbl->GetAdapterLuid(This,&__ret);
21351}
21352/*** ID3D12Device1 methods ***/
21353static inline HRESULT ID3D12Device10_CreatePipelineLibrary(ID3D12Device10* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
21354 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
21355}
21356static inline HRESULT ID3D12Device10_SetEventOnMultipleFenceCompletion(ID3D12Device10* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
21357 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
21358}
21359static inline HRESULT ID3D12Device10_SetResidencyPriority(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
21360 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
21361}
21362/*** ID3D12Device2 methods ***/
21363static inline HRESULT ID3D12Device10_CreatePipelineState(ID3D12Device10* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) {
21364 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state);
21365}
21366/*** ID3D12Device3 methods ***/
21367static inline HRESULT ID3D12Device10_OpenExistingHeapFromAddress(ID3D12Device10* This,const void *address,REFIID riid,void **heap) {
21368 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap);
21369}
21370static inline HRESULT ID3D12Device10_OpenExistingHeapFromFileMapping(ID3D12Device10* This,HANDLE file_mapping,REFIID riid,void **heap) {
21371 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap);
21372}
21373static inline HRESULT ID3D12Device10_EnqueueMakeResident(ID3D12Device10* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) {
21374 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value);
21375}
21376/*** ID3D12Device4 methods ***/
21377static inline HRESULT ID3D12Device10_CreateCommandList1(ID3D12Device10* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) {
21378 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list);
21379}
21380static inline HRESULT ID3D12Device10_CreateProtectedResourceSession(ID3D12Device10* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) {
21381 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session);
21382}
21383static 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) {
21384 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
21385}
21386static inline HRESULT ID3D12Device10_CreateHeap1(ID3D12Device10* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) {
21387 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap);
21388}
21389static 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) {
21390 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource);
21391}
21392static 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) {
21393 D3D12_RESOURCE_ALLOCATION_INFO __ret;
21394 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
21395}
21396/*** ID3D12Device5 methods ***/
21397static inline HRESULT ID3D12Device10_CreateLifetimeTracker(ID3D12Device10* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) {
21398 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker);
21399}
21400static inline void ID3D12Device10_RemoveDevice(ID3D12Device10* This) {
21401 This->lpVtbl->RemoveDevice(This);
21402}
21403static inline HRESULT ID3D12Device10_EnumerateMetaCommands(ID3D12Device10* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) {
21404 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs);
21405}
21406static 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) {
21407 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs);
21408}
21409static 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) {
21410 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command);
21411}
21412static inline HRESULT ID3D12Device10_CreateStateObject(ID3D12Device10* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) {
21413 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object);
21414}
21415static inline void ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device10* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) {
21416 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info);
21417}
21418static 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) {
21419 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check);
21420}
21421/*** ID3D12Device6 methods ***/
21422static inline HRESULT ID3D12Device10_SetBackgroundProcessingMode(ID3D12Device10* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) {
21423 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired);
21424}
21425/*** ID3D12Device7 methods ***/
21426static inline HRESULT ID3D12Device10_AddToStateObject(ID3D12Device10* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) {
21427 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object);
21428}
21429static inline HRESULT ID3D12Device10_CreateProtectedResourceSession1(ID3D12Device10* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) {
21430 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session);
21431}
21432/*** ID3D12Device8 methods ***/
21433static 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) {
21434 D3D12_RESOURCE_ALLOCATION_INFO __ret;
21435 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1);
21436}
21437static 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) {
21438 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource);
21439}
21440static 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) {
21441 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
21442}
21443static inline void ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device10* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) {
21444 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor);
21445}
21446static 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) {
21447 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes);
21448}
21449/*** ID3D12Device9 methods ***/
21450static inline HRESULT ID3D12Device10_CreateShaderCacheSession(ID3D12Device10* This,const D3D12_SHADER_CACHE_SESSION_DESC *desc,REFIID riid,void **session) {
21451 return This->lpVtbl->CreateShaderCacheSession(This,desc,riid,session);
21452}
21453static inline HRESULT ID3D12Device10_ShaderCacheControl(ID3D12Device10* This,D3D12_SHADER_CACHE_KIND_FLAGS kinds,D3D12_SHADER_CACHE_CONTROL_FLAGS control) {
21454 return This->lpVtbl->ShaderCacheControl(This,kinds,control);
21455}
21456static inline HRESULT ID3D12Device10_CreateCommandQueue1(ID3D12Device10* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID creator_id,REFIID riid,void **command_queue) {
21457 return This->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue);
21458}
21459/*** ID3D12Device10 methods ***/
21460static 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) {
21461 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);
21462}
21463static 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) {
21464 return This->lpVtbl->CreatePlacedResource2(This,heap,heap_offset,desc,initial_layout,optimized_clear_value,castable_formats_count,castable_formats,riid,resource);
21465}
21466static 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) {
21467 return This->lpVtbl->CreateReservedResource2(This,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid,resource);
21468}
21469#endif
21470#endif
21471
21472#endif
21473
21474
21475#endif /* __ID3D12Device10_INTERFACE_DEFINED__ */
21476
21477/*****************************************************************************
21478 * ID3D12VirtualizationGuestDevice interface
21479 */
21480#ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
21481#define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
21482
21483DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice, 0xbc66d368, 0x7373, 0x4943, 0x87,0x57, 0xfc,0x87,0xdc,0x79,0xe4,0x76);
21484#if defined(__cplusplus) && !defined(CINTERFACE)
21485MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476")
21486ID3D12VirtualizationGuestDevice : public IUnknown
21487{
21488 virtual HRESULT STDMETHODCALLTYPE ShareWithHost(
21489 ID3D12DeviceChild *object,
21490 HANDLE *handle) = 0;
21491
21492 virtual HRESULT STDMETHODCALLTYPE CreateFenceFd(
21493 ID3D12Fence *fence,
21494 UINT64 fence_value,
21495 int *fence_fd) = 0;
21496
21497};
21498#ifdef __CRT_UUID_DECL
21499__CRT_UUID_DECL(ID3D12VirtualizationGuestDevice, 0xbc66d368, 0x7373, 0x4943, 0x87,0x57, 0xfc,0x87,0xdc,0x79,0xe4,0x76)
21500#endif
21501#else
21502typedef struct ID3D12VirtualizationGuestDeviceVtbl {
21503 BEGIN_INTERFACE
21504
21505 /*** IUnknown methods ***/
21506 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21507 ID3D12VirtualizationGuestDevice *This,
21508 REFIID riid,
21509 void **ppvObject);
21510
21511 ULONG (STDMETHODCALLTYPE *AddRef)(
21512 ID3D12VirtualizationGuestDevice *This);
21513
21514 ULONG (STDMETHODCALLTYPE *Release)(
21515 ID3D12VirtualizationGuestDevice *This);
21516
21517 /*** ID3D12VirtualizationGuestDevice methods ***/
21518 HRESULT (STDMETHODCALLTYPE *ShareWithHost)(
21519 ID3D12VirtualizationGuestDevice *This,
21520 ID3D12DeviceChild *object,
21521 HANDLE *handle);
21522
21523 HRESULT (STDMETHODCALLTYPE *CreateFenceFd)(
21524 ID3D12VirtualizationGuestDevice *This,
21525 ID3D12Fence *fence,
21526 UINT64 fence_value,
21527 int *fence_fd);
21528
21529 END_INTERFACE
21530} ID3D12VirtualizationGuestDeviceVtbl;
21531
21532interface ID3D12VirtualizationGuestDevice {
21533 CONST_VTBL ID3D12VirtualizationGuestDeviceVtbl* lpVtbl;
21534};
21535
21536#ifdef COBJMACROS
21537#ifndef WIDL_C_INLINE_WRAPPERS
21538/*** IUnknown methods ***/
21539#define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21540#define ID3D12VirtualizationGuestDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
21541#define ID3D12VirtualizationGuestDevice_Release(This) (This)->lpVtbl->Release(This)
21542/*** ID3D12VirtualizationGuestDevice methods ***/
21543#define ID3D12VirtualizationGuestDevice_ShareWithHost(This,object,handle) (This)->lpVtbl->ShareWithHost(This,object,handle)
21544#define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,fence,fence_value,fence_fd) (This)->lpVtbl->CreateFenceFd(This,fence,fence_value,fence_fd)
21545#else
21546/*** IUnknown methods ***/
21547static inline HRESULT ID3D12VirtualizationGuestDevice_QueryInterface(ID3D12VirtualizationGuestDevice* This,REFIID riid,void **ppvObject) {
21548 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21549}
21550static inline ULONG ID3D12VirtualizationGuestDevice_AddRef(ID3D12VirtualizationGuestDevice* This) {
21551 return This->lpVtbl->AddRef(This);
21552}
21553static inline ULONG ID3D12VirtualizationGuestDevice_Release(ID3D12VirtualizationGuestDevice* This) {
21554 return This->lpVtbl->Release(This);
21555}
21556/*** ID3D12VirtualizationGuestDevice methods ***/
21557static inline HRESULT ID3D12VirtualizationGuestDevice_ShareWithHost(ID3D12VirtualizationGuestDevice* This,ID3D12DeviceChild *object,HANDLE *handle) {
21558 return This->lpVtbl->ShareWithHost(This,object,handle);
21559}
21560static inline HRESULT ID3D12VirtualizationGuestDevice_CreateFenceFd(ID3D12VirtualizationGuestDevice* This,ID3D12Fence *fence,UINT64 fence_value,int *fence_fd) {
21561 return This->lpVtbl->CreateFenceFd(This,fence,fence_value,fence_fd);
21562}
21563#endif
21564#endif
21565
21566#endif
21567
21568
21569#endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */
21570
21571/*****************************************************************************
21572 * ID3D12Tools interface
21573 */
21574#ifndef __ID3D12Tools_INTERFACE_DEFINED__
21575#define __ID3D12Tools_INTERFACE_DEFINED__
21576
21577DEFINE_GUID(IID_ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97,0x4f, 0x12,0xfa,0x49,0xde,0x65,0xc5);
21578#if defined(__cplusplus) && !defined(CINTERFACE)
21579MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5")
21580ID3D12Tools : public IUnknown
21581{
21582 virtual void STDMETHODCALLTYPE EnableShaderInstrumentation(
21583 WINBOOL enable) = 0;
21584
21585 virtual WINBOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled(
21586 ) = 0;
21587
21588};
21589#ifdef __CRT_UUID_DECL
21590__CRT_UUID_DECL(ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97,0x4f, 0x12,0xfa,0x49,0xde,0x65,0xc5)
21591#endif
21592#else
21593typedef struct ID3D12ToolsVtbl {
21594 BEGIN_INTERFACE
21595
21596 /*** IUnknown methods ***/
21597 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21598 ID3D12Tools *This,
21599 REFIID riid,
21600 void **ppvObject);
21601
21602 ULONG (STDMETHODCALLTYPE *AddRef)(
21603 ID3D12Tools *This);
21604
21605 ULONG (STDMETHODCALLTYPE *Release)(
21606 ID3D12Tools *This);
21607
21608 /*** ID3D12Tools methods ***/
21609 void (STDMETHODCALLTYPE *EnableShaderInstrumentation)(
21610 ID3D12Tools *This,
21611 WINBOOL enable);
21612
21613 WINBOOL (STDMETHODCALLTYPE *ShaderInstrumentationEnabled)(
21614 ID3D12Tools *This);
21615
21616 END_INTERFACE
21617} ID3D12ToolsVtbl;
21618
21619interface ID3D12Tools {
21620 CONST_VTBL ID3D12ToolsVtbl* lpVtbl;
21621};
21622
21623#ifdef COBJMACROS
21624#ifndef WIDL_C_INLINE_WRAPPERS
21625/*** IUnknown methods ***/
21626#define ID3D12Tools_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21627#define ID3D12Tools_AddRef(This) (This)->lpVtbl->AddRef(This)
21628#define ID3D12Tools_Release(This) (This)->lpVtbl->Release(This)
21629/*** ID3D12Tools methods ***/
21630#define ID3D12Tools_EnableShaderInstrumentation(This,enable) (This)->lpVtbl->EnableShaderInstrumentation(This,enable)
21631#define ID3D12Tools_ShaderInstrumentationEnabled(This) (This)->lpVtbl->ShaderInstrumentationEnabled(This)
21632#else
21633/*** IUnknown methods ***/
21634static inline HRESULT ID3D12Tools_QueryInterface(ID3D12Tools* This,REFIID riid,void **ppvObject) {
21635 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21636}
21637static inline ULONG ID3D12Tools_AddRef(ID3D12Tools* This) {
21638 return This->lpVtbl->AddRef(This);
21639}
21640static inline ULONG ID3D12Tools_Release(ID3D12Tools* This) {
21641 return This->lpVtbl->Release(This);
21642}
21643/*** ID3D12Tools methods ***/
21644static inline void ID3D12Tools_EnableShaderInstrumentation(ID3D12Tools* This,WINBOOL enable) {
21645 This->lpVtbl->EnableShaderInstrumentation(This,enable);
21646}
21647static inline WINBOOL ID3D12Tools_ShaderInstrumentationEnabled(ID3D12Tools* This) {
21648 return This->lpVtbl->ShaderInstrumentationEnabled(This);
21649}
21650#endif
21651#endif
21652
21653#endif
21654
21655
21656#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */
21657
21658DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);
21659DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);
21660DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);
21661DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);
21662/*****************************************************************************
21663 * ID3D12SDKConfiguration interface
21664 */
21665#ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__
21666#define __ID3D12SDKConfiguration_INTERFACE_DEFINED__
21667
21668DEFINE_GUID(IID_ID3D12SDKConfiguration, 0xe9eb5314, 0x33aa, 0x42b2, 0xa7,0x18, 0xd7,0x7f,0x58,0xb1,0xf1,0xc7);
21669#if defined(__cplusplus) && !defined(CINTERFACE)
21670MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7")
21671ID3D12SDKConfiguration : public IUnknown
21672{
21673 virtual HRESULT STDMETHODCALLTYPE SetSDKVersion(
21674 UINT version,
21675 const char *path) = 0;
21676
21677};
21678#ifdef __CRT_UUID_DECL
21679__CRT_UUID_DECL(ID3D12SDKConfiguration, 0xe9eb5314, 0x33aa, 0x42b2, 0xa7,0x18, 0xd7,0x7f,0x58,0xb1,0xf1,0xc7)
21680#endif
21681#else
21682typedef struct ID3D12SDKConfigurationVtbl {
21683 BEGIN_INTERFACE
21684
21685 /*** IUnknown methods ***/
21686 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21687 ID3D12SDKConfiguration *This,
21688 REFIID riid,
21689 void **ppvObject);
21690
21691 ULONG (STDMETHODCALLTYPE *AddRef)(
21692 ID3D12SDKConfiguration *This);
21693
21694 ULONG (STDMETHODCALLTYPE *Release)(
21695 ID3D12SDKConfiguration *This);
21696
21697 /*** ID3D12SDKConfiguration methods ***/
21698 HRESULT (STDMETHODCALLTYPE *SetSDKVersion)(
21699 ID3D12SDKConfiguration *This,
21700 UINT version,
21701 const char *path);
21702
21703 END_INTERFACE
21704} ID3D12SDKConfigurationVtbl;
21705
21706interface ID3D12SDKConfiguration {
21707 CONST_VTBL ID3D12SDKConfigurationVtbl* lpVtbl;
21708};
21709
21710#ifdef COBJMACROS
21711#ifndef WIDL_C_INLINE_WRAPPERS
21712/*** IUnknown methods ***/
21713#define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21714#define ID3D12SDKConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This)
21715#define ID3D12SDKConfiguration_Release(This) (This)->lpVtbl->Release(This)
21716/*** ID3D12SDKConfiguration methods ***/
21717#define ID3D12SDKConfiguration_SetSDKVersion(This,version,path) (This)->lpVtbl->SetSDKVersion(This,version,path)
21718#else
21719/*** IUnknown methods ***/
21720static inline HRESULT ID3D12SDKConfiguration_QueryInterface(ID3D12SDKConfiguration* This,REFIID riid,void **ppvObject) {
21721 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21722}
21723static inline ULONG ID3D12SDKConfiguration_AddRef(ID3D12SDKConfiguration* This) {
21724 return This->lpVtbl->AddRef(This);
21725}
21726static inline ULONG ID3D12SDKConfiguration_Release(ID3D12SDKConfiguration* This) {
21727 return This->lpVtbl->Release(This);
21728}
21729/*** ID3D12SDKConfiguration methods ***/
21730static inline HRESULT ID3D12SDKConfiguration_SetSDKVersion(ID3D12SDKConfiguration* This,UINT version,const char *path) {
21731 return This->lpVtbl->SetSDKVersion(This,version,path);
21732}
21733#endif
21734#endif
21735
21736#endif
21737
21738
21739#endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */
21740
21741/*****************************************************************************
21742 * ID3D12SDKConfiguration1 interface
21743 */
21744#ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
21745#define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
21746
21747DEFINE_GUID(IID_ID3D12SDKConfiguration1, 0x8aaf9303, 0xad25, 0x48b9, 0x9a,0x57, 0xd9,0xc3,0x7e,0x00,0x9d,0x9f);
21748#if defined(__cplusplus) && !defined(CINTERFACE)
21749MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f")
21750ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration
21751{
21752 virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory(
21753 UINT sdk_version,
21754 const char *sdk_path,
21755 REFIID riid,
21756 void **ppv) = 0;
21757
21758 virtual void STDMETHODCALLTYPE FreeUnusedSDKs(
21759 ) = 0;
21760
21761};
21762#ifdef __CRT_UUID_DECL
21763__CRT_UUID_DECL(ID3D12SDKConfiguration1, 0x8aaf9303, 0xad25, 0x48b9, 0x9a,0x57, 0xd9,0xc3,0x7e,0x00,0x9d,0x9f)
21764#endif
21765#else
21766typedef struct ID3D12SDKConfiguration1Vtbl {
21767 BEGIN_INTERFACE
21768
21769 /*** IUnknown methods ***/
21770 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21771 ID3D12SDKConfiguration1 *This,
21772 REFIID riid,
21773 void **ppvObject);
21774
21775 ULONG (STDMETHODCALLTYPE *AddRef)(
21776 ID3D12SDKConfiguration1 *This);
21777
21778 ULONG (STDMETHODCALLTYPE *Release)(
21779 ID3D12SDKConfiguration1 *This);
21780
21781 /*** ID3D12SDKConfiguration methods ***/
21782 HRESULT (STDMETHODCALLTYPE *SetSDKVersion)(
21783 ID3D12SDKConfiguration1 *This,
21784 UINT version,
21785 const char *path);
21786
21787 /*** ID3D12SDKConfiguration1 methods ***/
21788 HRESULT (STDMETHODCALLTYPE *CreateDeviceFactory)(
21789 ID3D12SDKConfiguration1 *This,
21790 UINT sdk_version,
21791 const char *sdk_path,
21792 REFIID riid,
21793 void **ppv);
21794
21795 void (STDMETHODCALLTYPE *FreeUnusedSDKs)(
21796 ID3D12SDKConfiguration1 *This);
21797
21798 END_INTERFACE
21799} ID3D12SDKConfiguration1Vtbl;
21800
21801interface ID3D12SDKConfiguration1 {
21802 CONST_VTBL ID3D12SDKConfiguration1Vtbl* lpVtbl;
21803};
21804
21805#ifdef COBJMACROS
21806#ifndef WIDL_C_INLINE_WRAPPERS
21807/*** IUnknown methods ***/
21808#define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21809#define ID3D12SDKConfiguration1_AddRef(This) (This)->lpVtbl->AddRef(This)
21810#define ID3D12SDKConfiguration1_Release(This) (This)->lpVtbl->Release(This)
21811/*** ID3D12SDKConfiguration methods ***/
21812#define ID3D12SDKConfiguration1_SetSDKVersion(This,version,path) (This)->lpVtbl->SetSDKVersion(This,version,path)
21813/*** ID3D12SDKConfiguration1 methods ***/
21814#define ID3D12SDKConfiguration1_CreateDeviceFactory(This,sdk_version,sdk_path,riid,ppv) (This)->lpVtbl->CreateDeviceFactory(This,sdk_version,sdk_path,riid,ppv)
21815#define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) (This)->lpVtbl->FreeUnusedSDKs(This)
21816#else
21817/*** IUnknown methods ***/
21818static inline HRESULT ID3D12SDKConfiguration1_QueryInterface(ID3D12SDKConfiguration1* This,REFIID riid,void **ppvObject) {
21819 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21820}
21821static inline ULONG ID3D12SDKConfiguration1_AddRef(ID3D12SDKConfiguration1* This) {
21822 return This->lpVtbl->AddRef(This);
21823}
21824static inline ULONG ID3D12SDKConfiguration1_Release(ID3D12SDKConfiguration1* This) {
21825 return This->lpVtbl->Release(This);
21826}
21827/*** ID3D12SDKConfiguration methods ***/
21828static inline HRESULT ID3D12SDKConfiguration1_SetSDKVersion(ID3D12SDKConfiguration1* This,UINT version,const char *path) {
21829 return This->lpVtbl->SetSDKVersion(This,version,path);
21830}
21831/*** ID3D12SDKConfiguration1 methods ***/
21832static inline HRESULT ID3D12SDKConfiguration1_CreateDeviceFactory(ID3D12SDKConfiguration1* This,UINT sdk_version,const char *sdk_path,REFIID riid,void **ppv) {
21833 return This->lpVtbl->CreateDeviceFactory(This,sdk_version,sdk_path,riid,ppv);
21834}
21835static inline void ID3D12SDKConfiguration1_FreeUnusedSDKs(ID3D12SDKConfiguration1* This) {
21836 This->lpVtbl->FreeUnusedSDKs(This);
21837}
21838#endif
21839#endif
21840
21841#endif
21842
21843
21844#endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */
21845
21846typedef enum D3D12_DEVICE_FACTORY_FLAGS {
21847 D3D12_DEVICE_FACTORY_FLAG_NONE = 0,
21848 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1,
21849 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2,
21850 D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4
21851} D3D12_DEVICE_FACTORY_FLAGS;
21852DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEVICE_FACTORY_FLAGS)
21853/*****************************************************************************
21854 * ID3D12DeviceFactory interface
21855 */
21856#ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__
21857#define __ID3D12DeviceFactory_INTERFACE_DEFINED__
21858
21859DEFINE_GUID(IID_ID3D12DeviceFactory, 0x61f307d3, 0xd34e, 0x4e7c, 0x83,0x74, 0x3b,0xa4,0xde,0x23,0xcc,0xcb);
21860#if defined(__cplusplus) && !defined(CINTERFACE)
21861MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb")
21862ID3D12DeviceFactory : public IUnknown
21863{
21864 virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState(
21865 ) = 0;
21866
21867 virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState(
21868 ) = 0;
21869
21870 virtual HRESULT STDMETHODCALLTYPE SetFlags(
21871 D3D12_DEVICE_FACTORY_FLAGS flags) = 0;
21872
21873 virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags(
21874 ) = 0;
21875
21876 virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface(
21877 REFCLSID clsid,
21878 REFIID iid,
21879 void **ppv) = 0;
21880
21881 virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures(
21882 UINT num_features,
21883 const IID *iids,
21884 void *configuration_structs,
21885 UINT *configuration_struct_sizes) = 0;
21886
21887 virtual HRESULT STDMETHODCALLTYPE CreateDevice(
21888 IUnknown *adapter,
21889 D3D_FEATURE_LEVEL feature_level,
21890 REFIID riid,
21891 void **ppv_device) = 0;
21892
21893};
21894#ifdef __CRT_UUID_DECL
21895__CRT_UUID_DECL(ID3D12DeviceFactory, 0x61f307d3, 0xd34e, 0x4e7c, 0x83,0x74, 0x3b,0xa4,0xde,0x23,0xcc,0xcb)
21896#endif
21897#else
21898typedef struct ID3D12DeviceFactoryVtbl {
21899 BEGIN_INTERFACE
21900
21901 /*** IUnknown methods ***/
21902 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21903 ID3D12DeviceFactory *This,
21904 REFIID riid,
21905 void **ppvObject);
21906
21907 ULONG (STDMETHODCALLTYPE *AddRef)(
21908 ID3D12DeviceFactory *This);
21909
21910 ULONG (STDMETHODCALLTYPE *Release)(
21911 ID3D12DeviceFactory *This);
21912
21913 /*** ID3D12DeviceFactory methods ***/
21914 HRESULT (STDMETHODCALLTYPE *InitializeFromGlobalState)(
21915 ID3D12DeviceFactory *This);
21916
21917 HRESULT (STDMETHODCALLTYPE *ApplyToGlobalState)(
21918 ID3D12DeviceFactory *This);
21919
21920 HRESULT (STDMETHODCALLTYPE *SetFlags)(
21921 ID3D12DeviceFactory *This,
21922 D3D12_DEVICE_FACTORY_FLAGS flags);
21923
21924 D3D12_DEVICE_FACTORY_FLAGS (STDMETHODCALLTYPE *GetFlags)(
21925 ID3D12DeviceFactory *This);
21926
21927 HRESULT (STDMETHODCALLTYPE *GetConfigurationInterface)(
21928 ID3D12DeviceFactory *This,
21929 REFCLSID clsid,
21930 REFIID iid,
21931 void **ppv);
21932
21933 HRESULT (STDMETHODCALLTYPE *EnableExperimentalFeatures)(
21934 ID3D12DeviceFactory *This,
21935 UINT num_features,
21936 const IID *iids,
21937 void *configuration_structs,
21938 UINT *configuration_struct_sizes);
21939
21940 HRESULT (STDMETHODCALLTYPE *CreateDevice)(
21941 ID3D12DeviceFactory *This,
21942 IUnknown *adapter,
21943 D3D_FEATURE_LEVEL feature_level,
21944 REFIID riid,
21945 void **ppv_device);
21946
21947 END_INTERFACE
21948} ID3D12DeviceFactoryVtbl;
21949
21950interface ID3D12DeviceFactory {
21951 CONST_VTBL ID3D12DeviceFactoryVtbl* lpVtbl;
21952};
21953
21954#ifdef COBJMACROS
21955#ifndef WIDL_C_INLINE_WRAPPERS
21956/*** IUnknown methods ***/
21957#define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21958#define ID3D12DeviceFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
21959#define ID3D12DeviceFactory_Release(This) (This)->lpVtbl->Release(This)
21960/*** ID3D12DeviceFactory methods ***/
21961#define ID3D12DeviceFactory_InitializeFromGlobalState(This) (This)->lpVtbl->InitializeFromGlobalState(This)
21962#define ID3D12DeviceFactory_ApplyToGlobalState(This) (This)->lpVtbl->ApplyToGlobalState(This)
21963#define ID3D12DeviceFactory_SetFlags(This,flags) (This)->lpVtbl->SetFlags(This,flags)
21964#define ID3D12DeviceFactory_GetFlags(This) (This)->lpVtbl->GetFlags(This)
21965#define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) (This)->lpVtbl->GetConfigurationInterface(This,clsid,iid,ppv)
21966#define ID3D12DeviceFactory_EnableExperimentalFeatures(This,num_features,iids,configuration_structs,configuration_struct_sizes) (This)->lpVtbl->EnableExperimentalFeatures(This,num_features,iids,configuration_structs,configuration_struct_sizes)
21967#define ID3D12DeviceFactory_CreateDevice(This,adapter,feature_level,riid,ppv_device) (This)->lpVtbl->CreateDevice(This,adapter,feature_level,riid,ppv_device)
21968#else
21969/*** IUnknown methods ***/
21970static inline HRESULT ID3D12DeviceFactory_QueryInterface(ID3D12DeviceFactory* This,REFIID riid,void **ppvObject) {
21971 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21972}
21973static inline ULONG ID3D12DeviceFactory_AddRef(ID3D12DeviceFactory* This) {
21974 return This->lpVtbl->AddRef(This);
21975}
21976static inline ULONG ID3D12DeviceFactory_Release(ID3D12DeviceFactory* This) {
21977 return This->lpVtbl->Release(This);
21978}
21979/*** ID3D12DeviceFactory methods ***/
21980static inline HRESULT ID3D12DeviceFactory_InitializeFromGlobalState(ID3D12DeviceFactory* This) {
21981 return This->lpVtbl->InitializeFromGlobalState(This);
21982}
21983static inline HRESULT ID3D12DeviceFactory_ApplyToGlobalState(ID3D12DeviceFactory* This) {
21984 return This->lpVtbl->ApplyToGlobalState(This);
21985}
21986static inline HRESULT ID3D12DeviceFactory_SetFlags(ID3D12DeviceFactory* This,D3D12_DEVICE_FACTORY_FLAGS flags) {
21987 return This->lpVtbl->SetFlags(This,flags);
21988}
21989static inline D3D12_DEVICE_FACTORY_FLAGS ID3D12DeviceFactory_GetFlags(ID3D12DeviceFactory* This) {
21990 return This->lpVtbl->GetFlags(This);
21991}
21992static inline HRESULT ID3D12DeviceFactory_GetConfigurationInterface(ID3D12DeviceFactory* This,REFCLSID clsid,REFIID iid,void **ppv) {
21993 return This->lpVtbl->GetConfigurationInterface(This,clsid,iid,ppv);
21994}
21995static inline HRESULT ID3D12DeviceFactory_EnableExperimentalFeatures(ID3D12DeviceFactory* This,UINT num_features,const IID *iids,void *configuration_structs,UINT *configuration_struct_sizes) {
21996 return This->lpVtbl->EnableExperimentalFeatures(This,num_features,iids,configuration_structs,configuration_struct_sizes);
21997}
21998static inline HRESULT ID3D12DeviceFactory_CreateDevice(ID3D12DeviceFactory* This,IUnknown *adapter,D3D_FEATURE_LEVEL feature_level,REFIID riid,void **ppv_device) {
21999 return This->lpVtbl->CreateDevice(This,adapter,feature_level,riid,ppv_device);
22000}
22001#endif
22002#endif
22003
22004#endif
22005
22006
22007#endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */
22008
22009typedef enum D3D12_DEVICE_FLAGS {
22010 D3D12_DEVICE_FLAG_NONE = 0,
22011 D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1,
22012 D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2,
22013 D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4,
22014 D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8,
22015 D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10,
22016 D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20,
22017 D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40,
22018 D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80,
22019 D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100,
22020 D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200,
22021 D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400
22022} D3D12_DEVICE_FLAGS;
22023DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEVICE_FLAGS)
22024typedef struct D3D12_DEVICE_CONFIGURATION_DESC {
22025 D3D12_DEVICE_FLAGS Flags;
22026 UINT GpuBasedValidationFlags;
22027 UINT SDKVersion;
22028 UINT NumEnabledExperimentalFeatures;
22029} D3D12_DEVICE_CONFIGURATION_DESC;
22030/*****************************************************************************
22031 * ID3D12DeviceConfiguration interface
22032 */
22033#ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
22034#define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
22035
22036DEFINE_GUID(IID_ID3D12DeviceConfiguration, 0x78dbf87b, 0xf766, 0x422b, 0xa6,0x1c, 0xc8,0xc4,0x46,0xbd,0xb9,0xad);
22037#if defined(__cplusplus) && !defined(CINTERFACE)
22038MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad")
22039ID3D12DeviceConfiguration : public IUnknown
22040{
22041#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
22042 virtual D3D12_DEVICE_CONFIGURATION_DESC* STDMETHODCALLTYPE GetDesc(
22043 D3D12_DEVICE_CONFIGURATION_DESC *__ret) = 0;
22044 D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc(
22045 )
22046 {
22047 D3D12_DEVICE_CONFIGURATION_DESC __ret;
22048 return *GetDesc(&__ret);
22049 }
22050#else
22051 virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc(
22052 ) = 0;
22053#endif
22054
22055 virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures(
22056 GUID *guids,
22057 UINT num_guids) = 0;
22058
22059 virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature(
22060 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
22061 ID3DBlob **result,
22062 ID3DBlob **error) = 0;
22063
22064 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer(
22065 const void *blob,
22066 SIZE_T size,
22067 REFIID riid,
22068 void **deserializer) = 0;
22069
22070};
22071#ifdef __CRT_UUID_DECL
22072__CRT_UUID_DECL(ID3D12DeviceConfiguration, 0x78dbf87b, 0xf766, 0x422b, 0xa6,0x1c, 0xc8,0xc4,0x46,0xbd,0xb9,0xad)
22073#endif
22074#else
22075typedef struct ID3D12DeviceConfigurationVtbl {
22076 BEGIN_INTERFACE
22077
22078 /*** IUnknown methods ***/
22079 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22080 ID3D12DeviceConfiguration *This,
22081 REFIID riid,
22082 void **ppvObject);
22083
22084 ULONG (STDMETHODCALLTYPE *AddRef)(
22085 ID3D12DeviceConfiguration *This);
22086
22087 ULONG (STDMETHODCALLTYPE *Release)(
22088 ID3D12DeviceConfiguration *This);
22089
22090 /*** ID3D12DeviceConfiguration methods ***/
22091 D3D12_DEVICE_CONFIGURATION_DESC * (STDMETHODCALLTYPE *GetDesc)(
22092 ID3D12DeviceConfiguration *This,
22093 D3D12_DEVICE_CONFIGURATION_DESC *__ret);
22094
22095 HRESULT (STDMETHODCALLTYPE *GetEnabledExperimentalFeatures)(
22096 ID3D12DeviceConfiguration *This,
22097 GUID *guids,
22098 UINT num_guids);
22099
22100 HRESULT (STDMETHODCALLTYPE *SerializeVersionedRootSignature)(
22101 ID3D12DeviceConfiguration *This,
22102 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
22103 ID3DBlob **result,
22104 ID3DBlob **error);
22105
22106 HRESULT (STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer)(
22107 ID3D12DeviceConfiguration *This,
22108 const void *blob,
22109 SIZE_T size,
22110 REFIID riid,
22111 void **deserializer);
22112
22113 END_INTERFACE
22114} ID3D12DeviceConfigurationVtbl;
22115
22116interface ID3D12DeviceConfiguration {
22117 CONST_VTBL ID3D12DeviceConfigurationVtbl* lpVtbl;
22118};
22119
22120#ifdef COBJMACROS
22121#ifndef WIDL_C_INLINE_WRAPPERS
22122/*** IUnknown methods ***/
22123#define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22124#define ID3D12DeviceConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This)
22125#define ID3D12DeviceConfiguration_Release(This) (This)->lpVtbl->Release(This)
22126/*** ID3D12DeviceConfiguration methods ***/
22127#define ID3D12DeviceConfiguration_GetDesc(This) ID3D12DeviceConfiguration_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
22128#define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,guids,num_guids) (This)->lpVtbl->GetEnabledExperimentalFeatures(This,guids,num_guids)
22129#define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,desc,result,error) (This)->lpVtbl->SerializeVersionedRootSignature(This,desc,result,error)
22130#define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,blob,size,riid,deserializer) (This)->lpVtbl->CreateVersionedRootSignatureDeserializer(This,blob,size,riid,deserializer)
22131#else
22132/*** IUnknown methods ***/
22133static inline HRESULT ID3D12DeviceConfiguration_QueryInterface(ID3D12DeviceConfiguration* This,REFIID riid,void **ppvObject) {
22134 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22135}
22136static inline ULONG ID3D12DeviceConfiguration_AddRef(ID3D12DeviceConfiguration* This) {
22137 return This->lpVtbl->AddRef(This);
22138}
22139static inline ULONG ID3D12DeviceConfiguration_Release(ID3D12DeviceConfiguration* This) {
22140 return This->lpVtbl->Release(This);
22141}
22142/*** ID3D12DeviceConfiguration methods ***/
22143static inline D3D12_DEVICE_CONFIGURATION_DESC ID3D12DeviceConfiguration_GetDesc(ID3D12DeviceConfiguration* This) {
22144 D3D12_DEVICE_CONFIGURATION_DESC __ret;
22145 return *This->lpVtbl->GetDesc(This,&__ret);
22146}
22147static inline HRESULT ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(ID3D12DeviceConfiguration* This,GUID *guids,UINT num_guids) {
22148 return This->lpVtbl->GetEnabledExperimentalFeatures(This,guids,num_guids);
22149}
22150static inline HRESULT ID3D12DeviceConfiguration_SerializeVersionedRootSignature(ID3D12DeviceConfiguration* This,const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,ID3DBlob **result,ID3DBlob **error) {
22151 return This->lpVtbl->SerializeVersionedRootSignature(This,desc,result,error);
22152}
22153static inline HRESULT ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(ID3D12DeviceConfiguration* This,const void *blob,SIZE_T size,REFIID riid,void **deserializer) {
22154 return This->lpVtbl->CreateVersionedRootSignatureDeserializer(This,blob,size,riid,deserializer);
22155}
22156#endif
22157#endif
22158
22159#endif
22160
22161
22162#endif /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */
22163
22164typedef enum D3D12_AXIS_SHADING_RATE {
22165 D3D12_AXIS_SHADING_RATE_1X = 0x0,
22166 D3D12_AXIS_SHADING_RATE_2X = 0x1,
22167 D3D12_AXIS_SHADING_RATE_4X = 0x2
22168} D3D12_AXIS_SHADING_RATE;
22169typedef enum D3D12_SHADING_RATE {
22170 D3D12_SHADING_RATE_1X1 = 0x0,
22171 D3D12_SHADING_RATE_1X2 = 0x1,
22172 D3D12_SHADING_RATE_2X1 = 0x4,
22173 D3D12_SHADING_RATE_2X2 = 0x5,
22174 D3D12_SHADING_RATE_2X4 = 0x6,
22175 D3D12_SHADING_RATE_4X2 = 0x9,
22176 D3D12_SHADING_RATE_4X4 = 0xa
22177} D3D12_SHADING_RATE;
22178typedef enum D3D12_SHADING_RATE_COMBINER {
22179 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0x0,
22180 D3D12_SHADING_RATE_COMBINER_OVERRIDE = 0x1,
22181 D3D12_SHADING_RATE_COMBINER_MIN = 0x2,
22182 D3D12_SHADING_RATE_COMBINER_MAX = 0x3,
22183 D3D12_SHADING_RATE_COMBINER_SUM = 0x4
22184} D3D12_SHADING_RATE_COMBINER;
22185/*****************************************************************************
22186 * ID3D12GraphicsCommandList5 interface
22187 */
22188#ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
22189#define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
22190
22191DEFINE_GUID(IID_ID3D12GraphicsCommandList5, 0x55050859, 0x4024, 0x474c, 0x87,0xf5, 0x64,0x72,0xea,0xee,0x44,0xea);
22192#if defined(__cplusplus) && !defined(CINTERFACE)
22193MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea")
22194ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4
22195{
22196 virtual void STDMETHODCALLTYPE RSSetShadingRate(
22197 D3D12_SHADING_RATE base_shading_rate,
22198 const D3D12_SHADING_RATE_COMBINER *combiners) = 0;
22199
22200 virtual void STDMETHODCALLTYPE RSSetShadingRateImage(
22201 ID3D12Resource *shading_rate_image) = 0;
22202
22203};
22204#ifdef __CRT_UUID_DECL
22205__CRT_UUID_DECL(ID3D12GraphicsCommandList5, 0x55050859, 0x4024, 0x474c, 0x87,0xf5, 0x64,0x72,0xea,0xee,0x44,0xea)
22206#endif
22207#else
22208typedef struct ID3D12GraphicsCommandList5Vtbl {
22209 BEGIN_INTERFACE
22210
22211 /*** IUnknown methods ***/
22212 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22213 ID3D12GraphicsCommandList5 *This,
22214 REFIID riid,
22215 void **ppvObject);
22216
22217 ULONG (STDMETHODCALLTYPE *AddRef)(
22218 ID3D12GraphicsCommandList5 *This);
22219
22220 ULONG (STDMETHODCALLTYPE *Release)(
22221 ID3D12GraphicsCommandList5 *This);
22222
22223 /*** ID3D12Object methods ***/
22224 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
22225 ID3D12GraphicsCommandList5 *This,
22226 REFGUID guid,
22227 UINT *data_size,
22228 void *data);
22229
22230 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
22231 ID3D12GraphicsCommandList5 *This,
22232 REFGUID guid,
22233 UINT data_size,
22234 const void *data);
22235
22236 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
22237 ID3D12GraphicsCommandList5 *This,
22238 REFGUID guid,
22239 const IUnknown *data);
22240
22241 HRESULT (STDMETHODCALLTYPE *SetName)(
22242 ID3D12GraphicsCommandList5 *This,
22243 const WCHAR *name);
22244
22245 /*** ID3D12DeviceChild methods ***/
22246 HRESULT (STDMETHODCALLTYPE *GetDevice)(
22247 ID3D12GraphicsCommandList5 *This,
22248 REFIID riid,
22249 void **device);
22250
22251 /*** ID3D12CommandList methods ***/
22252 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
22253 ID3D12GraphicsCommandList5 *This);
22254
22255 /*** ID3D12GraphicsCommandList methods ***/
22256 HRESULT (STDMETHODCALLTYPE *Close)(
22257 ID3D12GraphicsCommandList5 *This);
22258
22259 HRESULT (STDMETHODCALLTYPE *Reset)(
22260 ID3D12GraphicsCommandList5 *This,
22261 ID3D12CommandAllocator *allocator,
22262 ID3D12PipelineState *initial_state);
22263
22264 void (STDMETHODCALLTYPE *ClearState)(
22265 ID3D12GraphicsCommandList5 *This,
22266 ID3D12PipelineState *pipeline_state);
22267
22268 void (STDMETHODCALLTYPE *DrawInstanced)(
22269 ID3D12GraphicsCommandList5 *This,
22270 UINT vertex_count_per_instance,
22271 UINT instance_count,
22272 UINT start_vertex_location,
22273 UINT start_instance_location);
22274
22275 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
22276 ID3D12GraphicsCommandList5 *This,
22277 UINT index_count_per_instance,
22278 UINT instance_count,
22279 UINT start_vertex_location,
22280 INT base_vertex_location,
22281 UINT start_instance_location);
22282
22283 void (STDMETHODCALLTYPE *Dispatch)(
22284 ID3D12GraphicsCommandList5 *This,
22285 UINT x,
22286 UINT u,
22287 UINT z);
22288
22289 void (STDMETHODCALLTYPE *CopyBufferRegion)(
22290 ID3D12GraphicsCommandList5 *This,
22291 ID3D12Resource *dst_buffer,
22292 UINT64 dst_offset,
22293 ID3D12Resource *src_buffer,
22294 UINT64 src_offset,
22295 UINT64 byte_count);
22296
22297 void (STDMETHODCALLTYPE *CopyTextureRegion)(
22298 ID3D12GraphicsCommandList5 *This,
22299 const D3D12_TEXTURE_COPY_LOCATION *dst,
22300 UINT dst_x,
22301 UINT dst_y,
22302 UINT dst_z,
22303 const D3D12_TEXTURE_COPY_LOCATION *src,
22304 const D3D12_BOX *src_box);
22305
22306 void (STDMETHODCALLTYPE *CopyResource)(
22307 ID3D12GraphicsCommandList5 *This,
22308 ID3D12Resource *dst_resource,
22309 ID3D12Resource *src_resource);
22310
22311 void (STDMETHODCALLTYPE *CopyTiles)(
22312 ID3D12GraphicsCommandList5 *This,
22313 ID3D12Resource *tiled_resource,
22314 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
22315 const D3D12_TILE_REGION_SIZE *tile_region_size,
22316 ID3D12Resource *buffer,
22317 UINT64 buffer_offset,
22318 D3D12_TILE_COPY_FLAGS flags);
22319
22320 void (STDMETHODCALLTYPE *ResolveSubresource)(
22321 ID3D12GraphicsCommandList5 *This,
22322 ID3D12Resource *dst_resource,
22323 UINT dst_sub_resource,
22324 ID3D12Resource *src_resource,
22325 UINT src_sub_resource,
22326 DXGI_FORMAT format);
22327
22328 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
22329 ID3D12GraphicsCommandList5 *This,
22330 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
22331
22332 void (STDMETHODCALLTYPE *RSSetViewports)(
22333 ID3D12GraphicsCommandList5 *This,
22334 UINT viewport_count,
22335 const D3D12_VIEWPORT *viewports);
22336
22337 void (STDMETHODCALLTYPE *RSSetScissorRects)(
22338 ID3D12GraphicsCommandList5 *This,
22339 UINT rect_count,
22340 const D3D12_RECT *rects);
22341
22342 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
22343 ID3D12GraphicsCommandList5 *This,
22344 const FLOAT blend_factor[4]);
22345
22346 void (STDMETHODCALLTYPE *OMSetStencilRef)(
22347 ID3D12GraphicsCommandList5 *This,
22348 UINT stencil_ref);
22349
22350 void (STDMETHODCALLTYPE *SetPipelineState)(
22351 ID3D12GraphicsCommandList5 *This,
22352 ID3D12PipelineState *pipeline_state);
22353
22354 void (STDMETHODCALLTYPE *ResourceBarrier)(
22355 ID3D12GraphicsCommandList5 *This,
22356 UINT barrier_count,
22357 const D3D12_RESOURCE_BARRIER *barriers);
22358
22359 void (STDMETHODCALLTYPE *ExecuteBundle)(
22360 ID3D12GraphicsCommandList5 *This,
22361 ID3D12GraphicsCommandList *command_list);
22362
22363 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
22364 ID3D12GraphicsCommandList5 *This,
22365 UINT heap_count,
22366 ID3D12DescriptorHeap *const *heaps);
22367
22368 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
22369 ID3D12GraphicsCommandList5 *This,
22370 ID3D12RootSignature *root_signature);
22371
22372 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
22373 ID3D12GraphicsCommandList5 *This,
22374 ID3D12RootSignature *root_signature);
22375
22376 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
22377 ID3D12GraphicsCommandList5 *This,
22378 UINT root_parameter_index,
22379 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
22380
22381 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
22382 ID3D12GraphicsCommandList5 *This,
22383 UINT root_parameter_index,
22384 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
22385
22386 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
22387 ID3D12GraphicsCommandList5 *This,
22388 UINT root_parameter_index,
22389 UINT data,
22390 UINT dst_offset);
22391
22392 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
22393 ID3D12GraphicsCommandList5 *This,
22394 UINT root_parameter_index,
22395 UINT data,
22396 UINT dst_offset);
22397
22398 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
22399 ID3D12GraphicsCommandList5 *This,
22400 UINT root_parameter_index,
22401 UINT constant_count,
22402 const void *data,
22403 UINT dst_offset);
22404
22405 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
22406 ID3D12GraphicsCommandList5 *This,
22407 UINT root_parameter_index,
22408 UINT constant_count,
22409 const void *data,
22410 UINT dst_offset);
22411
22412 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
22413 ID3D12GraphicsCommandList5 *This,
22414 UINT root_parameter_index,
22415 D3D12_GPU_VIRTUAL_ADDRESS address);
22416
22417 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
22418 ID3D12GraphicsCommandList5 *This,
22419 UINT root_parameter_index,
22420 D3D12_GPU_VIRTUAL_ADDRESS address);
22421
22422 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
22423 ID3D12GraphicsCommandList5 *This,
22424 UINT root_parameter_index,
22425 D3D12_GPU_VIRTUAL_ADDRESS address);
22426
22427 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
22428 ID3D12GraphicsCommandList5 *This,
22429 UINT root_parameter_index,
22430 D3D12_GPU_VIRTUAL_ADDRESS address);
22431
22432 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
22433 ID3D12GraphicsCommandList5 *This,
22434 UINT root_parameter_index,
22435 D3D12_GPU_VIRTUAL_ADDRESS address);
22436
22437 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
22438 ID3D12GraphicsCommandList5 *This,
22439 UINT root_parameter_index,
22440 D3D12_GPU_VIRTUAL_ADDRESS address);
22441
22442 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
22443 ID3D12GraphicsCommandList5 *This,
22444 const D3D12_INDEX_BUFFER_VIEW *view);
22445
22446 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
22447 ID3D12GraphicsCommandList5 *This,
22448 UINT start_slot,
22449 UINT view_count,
22450 const D3D12_VERTEX_BUFFER_VIEW *views);
22451
22452 void (STDMETHODCALLTYPE *SOSetTargets)(
22453 ID3D12GraphicsCommandList5 *This,
22454 UINT start_slot,
22455 UINT view_count,
22456 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
22457
22458 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
22459 ID3D12GraphicsCommandList5 *This,
22460 UINT render_target_descriptor_count,
22461 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
22462 WINBOOL single_descriptor_handle,
22463 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
22464
22465 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
22466 ID3D12GraphicsCommandList5 *This,
22467 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
22468 D3D12_CLEAR_FLAGS flags,
22469 FLOAT depth,
22470 UINT8 stencil,
22471 UINT rect_count,
22472 const D3D12_RECT *rects);
22473
22474 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
22475 ID3D12GraphicsCommandList5 *This,
22476 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
22477 const FLOAT color[4],
22478 UINT rect_count,
22479 const D3D12_RECT *rects);
22480
22481 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
22482 ID3D12GraphicsCommandList5 *This,
22483 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
22484 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
22485 ID3D12Resource *resource,
22486 const UINT values[4],
22487 UINT rect_count,
22488 const D3D12_RECT *rects);
22489
22490 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
22491 ID3D12GraphicsCommandList5 *This,
22492 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
22493 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
22494 ID3D12Resource *resource,
22495 const float values[4],
22496 UINT rect_count,
22497 const D3D12_RECT *rects);
22498
22499 void (STDMETHODCALLTYPE *DiscardResource)(
22500 ID3D12GraphicsCommandList5 *This,
22501 ID3D12Resource *resource,
22502 const D3D12_DISCARD_REGION *region);
22503
22504 void (STDMETHODCALLTYPE *BeginQuery)(
22505 ID3D12GraphicsCommandList5 *This,
22506 ID3D12QueryHeap *heap,
22507 D3D12_QUERY_TYPE type,
22508 UINT index);
22509
22510 void (STDMETHODCALLTYPE *EndQuery)(
22511 ID3D12GraphicsCommandList5 *This,
22512 ID3D12QueryHeap *heap,
22513 D3D12_QUERY_TYPE type,
22514 UINT index);
22515
22516 void (STDMETHODCALLTYPE *ResolveQueryData)(
22517 ID3D12GraphicsCommandList5 *This,
22518 ID3D12QueryHeap *heap,
22519 D3D12_QUERY_TYPE type,
22520 UINT start_index,
22521 UINT query_count,
22522 ID3D12Resource *dst_buffer,
22523 UINT64 aligned_dst_buffer_offset);
22524
22525 void (STDMETHODCALLTYPE *SetPredication)(
22526 ID3D12GraphicsCommandList5 *This,
22527 ID3D12Resource *buffer,
22528 UINT64 aligned_buffer_offset,
22529 D3D12_PREDICATION_OP operation);
22530
22531 void (STDMETHODCALLTYPE *SetMarker)(
22532 ID3D12GraphicsCommandList5 *This,
22533 UINT metadata,
22534 const void *data,
22535 UINT size);
22536
22537 void (STDMETHODCALLTYPE *BeginEvent)(
22538 ID3D12GraphicsCommandList5 *This,
22539 UINT metadata,
22540 const void *data,
22541 UINT size);
22542
22543 void (STDMETHODCALLTYPE *EndEvent)(
22544 ID3D12GraphicsCommandList5 *This);
22545
22546 void (STDMETHODCALLTYPE *ExecuteIndirect)(
22547 ID3D12GraphicsCommandList5 *This,
22548 ID3D12CommandSignature *command_signature,
22549 UINT max_command_count,
22550 ID3D12Resource *arg_buffer,
22551 UINT64 arg_buffer_offset,
22552 ID3D12Resource *count_buffer,
22553 UINT64 count_buffer_offset);
22554
22555 /*** ID3D12GraphicsCommandList1 methods ***/
22556 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
22557 ID3D12GraphicsCommandList5 *This,
22558 ID3D12Resource *dst_buffer,
22559 UINT64 dst_offset,
22560 ID3D12Resource *src_buffer,
22561 UINT64 src_offset,
22562 UINT dependent_resource_count,
22563 ID3D12Resource *const *dependent_resources,
22564 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
22565
22566 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
22567 ID3D12GraphicsCommandList5 *This,
22568 ID3D12Resource *dst_buffer,
22569 UINT64 dst_offset,
22570 ID3D12Resource *src_buffer,
22571 UINT64 src_offset,
22572 UINT dependent_resource_count,
22573 ID3D12Resource *const *dependent_resources,
22574 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
22575
22576 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
22577 ID3D12GraphicsCommandList5 *This,
22578 FLOAT min,
22579 FLOAT max);
22580
22581 void (STDMETHODCALLTYPE *SetSamplePositions)(
22582 ID3D12GraphicsCommandList5 *This,
22583 UINT sample_count,
22584 UINT pixel_count,
22585 D3D12_SAMPLE_POSITION *sample_positions);
22586
22587 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
22588 ID3D12GraphicsCommandList5 *This,
22589 ID3D12Resource *dst_resource,
22590 UINT dst_sub_resource_idx,
22591 UINT dst_x,
22592 UINT dst_y,
22593 ID3D12Resource *src_resource,
22594 UINT src_sub_resource_idx,
22595 D3D12_RECT *src_rect,
22596 DXGI_FORMAT format,
22597 D3D12_RESOLVE_MODE mode);
22598
22599 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
22600 ID3D12GraphicsCommandList5 *This,
22601 UINT mask);
22602
22603 /*** ID3D12GraphicsCommandList2 methods ***/
22604 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
22605 ID3D12GraphicsCommandList5 *This,
22606 UINT count,
22607 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
22608 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
22609
22610 /*** ID3D12GraphicsCommandList3 methods ***/
22611 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
22612 ID3D12GraphicsCommandList5 *This,
22613 ID3D12ProtectedResourceSession *protected_resource_session);
22614
22615 /*** ID3D12GraphicsCommandList4 methods ***/
22616 void (STDMETHODCALLTYPE *BeginRenderPass)(
22617 ID3D12GraphicsCommandList5 *This,
22618 UINT render_targets_count,
22619 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
22620 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
22621 D3D12_RENDER_PASS_FLAGS flags);
22622
22623 void (STDMETHODCALLTYPE *EndRenderPass)(
22624 ID3D12GraphicsCommandList5 *This);
22625
22626 void (STDMETHODCALLTYPE *InitializeMetaCommand)(
22627 ID3D12GraphicsCommandList5 *This,
22628 ID3D12MetaCommand *meta_command,
22629 const void *initialization_parameters_data,
22630 SIZE_T initialization_parameters_data_size_in_bytes);
22631
22632 void (STDMETHODCALLTYPE *ExecuteMetaCommand)(
22633 ID3D12GraphicsCommandList5 *This,
22634 ID3D12MetaCommand *meta_command,
22635 const void *execution_parameters_data,
22636 SIZE_T execution_parameters_data_size_in_bytes);
22637
22638 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)(
22639 ID3D12GraphicsCommandList5 *This,
22640 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
22641 UINT postbuild_info_descs_count,
22642 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
22643
22644 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)(
22645 ID3D12GraphicsCommandList5 *This,
22646 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
22647 UINT src_acceleration_structures_count,
22648 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
22649
22650 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)(
22651 ID3D12GraphicsCommandList5 *This,
22652 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
22653 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
22654 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
22655
22656 void (STDMETHODCALLTYPE *SetPipelineState1)(
22657 ID3D12GraphicsCommandList5 *This,
22658 ID3D12StateObject *state_object);
22659
22660 void (STDMETHODCALLTYPE *DispatchRays)(
22661 ID3D12GraphicsCommandList5 *This,
22662 const D3D12_DISPATCH_RAYS_DESC *desc);
22663
22664 /*** ID3D12GraphicsCommandList5 methods ***/
22665 void (STDMETHODCALLTYPE *RSSetShadingRate)(
22666 ID3D12GraphicsCommandList5 *This,
22667 D3D12_SHADING_RATE base_shading_rate,
22668 const D3D12_SHADING_RATE_COMBINER *combiners);
22669
22670 void (STDMETHODCALLTYPE *RSSetShadingRateImage)(
22671 ID3D12GraphicsCommandList5 *This,
22672 ID3D12Resource *shading_rate_image);
22673
22674 END_INTERFACE
22675} ID3D12GraphicsCommandList5Vtbl;
22676
22677interface ID3D12GraphicsCommandList5 {
22678 CONST_VTBL ID3D12GraphicsCommandList5Vtbl* lpVtbl;
22679};
22680
22681#ifdef COBJMACROS
22682#ifndef WIDL_C_INLINE_WRAPPERS
22683/*** IUnknown methods ***/
22684#define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22685#define ID3D12GraphicsCommandList5_AddRef(This) (This)->lpVtbl->AddRef(This)
22686#define ID3D12GraphicsCommandList5_Release(This) (This)->lpVtbl->Release(This)
22687/*** ID3D12Object methods ***/
22688#define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
22689#define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
22690#define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
22691#define ID3D12GraphicsCommandList5_SetName(This,name) (This)->lpVtbl->SetName(This,name)
22692/*** ID3D12DeviceChild methods ***/
22693#define ID3D12GraphicsCommandList5_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
22694/*** ID3D12CommandList methods ***/
22695#define ID3D12GraphicsCommandList5_GetType(This) (This)->lpVtbl->GetType(This)
22696/*** ID3D12GraphicsCommandList methods ***/
22697#define ID3D12GraphicsCommandList5_Close(This) (This)->lpVtbl->Close(This)
22698#define ID3D12GraphicsCommandList5_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
22699#define ID3D12GraphicsCommandList5_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
22700#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)
22701#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)
22702#define ID3D12GraphicsCommandList5_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
22703#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)
22704#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)
22705#define ID3D12GraphicsCommandList5_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
22706#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)
22707#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)
22708#define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
22709#define ID3D12GraphicsCommandList5_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
22710#define ID3D12GraphicsCommandList5_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
22711#define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
22712#define ID3D12GraphicsCommandList5_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
22713#define ID3D12GraphicsCommandList5_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
22714#define ID3D12GraphicsCommandList5_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
22715#define ID3D12GraphicsCommandList5_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
22716#define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
22717#define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
22718#define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
22719#define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
22720#define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
22721#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
22722#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
22723#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
22724#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
22725#define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
22726#define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
22727#define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
22728#define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
22729#define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
22730#define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
22731#define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
22732#define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
22733#define ID3D12GraphicsCommandList5_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
22734#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)
22735#define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
22736#define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
22737#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)
22738#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)
22739#define ID3D12GraphicsCommandList5_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
22740#define ID3D12GraphicsCommandList5_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
22741#define ID3D12GraphicsCommandList5_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
22742#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)
22743#define ID3D12GraphicsCommandList5_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
22744#define ID3D12GraphicsCommandList5_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
22745#define ID3D12GraphicsCommandList5_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
22746#define ID3D12GraphicsCommandList5_EndEvent(This) (This)->lpVtbl->EndEvent(This)
22747#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)
22748/*** ID3D12GraphicsCommandList1 methods ***/
22749#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)
22750#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)
22751#define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
22752#define ID3D12GraphicsCommandList5_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
22753#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)
22754#define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
22755/*** ID3D12GraphicsCommandList2 methods ***/
22756#define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
22757/*** ID3D12GraphicsCommandList3 methods ***/
22758#define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
22759/*** ID3D12GraphicsCommandList4 methods ***/
22760#define ID3D12GraphicsCommandList5_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags)
22761#define ID3D12GraphicsCommandList5_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This)
22762#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)
22763#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)
22764#define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs)
22765#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)
22766#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)
22767#define ID3D12GraphicsCommandList5_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object)
22768#define ID3D12GraphicsCommandList5_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc)
22769/*** ID3D12GraphicsCommandList5 methods ***/
22770#define ID3D12GraphicsCommandList5_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners)
22771#define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image)
22772#else
22773/*** IUnknown methods ***/
22774static inline HRESULT ID3D12GraphicsCommandList5_QueryInterface(ID3D12GraphicsCommandList5* This,REFIID riid,void **ppvObject) {
22775 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22776}
22777static inline ULONG ID3D12GraphicsCommandList5_AddRef(ID3D12GraphicsCommandList5* This) {
22778 return This->lpVtbl->AddRef(This);
22779}
22780static inline ULONG ID3D12GraphicsCommandList5_Release(ID3D12GraphicsCommandList5* This) {
22781 return This->lpVtbl->Release(This);
22782}
22783/*** ID3D12Object methods ***/
22784static inline HRESULT ID3D12GraphicsCommandList5_GetPrivateData(ID3D12GraphicsCommandList5* This,REFGUID guid,UINT *data_size,void *data) {
22785 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
22786}
22787static inline HRESULT ID3D12GraphicsCommandList5_SetPrivateData(ID3D12GraphicsCommandList5* This,REFGUID guid,UINT data_size,const void *data) {
22788 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
22789}
22790static inline HRESULT ID3D12GraphicsCommandList5_SetPrivateDataInterface(ID3D12GraphicsCommandList5* This,REFGUID guid,const IUnknown *data) {
22791 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
22792}
22793static inline HRESULT ID3D12GraphicsCommandList5_SetName(ID3D12GraphicsCommandList5* This,const WCHAR *name) {
22794 return This->lpVtbl->SetName(This,name);
22795}
22796/*** ID3D12DeviceChild methods ***/
22797static inline HRESULT ID3D12GraphicsCommandList5_GetDevice(ID3D12GraphicsCommandList5* This,REFIID riid,void **device) {
22798 return This->lpVtbl->GetDevice(This,riid,device);
22799}
22800/*** ID3D12CommandList methods ***/
22801static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList5_GetType(ID3D12GraphicsCommandList5* This) {
22802 return This->lpVtbl->GetType(This);
22803}
22804/*** ID3D12GraphicsCommandList methods ***/
22805static inline HRESULT ID3D12GraphicsCommandList5_Close(ID3D12GraphicsCommandList5* This) {
22806 return This->lpVtbl->Close(This);
22807}
22808static inline HRESULT ID3D12GraphicsCommandList5_Reset(ID3D12GraphicsCommandList5* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
22809 return This->lpVtbl->Reset(This,allocator,initial_state);
22810}
22811static inline void ID3D12GraphicsCommandList5_ClearState(ID3D12GraphicsCommandList5* This,ID3D12PipelineState *pipeline_state) {
22812 This->lpVtbl->ClearState(This,pipeline_state);
22813}
22814static inline void ID3D12GraphicsCommandList5_DrawInstanced(ID3D12GraphicsCommandList5* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
22815 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
22816}
22817static 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) {
22818 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
22819}
22820static inline void ID3D12GraphicsCommandList5_Dispatch(ID3D12GraphicsCommandList5* This,UINT x,UINT u,UINT z) {
22821 This->lpVtbl->Dispatch(This,x,u,z);
22822}
22823static inline void ID3D12GraphicsCommandList5_CopyBufferRegion(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
22824 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
22825}
22826static 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) {
22827 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
22828}
22829static inline void ID3D12GraphicsCommandList5_CopyResource(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
22830 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
22831}
22832static 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) {
22833 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
22834}
22835static inline void ID3D12GraphicsCommandList5_ResolveSubresource(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
22836 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
22837}
22838static inline void ID3D12GraphicsCommandList5_IASetPrimitiveTopology(ID3D12GraphicsCommandList5* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
22839 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
22840}
22841static inline void ID3D12GraphicsCommandList5_RSSetViewports(ID3D12GraphicsCommandList5* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
22842 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
22843}
22844static inline void ID3D12GraphicsCommandList5_RSSetScissorRects(ID3D12GraphicsCommandList5* This,UINT rect_count,const D3D12_RECT *rects) {
22845 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
22846}
22847static inline void ID3D12GraphicsCommandList5_OMSetBlendFactor(ID3D12GraphicsCommandList5* This,const FLOAT blend_factor[4]) {
22848 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
22849}
22850static inline void ID3D12GraphicsCommandList5_OMSetStencilRef(ID3D12GraphicsCommandList5* This,UINT stencil_ref) {
22851 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
22852}
22853static inline void ID3D12GraphicsCommandList5_SetPipelineState(ID3D12GraphicsCommandList5* This,ID3D12PipelineState *pipeline_state) {
22854 This->lpVtbl->SetPipelineState(This,pipeline_state);
22855}
22856static inline void ID3D12GraphicsCommandList5_ResourceBarrier(ID3D12GraphicsCommandList5* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
22857 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
22858}
22859static inline void ID3D12GraphicsCommandList5_ExecuteBundle(ID3D12GraphicsCommandList5* This,ID3D12GraphicsCommandList *command_list) {
22860 This->lpVtbl->ExecuteBundle(This,command_list);
22861}
22862static inline void ID3D12GraphicsCommandList5_SetDescriptorHeaps(ID3D12GraphicsCommandList5* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
22863 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
22864}
22865static inline void ID3D12GraphicsCommandList5_SetComputeRootSignature(ID3D12GraphicsCommandList5* This,ID3D12RootSignature *root_signature) {
22866 This->lpVtbl->SetComputeRootSignature(This,root_signature);
22867}
22868static inline void ID3D12GraphicsCommandList5_SetGraphicsRootSignature(ID3D12GraphicsCommandList5* This,ID3D12RootSignature *root_signature) {
22869 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
22870}
22871static inline void ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
22872 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
22873}
22874static inline void ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
22875 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
22876}
22877static inline void ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
22878 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
22879}
22880static inline void ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
22881 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
22882}
22883static inline void ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
22884 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
22885}
22886static inline void ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
22887 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
22888}
22889static inline void ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22890 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
22891}
22892static inline void ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22893 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
22894}
22895static inline void ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22896 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
22897}
22898static inline void ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22899 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
22900}
22901static inline void ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22902 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
22903}
22904static inline void ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
22905 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
22906}
22907static inline void ID3D12GraphicsCommandList5_IASetIndexBuffer(ID3D12GraphicsCommandList5* This,const D3D12_INDEX_BUFFER_VIEW *view) {
22908 This->lpVtbl->IASetIndexBuffer(This,view);
22909}
22910static inline void ID3D12GraphicsCommandList5_IASetVertexBuffers(ID3D12GraphicsCommandList5* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
22911 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
22912}
22913static inline void ID3D12GraphicsCommandList5_SOSetTargets(ID3D12GraphicsCommandList5* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
22914 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
22915}
22916static 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) {
22917 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
22918}
22919static 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) {
22920 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
22921}
22922static inline void ID3D12GraphicsCommandList5_ClearRenderTargetView(ID3D12GraphicsCommandList5* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
22923 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
22924}
22925static 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) {
22926 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
22927}
22928static 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) {
22929 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
22930}
22931static inline void ID3D12GraphicsCommandList5_DiscardResource(ID3D12GraphicsCommandList5* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
22932 This->lpVtbl->DiscardResource(This,resource,region);
22933}
22934static inline void ID3D12GraphicsCommandList5_BeginQuery(ID3D12GraphicsCommandList5* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
22935 This->lpVtbl->BeginQuery(This,heap,type,index);
22936}
22937static inline void ID3D12GraphicsCommandList5_EndQuery(ID3D12GraphicsCommandList5* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
22938 This->lpVtbl->EndQuery(This,heap,type,index);
22939}
22940static 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) {
22941 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
22942}
22943static inline void ID3D12GraphicsCommandList5_SetPredication(ID3D12GraphicsCommandList5* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
22944 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
22945}
22946static inline void ID3D12GraphicsCommandList5_SetMarker(ID3D12GraphicsCommandList5* This,UINT metadata,const void *data,UINT size) {
22947 This->lpVtbl->SetMarker(This,metadata,data,size);
22948}
22949static inline void ID3D12GraphicsCommandList5_BeginEvent(ID3D12GraphicsCommandList5* This,UINT metadata,const void *data,UINT size) {
22950 This->lpVtbl->BeginEvent(This,metadata,data,size);
22951}
22952static inline void ID3D12GraphicsCommandList5_EndEvent(ID3D12GraphicsCommandList5* This) {
22953 This->lpVtbl->EndEvent(This);
22954}
22955static 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) {
22956 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
22957}
22958/*** ID3D12GraphicsCommandList1 methods ***/
22959static 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) {
22960 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
22961}
22962static 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) {
22963 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
22964}
22965static inline void ID3D12GraphicsCommandList5_OMSetDepthBounds(ID3D12GraphicsCommandList5* This,FLOAT min,FLOAT max) {
22966 This->lpVtbl->OMSetDepthBounds(This,min,max);
22967}
22968static inline void ID3D12GraphicsCommandList5_SetSamplePositions(ID3D12GraphicsCommandList5* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
22969 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
22970}
22971static 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) {
22972 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
22973}
22974static inline void ID3D12GraphicsCommandList5_SetViewInstanceMask(ID3D12GraphicsCommandList5* This,UINT mask) {
22975 This->lpVtbl->SetViewInstanceMask(This,mask);
22976}
22977/*** ID3D12GraphicsCommandList2 methods ***/
22978static inline void ID3D12GraphicsCommandList5_WriteBufferImmediate(ID3D12GraphicsCommandList5* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
22979 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
22980}
22981/*** ID3D12GraphicsCommandList3 methods ***/
22982static inline void ID3D12GraphicsCommandList5_SetProtectedResourceSession(ID3D12GraphicsCommandList5* This,ID3D12ProtectedResourceSession *protected_resource_session) {
22983 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
22984}
22985/*** ID3D12GraphicsCommandList4 methods ***/
22986static 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) {
22987 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags);
22988}
22989static inline void ID3D12GraphicsCommandList5_EndRenderPass(ID3D12GraphicsCommandList5* This) {
22990 This->lpVtbl->EndRenderPass(This);
22991}
22992static inline void ID3D12GraphicsCommandList5_InitializeMetaCommand(ID3D12GraphicsCommandList5* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) {
22993 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes);
22994}
22995static inline void ID3D12GraphicsCommandList5_ExecuteMetaCommand(ID3D12GraphicsCommandList5* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) {
22996 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes);
22997}
22998static 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) {
22999 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs);
23000}
23001static 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) {
23002 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data);
23003}
23004static 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) {
23005 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode);
23006}
23007static inline void ID3D12GraphicsCommandList5_SetPipelineState1(ID3D12GraphicsCommandList5* This,ID3D12StateObject *state_object) {
23008 This->lpVtbl->SetPipelineState1(This,state_object);
23009}
23010static inline void ID3D12GraphicsCommandList5_DispatchRays(ID3D12GraphicsCommandList5* This,const D3D12_DISPATCH_RAYS_DESC *desc) {
23011 This->lpVtbl->DispatchRays(This,desc);
23012}
23013/*** ID3D12GraphicsCommandList5 methods ***/
23014static inline void ID3D12GraphicsCommandList5_RSSetShadingRate(ID3D12GraphicsCommandList5* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) {
23015 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners);
23016}
23017static inline void ID3D12GraphicsCommandList5_RSSetShadingRateImage(ID3D12GraphicsCommandList5* This,ID3D12Resource *shading_rate_image) {
23018 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image);
23019}
23020#endif
23021#endif
23022
23023#endif
23024
23025
23026#endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */
23027
23028#define D3D12_SHADING_RATE_X_AXIS_SHIFT (2)
23029
23030#define D3D12_SHADING_RATE_VALID_MASK (3)
23031
23032#define D3D12_MAKE_COARSE_SHADING_RATE(x, y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))
23033#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(val) (((val) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)
23034#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(val) ((val) & D3D12_SHADING_RATE_VALID_MASK)
23035typedef struct D3D12_DISPATCH_MESH_ARGUMENTS {
23036 UINT ThreadGroupCountX;
23037 UINT ThreadGroupCountY;
23038 UINT ThreadGroupCountZ;
23039} D3D12_DISPATCH_MESH_ARGUMENTS;
23040/*****************************************************************************
23041 * ID3D12GraphicsCommandList6 interface
23042 */
23043#ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
23044#define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
23045
23046DEFINE_GUID(IID_ID3D12GraphicsCommandList6, 0xc3827890, 0xe548, 0x4cfa, 0x96,0xcf, 0x56,0x89,0xa9,0x37,0x0f,0x80);
23047#if defined(__cplusplus) && !defined(CINTERFACE)
23048MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80")
23049ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5
23050{
23051 virtual void STDMETHODCALLTYPE DispatchMesh(
23052 UINT thread_group_count_x,
23053 UINT thread_group_count_y,
23054 UINT thread_group_count_z) = 0;
23055
23056};
23057#ifdef __CRT_UUID_DECL
23058__CRT_UUID_DECL(ID3D12GraphicsCommandList6, 0xc3827890, 0xe548, 0x4cfa, 0x96,0xcf, 0x56,0x89,0xa9,0x37,0x0f,0x80)
23059#endif
23060#else
23061typedef struct ID3D12GraphicsCommandList6Vtbl {
23062 BEGIN_INTERFACE
23063
23064 /*** IUnknown methods ***/
23065 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23066 ID3D12GraphicsCommandList6 *This,
23067 REFIID riid,
23068 void **ppvObject);
23069
23070 ULONG (STDMETHODCALLTYPE *AddRef)(
23071 ID3D12GraphicsCommandList6 *This);
23072
23073 ULONG (STDMETHODCALLTYPE *Release)(
23074 ID3D12GraphicsCommandList6 *This);
23075
23076 /*** ID3D12Object methods ***/
23077 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
23078 ID3D12GraphicsCommandList6 *This,
23079 REFGUID guid,
23080 UINT *data_size,
23081 void *data);
23082
23083 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
23084 ID3D12GraphicsCommandList6 *This,
23085 REFGUID guid,
23086 UINT data_size,
23087 const void *data);
23088
23089 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
23090 ID3D12GraphicsCommandList6 *This,
23091 REFGUID guid,
23092 const IUnknown *data);
23093
23094 HRESULT (STDMETHODCALLTYPE *SetName)(
23095 ID3D12GraphicsCommandList6 *This,
23096 const WCHAR *name);
23097
23098 /*** ID3D12DeviceChild methods ***/
23099 HRESULT (STDMETHODCALLTYPE *GetDevice)(
23100 ID3D12GraphicsCommandList6 *This,
23101 REFIID riid,
23102 void **device);
23103
23104 /*** ID3D12CommandList methods ***/
23105 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
23106 ID3D12GraphicsCommandList6 *This);
23107
23108 /*** ID3D12GraphicsCommandList methods ***/
23109 HRESULT (STDMETHODCALLTYPE *Close)(
23110 ID3D12GraphicsCommandList6 *This);
23111
23112 HRESULT (STDMETHODCALLTYPE *Reset)(
23113 ID3D12GraphicsCommandList6 *This,
23114 ID3D12CommandAllocator *allocator,
23115 ID3D12PipelineState *initial_state);
23116
23117 void (STDMETHODCALLTYPE *ClearState)(
23118 ID3D12GraphicsCommandList6 *This,
23119 ID3D12PipelineState *pipeline_state);
23120
23121 void (STDMETHODCALLTYPE *DrawInstanced)(
23122 ID3D12GraphicsCommandList6 *This,
23123 UINT vertex_count_per_instance,
23124 UINT instance_count,
23125 UINT start_vertex_location,
23126 UINT start_instance_location);
23127
23128 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
23129 ID3D12GraphicsCommandList6 *This,
23130 UINT index_count_per_instance,
23131 UINT instance_count,
23132 UINT start_vertex_location,
23133 INT base_vertex_location,
23134 UINT start_instance_location);
23135
23136 void (STDMETHODCALLTYPE *Dispatch)(
23137 ID3D12GraphicsCommandList6 *This,
23138 UINT x,
23139 UINT u,
23140 UINT z);
23141
23142 void (STDMETHODCALLTYPE *CopyBufferRegion)(
23143 ID3D12GraphicsCommandList6 *This,
23144 ID3D12Resource *dst_buffer,
23145 UINT64 dst_offset,
23146 ID3D12Resource *src_buffer,
23147 UINT64 src_offset,
23148 UINT64 byte_count);
23149
23150 void (STDMETHODCALLTYPE *CopyTextureRegion)(
23151 ID3D12GraphicsCommandList6 *This,
23152 const D3D12_TEXTURE_COPY_LOCATION *dst,
23153 UINT dst_x,
23154 UINT dst_y,
23155 UINT dst_z,
23156 const D3D12_TEXTURE_COPY_LOCATION *src,
23157 const D3D12_BOX *src_box);
23158
23159 void (STDMETHODCALLTYPE *CopyResource)(
23160 ID3D12GraphicsCommandList6 *This,
23161 ID3D12Resource *dst_resource,
23162 ID3D12Resource *src_resource);
23163
23164 void (STDMETHODCALLTYPE *CopyTiles)(
23165 ID3D12GraphicsCommandList6 *This,
23166 ID3D12Resource *tiled_resource,
23167 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
23168 const D3D12_TILE_REGION_SIZE *tile_region_size,
23169 ID3D12Resource *buffer,
23170 UINT64 buffer_offset,
23171 D3D12_TILE_COPY_FLAGS flags);
23172
23173 void (STDMETHODCALLTYPE *ResolveSubresource)(
23174 ID3D12GraphicsCommandList6 *This,
23175 ID3D12Resource *dst_resource,
23176 UINT dst_sub_resource,
23177 ID3D12Resource *src_resource,
23178 UINT src_sub_resource,
23179 DXGI_FORMAT format);
23180
23181 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
23182 ID3D12GraphicsCommandList6 *This,
23183 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
23184
23185 void (STDMETHODCALLTYPE *RSSetViewports)(
23186 ID3D12GraphicsCommandList6 *This,
23187 UINT viewport_count,
23188 const D3D12_VIEWPORT *viewports);
23189
23190 void (STDMETHODCALLTYPE *RSSetScissorRects)(
23191 ID3D12GraphicsCommandList6 *This,
23192 UINT rect_count,
23193 const D3D12_RECT *rects);
23194
23195 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
23196 ID3D12GraphicsCommandList6 *This,
23197 const FLOAT blend_factor[4]);
23198
23199 void (STDMETHODCALLTYPE *OMSetStencilRef)(
23200 ID3D12GraphicsCommandList6 *This,
23201 UINT stencil_ref);
23202
23203 void (STDMETHODCALLTYPE *SetPipelineState)(
23204 ID3D12GraphicsCommandList6 *This,
23205 ID3D12PipelineState *pipeline_state);
23206
23207 void (STDMETHODCALLTYPE *ResourceBarrier)(
23208 ID3D12GraphicsCommandList6 *This,
23209 UINT barrier_count,
23210 const D3D12_RESOURCE_BARRIER *barriers);
23211
23212 void (STDMETHODCALLTYPE *ExecuteBundle)(
23213 ID3D12GraphicsCommandList6 *This,
23214 ID3D12GraphicsCommandList *command_list);
23215
23216 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
23217 ID3D12GraphicsCommandList6 *This,
23218 UINT heap_count,
23219 ID3D12DescriptorHeap *const *heaps);
23220
23221 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
23222 ID3D12GraphicsCommandList6 *This,
23223 ID3D12RootSignature *root_signature);
23224
23225 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
23226 ID3D12GraphicsCommandList6 *This,
23227 ID3D12RootSignature *root_signature);
23228
23229 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
23230 ID3D12GraphicsCommandList6 *This,
23231 UINT root_parameter_index,
23232 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
23233
23234 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
23235 ID3D12GraphicsCommandList6 *This,
23236 UINT root_parameter_index,
23237 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
23238
23239 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
23240 ID3D12GraphicsCommandList6 *This,
23241 UINT root_parameter_index,
23242 UINT data,
23243 UINT dst_offset);
23244
23245 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
23246 ID3D12GraphicsCommandList6 *This,
23247 UINT root_parameter_index,
23248 UINT data,
23249 UINT dst_offset);
23250
23251 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
23252 ID3D12GraphicsCommandList6 *This,
23253 UINT root_parameter_index,
23254 UINT constant_count,
23255 const void *data,
23256 UINT dst_offset);
23257
23258 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
23259 ID3D12GraphicsCommandList6 *This,
23260 UINT root_parameter_index,
23261 UINT constant_count,
23262 const void *data,
23263 UINT dst_offset);
23264
23265 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
23266 ID3D12GraphicsCommandList6 *This,
23267 UINT root_parameter_index,
23268 D3D12_GPU_VIRTUAL_ADDRESS address);
23269
23270 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
23271 ID3D12GraphicsCommandList6 *This,
23272 UINT root_parameter_index,
23273 D3D12_GPU_VIRTUAL_ADDRESS address);
23274
23275 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
23276 ID3D12GraphicsCommandList6 *This,
23277 UINT root_parameter_index,
23278 D3D12_GPU_VIRTUAL_ADDRESS address);
23279
23280 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
23281 ID3D12GraphicsCommandList6 *This,
23282 UINT root_parameter_index,
23283 D3D12_GPU_VIRTUAL_ADDRESS address);
23284
23285 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
23286 ID3D12GraphicsCommandList6 *This,
23287 UINT root_parameter_index,
23288 D3D12_GPU_VIRTUAL_ADDRESS address);
23289
23290 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
23291 ID3D12GraphicsCommandList6 *This,
23292 UINT root_parameter_index,
23293 D3D12_GPU_VIRTUAL_ADDRESS address);
23294
23295 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
23296 ID3D12GraphicsCommandList6 *This,
23297 const D3D12_INDEX_BUFFER_VIEW *view);
23298
23299 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
23300 ID3D12GraphicsCommandList6 *This,
23301 UINT start_slot,
23302 UINT view_count,
23303 const D3D12_VERTEX_BUFFER_VIEW *views);
23304
23305 void (STDMETHODCALLTYPE *SOSetTargets)(
23306 ID3D12GraphicsCommandList6 *This,
23307 UINT start_slot,
23308 UINT view_count,
23309 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
23310
23311 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
23312 ID3D12GraphicsCommandList6 *This,
23313 UINT render_target_descriptor_count,
23314 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
23315 WINBOOL single_descriptor_handle,
23316 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
23317
23318 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
23319 ID3D12GraphicsCommandList6 *This,
23320 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
23321 D3D12_CLEAR_FLAGS flags,
23322 FLOAT depth,
23323 UINT8 stencil,
23324 UINT rect_count,
23325 const D3D12_RECT *rects);
23326
23327 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
23328 ID3D12GraphicsCommandList6 *This,
23329 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
23330 const FLOAT color[4],
23331 UINT rect_count,
23332 const D3D12_RECT *rects);
23333
23334 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
23335 ID3D12GraphicsCommandList6 *This,
23336 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
23337 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
23338 ID3D12Resource *resource,
23339 const UINT values[4],
23340 UINT rect_count,
23341 const D3D12_RECT *rects);
23342
23343 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
23344 ID3D12GraphicsCommandList6 *This,
23345 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
23346 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
23347 ID3D12Resource *resource,
23348 const float values[4],
23349 UINT rect_count,
23350 const D3D12_RECT *rects);
23351
23352 void (STDMETHODCALLTYPE *DiscardResource)(
23353 ID3D12GraphicsCommandList6 *This,
23354 ID3D12Resource *resource,
23355 const D3D12_DISCARD_REGION *region);
23356
23357 void (STDMETHODCALLTYPE *BeginQuery)(
23358 ID3D12GraphicsCommandList6 *This,
23359 ID3D12QueryHeap *heap,
23360 D3D12_QUERY_TYPE type,
23361 UINT index);
23362
23363 void (STDMETHODCALLTYPE *EndQuery)(
23364 ID3D12GraphicsCommandList6 *This,
23365 ID3D12QueryHeap *heap,
23366 D3D12_QUERY_TYPE type,
23367 UINT index);
23368
23369 void (STDMETHODCALLTYPE *ResolveQueryData)(
23370 ID3D12GraphicsCommandList6 *This,
23371 ID3D12QueryHeap *heap,
23372 D3D12_QUERY_TYPE type,
23373 UINT start_index,
23374 UINT query_count,
23375 ID3D12Resource *dst_buffer,
23376 UINT64 aligned_dst_buffer_offset);
23377
23378 void (STDMETHODCALLTYPE *SetPredication)(
23379 ID3D12GraphicsCommandList6 *This,
23380 ID3D12Resource *buffer,
23381 UINT64 aligned_buffer_offset,
23382 D3D12_PREDICATION_OP operation);
23383
23384 void (STDMETHODCALLTYPE *SetMarker)(
23385 ID3D12GraphicsCommandList6 *This,
23386 UINT metadata,
23387 const void *data,
23388 UINT size);
23389
23390 void (STDMETHODCALLTYPE *BeginEvent)(
23391 ID3D12GraphicsCommandList6 *This,
23392 UINT metadata,
23393 const void *data,
23394 UINT size);
23395
23396 void (STDMETHODCALLTYPE *EndEvent)(
23397 ID3D12GraphicsCommandList6 *This);
23398
23399 void (STDMETHODCALLTYPE *ExecuteIndirect)(
23400 ID3D12GraphicsCommandList6 *This,
23401 ID3D12CommandSignature *command_signature,
23402 UINT max_command_count,
23403 ID3D12Resource *arg_buffer,
23404 UINT64 arg_buffer_offset,
23405 ID3D12Resource *count_buffer,
23406 UINT64 count_buffer_offset);
23407
23408 /*** ID3D12GraphicsCommandList1 methods ***/
23409 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
23410 ID3D12GraphicsCommandList6 *This,
23411 ID3D12Resource *dst_buffer,
23412 UINT64 dst_offset,
23413 ID3D12Resource *src_buffer,
23414 UINT64 src_offset,
23415 UINT dependent_resource_count,
23416 ID3D12Resource *const *dependent_resources,
23417 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
23418
23419 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
23420 ID3D12GraphicsCommandList6 *This,
23421 ID3D12Resource *dst_buffer,
23422 UINT64 dst_offset,
23423 ID3D12Resource *src_buffer,
23424 UINT64 src_offset,
23425 UINT dependent_resource_count,
23426 ID3D12Resource *const *dependent_resources,
23427 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
23428
23429 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
23430 ID3D12GraphicsCommandList6 *This,
23431 FLOAT min,
23432 FLOAT max);
23433
23434 void (STDMETHODCALLTYPE *SetSamplePositions)(
23435 ID3D12GraphicsCommandList6 *This,
23436 UINT sample_count,
23437 UINT pixel_count,
23438 D3D12_SAMPLE_POSITION *sample_positions);
23439
23440 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
23441 ID3D12GraphicsCommandList6 *This,
23442 ID3D12Resource *dst_resource,
23443 UINT dst_sub_resource_idx,
23444 UINT dst_x,
23445 UINT dst_y,
23446 ID3D12Resource *src_resource,
23447 UINT src_sub_resource_idx,
23448 D3D12_RECT *src_rect,
23449 DXGI_FORMAT format,
23450 D3D12_RESOLVE_MODE mode);
23451
23452 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
23453 ID3D12GraphicsCommandList6 *This,
23454 UINT mask);
23455
23456 /*** ID3D12GraphicsCommandList2 methods ***/
23457 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
23458 ID3D12GraphicsCommandList6 *This,
23459 UINT count,
23460 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
23461 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
23462
23463 /*** ID3D12GraphicsCommandList3 methods ***/
23464 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
23465 ID3D12GraphicsCommandList6 *This,
23466 ID3D12ProtectedResourceSession *protected_resource_session);
23467
23468 /*** ID3D12GraphicsCommandList4 methods ***/
23469 void (STDMETHODCALLTYPE *BeginRenderPass)(
23470 ID3D12GraphicsCommandList6 *This,
23471 UINT render_targets_count,
23472 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
23473 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
23474 D3D12_RENDER_PASS_FLAGS flags);
23475
23476 void (STDMETHODCALLTYPE *EndRenderPass)(
23477 ID3D12GraphicsCommandList6 *This);
23478
23479 void (STDMETHODCALLTYPE *InitializeMetaCommand)(
23480 ID3D12GraphicsCommandList6 *This,
23481 ID3D12MetaCommand *meta_command,
23482 const void *initialization_parameters_data,
23483 SIZE_T initialization_parameters_data_size_in_bytes);
23484
23485 void (STDMETHODCALLTYPE *ExecuteMetaCommand)(
23486 ID3D12GraphicsCommandList6 *This,
23487 ID3D12MetaCommand *meta_command,
23488 const void *execution_parameters_data,
23489 SIZE_T execution_parameters_data_size_in_bytes);
23490
23491 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)(
23492 ID3D12GraphicsCommandList6 *This,
23493 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
23494 UINT postbuild_info_descs_count,
23495 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
23496
23497 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)(
23498 ID3D12GraphicsCommandList6 *This,
23499 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
23500 UINT src_acceleration_structures_count,
23501 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
23502
23503 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)(
23504 ID3D12GraphicsCommandList6 *This,
23505 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
23506 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
23507 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
23508
23509 void (STDMETHODCALLTYPE *SetPipelineState1)(
23510 ID3D12GraphicsCommandList6 *This,
23511 ID3D12StateObject *state_object);
23512
23513 void (STDMETHODCALLTYPE *DispatchRays)(
23514 ID3D12GraphicsCommandList6 *This,
23515 const D3D12_DISPATCH_RAYS_DESC *desc);
23516
23517 /*** ID3D12GraphicsCommandList5 methods ***/
23518 void (STDMETHODCALLTYPE *RSSetShadingRate)(
23519 ID3D12GraphicsCommandList6 *This,
23520 D3D12_SHADING_RATE base_shading_rate,
23521 const D3D12_SHADING_RATE_COMBINER *combiners);
23522
23523 void (STDMETHODCALLTYPE *RSSetShadingRateImage)(
23524 ID3D12GraphicsCommandList6 *This,
23525 ID3D12Resource *shading_rate_image);
23526
23527 /*** ID3D12GraphicsCommandList6 methods ***/
23528 void (STDMETHODCALLTYPE *DispatchMesh)(
23529 ID3D12GraphicsCommandList6 *This,
23530 UINT thread_group_count_x,
23531 UINT thread_group_count_y,
23532 UINT thread_group_count_z);
23533
23534 END_INTERFACE
23535} ID3D12GraphicsCommandList6Vtbl;
23536
23537interface ID3D12GraphicsCommandList6 {
23538 CONST_VTBL ID3D12GraphicsCommandList6Vtbl* lpVtbl;
23539};
23540
23541#ifdef COBJMACROS
23542#ifndef WIDL_C_INLINE_WRAPPERS
23543/*** IUnknown methods ***/
23544#define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23545#define ID3D12GraphicsCommandList6_AddRef(This) (This)->lpVtbl->AddRef(This)
23546#define ID3D12GraphicsCommandList6_Release(This) (This)->lpVtbl->Release(This)
23547/*** ID3D12Object methods ***/
23548#define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
23549#define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
23550#define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
23551#define ID3D12GraphicsCommandList6_SetName(This,name) (This)->lpVtbl->SetName(This,name)
23552/*** ID3D12DeviceChild methods ***/
23553#define ID3D12GraphicsCommandList6_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
23554/*** ID3D12CommandList methods ***/
23555#define ID3D12GraphicsCommandList6_GetType(This) (This)->lpVtbl->GetType(This)
23556/*** ID3D12GraphicsCommandList methods ***/
23557#define ID3D12GraphicsCommandList6_Close(This) (This)->lpVtbl->Close(This)
23558#define ID3D12GraphicsCommandList6_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
23559#define ID3D12GraphicsCommandList6_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
23560#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)
23561#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)
23562#define ID3D12GraphicsCommandList6_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
23563#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)
23564#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)
23565#define ID3D12GraphicsCommandList6_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
23566#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)
23567#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)
23568#define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
23569#define ID3D12GraphicsCommandList6_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
23570#define ID3D12GraphicsCommandList6_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
23571#define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
23572#define ID3D12GraphicsCommandList6_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
23573#define ID3D12GraphicsCommandList6_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
23574#define ID3D12GraphicsCommandList6_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
23575#define ID3D12GraphicsCommandList6_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
23576#define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
23577#define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
23578#define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
23579#define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
23580#define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
23581#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
23582#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
23583#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
23584#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
23585#define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
23586#define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
23587#define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
23588#define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
23589#define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
23590#define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
23591#define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
23592#define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
23593#define ID3D12GraphicsCommandList6_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
23594#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)
23595#define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
23596#define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
23597#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)
23598#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)
23599#define ID3D12GraphicsCommandList6_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
23600#define ID3D12GraphicsCommandList6_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
23601#define ID3D12GraphicsCommandList6_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
23602#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)
23603#define ID3D12GraphicsCommandList6_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
23604#define ID3D12GraphicsCommandList6_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
23605#define ID3D12GraphicsCommandList6_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
23606#define ID3D12GraphicsCommandList6_EndEvent(This) (This)->lpVtbl->EndEvent(This)
23607#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)
23608/*** ID3D12GraphicsCommandList1 methods ***/
23609#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)
23610#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)
23611#define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
23612#define ID3D12GraphicsCommandList6_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
23613#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)
23614#define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
23615/*** ID3D12GraphicsCommandList2 methods ***/
23616#define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
23617/*** ID3D12GraphicsCommandList3 methods ***/
23618#define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
23619/*** ID3D12GraphicsCommandList4 methods ***/
23620#define ID3D12GraphicsCommandList6_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags)
23621#define ID3D12GraphicsCommandList6_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This)
23622#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)
23623#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)
23624#define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs)
23625#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)
23626#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)
23627#define ID3D12GraphicsCommandList6_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object)
23628#define ID3D12GraphicsCommandList6_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc)
23629/*** ID3D12GraphicsCommandList5 methods ***/
23630#define ID3D12GraphicsCommandList6_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners)
23631#define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image)
23632/*** ID3D12GraphicsCommandList6 methods ***/
23633#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)
23634#else
23635/*** IUnknown methods ***/
23636static inline HRESULT ID3D12GraphicsCommandList6_QueryInterface(ID3D12GraphicsCommandList6* This,REFIID riid,void **ppvObject) {
23637 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23638}
23639static inline ULONG ID3D12GraphicsCommandList6_AddRef(ID3D12GraphicsCommandList6* This) {
23640 return This->lpVtbl->AddRef(This);
23641}
23642static inline ULONG ID3D12GraphicsCommandList6_Release(ID3D12GraphicsCommandList6* This) {
23643 return This->lpVtbl->Release(This);
23644}
23645/*** ID3D12Object methods ***/
23646static inline HRESULT ID3D12GraphicsCommandList6_GetPrivateData(ID3D12GraphicsCommandList6* This,REFGUID guid,UINT *data_size,void *data) {
23647 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
23648}
23649static inline HRESULT ID3D12GraphicsCommandList6_SetPrivateData(ID3D12GraphicsCommandList6* This,REFGUID guid,UINT data_size,const void *data) {
23650 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
23651}
23652static inline HRESULT ID3D12GraphicsCommandList6_SetPrivateDataInterface(ID3D12GraphicsCommandList6* This,REFGUID guid,const IUnknown *data) {
23653 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
23654}
23655static inline HRESULT ID3D12GraphicsCommandList6_SetName(ID3D12GraphicsCommandList6* This,const WCHAR *name) {
23656 return This->lpVtbl->SetName(This,name);
23657}
23658/*** ID3D12DeviceChild methods ***/
23659static inline HRESULT ID3D12GraphicsCommandList6_GetDevice(ID3D12GraphicsCommandList6* This,REFIID riid,void **device) {
23660 return This->lpVtbl->GetDevice(This,riid,device);
23661}
23662/*** ID3D12CommandList methods ***/
23663static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList6_GetType(ID3D12GraphicsCommandList6* This) {
23664 return This->lpVtbl->GetType(This);
23665}
23666/*** ID3D12GraphicsCommandList methods ***/
23667static inline HRESULT ID3D12GraphicsCommandList6_Close(ID3D12GraphicsCommandList6* This) {
23668 return This->lpVtbl->Close(This);
23669}
23670static inline HRESULT ID3D12GraphicsCommandList6_Reset(ID3D12GraphicsCommandList6* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
23671 return This->lpVtbl->Reset(This,allocator,initial_state);
23672}
23673static inline void ID3D12GraphicsCommandList6_ClearState(ID3D12GraphicsCommandList6* This,ID3D12PipelineState *pipeline_state) {
23674 This->lpVtbl->ClearState(This,pipeline_state);
23675}
23676static inline void ID3D12GraphicsCommandList6_DrawInstanced(ID3D12GraphicsCommandList6* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
23677 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
23678}
23679static 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) {
23680 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
23681}
23682static inline void ID3D12GraphicsCommandList6_Dispatch(ID3D12GraphicsCommandList6* This,UINT x,UINT u,UINT z) {
23683 This->lpVtbl->Dispatch(This,x,u,z);
23684}
23685static inline void ID3D12GraphicsCommandList6_CopyBufferRegion(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
23686 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
23687}
23688static 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) {
23689 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
23690}
23691static inline void ID3D12GraphicsCommandList6_CopyResource(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
23692 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
23693}
23694static 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) {
23695 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
23696}
23697static inline void ID3D12GraphicsCommandList6_ResolveSubresource(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
23698 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
23699}
23700static inline void ID3D12GraphicsCommandList6_IASetPrimitiveTopology(ID3D12GraphicsCommandList6* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
23701 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
23702}
23703static inline void ID3D12GraphicsCommandList6_RSSetViewports(ID3D12GraphicsCommandList6* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
23704 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
23705}
23706static inline void ID3D12GraphicsCommandList6_RSSetScissorRects(ID3D12GraphicsCommandList6* This,UINT rect_count,const D3D12_RECT *rects) {
23707 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
23708}
23709static inline void ID3D12GraphicsCommandList6_OMSetBlendFactor(ID3D12GraphicsCommandList6* This,const FLOAT blend_factor[4]) {
23710 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
23711}
23712static inline void ID3D12GraphicsCommandList6_OMSetStencilRef(ID3D12GraphicsCommandList6* This,UINT stencil_ref) {
23713 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
23714}
23715static inline void ID3D12GraphicsCommandList6_SetPipelineState(ID3D12GraphicsCommandList6* This,ID3D12PipelineState *pipeline_state) {
23716 This->lpVtbl->SetPipelineState(This,pipeline_state);
23717}
23718static inline void ID3D12GraphicsCommandList6_ResourceBarrier(ID3D12GraphicsCommandList6* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
23719 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
23720}
23721static inline void ID3D12GraphicsCommandList6_ExecuteBundle(ID3D12GraphicsCommandList6* This,ID3D12GraphicsCommandList *command_list) {
23722 This->lpVtbl->ExecuteBundle(This,command_list);
23723}
23724static inline void ID3D12GraphicsCommandList6_SetDescriptorHeaps(ID3D12GraphicsCommandList6* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
23725 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
23726}
23727static inline void ID3D12GraphicsCommandList6_SetComputeRootSignature(ID3D12GraphicsCommandList6* This,ID3D12RootSignature *root_signature) {
23728 This->lpVtbl->SetComputeRootSignature(This,root_signature);
23729}
23730static inline void ID3D12GraphicsCommandList6_SetGraphicsRootSignature(ID3D12GraphicsCommandList6* This,ID3D12RootSignature *root_signature) {
23731 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
23732}
23733static inline void ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
23734 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
23735}
23736static inline void ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
23737 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
23738}
23739static inline void ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
23740 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
23741}
23742static inline void ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
23743 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
23744}
23745static inline void ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
23746 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
23747}
23748static inline void ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
23749 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
23750}
23751static inline void ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23752 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
23753}
23754static inline void ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23755 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
23756}
23757static inline void ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23758 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
23759}
23760static inline void ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23761 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
23762}
23763static inline void ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23764 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
23765}
23766static inline void ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
23767 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
23768}
23769static inline void ID3D12GraphicsCommandList6_IASetIndexBuffer(ID3D12GraphicsCommandList6* This,const D3D12_INDEX_BUFFER_VIEW *view) {
23770 This->lpVtbl->IASetIndexBuffer(This,view);
23771}
23772static inline void ID3D12GraphicsCommandList6_IASetVertexBuffers(ID3D12GraphicsCommandList6* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
23773 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
23774}
23775static inline void ID3D12GraphicsCommandList6_SOSetTargets(ID3D12GraphicsCommandList6* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
23776 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
23777}
23778static 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) {
23779 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
23780}
23781static 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) {
23782 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
23783}
23784static inline void ID3D12GraphicsCommandList6_ClearRenderTargetView(ID3D12GraphicsCommandList6* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
23785 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
23786}
23787static 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) {
23788 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
23789}
23790static 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) {
23791 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
23792}
23793static inline void ID3D12GraphicsCommandList6_DiscardResource(ID3D12GraphicsCommandList6* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
23794 This->lpVtbl->DiscardResource(This,resource,region);
23795}
23796static inline void ID3D12GraphicsCommandList6_BeginQuery(ID3D12GraphicsCommandList6* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
23797 This->lpVtbl->BeginQuery(This,heap,type,index);
23798}
23799static inline void ID3D12GraphicsCommandList6_EndQuery(ID3D12GraphicsCommandList6* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
23800 This->lpVtbl->EndQuery(This,heap,type,index);
23801}
23802static 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) {
23803 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
23804}
23805static inline void ID3D12GraphicsCommandList6_SetPredication(ID3D12GraphicsCommandList6* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
23806 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
23807}
23808static inline void ID3D12GraphicsCommandList6_SetMarker(ID3D12GraphicsCommandList6* This,UINT metadata,const void *data,UINT size) {
23809 This->lpVtbl->SetMarker(This,metadata,data,size);
23810}
23811static inline void ID3D12GraphicsCommandList6_BeginEvent(ID3D12GraphicsCommandList6* This,UINT metadata,const void *data,UINT size) {
23812 This->lpVtbl->BeginEvent(This,metadata,data,size);
23813}
23814static inline void ID3D12GraphicsCommandList6_EndEvent(ID3D12GraphicsCommandList6* This) {
23815 This->lpVtbl->EndEvent(This);
23816}
23817static 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) {
23818 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
23819}
23820/*** ID3D12GraphicsCommandList1 methods ***/
23821static 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) {
23822 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
23823}
23824static 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) {
23825 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
23826}
23827static inline void ID3D12GraphicsCommandList6_OMSetDepthBounds(ID3D12GraphicsCommandList6* This,FLOAT min,FLOAT max) {
23828 This->lpVtbl->OMSetDepthBounds(This,min,max);
23829}
23830static inline void ID3D12GraphicsCommandList6_SetSamplePositions(ID3D12GraphicsCommandList6* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
23831 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
23832}
23833static 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) {
23834 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
23835}
23836static inline void ID3D12GraphicsCommandList6_SetViewInstanceMask(ID3D12GraphicsCommandList6* This,UINT mask) {
23837 This->lpVtbl->SetViewInstanceMask(This,mask);
23838}
23839/*** ID3D12GraphicsCommandList2 methods ***/
23840static inline void ID3D12GraphicsCommandList6_WriteBufferImmediate(ID3D12GraphicsCommandList6* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
23841 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
23842}
23843/*** ID3D12GraphicsCommandList3 methods ***/
23844static inline void ID3D12GraphicsCommandList6_SetProtectedResourceSession(ID3D12GraphicsCommandList6* This,ID3D12ProtectedResourceSession *protected_resource_session) {
23845 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
23846}
23847/*** ID3D12GraphicsCommandList4 methods ***/
23848static 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) {
23849 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags);
23850}
23851static inline void ID3D12GraphicsCommandList6_EndRenderPass(ID3D12GraphicsCommandList6* This) {
23852 This->lpVtbl->EndRenderPass(This);
23853}
23854static inline void ID3D12GraphicsCommandList6_InitializeMetaCommand(ID3D12GraphicsCommandList6* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) {
23855 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes);
23856}
23857static inline void ID3D12GraphicsCommandList6_ExecuteMetaCommand(ID3D12GraphicsCommandList6* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) {
23858 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes);
23859}
23860static 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) {
23861 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs);
23862}
23863static 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) {
23864 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data);
23865}
23866static 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) {
23867 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode);
23868}
23869static inline void ID3D12GraphicsCommandList6_SetPipelineState1(ID3D12GraphicsCommandList6* This,ID3D12StateObject *state_object) {
23870 This->lpVtbl->SetPipelineState1(This,state_object);
23871}
23872static inline void ID3D12GraphicsCommandList6_DispatchRays(ID3D12GraphicsCommandList6* This,const D3D12_DISPATCH_RAYS_DESC *desc) {
23873 This->lpVtbl->DispatchRays(This,desc);
23874}
23875/*** ID3D12GraphicsCommandList5 methods ***/
23876static inline void ID3D12GraphicsCommandList6_RSSetShadingRate(ID3D12GraphicsCommandList6* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) {
23877 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners);
23878}
23879static inline void ID3D12GraphicsCommandList6_RSSetShadingRateImage(ID3D12GraphicsCommandList6* This,ID3D12Resource *shading_rate_image) {
23880 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image);
23881}
23882/*** ID3D12GraphicsCommandList6 methods ***/
23883static inline void ID3D12GraphicsCommandList6_DispatchMesh(ID3D12GraphicsCommandList6* This,UINT thread_group_count_x,UINT thread_group_count_y,UINT thread_group_count_z) {
23884 This->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z);
23885}
23886#endif
23887#endif
23888
23889#endif
23890
23891
23892#endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */
23893
23894/*****************************************************************************
23895 * ID3D12GraphicsCommandList7 interface
23896 */
23897#ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
23898#define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
23899
23900DEFINE_GUID(IID_ID3D12GraphicsCommandList7, 0xdd171223, 0x8b61, 0x4769, 0x90,0xe3, 0x16,0x0c,0xcd,0xe4,0xe2,0xc1);
23901#if defined(__cplusplus) && !defined(CINTERFACE)
23902MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1")
23903ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6
23904{
23905 virtual void STDMETHODCALLTYPE Barrier(
23906 UINT32 barrier_groups_count,
23907 const D3D12_BARRIER_GROUP *barrier_groups) = 0;
23908
23909};
23910#ifdef __CRT_UUID_DECL
23911__CRT_UUID_DECL(ID3D12GraphicsCommandList7, 0xdd171223, 0x8b61, 0x4769, 0x90,0xe3, 0x16,0x0c,0xcd,0xe4,0xe2,0xc1)
23912#endif
23913#else
23914typedef struct ID3D12GraphicsCommandList7Vtbl {
23915 BEGIN_INTERFACE
23916
23917 /*** IUnknown methods ***/
23918 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23919 ID3D12GraphicsCommandList7 *This,
23920 REFIID riid,
23921 void **ppvObject);
23922
23923 ULONG (STDMETHODCALLTYPE *AddRef)(
23924 ID3D12GraphicsCommandList7 *This);
23925
23926 ULONG (STDMETHODCALLTYPE *Release)(
23927 ID3D12GraphicsCommandList7 *This);
23928
23929 /*** ID3D12Object methods ***/
23930 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
23931 ID3D12GraphicsCommandList7 *This,
23932 REFGUID guid,
23933 UINT *data_size,
23934 void *data);
23935
23936 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
23937 ID3D12GraphicsCommandList7 *This,
23938 REFGUID guid,
23939 UINT data_size,
23940 const void *data);
23941
23942 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
23943 ID3D12GraphicsCommandList7 *This,
23944 REFGUID guid,
23945 const IUnknown *data);
23946
23947 HRESULT (STDMETHODCALLTYPE *SetName)(
23948 ID3D12GraphicsCommandList7 *This,
23949 const WCHAR *name);
23950
23951 /*** ID3D12DeviceChild methods ***/
23952 HRESULT (STDMETHODCALLTYPE *GetDevice)(
23953 ID3D12GraphicsCommandList7 *This,
23954 REFIID riid,
23955 void **device);
23956
23957 /*** ID3D12CommandList methods ***/
23958 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
23959 ID3D12GraphicsCommandList7 *This);
23960
23961 /*** ID3D12GraphicsCommandList methods ***/
23962 HRESULT (STDMETHODCALLTYPE *Close)(
23963 ID3D12GraphicsCommandList7 *This);
23964
23965 HRESULT (STDMETHODCALLTYPE *Reset)(
23966 ID3D12GraphicsCommandList7 *This,
23967 ID3D12CommandAllocator *allocator,
23968 ID3D12PipelineState *initial_state);
23969
23970 void (STDMETHODCALLTYPE *ClearState)(
23971 ID3D12GraphicsCommandList7 *This,
23972 ID3D12PipelineState *pipeline_state);
23973
23974 void (STDMETHODCALLTYPE *DrawInstanced)(
23975 ID3D12GraphicsCommandList7 *This,
23976 UINT vertex_count_per_instance,
23977 UINT instance_count,
23978 UINT start_vertex_location,
23979 UINT start_instance_location);
23980
23981 void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
23982 ID3D12GraphicsCommandList7 *This,
23983 UINT index_count_per_instance,
23984 UINT instance_count,
23985 UINT start_vertex_location,
23986 INT base_vertex_location,
23987 UINT start_instance_location);
23988
23989 void (STDMETHODCALLTYPE *Dispatch)(
23990 ID3D12GraphicsCommandList7 *This,
23991 UINT x,
23992 UINT u,
23993 UINT z);
23994
23995 void (STDMETHODCALLTYPE *CopyBufferRegion)(
23996 ID3D12GraphicsCommandList7 *This,
23997 ID3D12Resource *dst_buffer,
23998 UINT64 dst_offset,
23999 ID3D12Resource *src_buffer,
24000 UINT64 src_offset,
24001 UINT64 byte_count);
24002
24003 void (STDMETHODCALLTYPE *CopyTextureRegion)(
24004 ID3D12GraphicsCommandList7 *This,
24005 const D3D12_TEXTURE_COPY_LOCATION *dst,
24006 UINT dst_x,
24007 UINT dst_y,
24008 UINT dst_z,
24009 const D3D12_TEXTURE_COPY_LOCATION *src,
24010 const D3D12_BOX *src_box);
24011
24012 void (STDMETHODCALLTYPE *CopyResource)(
24013 ID3D12GraphicsCommandList7 *This,
24014 ID3D12Resource *dst_resource,
24015 ID3D12Resource *src_resource);
24016
24017 void (STDMETHODCALLTYPE *CopyTiles)(
24018 ID3D12GraphicsCommandList7 *This,
24019 ID3D12Resource *tiled_resource,
24020 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
24021 const D3D12_TILE_REGION_SIZE *tile_region_size,
24022 ID3D12Resource *buffer,
24023 UINT64 buffer_offset,
24024 D3D12_TILE_COPY_FLAGS flags);
24025
24026 void (STDMETHODCALLTYPE *ResolveSubresource)(
24027 ID3D12GraphicsCommandList7 *This,
24028 ID3D12Resource *dst_resource,
24029 UINT dst_sub_resource,
24030 ID3D12Resource *src_resource,
24031 UINT src_sub_resource,
24032 DXGI_FORMAT format);
24033
24034 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
24035 ID3D12GraphicsCommandList7 *This,
24036 D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
24037
24038 void (STDMETHODCALLTYPE *RSSetViewports)(
24039 ID3D12GraphicsCommandList7 *This,
24040 UINT viewport_count,
24041 const D3D12_VIEWPORT *viewports);
24042
24043 void (STDMETHODCALLTYPE *RSSetScissorRects)(
24044 ID3D12GraphicsCommandList7 *This,
24045 UINT rect_count,
24046 const D3D12_RECT *rects);
24047
24048 void (STDMETHODCALLTYPE *OMSetBlendFactor)(
24049 ID3D12GraphicsCommandList7 *This,
24050 const FLOAT blend_factor[4]);
24051
24052 void (STDMETHODCALLTYPE *OMSetStencilRef)(
24053 ID3D12GraphicsCommandList7 *This,
24054 UINT stencil_ref);
24055
24056 void (STDMETHODCALLTYPE *SetPipelineState)(
24057 ID3D12GraphicsCommandList7 *This,
24058 ID3D12PipelineState *pipeline_state);
24059
24060 void (STDMETHODCALLTYPE *ResourceBarrier)(
24061 ID3D12GraphicsCommandList7 *This,
24062 UINT barrier_count,
24063 const D3D12_RESOURCE_BARRIER *barriers);
24064
24065 void (STDMETHODCALLTYPE *ExecuteBundle)(
24066 ID3D12GraphicsCommandList7 *This,
24067 ID3D12GraphicsCommandList *command_list);
24068
24069 void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
24070 ID3D12GraphicsCommandList7 *This,
24071 UINT heap_count,
24072 ID3D12DescriptorHeap *const *heaps);
24073
24074 void (STDMETHODCALLTYPE *SetComputeRootSignature)(
24075 ID3D12GraphicsCommandList7 *This,
24076 ID3D12RootSignature *root_signature);
24077
24078 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
24079 ID3D12GraphicsCommandList7 *This,
24080 ID3D12RootSignature *root_signature);
24081
24082 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
24083 ID3D12GraphicsCommandList7 *This,
24084 UINT root_parameter_index,
24085 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
24086
24087 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
24088 ID3D12GraphicsCommandList7 *This,
24089 UINT root_parameter_index,
24090 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
24091
24092 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
24093 ID3D12GraphicsCommandList7 *This,
24094 UINT root_parameter_index,
24095 UINT data,
24096 UINT dst_offset);
24097
24098 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
24099 ID3D12GraphicsCommandList7 *This,
24100 UINT root_parameter_index,
24101 UINT data,
24102 UINT dst_offset);
24103
24104 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
24105 ID3D12GraphicsCommandList7 *This,
24106 UINT root_parameter_index,
24107 UINT constant_count,
24108 const void *data,
24109 UINT dst_offset);
24110
24111 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
24112 ID3D12GraphicsCommandList7 *This,
24113 UINT root_parameter_index,
24114 UINT constant_count,
24115 const void *data,
24116 UINT dst_offset);
24117
24118 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
24119 ID3D12GraphicsCommandList7 *This,
24120 UINT root_parameter_index,
24121 D3D12_GPU_VIRTUAL_ADDRESS address);
24122
24123 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
24124 ID3D12GraphicsCommandList7 *This,
24125 UINT root_parameter_index,
24126 D3D12_GPU_VIRTUAL_ADDRESS address);
24127
24128 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
24129 ID3D12GraphicsCommandList7 *This,
24130 UINT root_parameter_index,
24131 D3D12_GPU_VIRTUAL_ADDRESS address);
24132
24133 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
24134 ID3D12GraphicsCommandList7 *This,
24135 UINT root_parameter_index,
24136 D3D12_GPU_VIRTUAL_ADDRESS address);
24137
24138 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
24139 ID3D12GraphicsCommandList7 *This,
24140 UINT root_parameter_index,
24141 D3D12_GPU_VIRTUAL_ADDRESS address);
24142
24143 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
24144 ID3D12GraphicsCommandList7 *This,
24145 UINT root_parameter_index,
24146 D3D12_GPU_VIRTUAL_ADDRESS address);
24147
24148 void (STDMETHODCALLTYPE *IASetIndexBuffer)(
24149 ID3D12GraphicsCommandList7 *This,
24150 const D3D12_INDEX_BUFFER_VIEW *view);
24151
24152 void (STDMETHODCALLTYPE *IASetVertexBuffers)(
24153 ID3D12GraphicsCommandList7 *This,
24154 UINT start_slot,
24155 UINT view_count,
24156 const D3D12_VERTEX_BUFFER_VIEW *views);
24157
24158 void (STDMETHODCALLTYPE *SOSetTargets)(
24159 ID3D12GraphicsCommandList7 *This,
24160 UINT start_slot,
24161 UINT view_count,
24162 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
24163
24164 void (STDMETHODCALLTYPE *OMSetRenderTargets)(
24165 ID3D12GraphicsCommandList7 *This,
24166 UINT render_target_descriptor_count,
24167 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
24168 WINBOOL single_descriptor_handle,
24169 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
24170
24171 void (STDMETHODCALLTYPE *ClearDepthStencilView)(
24172 ID3D12GraphicsCommandList7 *This,
24173 D3D12_CPU_DESCRIPTOR_HANDLE dsv,
24174 D3D12_CLEAR_FLAGS flags,
24175 FLOAT depth,
24176 UINT8 stencil,
24177 UINT rect_count,
24178 const D3D12_RECT *rects);
24179
24180 void (STDMETHODCALLTYPE *ClearRenderTargetView)(
24181 ID3D12GraphicsCommandList7 *This,
24182 D3D12_CPU_DESCRIPTOR_HANDLE rtv,
24183 const FLOAT color[4],
24184 UINT rect_count,
24185 const D3D12_RECT *rects);
24186
24187 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
24188 ID3D12GraphicsCommandList7 *This,
24189 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
24190 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
24191 ID3D12Resource *resource,
24192 const UINT values[4],
24193 UINT rect_count,
24194 const D3D12_RECT *rects);
24195
24196 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
24197 ID3D12GraphicsCommandList7 *This,
24198 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
24199 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
24200 ID3D12Resource *resource,
24201 const float values[4],
24202 UINT rect_count,
24203 const D3D12_RECT *rects);
24204
24205 void (STDMETHODCALLTYPE *DiscardResource)(
24206 ID3D12GraphicsCommandList7 *This,
24207 ID3D12Resource *resource,
24208 const D3D12_DISCARD_REGION *region);
24209
24210 void (STDMETHODCALLTYPE *BeginQuery)(
24211 ID3D12GraphicsCommandList7 *This,
24212 ID3D12QueryHeap *heap,
24213 D3D12_QUERY_TYPE type,
24214 UINT index);
24215
24216 void (STDMETHODCALLTYPE *EndQuery)(
24217 ID3D12GraphicsCommandList7 *This,
24218 ID3D12QueryHeap *heap,
24219 D3D12_QUERY_TYPE type,
24220 UINT index);
24221
24222 void (STDMETHODCALLTYPE *ResolveQueryData)(
24223 ID3D12GraphicsCommandList7 *This,
24224 ID3D12QueryHeap *heap,
24225 D3D12_QUERY_TYPE type,
24226 UINT start_index,
24227 UINT query_count,
24228 ID3D12Resource *dst_buffer,
24229 UINT64 aligned_dst_buffer_offset);
24230
24231 void (STDMETHODCALLTYPE *SetPredication)(
24232 ID3D12GraphicsCommandList7 *This,
24233 ID3D12Resource *buffer,
24234 UINT64 aligned_buffer_offset,
24235 D3D12_PREDICATION_OP operation);
24236
24237 void (STDMETHODCALLTYPE *SetMarker)(
24238 ID3D12GraphicsCommandList7 *This,
24239 UINT metadata,
24240 const void *data,
24241 UINT size);
24242
24243 void (STDMETHODCALLTYPE *BeginEvent)(
24244 ID3D12GraphicsCommandList7 *This,
24245 UINT metadata,
24246 const void *data,
24247 UINT size);
24248
24249 void (STDMETHODCALLTYPE *EndEvent)(
24250 ID3D12GraphicsCommandList7 *This);
24251
24252 void (STDMETHODCALLTYPE *ExecuteIndirect)(
24253 ID3D12GraphicsCommandList7 *This,
24254 ID3D12CommandSignature *command_signature,
24255 UINT max_command_count,
24256 ID3D12Resource *arg_buffer,
24257 UINT64 arg_buffer_offset,
24258 ID3D12Resource *count_buffer,
24259 UINT64 count_buffer_offset);
24260
24261 /*** ID3D12GraphicsCommandList1 methods ***/
24262 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
24263 ID3D12GraphicsCommandList7 *This,
24264 ID3D12Resource *dst_buffer,
24265 UINT64 dst_offset,
24266 ID3D12Resource *src_buffer,
24267 UINT64 src_offset,
24268 UINT dependent_resource_count,
24269 ID3D12Resource *const *dependent_resources,
24270 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
24271
24272 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
24273 ID3D12GraphicsCommandList7 *This,
24274 ID3D12Resource *dst_buffer,
24275 UINT64 dst_offset,
24276 ID3D12Resource *src_buffer,
24277 UINT64 src_offset,
24278 UINT dependent_resource_count,
24279 ID3D12Resource *const *dependent_resources,
24280 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
24281
24282 void (STDMETHODCALLTYPE *OMSetDepthBounds)(
24283 ID3D12GraphicsCommandList7 *This,
24284 FLOAT min,
24285 FLOAT max);
24286
24287 void (STDMETHODCALLTYPE *SetSamplePositions)(
24288 ID3D12GraphicsCommandList7 *This,
24289 UINT sample_count,
24290 UINT pixel_count,
24291 D3D12_SAMPLE_POSITION *sample_positions);
24292
24293 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
24294 ID3D12GraphicsCommandList7 *This,
24295 ID3D12Resource *dst_resource,
24296 UINT dst_sub_resource_idx,
24297 UINT dst_x,
24298 UINT dst_y,
24299 ID3D12Resource *src_resource,
24300 UINT src_sub_resource_idx,
24301 D3D12_RECT *src_rect,
24302 DXGI_FORMAT format,
24303 D3D12_RESOLVE_MODE mode);
24304
24305 void (STDMETHODCALLTYPE *SetViewInstanceMask)(
24306 ID3D12GraphicsCommandList7 *This,
24307 UINT mask);
24308
24309 /*** ID3D12GraphicsCommandList2 methods ***/
24310 void (STDMETHODCALLTYPE *WriteBufferImmediate)(
24311 ID3D12GraphicsCommandList7 *This,
24312 UINT count,
24313 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
24314 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
24315
24316 /*** ID3D12GraphicsCommandList3 methods ***/
24317 void (STDMETHODCALLTYPE *SetProtectedResourceSession)(
24318 ID3D12GraphicsCommandList7 *This,
24319 ID3D12ProtectedResourceSession *protected_resource_session);
24320
24321 /*** ID3D12GraphicsCommandList4 methods ***/
24322 void (STDMETHODCALLTYPE *BeginRenderPass)(
24323 ID3D12GraphicsCommandList7 *This,
24324 UINT render_targets_count,
24325 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
24326 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
24327 D3D12_RENDER_PASS_FLAGS flags);
24328
24329 void (STDMETHODCALLTYPE *EndRenderPass)(
24330 ID3D12GraphicsCommandList7 *This);
24331
24332 void (STDMETHODCALLTYPE *InitializeMetaCommand)(
24333 ID3D12GraphicsCommandList7 *This,
24334 ID3D12MetaCommand *meta_command,
24335 const void *initialization_parameters_data,
24336 SIZE_T initialization_parameters_data_size_in_bytes);
24337
24338 void (STDMETHODCALLTYPE *ExecuteMetaCommand)(
24339 ID3D12GraphicsCommandList7 *This,
24340 ID3D12MetaCommand *meta_command,
24341 const void *execution_parameters_data,
24342 SIZE_T execution_parameters_data_size_in_bytes);
24343
24344 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)(
24345 ID3D12GraphicsCommandList7 *This,
24346 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
24347 UINT postbuild_info_descs_count,
24348 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
24349
24350 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)(
24351 ID3D12GraphicsCommandList7 *This,
24352 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
24353 UINT src_acceleration_structures_count,
24354 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
24355
24356 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)(
24357 ID3D12GraphicsCommandList7 *This,
24358 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
24359 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
24360 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
24361
24362 void (STDMETHODCALLTYPE *SetPipelineState1)(
24363 ID3D12GraphicsCommandList7 *This,
24364 ID3D12StateObject *state_object);
24365
24366 void (STDMETHODCALLTYPE *DispatchRays)(
24367 ID3D12GraphicsCommandList7 *This,
24368 const D3D12_DISPATCH_RAYS_DESC *desc);
24369
24370 /*** ID3D12GraphicsCommandList5 methods ***/
24371 void (STDMETHODCALLTYPE *RSSetShadingRate)(
24372 ID3D12GraphicsCommandList7 *This,
24373 D3D12_SHADING_RATE base_shading_rate,
24374 const D3D12_SHADING_RATE_COMBINER *combiners);
24375
24376 void (STDMETHODCALLTYPE *RSSetShadingRateImage)(
24377 ID3D12GraphicsCommandList7 *This,
24378 ID3D12Resource *shading_rate_image);
24379
24380 /*** ID3D12GraphicsCommandList6 methods ***/
24381 void (STDMETHODCALLTYPE *DispatchMesh)(
24382 ID3D12GraphicsCommandList7 *This,
24383 UINT thread_group_count_x,
24384 UINT thread_group_count_y,
24385 UINT thread_group_count_z);
24386
24387 /*** ID3D12GraphicsCommandList7 methods ***/
24388 void (STDMETHODCALLTYPE *Barrier)(
24389 ID3D12GraphicsCommandList7 *This,
24390 UINT32 barrier_groups_count,
24391 const D3D12_BARRIER_GROUP *barrier_groups);
24392
24393 END_INTERFACE
24394} ID3D12GraphicsCommandList7Vtbl;
24395
24396interface ID3D12GraphicsCommandList7 {
24397 CONST_VTBL ID3D12GraphicsCommandList7Vtbl* lpVtbl;
24398};
24399
24400#ifdef COBJMACROS
24401#ifndef WIDL_C_INLINE_WRAPPERS
24402/*** IUnknown methods ***/
24403#define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24404#define ID3D12GraphicsCommandList7_AddRef(This) (This)->lpVtbl->AddRef(This)
24405#define ID3D12GraphicsCommandList7_Release(This) (This)->lpVtbl->Release(This)
24406/*** ID3D12Object methods ***/
24407#define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
24408#define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
24409#define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
24410#define ID3D12GraphicsCommandList7_SetName(This,name) (This)->lpVtbl->SetName(This,name)
24411/*** ID3D12DeviceChild methods ***/
24412#define ID3D12GraphicsCommandList7_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
24413/*** ID3D12CommandList methods ***/
24414#define ID3D12GraphicsCommandList7_GetType(This) (This)->lpVtbl->GetType(This)
24415/*** ID3D12GraphicsCommandList methods ***/
24416#define ID3D12GraphicsCommandList7_Close(This) (This)->lpVtbl->Close(This)
24417#define ID3D12GraphicsCommandList7_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
24418#define ID3D12GraphicsCommandList7_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
24419#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)
24420#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)
24421#define ID3D12GraphicsCommandList7_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
24422#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)
24423#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)
24424#define ID3D12GraphicsCommandList7_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
24425#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)
24426#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)
24427#define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
24428#define ID3D12GraphicsCommandList7_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
24429#define ID3D12GraphicsCommandList7_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
24430#define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
24431#define ID3D12GraphicsCommandList7_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
24432#define ID3D12GraphicsCommandList7_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
24433#define ID3D12GraphicsCommandList7_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
24434#define ID3D12GraphicsCommandList7_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
24435#define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
24436#define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
24437#define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
24438#define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
24439#define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
24440#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
24441#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
24442#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
24443#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
24444#define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
24445#define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
24446#define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
24447#define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
24448#define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
24449#define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
24450#define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
24451#define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
24452#define ID3D12GraphicsCommandList7_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
24453#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)
24454#define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
24455#define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
24456#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)
24457#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)
24458#define ID3D12GraphicsCommandList7_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
24459#define ID3D12GraphicsCommandList7_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
24460#define ID3D12GraphicsCommandList7_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
24461#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)
24462#define ID3D12GraphicsCommandList7_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
24463#define ID3D12GraphicsCommandList7_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
24464#define ID3D12GraphicsCommandList7_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
24465#define ID3D12GraphicsCommandList7_EndEvent(This) (This)->lpVtbl->EndEvent(This)
24466#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)
24467/*** ID3D12GraphicsCommandList1 methods ***/
24468#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)
24469#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)
24470#define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
24471#define ID3D12GraphicsCommandList7_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
24472#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)
24473#define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
24474/*** ID3D12GraphicsCommandList2 methods ***/
24475#define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
24476/*** ID3D12GraphicsCommandList3 methods ***/
24477#define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session)
24478/*** ID3D12GraphicsCommandList4 methods ***/
24479#define ID3D12GraphicsCommandList7_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags)
24480#define ID3D12GraphicsCommandList7_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This)
24481#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)
24482#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)
24483#define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs)
24484#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)
24485#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)
24486#define ID3D12GraphicsCommandList7_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object)
24487#define ID3D12GraphicsCommandList7_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc)
24488/*** ID3D12GraphicsCommandList5 methods ***/
24489#define ID3D12GraphicsCommandList7_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners)
24490#define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image)
24491/*** ID3D12GraphicsCommandList6 methods ***/
24492#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)
24493/*** ID3D12GraphicsCommandList7 methods ***/
24494#define ID3D12GraphicsCommandList7_Barrier(This,barrier_groups_count,barrier_groups) (This)->lpVtbl->Barrier(This,barrier_groups_count,barrier_groups)
24495#else
24496/*** IUnknown methods ***/
24497static inline HRESULT ID3D12GraphicsCommandList7_QueryInterface(ID3D12GraphicsCommandList7* This,REFIID riid,void **ppvObject) {
24498 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24499}
24500static inline ULONG ID3D12GraphicsCommandList7_AddRef(ID3D12GraphicsCommandList7* This) {
24501 return This->lpVtbl->AddRef(This);
24502}
24503static inline ULONG ID3D12GraphicsCommandList7_Release(ID3D12GraphicsCommandList7* This) {
24504 return This->lpVtbl->Release(This);
24505}
24506/*** ID3D12Object methods ***/
24507static inline HRESULT ID3D12GraphicsCommandList7_GetPrivateData(ID3D12GraphicsCommandList7* This,REFGUID guid,UINT *data_size,void *data) {
24508 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
24509}
24510static inline HRESULT ID3D12GraphicsCommandList7_SetPrivateData(ID3D12GraphicsCommandList7* This,REFGUID guid,UINT data_size,const void *data) {
24511 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
24512}
24513static inline HRESULT ID3D12GraphicsCommandList7_SetPrivateDataInterface(ID3D12GraphicsCommandList7* This,REFGUID guid,const IUnknown *data) {
24514 return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
24515}
24516static inline HRESULT ID3D12GraphicsCommandList7_SetName(ID3D12GraphicsCommandList7* This,const WCHAR *name) {
24517 return This->lpVtbl->SetName(This,name);
24518}
24519/*** ID3D12DeviceChild methods ***/
24520static inline HRESULT ID3D12GraphicsCommandList7_GetDevice(ID3D12GraphicsCommandList7* This,REFIID riid,void **device) {
24521 return This->lpVtbl->GetDevice(This,riid,device);
24522}
24523/*** ID3D12CommandList methods ***/
24524static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList7_GetType(ID3D12GraphicsCommandList7* This) {
24525 return This->lpVtbl->GetType(This);
24526}
24527/*** ID3D12GraphicsCommandList methods ***/
24528static inline HRESULT ID3D12GraphicsCommandList7_Close(ID3D12GraphicsCommandList7* This) {
24529 return This->lpVtbl->Close(This);
24530}
24531static inline HRESULT ID3D12GraphicsCommandList7_Reset(ID3D12GraphicsCommandList7* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
24532 return This->lpVtbl->Reset(This,allocator,initial_state);
24533}
24534static inline void ID3D12GraphicsCommandList7_ClearState(ID3D12GraphicsCommandList7* This,ID3D12PipelineState *pipeline_state) {
24535 This->lpVtbl->ClearState(This,pipeline_state);
24536}
24537static inline void ID3D12GraphicsCommandList7_DrawInstanced(ID3D12GraphicsCommandList7* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
24538 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
24539}
24540static 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) {
24541 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
24542}
24543static inline void ID3D12GraphicsCommandList7_Dispatch(ID3D12GraphicsCommandList7* This,UINT x,UINT u,UINT z) {
24544 This->lpVtbl->Dispatch(This,x,u,z);
24545}
24546static inline void ID3D12GraphicsCommandList7_CopyBufferRegion(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
24547 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
24548}
24549static 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) {
24550 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
24551}
24552static inline void ID3D12GraphicsCommandList7_CopyResource(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
24553 This->lpVtbl->CopyResource(This,dst_resource,src_resource);
24554}
24555static 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) {
24556 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
24557}
24558static inline void ID3D12GraphicsCommandList7_ResolveSubresource(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
24559 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
24560}
24561static inline void ID3D12GraphicsCommandList7_IASetPrimitiveTopology(ID3D12GraphicsCommandList7* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
24562 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
24563}
24564static inline void ID3D12GraphicsCommandList7_RSSetViewports(ID3D12GraphicsCommandList7* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
24565 This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
24566}
24567static inline void ID3D12GraphicsCommandList7_RSSetScissorRects(ID3D12GraphicsCommandList7* This,UINT rect_count,const D3D12_RECT *rects) {
24568 This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
24569}
24570static inline void ID3D12GraphicsCommandList7_OMSetBlendFactor(ID3D12GraphicsCommandList7* This,const FLOAT blend_factor[4]) {
24571 This->lpVtbl->OMSetBlendFactor(This,blend_factor);
24572}
24573static inline void ID3D12GraphicsCommandList7_OMSetStencilRef(ID3D12GraphicsCommandList7* This,UINT stencil_ref) {
24574 This->lpVtbl->OMSetStencilRef(This,stencil_ref);
24575}
24576static inline void ID3D12GraphicsCommandList7_SetPipelineState(ID3D12GraphicsCommandList7* This,ID3D12PipelineState *pipeline_state) {
24577 This->lpVtbl->SetPipelineState(This,pipeline_state);
24578}
24579static inline void ID3D12GraphicsCommandList7_ResourceBarrier(ID3D12GraphicsCommandList7* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
24580 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
24581}
24582static inline void ID3D12GraphicsCommandList7_ExecuteBundle(ID3D12GraphicsCommandList7* This,ID3D12GraphicsCommandList *command_list) {
24583 This->lpVtbl->ExecuteBundle(This,command_list);
24584}
24585static inline void ID3D12GraphicsCommandList7_SetDescriptorHeaps(ID3D12GraphicsCommandList7* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
24586 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
24587}
24588static inline void ID3D12GraphicsCommandList7_SetComputeRootSignature(ID3D12GraphicsCommandList7* This,ID3D12RootSignature *root_signature) {
24589 This->lpVtbl->SetComputeRootSignature(This,root_signature);
24590}
24591static inline void ID3D12GraphicsCommandList7_SetGraphicsRootSignature(ID3D12GraphicsCommandList7* This,ID3D12RootSignature *root_signature) {
24592 This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
24593}
24594static inline void ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
24595 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
24596}
24597static inline void ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
24598 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
24599}
24600static inline void ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
24601 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
24602}
24603static inline void ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
24604 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
24605}
24606static inline void ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
24607 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
24608}
24609static inline void ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
24610 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
24611}
24612static inline void ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24613 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
24614}
24615static inline void ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24616 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
24617}
24618static inline void ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24619 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
24620}
24621static inline void ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24622 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
24623}
24624static inline void ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24625 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
24626}
24627static inline void ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
24628 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
24629}
24630static inline void ID3D12GraphicsCommandList7_IASetIndexBuffer(ID3D12GraphicsCommandList7* This,const D3D12_INDEX_BUFFER_VIEW *view) {
24631 This->lpVtbl->IASetIndexBuffer(This,view);
24632}
24633static inline void ID3D12GraphicsCommandList7_IASetVertexBuffers(ID3D12GraphicsCommandList7* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
24634 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
24635}
24636static inline void ID3D12GraphicsCommandList7_SOSetTargets(ID3D12GraphicsCommandList7* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
24637 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
24638}
24639static 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) {
24640 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
24641}
24642static 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) {
24643 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
24644}
24645static inline void ID3D12GraphicsCommandList7_ClearRenderTargetView(ID3D12GraphicsCommandList7* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
24646 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
24647}
24648static 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) {
24649 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
24650}
24651static 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) {
24652 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
24653}
24654static inline void ID3D12GraphicsCommandList7_DiscardResource(ID3D12GraphicsCommandList7* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
24655 This->lpVtbl->DiscardResource(This,resource,region);
24656}
24657static inline void ID3D12GraphicsCommandList7_BeginQuery(ID3D12GraphicsCommandList7* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
24658 This->lpVtbl->BeginQuery(This,heap,type,index);
24659}
24660static inline void ID3D12GraphicsCommandList7_EndQuery(ID3D12GraphicsCommandList7* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
24661 This->lpVtbl->EndQuery(This,heap,type,index);
24662}
24663static 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) {
24664 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
24665}
24666static inline void ID3D12GraphicsCommandList7_SetPredication(ID3D12GraphicsCommandList7* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
24667 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
24668}
24669static inline void ID3D12GraphicsCommandList7_SetMarker(ID3D12GraphicsCommandList7* This,UINT metadata,const void *data,UINT size) {
24670 This->lpVtbl->SetMarker(This,metadata,data,size);
24671}
24672static inline void ID3D12GraphicsCommandList7_BeginEvent(ID3D12GraphicsCommandList7* This,UINT metadata,const void *data,UINT size) {
24673 This->lpVtbl->BeginEvent(This,metadata,data,size);
24674}
24675static inline void ID3D12GraphicsCommandList7_EndEvent(ID3D12GraphicsCommandList7* This) {
24676 This->lpVtbl->EndEvent(This);
24677}
24678static 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) {
24679 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
24680}
24681/*** ID3D12GraphicsCommandList1 methods ***/
24682static 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) {
24683 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
24684}
24685static 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) {
24686 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
24687}
24688static inline void ID3D12GraphicsCommandList7_OMSetDepthBounds(ID3D12GraphicsCommandList7* This,FLOAT min,FLOAT max) {
24689 This->lpVtbl->OMSetDepthBounds(This,min,max);
24690}
24691static inline void ID3D12GraphicsCommandList7_SetSamplePositions(ID3D12GraphicsCommandList7* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
24692 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
24693}
24694static 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) {
24695 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
24696}
24697static inline void ID3D12GraphicsCommandList7_SetViewInstanceMask(ID3D12GraphicsCommandList7* This,UINT mask) {
24698 This->lpVtbl->SetViewInstanceMask(This,mask);
24699}
24700/*** ID3D12GraphicsCommandList2 methods ***/
24701static inline void ID3D12GraphicsCommandList7_WriteBufferImmediate(ID3D12GraphicsCommandList7* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
24702 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
24703}
24704/*** ID3D12GraphicsCommandList3 methods ***/
24705static inline void ID3D12GraphicsCommandList7_SetProtectedResourceSession(ID3D12GraphicsCommandList7* This,ID3D12ProtectedResourceSession *protected_resource_session) {
24706 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session);
24707}
24708/*** ID3D12GraphicsCommandList4 methods ***/
24709static 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) {
24710 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags);
24711}
24712static inline void ID3D12GraphicsCommandList7_EndRenderPass(ID3D12GraphicsCommandList7* This) {
24713 This->lpVtbl->EndRenderPass(This);
24714}
24715static inline void ID3D12GraphicsCommandList7_InitializeMetaCommand(ID3D12GraphicsCommandList7* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) {
24716 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes);
24717}
24718static inline void ID3D12GraphicsCommandList7_ExecuteMetaCommand(ID3D12GraphicsCommandList7* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) {
24719 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes);
24720}
24721static 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) {
24722 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs);
24723}
24724static 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) {
24725 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data);
24726}
24727static 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) {
24728 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode);
24729}
24730static inline void ID3D12GraphicsCommandList7_SetPipelineState1(ID3D12GraphicsCommandList7* This,ID3D12StateObject *state_object) {
24731 This->lpVtbl->SetPipelineState1(This,state_object);
24732}
24733static inline void ID3D12GraphicsCommandList7_DispatchRays(ID3D12GraphicsCommandList7* This,const D3D12_DISPATCH_RAYS_DESC *desc) {
24734 This->lpVtbl->DispatchRays(This,desc);
24735}
24736/*** ID3D12GraphicsCommandList5 methods ***/
24737static inline void ID3D12GraphicsCommandList7_RSSetShadingRate(ID3D12GraphicsCommandList7* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) {
24738 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners);
24739}
24740static inline void ID3D12GraphicsCommandList7_RSSetShadingRateImage(ID3D12GraphicsCommandList7* This,ID3D12Resource *shading_rate_image) {
24741 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image);
24742}
24743/*** ID3D12GraphicsCommandList6 methods ***/
24744static inline void ID3D12GraphicsCommandList7_DispatchMesh(ID3D12GraphicsCommandList7* This,UINT thread_group_count_x,UINT thread_group_count_y,UINT thread_group_count_z) {
24745 This->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z);
24746}
24747/*** ID3D12GraphicsCommandList7 methods ***/
24748static inline void ID3D12GraphicsCommandList7_Barrier(ID3D12GraphicsCommandList7* This,UINT32 barrier_groups_count,const D3D12_BARRIER_GROUP *barrier_groups) {
24749 This->lpVtbl->Barrier(This,barrier_groups_count,barrier_groups);
24750}
24751#endif
24752#endif
24753
24754#endif
24755
24756
24757#endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */
24758
24759#ifndef D3D12_IGNORE_SDK_LAYERS
24760#include "d3d12sdklayers.h"
24761#endif
24762typedef HRESULT (__stdcall *PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
24763HRESULT __stdcall D3D12CreateRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
24764
24765typedef HRESULT (__stdcall *PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
24766HRESULT __stdcall D3D12CreateVersionedRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
24767
24768typedef 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);
24769HRESULT __stdcall D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,D3D_ROOT_SIGNATURE_VERSION version,ID3DBlob **blob,ID3DBlob **error_blob);
24770
24771typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,ID3DBlob **blob,ID3DBlob **error_blob);
24772HRESULT __stdcall D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc,ID3DBlob **blob,ID3DBlob **error_blob);
24773
24774typedef HRESULT (__stdcall *PFN_D3D12_CREATE_DEVICE)(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device);
24775HRESULT __stdcall D3D12CreateDevice(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device);
24776
24777typedef HRESULT (__stdcall *PFN_D3D12_GET_DEBUG_INTERFACE)(REFIID iid,void **debug);
24778HRESULT __stdcall D3D12GetDebugInterface(REFIID iid,void **debug);
24779
24780HRESULT __stdcall D3D12EnableExperimentalFeatures(UINT feature_count,const IID *iids,void *configurations,UINT *configurations_sizes);
24781
24782static const UUID D3D12ExperimentalShaderModels = { 0x76f5573e, 0xf13a, 0x40f5, { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f } };
24783static const UUID D3D12TiledResourceTier4 = { 0xc9c4725f, 0xa81a, 0x4f56, { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb } };
24784static const UUID D3D12MetaCommand = { 0xc734c97e, 0x8077, 0x48c8, { 0x9f, 0xdc, 0xd9, 0xd1, 0xdd, 0x31, 0xdd, 0x77 } };
24785typedef HRESULT (__stdcall *PFN_D3D12_GET_INTERFACE)(REFCLSID clsid,REFIID iid,void **debug);
24786HRESULT __stdcall D3D12GetInterface(REFCLSID clsid,REFIID iid,void **debug);
24787
24788/* Begin additional prototypes for all interfaces */
24789
24790
24791/* End additional prototypes */
24792
24793#ifdef __cplusplus
24794}
24795#endif
24796
24797#endif /* __d3d12_h__ */