Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
/*-------------------------------------------------------------------------------------
*
* Copyright (c) Microsoft Corporation
*
*-------------------------------------------------------------------------------------*/
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 8.01.0622 */
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif
/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __d3d12_h__
#define __d3d12_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
/* Forward Declarations */
#ifndef __ID3D12Object_FWD_DEFINED__
#define __ID3D12Object_FWD_DEFINED__
typedef interface ID3D12Object ID3D12Object;
#endif /* __ID3D12Object_FWD_DEFINED__ */
#ifndef __ID3D12DeviceChild_FWD_DEFINED__
#define __ID3D12DeviceChild_FWD_DEFINED__
typedef interface ID3D12DeviceChild ID3D12DeviceChild;
#endif /* __ID3D12DeviceChild_FWD_DEFINED__ */
#ifndef __ID3D12RootSignature_FWD_DEFINED__
#define __ID3D12RootSignature_FWD_DEFINED__
typedef interface ID3D12RootSignature ID3D12RootSignature;
#endif /* __ID3D12RootSignature_FWD_DEFINED__ */
#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer;
#endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */
#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
#endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */
#ifndef __ID3D12Pageable_FWD_DEFINED__
#define __ID3D12Pageable_FWD_DEFINED__
typedef interface ID3D12Pageable ID3D12Pageable;
#endif /* __ID3D12Pageable_FWD_DEFINED__ */
#ifndef __ID3D12Heap_FWD_DEFINED__
#define __ID3D12Heap_FWD_DEFINED__
typedef interface ID3D12Heap ID3D12Heap;
#endif /* __ID3D12Heap_FWD_DEFINED__ */
#ifndef __ID3D12Resource_FWD_DEFINED__
#define __ID3D12Resource_FWD_DEFINED__
typedef interface ID3D12Resource ID3D12Resource;
#endif /* __ID3D12Resource_FWD_DEFINED__ */
#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
#define __ID3D12CommandAllocator_FWD_DEFINED__
typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
#endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */
#ifndef __ID3D12Fence_FWD_DEFINED__
#define __ID3D12Fence_FWD_DEFINED__
typedef interface ID3D12Fence ID3D12Fence;
#endif /* __ID3D12Fence_FWD_DEFINED__ */
#ifndef __ID3D12Fence1_FWD_DEFINED__
#define __ID3D12Fence1_FWD_DEFINED__
typedef interface ID3D12Fence1 ID3D12Fence1;
#endif /* __ID3D12Fence1_FWD_DEFINED__ */
#ifndef __ID3D12PipelineState_FWD_DEFINED__
#define __ID3D12PipelineState_FWD_DEFINED__
typedef interface ID3D12PipelineState ID3D12PipelineState;
#endif /* __ID3D12PipelineState_FWD_DEFINED__ */
#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
#define __ID3D12DescriptorHeap_FWD_DEFINED__
typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
#endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */
#ifndef __ID3D12QueryHeap_FWD_DEFINED__
#define __ID3D12QueryHeap_FWD_DEFINED__
typedef interface ID3D12QueryHeap ID3D12QueryHeap;
#endif /* __ID3D12QueryHeap_FWD_DEFINED__ */
#ifndef __ID3D12CommandSignature_FWD_DEFINED__
#define __ID3D12CommandSignature_FWD_DEFINED__
typedef interface ID3D12CommandSignature ID3D12CommandSignature;
#endif /* __ID3D12CommandSignature_FWD_DEFINED__ */
#ifndef __ID3D12CommandList_FWD_DEFINED__
#define __ID3D12CommandList_FWD_DEFINED__
typedef interface ID3D12CommandList ID3D12CommandList;
#endif /* __ID3D12CommandList_FWD_DEFINED__ */
#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
#define __ID3D12GraphicsCommandList_FWD_DEFINED__
typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
#endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */
#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
#define __ID3D12GraphicsCommandList1_FWD_DEFINED__
typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1;
#endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */
#ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__
#define __ID3D12GraphicsCommandList2_FWD_DEFINED__
typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2;
#endif /* __ID3D12GraphicsCommandList2_FWD_DEFINED__ */
#ifndef __ID3D12CommandQueue_FWD_DEFINED__
#define __ID3D12CommandQueue_FWD_DEFINED__
typedef interface ID3D12CommandQueue ID3D12CommandQueue;
#endif /* __ID3D12CommandQueue_FWD_DEFINED__ */
#ifndef __ID3D12Device_FWD_DEFINED__
#define __ID3D12Device_FWD_DEFINED__
typedef interface ID3D12Device ID3D12Device;
#endif /* __ID3D12Device_FWD_DEFINED__ */
#ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
#define __ID3D12PipelineLibrary_FWD_DEFINED__
typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary;
#endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */
#ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__
#define __ID3D12PipelineLibrary1_FWD_DEFINED__
typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1;
#endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */
#ifndef __ID3D12Device1_FWD_DEFINED__
#define __ID3D12Device1_FWD_DEFINED__
typedef interface ID3D12Device1 ID3D12Device1;
#endif /* __ID3D12Device1_FWD_DEFINED__ */
#ifndef __ID3D12Device2_FWD_DEFINED__
#define __ID3D12Device2_FWD_DEFINED__
typedef interface ID3D12Device2 ID3D12Device2;
#endif /* __ID3D12Device2_FWD_DEFINED__ */
#ifndef __ID3D12Device3_FWD_DEFINED__
#define __ID3D12Device3_FWD_DEFINED__
typedef interface ID3D12Device3 ID3D12Device3;
#endif /* __ID3D12Device3_FWD_DEFINED__ */
#ifndef __ID3D12ProtectedSession_FWD_DEFINED__
#define __ID3D12ProtectedSession_FWD_DEFINED__
typedef interface ID3D12ProtectedSession ID3D12ProtectedSession;
#endif /* __ID3D12ProtectedSession_FWD_DEFINED__ */
#ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__
#define __ID3D12ProtectedResourceSession_FWD_DEFINED__
typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession;
#endif /* __ID3D12ProtectedResourceSession_FWD_DEFINED__ */
#ifndef __ID3D12Device4_FWD_DEFINED__
#define __ID3D12Device4_FWD_DEFINED__
typedef interface ID3D12Device4 ID3D12Device4;
#endif /* __ID3D12Device4_FWD_DEFINED__ */
#ifndef __ID3D12LifetimeOwner_FWD_DEFINED__
#define __ID3D12LifetimeOwner_FWD_DEFINED__
typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner;
#endif /* __ID3D12LifetimeOwner_FWD_DEFINED__ */
#ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__
#define __ID3D12SwapChainAssistant_FWD_DEFINED__
typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant;
#endif /* __ID3D12SwapChainAssistant_FWD_DEFINED__ */
#ifndef __ID3D12LifetimeTracker_FWD_DEFINED__
#define __ID3D12LifetimeTracker_FWD_DEFINED__
typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker;
#endif /* __ID3D12LifetimeTracker_FWD_DEFINED__ */
#ifndef __ID3D12StateObject_FWD_DEFINED__
#define __ID3D12StateObject_FWD_DEFINED__
typedef interface ID3D12StateObject ID3D12StateObject;
#endif /* __ID3D12StateObject_FWD_DEFINED__ */
#ifndef __ID3D12StateObjectProperties_FWD_DEFINED__
#define __ID3D12StateObjectProperties_FWD_DEFINED__
typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties;
#endif /* __ID3D12StateObjectProperties_FWD_DEFINED__ */
#ifndef __ID3D12Device5_FWD_DEFINED__
#define __ID3D12Device5_FWD_DEFINED__
typedef interface ID3D12Device5 ID3D12Device5;
#endif /* __ID3D12Device5_FWD_DEFINED__ */
#ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
#define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings;
#endif /* __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ */
#ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
#define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData;
#endif /* __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ */
#ifndef __ID3D12Device6_FWD_DEFINED__
#define __ID3D12Device6_FWD_DEFINED__
typedef interface ID3D12Device6 ID3D12Device6;
#endif /* __ID3D12Device6_FWD_DEFINED__ */
#ifndef __ID3D12Resource1_FWD_DEFINED__
#define __ID3D12Resource1_FWD_DEFINED__
typedef interface ID3D12Resource1 ID3D12Resource1;
#endif /* __ID3D12Resource1_FWD_DEFINED__ */
#ifndef __ID3D12Heap1_FWD_DEFINED__
#define __ID3D12Heap1_FWD_DEFINED__
typedef interface ID3D12Heap1 ID3D12Heap1;
#endif /* __ID3D12Heap1_FWD_DEFINED__ */
#ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__
#define __ID3D12GraphicsCommandList3_FWD_DEFINED__
typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3;
#endif /* __ID3D12GraphicsCommandList3_FWD_DEFINED__ */
#ifndef __ID3D12MetaCommand_FWD_DEFINED__
#define __ID3D12MetaCommand_FWD_DEFINED__
typedef interface ID3D12MetaCommand ID3D12MetaCommand;
#endif /* __ID3D12MetaCommand_FWD_DEFINED__ */
#ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__
#define __ID3D12GraphicsCommandList4_FWD_DEFINED__
typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4;
#endif /* __ID3D12GraphicsCommandList4_FWD_DEFINED__ */
#ifndef __ID3D12Tools_FWD_DEFINED__
#define __ID3D12Tools_FWD_DEFINED__
typedef interface ID3D12Tools ID3D12Tools;
#endif /* __ID3D12Tools_FWD_DEFINED__ */
#ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__
#define __ID3D12GraphicsCommandList5_FWD_DEFINED__
typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5;
#endif /* __ID3D12GraphicsCommandList5_FWD_DEFINED__ */
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
#include "dxgicommon.h"
#include "dxgiformat.h"
#include "d3dcommon.h"
#ifdef __cplusplus
extern "C"{
#endif
/* interface __MIDL_itf_d3d12_0000_0000 */
/* [local] */
#ifndef _D3D12_CONSTANTS
#define _D3D12_CONSTANTS
#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff )
#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff )
#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff )
#define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff )
#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 )
#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 )
#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 )
#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 )
#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 )
#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 )
#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 )
#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 )
#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 )
#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 )
#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 )
#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 )
#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 )
#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 )
#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 )
#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 )
#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 )
#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 )
#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 )
#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 )
#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 )
#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 )
#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 )
#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 )
#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 )
#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 )
#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 )
#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 )
#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 )
#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 )
#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 )
#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 )
#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 )
#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 )
#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 )
#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 )
#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 )
#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 )
#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 )
#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 )
#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 )
#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 )
#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 )
#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 )
#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 )
#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 )
#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 )
#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 )
#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 )
#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 )
#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 )
#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 )
#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 )
#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 )
#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 )
#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 )
#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 )
#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 )
#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 )
#define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 )
#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 )
#define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 )
#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 )
#define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 )
#define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 )
#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 )
#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 )
#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 )
#define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 )
#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 )
#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 )
#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 )
#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 )
#define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 )
#define D3D12_CS_THREADID_REGISTER_COUNT ( 1 )
#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 )
#define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 )
#define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 )
#define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 )
#define D3D12_CS_THREAD_GROUP_MIN_X ( 1 )
#define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 )
#define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 )
#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 )
#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f )
#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f )
#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f )
#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f )
#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f )
#define D3D12_DEFAULT_DEPTH_BIAS ( 0 )
#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f )
#define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 )
#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f )
#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 )
#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 )
#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
#define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff )
#define D3D12_DEFAULT_SCISSOR_ENDX ( 0 )
#define D3D12_DEFAULT_SCISSOR_ENDY ( 0 )
#define D3D12_DEFAULT_SCISSOR_STARTX ( 0 )
#define D3D12_DEFAULT_SCISSOR_STARTY ( 0 )
#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f )
#define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff )
#define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 )
#define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff )
#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 )
#define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 )
#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f )
#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f )
#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 )
#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 )
#define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 )
#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff )
#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 )
#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 )
#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 )
#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 )
#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 )
#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 )
#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 )
#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 )
#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )
#define D3D12_FLOAT32_MAX ( 3.402823466e+38f )
#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )
#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f )
#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f )
#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f )
#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f )
#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f )
#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f )
#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f )
#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f )
#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f )
#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f )
#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 )
#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 )
#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 )
#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 )
#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 )
#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 )
#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 )
#define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 )
#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_GS_INPUT_REGISTER_COUNT ( 32 )
#define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 )
#define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 )
#define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 )
#define D3D12_GS_MAX_INSTANCE_COUNT ( 32 )
#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 )
#define D3D12_GS_OUTPUT_ELEMENTS ( 32 )
#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 )
#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 )
#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 )
#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 )
#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 )
#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 )
#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f )
#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f )
#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 )
#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 )
#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 )
#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 )
#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 )
#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 )
#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 )
#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 )
#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 )
#define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 )
#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 )
#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 )
#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 )
#define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 )
#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 )
#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 )
#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 )
#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff )
#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff )
#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff )
#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff )
#define D3D12_LINEAR_GAMMA ( 1.0f )
#define D3D12_MAJOR_VERSION ( 12 )
#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f )
#define D3D12_MAX_DEPTH ( 1.0f )
#define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 )
#define D3D12_MAX_MAXANISOTROPY ( 16 )
#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 )
#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f )
#define D3D12_MAX_ROOT_COST ( 64 )
#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 )
#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 )
#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 )
#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 )
#define D3D12_MAX_VIEW_INSTANCE_COUNT ( 4 )
#define D3D12_MINOR_VERSION ( 0 )
#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f )
#define D3D12_MIN_DEPTH ( 0.0f )
#define D3D12_MIN_MAXANISOTROPY ( 0 )
#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f )
#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f )
#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 )
#define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 )
#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )
#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 )
#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 )
#define D3D12_PACKED_TILE ( 0xffffffff )
#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 )
#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 )
#define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 )
#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 )
#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 )
#define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff )
#define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 )
#define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff )
#define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 )
#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_PS_INPUT_REGISTER_COUNT ( 32 )
#define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 )
#define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 )
#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )
#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 )
#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 )
#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 )
#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 )
#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 )
#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 )
#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )
#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 )
#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 )
#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 )
#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 )
#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 )
#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 )
#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 )
#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 )
#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 )
#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 )
#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 )
#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 )
#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 )
#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 )
#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 )
#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 )
#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 )
#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 )
#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 )
#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
#define D3D12_REQ_MAXANISOTROPY ( 16 )
#define D3D12_REQ_MIP_LEVELS ( 15 )
#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 )
#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 )
#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 )
#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 )
#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )
#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 )
#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 )
#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 )
#define D3D12_REQ_SUBRESOURCES ( 30720 )
#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 )
#define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 )
#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 )
#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 )
#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 )
#define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 )
#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 )
#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff )
#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 )
#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 )
#define D3D12_SHADER_MAJOR_VERSION ( 5 )
#define D3D12_SHADER_MAX_INSTANCES ( 65535 )
#define D3D12_SHADER_MAX_INTERFACES ( 253 )
#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 )
#define D3D12_SHADER_MAX_TYPES ( 65535 )
#define D3D12_SHADER_MINOR_VERSION ( 1 )
#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 )
#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 )
#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 )
#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 )
#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 )
#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 )
#define D3D12_SO_BUFFER_SLOT_COUNT ( 4 )
#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff )
#define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff )
#define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 )
#define D3D12_SO_STREAM_COUNT ( 4 )
#define D3D12_SPEC_DATE_DAY ( 14 )
#define D3D12_SPEC_DATE_MONTH ( 11 )
#define D3D12_SPEC_DATE_YEAR ( 2014 )
#define D3D12_SPEC_VERSION ( 1.16 )
#define D3D12_SRGB_GAMMA ( 2.2f )
#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )
#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )
#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )
#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )
#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )
#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )
#define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 )
#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 )
#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 )
#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 )
#define D3D12_STANDARD_VECTOR_SIZE ( 4 )
#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 )
#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 )
#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 )
#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 )
#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 )
#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 )
#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 )
#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 )
#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 )
#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 )
#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 )
#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 )
#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 )
#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )
#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 )
#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 )
#define D3D12_UAV_SLOT_COUNT ( 64 )
#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 )
#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 )
#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 )
#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 )
#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 )
#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff )
#define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 )
#define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 )
#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 )
#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 )
#define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 )
#define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 )
#define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 )
#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_VS_INPUT_REGISTER_COUNT ( 32 )
#define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 )
#define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 )
#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 )
#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
#define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 )
#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 )
#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 )
#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 )
#endif
typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
typedef
enum D3D12_COMMAND_LIST_TYPE
{
D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
D3D12_COMMAND_LIST_TYPE_COPY = 3,
D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6
} D3D12_COMMAND_LIST_TYPE;
typedef
enum D3D12_COMMAND_QUEUE_FLAGS
{
D3D12_COMMAND_QUEUE_FLAG_NONE = 0,
D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1
} D3D12_COMMAND_QUEUE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS );
typedef
enum D3D12_COMMAND_QUEUE_PRIORITY
{
D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
} D3D12_COMMAND_QUEUE_PRIORITY;
typedef struct D3D12_COMMAND_QUEUE_DESC
{
D3D12_COMMAND_LIST_TYPE Type;
INT Priority;
D3D12_COMMAND_QUEUE_FLAGS Flags;
UINT NodeMask;
} D3D12_COMMAND_QUEUE_DESC;
typedef
enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
{
D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
} D3D12_PRIMITIVE_TOPOLOGY_TYPE;
typedef
enum D3D12_INPUT_CLASSIFICATION
{
D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
} D3D12_INPUT_CLASSIFICATION;
typedef struct D3D12_INPUT_ELEMENT_DESC
{
LPCSTR SemanticName;
UINT SemanticIndex;
DXGI_FORMAT Format;
UINT InputSlot;
UINT AlignedByteOffset;
D3D12_INPUT_CLASSIFICATION InputSlotClass;
UINT InstanceDataStepRate;
} D3D12_INPUT_ELEMENT_DESC;
typedef
enum D3D12_FILL_MODE
{
D3D12_FILL_MODE_WIREFRAME = 2,
D3D12_FILL_MODE_SOLID = 3
} D3D12_FILL_MODE;
typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
typedef
enum D3D12_CULL_MODE
{
D3D12_CULL_MODE_NONE = 1,
D3D12_CULL_MODE_FRONT = 2,
D3D12_CULL_MODE_BACK = 3
} D3D12_CULL_MODE;
typedef struct D3D12_SO_DECLARATION_ENTRY
{
UINT Stream;
LPCSTR SemanticName;
UINT SemanticIndex;
BYTE StartComponent;
BYTE ComponentCount;
BYTE OutputSlot;
} D3D12_SO_DECLARATION_ENTRY;
typedef struct D3D12_VIEWPORT
{
FLOAT TopLeftX;
FLOAT TopLeftY;
FLOAT Width;
FLOAT Height;
FLOAT MinDepth;
FLOAT MaxDepth;
} D3D12_VIEWPORT;
typedef RECT D3D12_RECT;
typedef struct D3D12_BOX
{
UINT left;
UINT top;
UINT front;
UINT right;
UINT bottom;
UINT back;
} D3D12_BOX;
typedef
enum D3D12_COMPARISON_FUNC
{
D3D12_COMPARISON_FUNC_NEVER = 1,
D3D12_COMPARISON_FUNC_LESS = 2,
D3D12_COMPARISON_FUNC_EQUAL = 3,
D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
D3D12_COMPARISON_FUNC_GREATER = 5,
D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
D3D12_COMPARISON_FUNC_ALWAYS = 8
} D3D12_COMPARISON_FUNC;
typedef
enum D3D12_DEPTH_WRITE_MASK
{
D3D12_DEPTH_WRITE_MASK_ZERO = 0,
D3D12_DEPTH_WRITE_MASK_ALL = 1
} D3D12_DEPTH_WRITE_MASK;
typedef
enum D3D12_STENCIL_OP
{
D3D12_STENCIL_OP_KEEP = 1,
D3D12_STENCIL_OP_ZERO = 2,
D3D12_STENCIL_OP_REPLACE = 3,
D3D12_STENCIL_OP_INCR_SAT = 4,
D3D12_STENCIL_OP_DECR_SAT = 5,
D3D12_STENCIL_OP_INVERT = 6,
D3D12_STENCIL_OP_INCR = 7,
D3D12_STENCIL_OP_DECR = 8
} D3D12_STENCIL_OP;
typedef struct D3D12_DEPTH_STENCILOP_DESC
{
D3D12_STENCIL_OP StencilFailOp;
D3D12_STENCIL_OP StencilDepthFailOp;
D3D12_STENCIL_OP StencilPassOp;
D3D12_COMPARISON_FUNC StencilFunc;
} D3D12_DEPTH_STENCILOP_DESC;
typedef struct D3D12_DEPTH_STENCIL_DESC
{
BOOL DepthEnable;
D3D12_DEPTH_WRITE_MASK DepthWriteMask;
D3D12_COMPARISON_FUNC DepthFunc;
BOOL StencilEnable;
UINT8 StencilReadMask;
UINT8 StencilWriteMask;
D3D12_DEPTH_STENCILOP_DESC FrontFace;
D3D12_DEPTH_STENCILOP_DESC BackFace;
} D3D12_DEPTH_STENCIL_DESC;
typedef struct D3D12_DEPTH_STENCIL_DESC1
{
BOOL DepthEnable;
D3D12_DEPTH_WRITE_MASK DepthWriteMask;
D3D12_COMPARISON_FUNC DepthFunc;
BOOL StencilEnable;
UINT8 StencilReadMask;
UINT8 StencilWriteMask;
D3D12_DEPTH_STENCILOP_DESC FrontFace;
D3D12_DEPTH_STENCILOP_DESC BackFace;
BOOL DepthBoundsTestEnable;
} D3D12_DEPTH_STENCIL_DESC1;
typedef
enum D3D12_BLEND
{
D3D12_BLEND_ZERO = 1,
D3D12_BLEND_ONE = 2,
D3D12_BLEND_SRC_COLOR = 3,
D3D12_BLEND_INV_SRC_COLOR = 4,
D3D12_BLEND_SRC_ALPHA = 5,
D3D12_BLEND_INV_SRC_ALPHA = 6,
D3D12_BLEND_DEST_ALPHA = 7,
D3D12_BLEND_INV_DEST_ALPHA = 8,
D3D12_BLEND_DEST_COLOR = 9,
D3D12_BLEND_INV_DEST_COLOR = 10,
D3D12_BLEND_SRC_ALPHA_SAT = 11,
D3D12_BLEND_BLEND_FACTOR = 14,
D3D12_BLEND_INV_BLEND_FACTOR = 15,
D3D12_BLEND_SRC1_COLOR = 16,
D3D12_BLEND_INV_SRC1_COLOR = 17,
D3D12_BLEND_SRC1_ALPHA = 18,
D3D12_BLEND_INV_SRC1_ALPHA = 19
} D3D12_BLEND;
typedef
enum D3D12_BLEND_OP
{
D3D12_BLEND_OP_ADD = 1,
D3D12_BLEND_OP_SUBTRACT = 2,
D3D12_BLEND_OP_REV_SUBTRACT = 3,
D3D12_BLEND_OP_MIN = 4,
D3D12_BLEND_OP_MAX = 5
} D3D12_BLEND_OP;
typedef
enum D3D12_COLOR_WRITE_ENABLE
{
D3D12_COLOR_WRITE_ENABLE_RED = 1,
D3D12_COLOR_WRITE_ENABLE_GREEN = 2,
D3D12_COLOR_WRITE_ENABLE_BLUE = 4,
D3D12_COLOR_WRITE_ENABLE_ALPHA = 8,
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 )
} D3D12_COLOR_WRITE_ENABLE;
typedef
enum D3D12_LOGIC_OP
{
D3D12_LOGIC_OP_CLEAR = 0,
D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) ,
D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) ,
D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) ,
D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) ,
D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) ,
D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) ,
D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) ,
D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) ,
D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) ,
D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) ,
D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) ,
D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) ,
D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) ,
D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) ,
D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 )
} D3D12_LOGIC_OP;
typedef struct D3D12_RENDER_TARGET_BLEND_DESC
{
BOOL BlendEnable;
BOOL LogicOpEnable;
D3D12_BLEND SrcBlend;
D3D12_BLEND DestBlend;
D3D12_BLEND_OP BlendOp;
D3D12_BLEND SrcBlendAlpha;
D3D12_BLEND DestBlendAlpha;
D3D12_BLEND_OP BlendOpAlpha;
D3D12_LOGIC_OP LogicOp;
UINT8 RenderTargetWriteMask;
} D3D12_RENDER_TARGET_BLEND_DESC;
typedef struct D3D12_BLEND_DESC
{
BOOL AlphaToCoverageEnable;
BOOL IndependentBlendEnable;
D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ];
} D3D12_BLEND_DESC;
/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT.
IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */
typedef
enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
{
D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
} D3D12_CONSERVATIVE_RASTERIZATION_MODE;
typedef struct D3D12_RASTERIZER_DESC
{
D3D12_FILL_MODE FillMode;
D3D12_CULL_MODE CullMode;
BOOL FrontCounterClockwise;
INT DepthBias;
FLOAT DepthBiasClamp;
FLOAT SlopeScaledDepthBias;
BOOL DepthClipEnable;
BOOL MultisampleEnable;
BOOL AntialiasedLineEnable;
UINT ForcedSampleCount;
D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;
extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec;
#ifndef __ID3D12Object_INTERFACE_DEFINED__
#define __ID3D12Object_INTERFACE_DEFINED__
/* interface ID3D12Object */
/* [unique][local][object][uuid] */
EXTERN_C const IID IID_ID3D12Object;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
ID3D12Object : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
_In_ REFGUID guid,
_Inout_ UINT *pDataSize,
_Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
_In_ REFGUID guid,
_In_ UINT DataSize,
_In_reads_bytes_opt_( DataSize ) const void *pData) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
_In_ REFGUID guid,
_In_opt_ const IUnknown *pData) = 0;
virtual HRESULT STDMETHODCALLTYPE SetName(
_In_z_ LPCWSTR Name) = 0;
};
#else /* C style interface */
typedef struct ID3D12ObjectVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ID3D12Object * This,
REFIID riid,
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ID3D12Object * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ID3D12Object * This);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
ID3D12Object * This,
_In_ REFGUID guid,
_Inout_ UINT *pDataSize,
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
ID3D12Object * This,
_In_ REFGUID guid,
_In_ UINT DataSize,
_In_reads_bytes_opt_( DataSize ) const void *pData);
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
ID3D12Object * This,
_In_ REFGUID guid,
_In_opt_ const IUnknown *pData);
HRESULT ( STDMETHODCALLTYPE *SetName )(
ID3D12Object * This,
_In_z_ LPCWSTR Name);
END_INTERFACE
} ID3D12ObjectVtbl;
interface ID3D12Object
{
CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ID3D12Object_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ID3D12Object_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ID3D12Object_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
#define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
#define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
#define ID3D12Object_SetName(This,Name) \
( (This)->lpVtbl -> SetName(This,Name) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ID3D12Object_INTERFACE_DEFINED__ */
#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
#define __ID3D12DeviceChild_INTERFACE_DEFINED__
/* interface ID3D12DeviceChild */
/* [unique][local][object][uuid] */
EXTERN_C const IID IID_ID3D12DeviceChild;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
ID3D12DeviceChild : public ID3D12Object
{
public:
virtual HRESULT STDMETHODCALLTYPE GetDevice(
REFIID riid,
_COM_Outptr_opt_ void **ppvDevice) = 0;
};
#else /* C style interface */
typedef struct ID3D12DeviceChildVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ID3D12DeviceChild * This,
REFIID riid,
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ID3D12DeviceChild * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ID3D12DeviceChild * This);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
ID3D12DeviceChild * This,
_In_ REFGUID guid,
_Inout_ UINT *pDataSize,
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
ID3D12DeviceChild * This,
_In_ REFGUID guid,
_In_ UINT DataSize,
_In_reads_bytes_opt_( DataSize ) const void *pData);
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
ID3D12DeviceChild * This,
_In_ REFGUID guid,
_In_opt_ const IUnknown *pData);
HRESULT ( STDMETHODCALLTYPE *SetName )(
ID3D12DeviceChild * This,
_In_z_ LPCWSTR Name);
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
ID3D12DeviceChild * This,
REFIID riid,
_COM_Outptr_opt_ void **ppvDevice);
END_INTERFACE
} ID3D12DeviceChildVtbl;
interface ID3D12DeviceChild
{
CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ID3D12DeviceChild_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ID3D12DeviceChild_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
#define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
#define ID3D12DeviceChild_SetName(This,Name) \
( (This)->lpVtbl -> SetName(This,Name) )
#define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
#define __ID3D12RootSignature_INTERFACE_DEFINED__
/* interface ID3D12RootSignature */
/* [unique][local][object][uuid] */
EXTERN_C const IID IID_ID3D12RootSignature;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
ID3D12RootSignature : public ID3D12DeviceChild
{
public:
};
#else /* C style interface */
typedef struct ID3D12RootSignatureVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ID3D12RootSignature * This,
REFIID riid,
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ID3D12RootSignature * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ID3D12RootSignature * This);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
ID3D12RootSignature * This,
_In_ REFGUID guid,
_Inout_ UINT *pDataSize,
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
ID3D12RootSignature * This,
_In_ REFGUID guid,
_In_ UINT DataSize,
_In_reads_bytes_opt_( DataSize ) const void *pData);
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
ID3D12RootSignature * This,
_In_ REFGUID guid,
_In_opt_ const IUnknown *pData);
HRESULT ( STDMETHODCALLTYPE *SetName )(
ID3D12RootSignature * This,
_In_z_ LPCWSTR Name);
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
ID3D12RootSignature * This,
REFIID riid,
_COM_Outptr_opt_ void **ppvDevice);
END_INTERFACE
} ID3D12RootSignatureVtbl;
interface ID3D12RootSignature
{
CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ID3D12RootSignature_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ID3D12RootSignature_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
#define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
#define ID3D12RootSignature_SetName(This,Name) \
( (This)->lpVtbl -> SetName(This,Name) )
#define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_d3d12_0000_0001 */
/* [local] */
typedef struct D3D12_SHADER_BYTECODE
{
_Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode;
SIZE_T BytecodeLength;
} D3D12_SHADER_BYTECODE;
typedef struct D3D12_STREAM_OUTPUT_DESC
{
_Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
UINT NumEntries;
_Field_size_full_(NumStrides) const UINT *pBufferStrides;
UINT NumStrides;
UINT RasterizedStream;
} D3D12_STREAM_OUTPUT_DESC;
typedef struct D3D12_INPUT_LAYOUT_DESC
{
_Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
UINT NumElements;
} D3D12_INPUT_LAYOUT_DESC;
typedef
enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
{
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
} D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
typedef struct D3D12_CACHED_PIPELINE_STATE
{
_Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob;
SIZE_T CachedBlobSizeInBytes;
} D3D12_CACHED_PIPELINE_STATE;
typedef
enum D3D12_PIPELINE_STATE_FLAGS
{
D3D12_PIPELINE_STATE_FLAG_NONE = 0,
D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1
} D3D12_PIPELINE_STATE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS );
typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
{
ID3D12RootSignature *pRootSignature;
D3D12_SHADER_BYTECODE VS;
D3D12_SHADER_BYTECODE PS;
D3D12_SHADER_BYTECODE DS;
D3D12_SHADER_BYTECODE HS;
D3D12_SHADER_BYTECODE GS;
D3D12_STREAM_OUTPUT_DESC StreamOutput;
D3D12_BLEND_DESC BlendState;
UINT SampleMask;
D3D12_RASTERIZER_DESC RasterizerState;
D3D12_DEPTH_STENCIL_DESC DepthStencilState;
D3D12_INPUT_LAYOUT_DESC InputLayout;
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
UINT NumRenderTargets;
DXGI_FORMAT RTVFormats[ 8 ];
DXGI_FORMAT DSVFormat;
DXGI_SAMPLE_DESC SampleDesc;
UINT NodeMask;
D3D12_CACHED_PIPELINE_STATE CachedPSO;
D3D12_PIPELINE_STATE_FLAGS Flags;
} D3D12_GRAPHICS_PIPELINE_STATE_DESC;
typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
{
ID3D12RootSignature *pRootSignature;
D3D12_SHADER_BYTECODE CS;
UINT NodeMask;
D3D12_CACHED_PIPELINE_STATE CachedPSO;
D3D12_PIPELINE_STATE_FLAGS Flags;
} D3D12_COMPUTE_PIPELINE_STATE_DESC;
struct D3D12_RT_FORMAT_ARRAY
{
DXGI_FORMAT RTFormats[ 8 ];
UINT NumRenderTargets;
} ;
typedef struct D3D12_PIPELINE_STATE_STREAM_DESC
{
_In_ SIZE_T SizeInBytes;
_In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream;
} D3D12_PIPELINE_STATE_STREAM_DESC;
typedef
enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE
{
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) ,
D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING + 1 )
} D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
typedef
enum D3D12_FEATURE
{
D3D12_FEATURE_D3D12_OPTIONS = 0,
D3D12_FEATURE_ARCHITECTURE = 1,
D3D12_FEATURE_FEATURE_LEVELS = 2,
D3D12_FEATURE_FORMAT_SUPPORT = 3,
D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
D3D12_FEATURE_FORMAT_INFO = 5,
D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
D3D12_FEATURE_SHADER_MODEL = 7,
D3D12_FEATURE_D3D12_OPTIONS1 = 8,
D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
D3D12_FEATURE_ROOT_SIGNATURE = 12,
D3D12_FEATURE_ARCHITECTURE1 = 16,
D3D12_FEATURE_D3D12_OPTIONS2 = 18,
D3D12_FEATURE_SHADER_CACHE = 19,
D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
D3D12_FEATURE_D3D12_OPTIONS3 = 21,
D3D12_FEATURE_EXISTING_HEAPS = 22,
D3D12_FEATURE_D3D12_OPTIONS4 = 23,
D3D12_FEATURE_SERIALIZATION = 24,
D3D12_FEATURE_CROSS_NODE = 25,
D3D12_FEATURE_D3D12_OPTIONS5 = 27,
D3D12_FEATURE_D3D12_OPTIONS6 = 30,
D3D12_FEATURE_QUERY_META_COMMAND = 31
} D3D12_FEATURE;
typedef
enum D3D12_SHADER_MIN_PRECISION_SUPPORT
{
D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0,
D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
} D3D12_SHADER_MIN_PRECISION_SUPPORT;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT );
typedef
enum D3D12_TILED_RESOURCES_TIER
{
D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
D3D12_TILED_RESOURCES_TIER_1 = 1,
D3D12_TILED_RESOURCES_TIER_2 = 2,
D3D12_TILED_RESOURCES_TIER_3 = 3,
D3D12_TILED_RESOURCES_TIER_4 = 4
} D3D12_TILED_RESOURCES_TIER;
typedef
enum D3D12_RESOURCE_BINDING_TIER
{
D3D12_RESOURCE_BINDING_TIER_1 = 1,
D3D12_RESOURCE_BINDING_TIER_2 = 2,
D3D12_RESOURCE_BINDING_TIER_3 = 3
} D3D12_RESOURCE_BINDING_TIER;
typedef
enum D3D12_CONSERVATIVE_RASTERIZATION_TIER
{
D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
} D3D12_CONSERVATIVE_RASTERIZATION_TIER;
typedef
enum D3D12_FORMAT_SUPPORT1
{
D3D12_FORMAT_SUPPORT1_NONE = 0,
D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
} D3D12_FORMAT_SUPPORT1;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 );
typedef
enum D3D12_FORMAT_SUPPORT2
{
D3D12_FORMAT_SUPPORT2_NONE = 0,
D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
D3D12_FORMAT_SUPPORT2_TILED = 0x200,
D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000
} D3D12_FORMAT_SUPPORT2;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 );
typedef
enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
{
D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0,
D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
} D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS );
typedef
enum D3D12_CROSS_NODE_SHARING_TIER
{
D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
D3D12_CROSS_NODE_SHARING_TIER_3 = 4
} D3D12_CROSS_NODE_SHARING_TIER;
typedef
enum D3D12_RESOURCE_HEAP_TIER
{
D3D12_RESOURCE_HEAP_TIER_1 = 1,
D3D12_RESOURCE_HEAP_TIER_2 = 2
} D3D12_RESOURCE_HEAP_TIER;
typedef
enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
{
D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0,
D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1,
D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2
} D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
typedef
enum D3D12_VIEW_INSTANCING_TIER
{
D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
D3D12_VIEW_INSTANCING_TIER_1 = 1,
D3D12_VIEW_INSTANCING_TIER_2 = 2,
D3D12_VIEW_INSTANCING_TIER_3 = 3
} D3D12_VIEW_INSTANCING_TIER;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
{
_Out_ BOOL DoublePrecisionFloatShaderOps;
_Out_ BOOL OutputMergerLogicOp;
_Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
_Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
_Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
_Out_ BOOL PSSpecifiedStencilRefSupported;
_Out_ BOOL TypedUAVLoadAdditionalFormats;
_Out_ BOOL ROVsSupported;
_Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
_Out_ UINT MaxGPUVirtualAddressBitsPerResource;
_Out_ BOOL StandardSwizzle64KBSupported;
_Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
_Out_ BOOL CrossAdapterRowMajorTextureSupported;
_Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
_Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
{
_Out_ BOOL WaveOps;
_Out_ UINT WaveLaneCountMin;
_Out_ UINT WaveLaneCountMax;
_Out_ UINT TotalLaneCount;
_Out_ BOOL ExpandedComputeResourceStates;
_Out_ BOOL Int64ShaderOps;
} D3D12_FEATURE_DATA_D3D12_OPTIONS1;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
{
_Out_ BOOL DepthBoundsTestSupported;
_Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS2;
typedef
enum D3D_ROOT_SIGNATURE_VERSION
{
D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2
} D3D_ROOT_SIGNATURE_VERSION;
typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
{
_Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion;
} D3D12_FEATURE_DATA_ROOT_SIGNATURE;
typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
{
_In_ UINT NodeIndex;
_Out_ BOOL TileBasedRenderer;
_Out_ BOOL UMA;
_Out_ BOOL CacheCoherentUMA;
} D3D12_FEATURE_DATA_ARCHITECTURE;
typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
{
_In_ UINT NodeIndex;
_Out_ BOOL TileBasedRenderer;
_Out_ BOOL UMA;
_Out_ BOOL CacheCoherentUMA;
_Out_ BOOL IsolatedMMU;
} D3D12_FEATURE_DATA_ARCHITECTURE1;
typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
{
_In_ UINT NumFeatureLevels;
_In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
_Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
} D3D12_FEATURE_DATA_FEATURE_LEVELS;
typedef
enum D3D_SHADER_MODEL
{
D3D_SHADER_MODEL_5_1 = 0x51,
D3D_SHADER_MODEL_6_0 = 0x60,
D3D_SHADER_MODEL_6_1 = 0x61,
D3D_SHADER_MODEL_6_2 = 0x62,
D3D_SHADER_MODEL_6_3 = 0x63,
D3D_SHADER_MODEL_6_4 = 0x64,
D3D_SHADER_MODEL_6_5 = 0x65
} D3D_SHADER_MODEL;
typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
{
_Inout_ D3D_SHADER_MODEL HighestShaderModel;
} D3D12_FEATURE_DATA_SHADER_MODEL;
typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
{
_In_ DXGI_FORMAT Format;
_Out_ D3D12_FORMAT_SUPPORT1 Support1;
_Out_ D3D12_FORMAT_SUPPORT2 Support2;
} D3D12_FEATURE_DATA_FORMAT_SUPPORT;
typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
{
_In_ DXGI_FORMAT Format;
_In_ UINT SampleCount;
_In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
_Out_ UINT NumQualityLevels;
} D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
{
DXGI_FORMAT Format;
UINT8 PlaneCount;
} D3D12_FEATURE_DATA_FORMAT_INFO;
typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
{
UINT MaxGPUVirtualAddressBitsPerResource;
UINT MaxGPUVirtualAddressBitsPerProcess;
} D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
typedef
enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
{
D3D12_SHADER_CACHE_SUPPORT_NONE = 0,
D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8
} D3D12_SHADER_CACHE_SUPPORT_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS );
typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
{
_Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
} D3D12_FEATURE_DATA_SHADER_CACHE;
typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
{
_In_ D3D12_COMMAND_LIST_TYPE CommandListType;
_In_ UINT Priority;
_Out_ BOOL PriorityForTypeIsSupported;
} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
typedef
enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
{
D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0,
D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) ,
D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) ,
D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) ,
D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) ,
D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) ,
D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) ,
D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE )
} D3D12_COMMAND_LIST_SUPPORT_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS );
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
{
_Out_ BOOL CopyQueueTimestampQueriesSupported;
_Out_ BOOL CastingFullyTypedFormatSupported;
_Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
_Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
_Out_ BOOL BarycentricsSupported;
} D3D12_FEATURE_DATA_D3D12_OPTIONS3;
typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
{
_Out_ BOOL Supported;
} D3D12_FEATURE_DATA_EXISTING_HEAPS;
typedef
enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER
{
D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0,
D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 )
} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
{
_Out_ BOOL MSAA64KBAlignedTextureSupported;
_Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
_Out_ BOOL Native16BitShaderOpsSupported;
} D3D12_FEATURE_DATA_D3D12_OPTIONS4;
typedef
enum D3D12_HEAP_SERIALIZATION_TIER
{
D3D12_HEAP_SERIALIZATION_TIER_0 = 0,
D3D12_HEAP_SERIALIZATION_TIER_10 = 10
} D3D12_HEAP_SERIALIZATION_TIER;
typedef struct D3D12_FEATURE_DATA_SERIALIZATION
{
_In_ UINT NodeIndex;
_Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
} D3D12_FEATURE_DATA_SERIALIZATION;
typedef struct D3D12_FEATURE_DATA_CROSS_NODE
{
D3D12_CROSS_NODE_SHARING_TIER SharingTier;
BOOL AtomicShaderInstructions;
} D3D12_FEATURE_DATA_CROSS_NODE;
typedef
enum D3D12_RENDER_PASS_TIER
{
D3D12_RENDER_PASS_TIER_0 = 0,
D3D12_RENDER_PASS_TIER_1 = 1,
D3D12_RENDER_PASS_TIER_2 = 2
} D3D12_RENDER_PASS_TIER;
typedef
enum D3D12_RAYTRACING_TIER
{
D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0,
D3D12_RAYTRACING_TIER_1_0 = 10
} D3D12_RAYTRACING_TIER;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
{
_Out_ BOOL SRVOnlyTiledResourceTier3;
_Out_ D3D12_RENDER_PASS_TIER RenderPassesTier;
_Out_ D3D12_RAYTRACING_TIER RaytracingTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS5;
typedef
enum D3D12_VARIABLE_SHADING_RATE_TIER
{
D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0,
D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1,
D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2
} D3D12_VARIABLE_SHADING_RATE_TIER;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
{
_Out_ BOOL AdditionalShadingRatesSupported;
_Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
_Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
_Out_ UINT ShadingRateImageTileSize;
_Out_ BOOL BackgroundProcessingSupported;
} D3D12_FEATURE_DATA_D3D12_OPTIONS6;
typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
{
_In_ GUID CommandId;
_In_ UINT NodeMask;
_Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData;
_In_ SIZE_T QueryInputDataSizeInBytes;
_Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData;
_In_ SIZE_T QueryOutputDataSizeInBytes;
} D3D12_FEATURE_DATA_QUERY_META_COMMAND;
typedef struct D3D12_RESOURCE_ALLOCATION_INFO
{
UINT64 SizeInBytes;
UINT64 Alignment;
} D3D12_RESOURCE_ALLOCATION_INFO;
typedef struct D3D12_RESOURCE_ALLOCATION_INFO1
{
UINT64 Offset;
UINT64 Alignment;
UINT64 SizeInBytes;
} D3D12_RESOURCE_ALLOCATION_INFO1;
typedef
enum D3D12_HEAP_TYPE
{
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4
} D3D12_HEAP_TYPE;
typedef
enum D3D12_CPU_PAGE_PROPERTY
{
D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
} D3D12_CPU_PAGE_PROPERTY;
typedef
enum D3D12_MEMORY_POOL
{
D3D12_MEMORY_POOL_UNKNOWN = 0,
D3D12_MEMORY_POOL_L0 = 1,
D3D12_MEMORY_POOL_L1 = 2
} D3D12_MEMORY_POOL;
typedef struct D3D12_HEAP_PROPERTIES
{
D3D12_HEAP_TYPE Type;
D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
D3D12_MEMORY_POOL MemoryPoolPreference;
UINT CreationNodeMask;
UINT VisibleNodeMask;
} D3D12_HEAP_PROPERTIES;
typedef
enum D3D12_HEAP_FLAGS
{
D3D12_HEAP_FLAG_NONE = 0,
D3D12_HEAP_FLAG_SHARED = 0x1,
D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
} D3D12_HEAP_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS );
typedef struct D3D12_HEAP_DESC
{
UINT64 SizeInBytes;
D3D12_HEAP_PROPERTIES Properties;
UINT64 Alignment;
D3D12_HEAP_FLAGS Flags;
} D3D12_HEAP_DESC;
typedef
enum D3D12_RESOURCE_DIMENSION
{
D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
D3D12_RESOURCE_DIMENSION_BUFFER = 1,
D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
} D3D12_RESOURCE_DIMENSION;
typedef
enum D3D12_TEXTURE_LAYOUT
{
D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
} D3D12_TEXTURE_LAYOUT;
typedef
enum D3D12_RESOURCE_FLAGS
{
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40
} D3D12_RESOURCE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS );
typedef struct D3D12_RESOURCE_DESC
{
D3D12_RESOURCE_DIMENSION Dimension;
UINT64 Alignment;
UINT64 Width;
UINT Height;
UINT16 DepthOrArraySize;
UINT16 MipLevels;
DXGI_FORMAT Format;
DXGI_SAMPLE_DESC SampleDesc;
D3D12_TEXTURE_LAYOUT Layout;
D3D12_RESOURCE_FLAGS Flags;
} D3D12_RESOURCE_DESC;
typedef struct D3D12_DEPTH_STENCIL_VALUE
{
FLOAT Depth;
UINT8 Stencil;
} D3D12_DEPTH_STENCIL_VALUE;
typedef struct D3D12_CLEAR_VALUE
{
DXGI_FORMAT Format;
union
{
FLOAT Color[ 4 ];
D3D12_DEPTH_STENCIL_VALUE DepthStencil;
} ;
} D3D12_CLEAR_VALUE;
typedef struct D3D12_RANGE
{
SIZE_T Begin;
SIZE_T End;
} D3D12_RANGE;
typedef struct D3D12_RANGE_UINT64
{
UINT64 Begin;
UINT64 End;
} D3D12_RANGE_UINT64;
typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
{
UINT Subresource;
D3D12_RANGE_UINT64 Range;
} D3D12_SUBRESOURCE_RANGE_UINT64;
typedef struct D3D12_SUBRESOURCE_INFO
{
UINT64 Offset;
UINT RowPitch;
UINT DepthPitch;
} D3D12_SUBRESOURCE_INFO;
typedef struct D3D12_TILED_RESOURCE_COORDINATE
{
UINT X;
UINT Y;
UINT Z;
UINT Subresource;
} D3D12_TILED_RESOURCE_COORDINATE;
typedef struct D3D12_TILE_REGION_SIZE
{
UINT NumTiles;
BOOL UseBox;
UINT Width;
UINT16 Height;
UINT16 Depth;
} D3D12_TILE_REGION_SIZE;
typedef
enum D3D12_TILE_RANGE_FLAGS
{
D3D12_TILE_RANGE_FLAG_NONE = 0,
D3D12_TILE_RANGE_FLAG_NULL = 1,
D3D12_TILE_RANGE_FLAG_SKIP = 2,
D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4
} D3D12_TILE_RANGE_FLAGS;
typedef struct D3D12_SUBRESOURCE_TILING
{
UINT WidthInTiles;
UINT16 HeightInTiles;
UINT16 DepthInTiles;
UINT StartTileIndexInOverallResource;
} D3D12_SUBRESOURCE_TILING;
typedef struct D3D12_TILE_SHAPE
{
UINT WidthInTexels;
UINT HeightInTexels;
UINT DepthInTexels;
} D3D12_TILE_SHAPE;
typedef struct D3D12_PACKED_MIP_INFO
{
UINT8 NumStandardMips;
UINT8 NumPackedMips;
UINT NumTilesForPackedMips;
UINT StartTileIndexInOverallResource;
} D3D12_PACKED_MIP_INFO;
typedef
enum D3D12_TILE_MAPPING_FLAGS
{
D3D12_TILE_MAPPING_FLAG_NONE = 0,
D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
} D3D12_TILE_MAPPING_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS );
typedef
enum D3D12_TILE_COPY_FLAGS
{
D3D12_TILE_COPY_FLAG_NONE = 0,
D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
} D3D12_TILE_COPY_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS );
typedef
enum D3D12_RESOURCE_STATES
{
D3D12_RESOURCE_STATE_COMMON = 0,
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) ,
D3D12_RESOURCE_STATE_PRESENT = 0,
D3D12_RESOURCE_STATE_PREDICATION = 0x200,
D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
} D3D12_RESOURCE_STATES;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES );
typedef
enum D3D12_RESOURCE_BARRIER_TYPE
{
D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) ,
D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 )
} D3D12_RESOURCE_BARRIER_TYPE;
typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
{
ID3D12Resource *pResource;
UINT Subresource;
D3D12_RESOURCE_STATES StateBefore;
D3D12_RESOURCE_STATES StateAfter;
} D3D12_RESOURCE_TRANSITION_BARRIER;
typedef struct D3D12_RESOURCE_ALIASING_BARRIER
{
ID3D12Resource *pResourceBefore;
ID3D12Resource *pResourceAfter;
} D3D12_RESOURCE_ALIASING_BARRIER;
typedef struct D3D12_RESOURCE_UAV_BARRIER
{
ID3D12Resource *pResource;
} D3D12_RESOURCE_UAV_BARRIER;
typedef
enum D3D12_RESOURCE_BARRIER_FLAGS
{
D3D12_RESOURCE_BARRIER_FLAG_NONE = 0,
D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
} D3D12_RESOURCE_BARRIER_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS );
typedef struct D3D12_RESOURCE_BARRIER
{
D3D12_RESOURCE_BARRIER_TYPE Type;
D3D12_RESOURCE_BARRIER_FLAGS Flags;
union
{
D3D12_RESOURCE_TRANSITION_BARRIER Transition;
D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
D3D12_RESOURCE_UAV_BARRIER UAV;
} ;
} D3D12_RESOURCE_BARRIER;
typedef struct D3D12_SUBRESOURCE_FOOTPRINT
{
DXGI_FORMAT Format;
UINT Width;
UINT Height;
UINT Depth;
UINT RowPitch;
} D3D12_SUBRESOURCE_FOOTPRINT;
typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
{
UINT64 Offset;
D3D12_SUBRESOURCE_FOOTPRINT Footprint;
} D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
typedef
enum D3D12_TEXTURE_COPY_TYPE
{
D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
} D3D12_TEXTURE_COPY_TYPE;
typedef struct D3D12_TEXTURE_COPY_LOCATION
{
ID3D12Resource *pResource;
D3D12_TEXTURE_COPY_TYPE Type;
union
{
D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
UINT SubresourceIndex;
} ;
} D3D12_TEXTURE_COPY_LOCATION;
typedef
enum D3D12_RESOLVE_MODE
{
D3D12_RESOLVE_MODE_DECOMPRESS = 0,
D3D12_RESOLVE_MODE_MIN = 1,
D3D12_RESOLVE_MODE_MAX = 2,
D3D12_RESOLVE_MODE_AVERAGE = 3
} D3D12_RESOLVE_MODE;
typedef struct D3D12_SAMPLE_POSITION
{
INT8 X;
INT8 Y;
} D3D12_SAMPLE_POSITION;
typedef struct D3D12_VIEW_INSTANCE_LOCATION
{
UINT ViewportArrayIndex;
UINT RenderTargetArrayIndex;
} D3D12_VIEW_INSTANCE_LOCATION;
typedef
enum D3D12_VIEW_INSTANCING_FLAGS
{
D3D12_VIEW_INSTANCING_FLAG_NONE = 0,
D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1
} D3D12_VIEW_INSTANCING_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS );
typedef struct D3D12_VIEW_INSTANCING_DESC
{
UINT ViewInstanceCount;
_Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
D3D12_VIEW_INSTANCING_FLAGS Flags;
} D3D12_VIEW_INSTANCING_DESC;
typedef
enum D3D12_SHADER_COMPONENT_MAPPING
{
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
} D3D12_SHADER_COMPONENT_MAPPING;
#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
(((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
(((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
(((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))
#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)
typedef
enum D3D12_BUFFER_SRV_FLAGS
{
D3D12_BUFFER_SRV_FLAG_NONE = 0,
D3D12_BUFFER_SRV_FLAG_RAW = 0x1
} D3D12_BUFFER_SRV_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS );
typedef struct D3D12_BUFFER_SRV
{
UINT64 FirstElement;
UINT NumElements;
UINT StructureByteStride;
D3D12_BUFFER_SRV_FLAGS Flags;
} D3D12_BUFFER_SRV;
typedef struct D3D12_TEX1D_SRV
{
UINT MostDetailedMip;
UINT MipLevels;
FLOAT ResourceMinLODClamp;
} D3D12_TEX1D_SRV;
typedef struct D3D12_TEX1D_ARRAY_SRV
{
UINT MostDetailedMip;
UINT MipLevels;
UINT FirstArraySlice;
UINT ArraySize;
FLOAT ResourceMinLODClamp;
} D3D12_TEX1D_ARRAY_SRV;
typedef struct D3D12_TEX2D_SRV
{
UINT MostDetailedMip;
UINT MipLevels;
UINT PlaneSlice;
FLOAT ResourceMinLODClamp;
} D3D12_TEX2D_SRV;
typedef struct D3D12_TEX2D_ARRAY_SRV
{
UINT MostDetailedMip;
UINT MipLevels;
UINT FirstArraySlice;
UINT ArraySize;
UINT PlaneSlice;
FLOAT ResourceMinLODClamp;
} D3D12_TEX2D_ARRAY_SRV;
typedef struct D3D12_TEX3D_SRV
{
UINT MostDetailedMip;
UINT MipLevels;
FLOAT ResourceMinLODClamp;
} D3D12_TEX3D_SRV;
typedef struct D3D12_TEXCUBE_SRV
{
UINT MostDetailedMip;
UINT MipLevels;
FLOAT ResourceMinLODClamp;
} D3D12_TEXCUBE_SRV;
typedef struct D3D12_TEXCUBE_ARRAY_SRV
{
UINT MostDetailedMip;
UINT MipLevels;
UINT First2DArrayFace;
UINT NumCubes;
FLOAT ResourceMinLODClamp;
} D3D12_TEXCUBE_ARRAY_SRV;
typedef struct D3D12_TEX2DMS_SRV
{
UINT UnusedField_NothingToDefine;
} D3D12_TEX2DMS_SRV;
typedef struct D3D12_TEX2DMS_ARRAY_SRV
{
UINT FirstArraySlice;
UINT ArraySize;
} D3D12_TEX2DMS_ARRAY_SRV;
typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV
{
D3D12_GPU_VIRTUAL_ADDRESS Location;
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
typedef
enum D3D12_SRV_DIMENSION
{
D3D12_SRV_DIMENSION_UNKNOWN = 0,
D3D12_SRV_DIMENSION_BUFFER = 1,
D3D12_SRV_DIMENSION_TEXTURE1D = 2,
D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
D3D12_SRV_DIMENSION_TEXTURE2D = 4,
D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
D3D12_SRV_DIMENSION_TEXTURE3D = 8,
D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
} D3D12_SRV_DIMENSION;
typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
{
DXGI_FORMAT Format;
D3D12_SRV_DIMENSION ViewDimension;
UINT Shader4ComponentMapping;
union
{
D3D12_BUFFER_SRV Buffer;
D3D12_TEX1D_SRV Texture1D;
D3D12_TEX1D_ARRAY_SRV Texture1DArray;
D3D12_TEX2D_SRV Texture2D;
D3D12_TEX2D_ARRAY_SRV Texture2DArray;
D3D12_TEX2DMS_SRV Texture2DMS;
D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
D3D12_TEX3D_SRV Texture3D;
D3D12_TEXCUBE_SRV TextureCube;
D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
} ;
} D3D12_SHADER_RESOURCE_VIEW_DESC;
typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
{
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
UINT SizeInBytes;
} D3D12_CONSTANT_BUFFER_VIEW_DESC;
typedef
enum D3D12_FILTER
{
D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
D3D12_FILTER_ANISOTROPIC = 0x55,
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
} D3D12_FILTER;
typedef
enum D3D12_FILTER_TYPE
{
D3D12_FILTER_TYPE_POINT = 0,
D3D12_FILTER_TYPE_LINEAR = 1
} D3D12_FILTER_TYPE;
typedef
enum D3D12_FILTER_REDUCTION_TYPE
{
D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
} D3D12_FILTER_REDUCTION_TYPE;
#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 )
#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 )
#define D3D12_FILTER_TYPE_MASK ( 0x3 )
#define D3D12_MIN_FILTER_SHIFT ( 4 )
#define D3D12_MAG_FILTER_SHIFT ( 2 )
#define D3D12_MIP_FILTER_SHIFT ( 0 )
#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 )
#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \
( ( D3D12_FILTER ) ( \
( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \
( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \
( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \
( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) )
#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \
( ( D3D12_FILTER ) ( \
D3D12_ANISOTROPIC_FILTERING_BIT | \
D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
D3D12_FILTER_TYPE_LINEAR, \
D3D12_FILTER_TYPE_LINEAR, \
reduction ) ) )
#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \
( ( D3D12_FILTER_TYPE ) \
( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \
( ( D3D12_FILTER_TYPE ) \
( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \
( ( D3D12_FILTER_TYPE ) \
( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \
( ( D3D12_FILTER_REDUCTION_TYPE ) \
( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) )
#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \
( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON )
#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \
( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \
( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \
( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) && \
( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) )
typedef
enum D3D12_TEXTURE_ADDRESS_MODE
{
D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
} D3D12_TEXTURE_ADDRESS_MODE;
typedef struct D3D12_SAMPLER_DESC
{
D3D12_FILTER Filter;
D3D12_TEXTURE_ADDRESS_MODE AddressU;
D3D12_TEXTURE_ADDRESS_MODE AddressV;
D3D12_TEXTURE_ADDRESS_MODE AddressW;
FLOAT MipLODBias;
UINT MaxAnisotropy;
D3D12_COMPARISON_FUNC ComparisonFunc;
FLOAT BorderColor[ 4 ];
FLOAT MinLOD;
FLOAT MaxLOD;
} D3D12_SAMPLER_DESC;
typedef
enum D3D12_BUFFER_UAV_FLAGS
{
D3D12_BUFFER_UAV_FLAG_NONE = 0,
D3D12_BUFFER_UAV_FLAG_RAW = 0x1
} D3D12_BUFFER_UAV_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS );
typedef struct D3D12_BUFFER_UAV
{
UINT64 FirstElement;
UINT NumElements;
UINT StructureByteStride;
UINT64 CounterOffsetInBytes;
D3D12_BUFFER_UAV_FLAGS Flags;
} D3D12_BUFFER_UAV;
typedef struct D3D12_TEX1D_UAV
{
UINT MipSlice;
} D3D12_TEX1D_UAV;
typedef struct D3D12_TEX1D_ARRAY_UAV
{
UINT MipSlice;
UINT FirstArraySlice;
UINT ArraySize;
} D3D12_TEX1D_ARRAY_UAV;
typedef struct D3D12_TEX2D_UAV
{
UINT MipSlice;
UINT PlaneSlice;
} D3D12_TEX2D_UAV;
typedef struct D3D12_TEX2D_ARRAY_UAV
{
UINT MipSlice;
UINT FirstArraySlice;
UINT ArraySize;
UINT PlaneSlice;
} D3D12_TEX2D_ARRAY_UAV;
typedef struct D3D12_TEX3D_UAV
{
UINT MipSlice;
UINT FirstWSlice;
UINT WSize;
} D3D12_TEX3D_UAV;
typedef
enum D3D12_UAV_DIMENSION
{
D3D12_UAV_DIMENSION_UNKNOWN = 0,
D3D12_UAV_DIMENSION_BUFFER = 1,
D3D12_UAV_DIMENSION_TEXTURE1D = 2,
D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
D3D12_UAV_DIMENSION_TEXTURE2D = 4,
D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
D3D12_UAV_DIMENSION_TEXTURE3D = 8
} D3D12_UAV_DIMENSION;
typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
{
DXGI_FORMAT Format;
D3D12_UAV_DIMENSION ViewDimension;
union
{
D3D12_BUFFER_UAV Buffer;
D3D12_TEX1D_UAV Texture1D;
D3D12_TEX1D_ARRAY_UAV Texture1DArray;
D3D12_TEX2D_UAV Texture2D;
D3D12_TEX2D_ARRAY_UAV Texture2DArray;
D3D12_TEX3D_UAV Texture3D;
} ;
} D3D12_UNORDERED_ACCESS_VIEW_DESC;
typedef struct D3D12_BUFFER_RTV
{
UINT64 FirstElement;
UINT NumElements;
} D3D12_BUFFER_RTV;
typedef struct D3D12_TEX1D_RTV
{
UINT MipSlice;
} D3D12_TEX1D_RTV;
typedef struct D3D12_TEX1D_ARRAY_RTV
{
UINT MipSlice;
UINT FirstArraySlice;
UINT ArraySize;
} D3D12_TEX1D_ARRAY_RTV;
typedef struct D3D12_TEX2D_RTV
{
UINT MipSlice;
UINT PlaneSlice;
} D3D12_TEX2D_RTV;
typedef struct D3D12_TEX2DMS_RTV
{
UINT UnusedField_NothingToDefine;
} D3D12_TEX2DMS_RTV;
typedef struct D3D12_TEX2D_ARRAY_RTV
{
UINT MipSlice;
UINT FirstArraySlice;
UINT ArraySize;
UINT PlaneSlice;
} D3D12_TEX2D_ARRAY_RTV;
typedef struct D3D12_TEX2DMS_ARRAY_RTV
{
UINT FirstArraySlice;
UINT ArraySize;
} D3D12_TEX2DMS_ARRAY_RTV;
typedef struct D3D12_TEX3D_RTV
{
UINT MipSlice;
UINT FirstWSlice;
UINT WSize;
} D3D12_TEX3D_RTV;
typedef
enum D3D12_RTV_DIMENSION
{
D3D12_RTV_DIMENSION_UNKNOWN = 0,
D3D12_RTV_DIMENSION_BUFFER = 1,
D3D12_RTV_DIMENSION_TEXTURE1D = 2,
D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
D3D12_RTV_DIMENSION_TEXTURE2D = 4,
D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
D3D12_RTV_DIMENSION_TEXTURE3D = 8
} D3D12_RTV_DIMENSION;
typedef struct D3D12_RENDER_TARGET_VIEW_DESC
{
DXGI_FORMAT Format;
D3D12_RTV_DIMENSION ViewDimension;
union
{
D3D12_BUFFER_RTV Buffer;
D3D12_TEX1D_RTV Texture1D;
D3D12_TEX1D_ARRAY_RTV Texture1DArray;
D3D12_TEX2D_RTV Texture2D;
D3D12_TEX2D_ARRAY_RTV Texture2DArray;
D3D12_TEX2DMS_RTV Texture2DMS;
D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
D3D12_TEX3D_RTV Texture3D;
} ;
} D3D12_RENDER_TARGET_VIEW_DESC;
typedef struct D3D12_TEX1D_DSV
{
UINT MipSlice;
} D3D12_TEX1D_DSV;
typedef struct D3D12_TEX1D_ARRAY_DSV
{
UINT MipSlice;
UINT FirstArraySlice;
UINT ArraySize;
} D3D12_TEX1D_ARRAY_DSV;
typedef struct D3D12_TEX2D_DSV
{
UINT MipSlice;
} D3D12_TEX2D_DSV;
typedef struct D3D12_TEX2D_ARRAY_DSV
{
UINT MipSlice;
UINT FirstArraySlice;
UINT ArraySize;
} D3D12_TEX2D_ARRAY_DSV;
typedef struct D3D12_TEX2DMS_DSV
{
UINT UnusedField_NothingToDefine;
} D3D12_TEX2DMS_DSV;
typedef struct D3D12_TEX2DMS_ARRAY_DSV
{
UINT FirstArraySlice;
UINT ArraySize;
} D3D12_TEX2DMS_ARRAY_DSV;
typedef
enum D3D12_DSV_FLAGS
{
D3D12_DSV_FLAG_NONE = 0,
D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
} D3D12_DSV_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS );
typedef
enum D3D12_DSV_DIMENSION
{
D3D12_DSV_DIMENSION_UNKNOWN = 0,
D3D12_DSV_DIMENSION_TEXTURE1D = 1,
D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
D3D12_DSV_DIMENSION_TEXTURE2D = 3,
D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
} D3D12_DSV_DIMENSION;
typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
{
DXGI_FORMAT Format;
D3D12_DSV_DIMENSION ViewDimension;
D3D12_DSV_FLAGS Flags;
union
{
D3D12_TEX1D_DSV Texture1D;
D3D12_TEX1D_ARRAY_DSV Texture1DArray;
D3D12_TEX2D_DSV Texture2D;
D3D12_TEX2D_ARRAY_DSV Texture2DArray;
D3D12_TEX2DMS_DSV Texture2DMS;
D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
} ;
} D3D12_DEPTH_STENCIL_VIEW_DESC;
typedef
enum D3D12_CLEAR_FLAGS
{
D3D12_CLEAR_FLAG_DEPTH = 0x1,
D3D12_CLEAR_FLAG_STENCIL = 0x2
} D3D12_CLEAR_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS );
typedef
enum D3D12_FENCE_FLAGS
{
D3D12_FENCE_FLAG_NONE = 0,
D3D12_FENCE_FLAG_SHARED = 0x1,
D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
D3D12_FENCE_FLAG_NON_MONITORED = 0x4
} D3D12_FENCE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS );
typedef
enum D3D12_DESCRIPTOR_HEAP_TYPE
{
D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) ,
D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) ,
D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) ,
D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 )
} D3D12_DESCRIPTOR_HEAP_TYPE;
typedef
enum D3D12_DESCRIPTOR_HEAP_FLAGS
{
D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
} D3D12_DESCRIPTOR_HEAP_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS );
typedef struct D3D12_DESCRIPTOR_HEAP_DESC
{
D3D12_DESCRIPTOR_HEAP_TYPE Type;
UINT NumDescriptors;
D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
UINT NodeMask;
} D3D12_DESCRIPTOR_HEAP_DESC;
typedef
enum D3D12_DESCRIPTOR_RANGE_TYPE
{
D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) ,
D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) ,
D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 )
} D3D12_DESCRIPTOR_RANGE_TYPE;
typedef struct D3D12_DESCRIPTOR_RANGE
{
D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
UINT NumDescriptors;
UINT BaseShaderRegister;
UINT RegisterSpace;
UINT OffsetInDescriptorsFromTableStart;
} D3D12_DESCRIPTOR_RANGE;
typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
{
UINT NumDescriptorRanges;
_Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
} D3D12_ROOT_DESCRIPTOR_TABLE;
typedef struct D3D12_ROOT_CONSTANTS
{
UINT ShaderRegister;
UINT RegisterSpace;
UINT Num32BitValues;
} D3D12_ROOT_CONSTANTS;
typedef struct D3D12_ROOT_DESCRIPTOR
{
UINT ShaderRegister;
UINT RegisterSpace;
} D3D12_ROOT_DESCRIPTOR;
typedef
enum D3D12_SHADER_VISIBILITY
{
D3D12_SHADER_VISIBILITY_ALL = 0,
D3D12_SHADER_VISIBILITY_VERTEX = 1,
D3D12_SHADER_VISIBILITY_HULL = 2,
D3D12_SHADER_VISIBILITY_DOMAIN = 3,
D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
D3D12_SHADER_VISIBILITY_PIXEL = 5
} D3D12_SHADER_VISIBILITY;
typedef
enum D3D12_ROOT_PARAMETER_TYPE
{
D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) ,
D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) ,
D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) ,
D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 )
} D3D12_ROOT_PARAMETER_TYPE;
typedef struct D3D12_ROOT_PARAMETER
{
D3D12_ROOT_PARAMETER_TYPE ParameterType;
union
{
D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
D3D12_ROOT_CONSTANTS Constants;
D3D12_ROOT_DESCRIPTOR Descriptor;
} ;
D3D12_SHADER_VISIBILITY ShaderVisibility;
} D3D12_ROOT_PARAMETER;
typedef
enum D3D12_ROOT_SIGNATURE_FLAGS
{
D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80
} D3D12_ROOT_SIGNATURE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS );
typedef
enum D3D12_STATIC_BORDER_COLOR
{
D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) ,
D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 )
} D3D12_STATIC_BORDER_COLOR;
typedef struct D3D12_STATIC_SAMPLER_DESC
{
D3D12_FILTER Filter;
D3D12_TEXTURE_ADDRESS_MODE AddressU;
D3D12_TEXTURE_ADDRESS_MODE AddressV;
D3D12_TEXTURE_ADDRESS_MODE AddressW;
FLOAT MipLODBias;
UINT MaxAnisotropy;
D3D12_COMPARISON_FUNC ComparisonFunc;
D3D12_STATIC_BORDER_COLOR BorderColor;
FLOAT MinLOD;
FLOAT MaxLOD;
UINT ShaderRegister;
UINT RegisterSpace;
D3D12_SHADER_VISIBILITY ShaderVisibility;
} D3D12_STATIC_SAMPLER_DESC;
typedef struct D3D12_ROOT_SIGNATURE_DESC
{
UINT NumParameters;
_Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters;
UINT NumStaticSamplers;
_Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
D3D12_ROOT_SIGNATURE_FLAGS Flags;
} D3D12_ROOT_SIGNATURE_DESC;
typedef
enum D3D12_DESCRIPTOR_RANGE_FLAGS
{
D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
} D3D12_DESCRIPTOR_RANGE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS );
typedef struct D3D12_DESCRIPTOR_RANGE1
{
D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
UINT NumDescriptors;
UINT BaseShaderRegister;
UINT RegisterSpace;
D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
UINT OffsetInDescriptorsFromTableStart;
} D3D12_DESCRIPTOR_RANGE1;
typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
{
UINT NumDescriptorRanges;
_Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
} D3D12_ROOT_DESCRIPTOR_TABLE1;
typedef
enum D3D12_ROOT_DESCRIPTOR_FLAGS
{
D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0,
D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
} D3D12_ROOT_DESCRIPTOR_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS );
typedef struct D3D12_ROOT_DESCRIPTOR1
{
UINT ShaderRegister;
UINT RegisterSpace;
D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
} D3D12_ROOT_DESCRIPTOR1;
typedef struct D3D12_ROOT_PARAMETER1
{
D3D12_ROOT_PARAMETER_TYPE ParameterType;
union
{
D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
D3D12_ROOT_CONSTANTS Constants;
D3D12_ROOT_DESCRIPTOR1 Descriptor;
} ;
D3D12_SHADER_VISIBILITY ShaderVisibility;
} D3D12_ROOT_PARAMETER1;
typedef struct D3D12_ROOT_SIGNATURE_DESC1
{
UINT NumParameters;
_Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
UINT NumStaticSamplers;
_Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
D3D12_ROOT_SIGNATURE_FLAGS Flags;
} D3D12_ROOT_SIGNATURE_DESC1;
typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
{
D3D_ROOT_SIGNATURE_VERSION Version;
union
{
D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
} ;
} D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec;
#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
/* interface ID3D12RootSignatureDeserializer */
/* [unique][local][object][uuid] */
EXTERN_C const IID IID_ID3D12RootSignatureDeserializer;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046")
ID3D12RootSignatureDeserializer : public IUnknown
{
public:
virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0;
};
#else /* C style interface */
typedef struct ID3D12RootSignatureDeserializerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ID3D12RootSignatureDeserializer * This,
REFIID riid,
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ID3D12RootSignatureDeserializer * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ID3D12RootSignatureDeserializer * This);
const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )(
ID3D12RootSignatureDeserializer * This);
END_INTERFACE
} ID3D12RootSignatureDeserializerVtbl;