diff --git a/renderdoc/driver/dx/official/d3d11.h b/renderdoc/driver/dx/official/d3d11.h
index 53215578c..cf43cc5e4 100644
--- a/renderdoc/driver/dx/official/d3d11.h
+++ b/renderdoc/driver/dx/official/d3d11.h
@@ -1050,6 +1050,10 @@ extern "C"{
#define _D3D11_2_CONSTANTS
#define D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )
+#define D3D11_4_VIDEO_DECODER_MAX_HISTOGRAM_COMPONENTS ( 4 )
+
+#define D3D11_4_VIDEO_DECODER_HISTOGRAM_OFFSET_ALIGNMENT ( 256 )
+
#endif
#define _FACD3D11 ( 0x87c )
@@ -1289,8 +1293,7 @@ typedef RECT D3D11_RECT;
}
struct CD3D11_RECT : public D3D11_RECT
{
- CD3D11_RECT()
- {}
+ CD3D11_RECT() = default;
explicit CD3D11_RECT( const D3D11_RECT& o ) :
D3D11_RECT( o )
{}
@@ -1331,8 +1334,7 @@ typedef struct D3D11_BOX
}
struct CD3D11_BOX : public D3D11_BOX
{
- CD3D11_BOX()
- {}
+ CD3D11_BOX() = default;
explicit CD3D11_BOX( const D3D11_BOX& o ) :
D3D11_BOX( o )
{}
@@ -1568,8 +1570,7 @@ typedef struct D3D11_DEPTH_STENCIL_DESC
}
struct CD3D11_DEPTH_STENCIL_DESC : public D3D11_DEPTH_STENCIL_DESC
{
- CD3D11_DEPTH_STENCIL_DESC()
- {}
+ CD3D11_DEPTH_STENCIL_DESC() = default;
explicit CD3D11_DEPTH_STENCIL_DESC( const D3D11_DEPTH_STENCIL_DESC& o ) :
D3D11_DEPTH_STENCIL_DESC( o )
{}
@@ -1822,8 +1823,7 @@ typedef struct D3D11_BLEND_DESC
}
struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC
{
- CD3D11_BLEND_DESC()
- {}
+ CD3D11_BLEND_DESC() = default;
explicit CD3D11_BLEND_DESC( const D3D11_BLEND_DESC& o ) :
D3D11_BLEND_DESC( o )
{}
@@ -1997,8 +1997,7 @@ typedef struct D3D11_RASTERIZER_DESC
}
struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC
{
- CD3D11_RASTERIZER_DESC()
- {}
+ CD3D11_RASTERIZER_DESC() = default;
explicit CD3D11_RASTERIZER_DESC( const D3D11_RASTERIZER_DESC& o ) :
D3D11_RASTERIZER_DESC( o )
{}
@@ -2363,8 +2362,7 @@ typedef struct D3D11_BUFFER_DESC
}
struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC
{
- CD3D11_BUFFER_DESC()
- {}
+ CD3D11_BUFFER_DESC() = default;
explicit CD3D11_BUFFER_DESC( const D3D11_BUFFER_DESC& o ) :
D3D11_BUFFER_DESC( o )
{}
@@ -2560,8 +2558,7 @@ typedef struct D3D11_TEXTURE1D_DESC
}
struct CD3D11_TEXTURE1D_DESC : public D3D11_TEXTURE1D_DESC
{
- CD3D11_TEXTURE1D_DESC()
- {}
+ CD3D11_TEXTURE1D_DESC() = default;
explicit CD3D11_TEXTURE1D_DESC( const D3D11_TEXTURE1D_DESC& o ) :
D3D11_TEXTURE1D_DESC( o )
{}
@@ -2763,8 +2760,7 @@ typedef struct D3D11_TEXTURE2D_DESC
}
struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC
{
- CD3D11_TEXTURE2D_DESC()
- {}
+ CD3D11_TEXTURE2D_DESC() = default;
explicit CD3D11_TEXTURE2D_DESC( const D3D11_TEXTURE2D_DESC& o ) :
D3D11_TEXTURE2D_DESC( o )
{}
@@ -2971,8 +2967,7 @@ typedef struct D3D11_TEXTURE3D_DESC
}
struct CD3D11_TEXTURE3D_DESC : public D3D11_TEXTURE3D_DESC
{
- CD3D11_TEXTURE3D_DESC()
- {}
+ CD3D11_TEXTURE3D_DESC() = default;
explicit CD3D11_TEXTURE3D_DESC( const D3D11_TEXTURE3D_DESC& o ) :
D3D11_TEXTURE3D_DESC( o )
{}
@@ -3412,8 +3407,7 @@ typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC
}
struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC
{
- CD3D11_SHADER_RESOURCE_VIEW_DESC()
- {}
+ CD3D11_SHADER_RESOURCE_VIEW_DESC() = default;
explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( const D3D11_SHADER_RESOURCE_VIEW_DESC& o ) :
D3D11_SHADER_RESOURCE_VIEW_DESC( o )
{}
@@ -3833,8 +3827,7 @@ typedef struct D3D11_RENDER_TARGET_VIEW_DESC
}
struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC
{
- CD3D11_RENDER_TARGET_VIEW_DESC()
- {}
+ CD3D11_RENDER_TARGET_VIEW_DESC() = default;
explicit CD3D11_RENDER_TARGET_VIEW_DESC( const D3D11_RENDER_TARGET_VIEW_DESC& o ) :
D3D11_RENDER_TARGET_VIEW_DESC( o )
{}
@@ -4135,8 +4128,7 @@ EXTERN_C const IID IID_ID3D11RenderTargetView;
}
struct CD3D11_VIEWPORT : public D3D11_VIEWPORT
{
- CD3D11_VIEWPORT()
- {}
+ CD3D11_VIEWPORT() = default;
explicit CD3D11_VIEWPORT( const D3D11_VIEWPORT& o ) :
D3D11_VIEWPORT( o )
{}
@@ -4340,8 +4332,7 @@ typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC
}
struct CD3D11_DEPTH_STENCIL_VIEW_DESC : public D3D11_DEPTH_STENCIL_VIEW_DESC
{
- CD3D11_DEPTH_STENCIL_VIEW_DESC()
- {}
+ CD3D11_DEPTH_STENCIL_VIEW_DESC() = default;
explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( const D3D11_DEPTH_STENCIL_VIEW_DESC& o ) :
D3D11_DEPTH_STENCIL_VIEW_DESC( o )
{}
@@ -4669,8 +4660,7 @@ typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC
}
struct CD3D11_UNORDERED_ACCESS_VIEW_DESC : public D3D11_UNORDERED_ACCESS_VIEW_DESC
{
- CD3D11_UNORDERED_ACCESS_VIEW_DESC()
- {}
+ CD3D11_UNORDERED_ACCESS_VIEW_DESC() = default;
explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( const D3D11_UNORDERED_ACCESS_VIEW_DESC& o ) :
D3D11_UNORDERED_ACCESS_VIEW_DESC( o )
{}
@@ -5884,8 +5874,7 @@ typedef struct D3D11_SAMPLER_DESC
}
struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC
{
- CD3D11_SAMPLER_DESC()
- {}
+ CD3D11_SAMPLER_DESC() = default;
explicit CD3D11_SAMPLER_DESC( const D3D11_SAMPLER_DESC& o ) :
D3D11_SAMPLER_DESC( o )
{}
@@ -6296,8 +6285,7 @@ typedef struct D3D11_QUERY_DESC
}
struct CD3D11_QUERY_DESC : public D3D11_QUERY_DESC
{
- CD3D11_QUERY_DESC()
- {}
+ CD3D11_QUERY_DESC() = default;
explicit CD3D11_QUERY_DESC( const D3D11_QUERY_DESC& o ) :
D3D11_QUERY_DESC( o )
{}
@@ -6634,8 +6622,7 @@ typedef struct D3D11_COUNTER_DESC
}
struct CD3D11_COUNTER_DESC : public D3D11_COUNTER_DESC
{
- CD3D11_COUNTER_DESC()
- {}
+ CD3D11_COUNTER_DESC() = default;
explicit CD3D11_COUNTER_DESC( const D3D11_COUNTER_DESC& o ) :
D3D11_COUNTER_DESC( o )
{}
@@ -7308,7 +7295,8 @@ enum D3D11_FEATURE
D3D11_FEATURE_D3D11_OPTIONS3 = ( D3D11_FEATURE_D3D11_OPTIONS2 + 1 ) ,
D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = ( D3D11_FEATURE_D3D11_OPTIONS3 + 1 ) ,
D3D11_FEATURE_D3D11_OPTIONS4 = ( D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT + 1 ) ,
- D3D11_FEATURE_SHADER_CACHE = ( D3D11_FEATURE_D3D11_OPTIONS4 + 1 )
+ D3D11_FEATURE_SHADER_CACHE = ( D3D11_FEATURE_D3D11_OPTIONS4 + 1 ) ,
+ D3D11_FEATURE_D3D11_OPTIONS5 = ( D3D11_FEATURE_SHADER_CACHE + 1 )
} D3D11_FEATURE;
typedef struct D3D11_FEATURE_DATA_THREADING
@@ -7478,6 +7466,19 @@ typedef struct D3D11_FEATURE_DATA_SHADER_CACHE
UINT SupportFlags;
} D3D11_FEATURE_DATA_SHADER_CACHE;
+typedef
+enum D3D11_SHARED_RESOURCE_TIER
+ {
+ D3D11_SHARED_RESOURCE_TIER_0 = 0,
+ D3D11_SHARED_RESOURCE_TIER_1 = ( D3D11_SHARED_RESOURCE_TIER_0 + 1 ) ,
+ D3D11_SHARED_RESOURCE_TIER_2 = ( D3D11_SHARED_RESOURCE_TIER_1 + 1 )
+ } D3D11_SHARED_RESOURCE_TIER;
+
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS5
+ {
+ D3D11_SHARED_RESOURCE_TIER SharedResourceTier;
+ } D3D11_FEATURE_DATA_D3D11_OPTIONS5;
+
extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_c_ifspec;
@@ -10061,11 +10062,14 @@ enum D3D11_CONTENT_PROTECTION_CAPS
D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED = 0x800,
D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE = 0x1000,
D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN = 0x2000,
- D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION = 0x4000
+ D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION = 0x4000,
+ D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION_MULTI_THREADED = 0x8000
} D3D11_CONTENT_PROTECTION_CAPS;
DEFINE_GUID(D3D11_CRYPTO_TYPE_AES128_CTR, 0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0xb, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f );
DEFINE_GUID(D3D11_DECODER_ENCRYPTION_HW_CENC, 0x89d6ac4f, 0x9f2, 0x4229, 0xb2, 0xcd, 0x37, 0x74, 0xa, 0x6d, 0xfd, 0x81);
+DEFINE_GUID(D3D11_DECODER_BITSTREAM_ENCRYPTION_TYPE_CENC, 0xb0405235, 0xc13d, 0x44f2, 0x9a, 0xe5, 0xdd, 0x48, 0xe0, 0x8e, 0x5b, 0x67);
+DEFINE_GUID(D3D11_DECODER_BITSTREAM_ENCRYPTION_TYPE_CBCS, 0x422d9319, 0x9d21, 0x4bb7, 0x93, 0x71, 0xfa, 0xf5, 0xa8, 0x2c, 0x3e, 0x04);
DEFINE_GUID(D3D11_KEY_EXCHANGE_HW_PROTECTION, 0xb1170d8a, 0x628d, 0x4da3, 0xad, 0x3b, 0x82, 0xdd, 0xb0, 0x8b, 0x49, 0x70);
typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS
{
diff --git a/renderdoc/driver/dx/official/d3d11_1.h b/renderdoc/driver/dx/official/d3d11_1.h
index 3ea2744f3..76a1596d7 100644
--- a/renderdoc/driver/dx/official/d3d11_1.h
+++ b/renderdoc/driver/dx/official/d3d11_1.h
@@ -183,8 +183,7 @@ typedef struct D3D11_BLEND_DESC1
}
struct CD3D11_BLEND_DESC1 : public D3D11_BLEND_DESC1
{
- CD3D11_BLEND_DESC1()
- {}
+ CD3D11_BLEND_DESC1() = default;
explicit CD3D11_BLEND_DESC1( const D3D11_BLEND_DESC1& o ) :
D3D11_BLEND_DESC1( o )
{}
@@ -369,8 +368,7 @@ typedef struct D3D11_RASTERIZER_DESC1
}
struct CD3D11_RASTERIZER_DESC1 : public D3D11_RASTERIZER_DESC1
{
- CD3D11_RASTERIZER_DESC1()
- {}
+ CD3D11_RASTERIZER_DESC1() = default;
explicit CD3D11_RASTERIZER_DESC1( const D3D11_RASTERIZER_DESC1& o ) :
D3D11_RASTERIZER_DESC1( o )
{}
diff --git a/renderdoc/driver/dx/official/d3d11_3.h b/renderdoc/driver/dx/official/d3d11_3.h
index e8cb8898f..b0d88befd 100644
--- a/renderdoc/driver/dx/official/d3d11_3.h
+++ b/renderdoc/driver/dx/official/d3d11_3.h
@@ -180,8 +180,7 @@ typedef struct D3D11_TEXTURE2D_DESC1
}
struct CD3D11_TEXTURE2D_DESC1 : public D3D11_TEXTURE2D_DESC1
{
- CD3D11_TEXTURE2D_DESC1()
- {}
+ CD3D11_TEXTURE2D_DESC1() = default;
explicit CD3D11_TEXTURE2D_DESC1( const D3D11_TEXTURE2D_DESC1& o ) :
D3D11_TEXTURE2D_DESC1( o )
{}
@@ -417,8 +416,7 @@ typedef struct D3D11_TEXTURE3D_DESC1
}
struct CD3D11_TEXTURE3D_DESC1 : public D3D11_TEXTURE3D_DESC1
{
- CD3D11_TEXTURE3D_DESC1()
- {}
+ CD3D11_TEXTURE3D_DESC1() = default;
explicit CD3D11_TEXTURE3D_DESC1( const D3D11_TEXTURE3D_DESC1& o ) :
D3D11_TEXTURE3D_DESC1( o )
{}
@@ -657,8 +655,7 @@ typedef struct D3D11_RASTERIZER_DESC2
}
struct CD3D11_RASTERIZER_DESC2 : public D3D11_RASTERIZER_DESC2
{
- CD3D11_RASTERIZER_DESC2()
- {}
+ CD3D11_RASTERIZER_DESC2() = default;
explicit CD3D11_RASTERIZER_DESC2( const D3D11_RASTERIZER_DESC2& o ) :
D3D11_RASTERIZER_DESC2( o )
{}
@@ -900,8 +897,7 @@ typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC1
}
struct CD3D11_SHADER_RESOURCE_VIEW_DESC1 : public D3D11_SHADER_RESOURCE_VIEW_DESC1
{
- CD3D11_SHADER_RESOURCE_VIEW_DESC1()
- {}
+ CD3D11_SHADER_RESOURCE_VIEW_DESC1() = default;
explicit CD3D11_SHADER_RESOURCE_VIEW_DESC1( const D3D11_SHADER_RESOURCE_VIEW_DESC1& o ) :
D3D11_SHADER_RESOURCE_VIEW_DESC1( o )
{}
@@ -1294,8 +1290,7 @@ typedef struct D3D11_RENDER_TARGET_VIEW_DESC1
}
struct CD3D11_RENDER_TARGET_VIEW_DESC1 : public D3D11_RENDER_TARGET_VIEW_DESC1
{
- CD3D11_RENDER_TARGET_VIEW_DESC1()
- {}
+ CD3D11_RENDER_TARGET_VIEW_DESC1() = default;
explicit CD3D11_RENDER_TARGET_VIEW_DESC1( const D3D11_RENDER_TARGET_VIEW_DESC1& o ) :
D3D11_RENDER_TARGET_VIEW_DESC1( o )
{}
@@ -1640,8 +1635,7 @@ typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC1
}
struct CD3D11_UNORDERED_ACCESS_VIEW_DESC1 : public D3D11_UNORDERED_ACCESS_VIEW_DESC1
{
- CD3D11_UNORDERED_ACCESS_VIEW_DESC1()
- {}
+ CD3D11_UNORDERED_ACCESS_VIEW_DESC1() = default;
explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC1( const D3D11_UNORDERED_ACCESS_VIEW_DESC1& o ) :
D3D11_UNORDERED_ACCESS_VIEW_DESC1( o )
{}
@@ -1954,8 +1948,7 @@ typedef struct D3D11_QUERY_DESC1
}
struct CD3D11_QUERY_DESC1 : public D3D11_QUERY_DESC1
{
- CD3D11_QUERY_DESC1()
- {}
+ CD3D11_QUERY_DESC1() = default;
explicit CD3D11_QUERY_DESC1( const D3D11_QUERY_DESC1& o ) :
D3D11_QUERY_DESC1( o )
{}
@@ -2125,9 +2118,10 @@ EXTERN_C const IID IID_ID3D11Query1;
typedef
enum D3D11_FENCE_FLAG
{
- D3D11_FENCE_FLAG_NONE = 0x1,
+ D3D11_FENCE_FLAG_NONE = 0,
D3D11_FENCE_FLAG_SHARED = 0x2,
- D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x4
+ D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x4,
+ D3D11_FENCE_FLAG_NON_MONITORED = 0x8
} D3D11_FENCE_FLAG;
DEFINE_ENUM_FLAG_OPERATORS(D3D11_FENCE_FLAG);
diff --git a/renderdoc/driver/dx/official/d3d11_4.h b/renderdoc/driver/dx/official/d3d11_4.h
index 3510513e5..5be0baf76 100644
--- a/renderdoc/driver/dx/official/d3d11_4.h
+++ b/renderdoc/driver/dx/official/d3d11_4.h
@@ -72,6 +72,20 @@ typedef interface ID3D11VideoContext2 ID3D11VideoContext2;
#endif /* __ID3D11VideoContext2_FWD_DEFINED__ */
+#ifndef __ID3D11VideoDevice2_FWD_DEFINED__
+#define __ID3D11VideoDevice2_FWD_DEFINED__
+typedef interface ID3D11VideoDevice2 ID3D11VideoDevice2;
+
+#endif /* __ID3D11VideoDevice2_FWD_DEFINED__ */
+
+
+#ifndef __ID3D11VideoContext3_FWD_DEFINED__
+#define __ID3D11VideoContext3_FWD_DEFINED__
+typedef interface ID3D11VideoContext3 ID3D11VideoContext3;
+
+#endif /* __ID3D11VideoContext3_FWD_DEFINED__ */
+
+
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
@@ -3068,6 +3082,1656 @@ EXTERN_C const IID IID_ID3D11VideoContext2;
/* interface __MIDL_itf_d3d11_4_0000_0004 */
/* [local] */
+typedef
+enum D3D11_FEATURE_VIDEO
+ {
+ D3D11_FEATURE_VIDEO_DECODER_HISTOGRAM = 0
+ } D3D11_FEATURE_VIDEO;
+
+typedef
+enum D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT
+ {
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_Y = 0,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_U = 1,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_V = 2,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_R = 0,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_G = 1,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_B = 2,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_A = 3
+ } D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT;
+
+typedef
+enum D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAGS
+ {
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_NONE = 0,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_Y = ( 1 << D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_Y ) ,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_U = ( 1 << D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_U ) ,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_V = ( 1 << D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_V ) ,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_R = ( 1 << D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_R ) ,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_G = ( 1 << D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_G ) ,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_B = ( 1 << D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_B ) ,
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_A = ( 1 << D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_A )
+ } D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS(D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAGS );
+typedef struct D3D11_FEATURE_DATA_VIDEO_DECODER_HISTOGRAM
+ {
+ D3D11_VIDEO_DECODER_DESC DecoderDesc;
+ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAGS Components;
+ UINT BinCount;
+ UINT CounterBitDepth;
+ } D3D11_FEATURE_DATA_VIDEO_DECODER_HISTOGRAM;
+
+typedef
+enum D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS
+ {
+ D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAG_NONE = 0
+ } D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS(D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS );
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0004_v0_0_s_ifspec;
+
+#ifndef __ID3D11VideoDevice2_INTERFACE_DEFINED__
+#define __ID3D11VideoDevice2_INTERFACE_DEFINED__
+
+/* interface ID3D11VideoDevice2 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D11VideoDevice2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("59C0CB01-35F0-4A70-8F67-87905C906A53")
+ ID3D11VideoDevice2 : public ID3D11VideoDevice1
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
+ D3D11_FEATURE_VIDEO Feature,
+ /* [annotation] */
+ _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE NegotiateCryptoSessionKeyExchangeMT(
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS flags,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Inout_updates_bytes_(DataSize) void *pData) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D11VideoDevice2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D11VideoDevice2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D11VideoDevice2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D11VideoDevice2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_DESC *pVideoDesc,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_CONFIG *pConfig,
+ /* [annotation] */
+ _COM_Outptr_ ID3D11VideoDecoder **ppDecoder);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessorEnumerator *pEnum,
+ /* [annotation] */
+ _In_ UINT RateConversionIndex,
+ /* [annotation] */
+ _COM_Outptr_ ID3D11VideoProcessor **ppVideoProcessor);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateAuthenticatedChannel )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,
+ /* [annotation] */
+ _COM_Outptr_ ID3D11AuthenticatedChannel **ppAuthenticatedChannel);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCryptoSession )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const GUID *pCryptoType,
+ /* [annotation] */
+ _In_opt_ const GUID *pDecoderProfile,
+ /* [annotation] */
+ _In_ const GUID *pKeyExchangeType,
+ /* [annotation] */
+ _COM_Outptr_ ID3D11CryptoSession **ppCryptoSession);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderOutputView )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11VideoDecoderOutputView **ppVDOVView);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorInputView )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessorEnumerator *pEnum,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11VideoProcessorInputView **ppVPIView);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorOutputView )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessorEnumerator *pEnum,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11VideoProcessorOutputView **ppVPOView);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorEnumerator )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,
+ /* [annotation] */
+ _COM_Outptr_ ID3D11VideoProcessorEnumerator **ppEnum);
+
+ UINT ( STDMETHODCALLTYPE *GetVideoDecoderProfileCount )(
+ ID3D11VideoDevice2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderProfile )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ UINT Index,
+ /* [annotation] */
+ _Out_ GUID *pDecoderProfile);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckVideoDecoderFormat )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const GUID *pDecoderProfile,
+ /* [annotation] */
+ _In_ DXGI_FORMAT Format,
+ /* [annotation] */
+ _Out_ BOOL *pSupported);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderConfigCount )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_DESC *pDesc,
+ /* [annotation] */
+ _Out_ UINT *pCount);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderConfig )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_DESC *pDesc,
+ /* [annotation] */
+ _In_ UINT Index,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_DECODER_CONFIG *pConfig);
+
+ HRESULT ( STDMETHODCALLTYPE *GetContentProtectionCaps )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_opt_ const GUID *pCryptoType,
+ /* [annotation] */
+ _In_opt_ const GUID *pDecoderProfile,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckCryptoKeyExchange )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const GUID *pCryptoType,
+ /* [annotation] */
+ _In_opt_ const GUID *pDecoderProfile,
+ /* [annotation] */
+ _In_ UINT Index,
+ /* [annotation] */
+ _Out_ GUID *pKeyExchangeType);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _In_reads_bytes_opt_(DataSize) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCryptoSessionPrivateDataSize )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const GUID *pCryptoType,
+ /* [annotation] */
+ _In_opt_ const GUID *pDecoderProfile,
+ /* [annotation] */
+ _In_ const GUID *pKeyExchangeType,
+ /* [annotation] */
+ _Out_ UINT *pPrivateInputSize,
+ /* [annotation] */
+ _Out_ UINT *pPrivateOutputSize);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderCaps )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const GUID *pDecoderProfile,
+ /* [annotation] */
+ _In_ UINT SampleWidth,
+ /* [annotation] */
+ _In_ UINT SampleHeight,
+ /* [annotation] */
+ _In_ const DXGI_RATIONAL *pFrameRate,
+ /* [annotation] */
+ _In_ UINT BitRate,
+ /* [annotation] */
+ _In_opt_ const GUID *pCryptoType,
+ /* [annotation] */
+ _Out_ UINT *pDecoderCaps);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckVideoDecoderDownsampling )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_DESC *pInputDesc,
+ /* [annotation] */
+ _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_CONFIG *pInputConfig,
+ /* [annotation] */
+ _In_ const DXGI_RATIONAL *pFrameRate,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc,
+ /* [annotation] */
+ _Out_ BOOL *pSupported,
+ /* [annotation] */
+ _Out_ BOOL *pRealTimeHint);
+
+ HRESULT ( STDMETHODCALLTYPE *RecommendVideoDecoderDownsampleParameters )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_DESC *pInputDesc,
+ /* [annotation] */
+ _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_CONFIG *pInputConfig,
+ /* [annotation] */
+ _In_ const DXGI_RATIONAL *pFrameRate,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_SAMPLE_DESC *pRecommendedOutputDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
+ ID3D11VideoDevice2 * This,
+ D3D11_FEATURE_VIDEO Feature,
+ /* [annotation] */
+ _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *NegotiateCryptoSessionKeyExchangeMT )(
+ ID3D11VideoDevice2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS flags,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Inout_updates_bytes_(DataSize) void *pData);
+
+ END_INTERFACE
+ } ID3D11VideoDevice2Vtbl;
+
+ interface ID3D11VideoDevice2
+ {
+ CONST_VTBL struct ID3D11VideoDevice2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D11VideoDevice2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D11VideoDevice2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D11VideoDevice2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D11VideoDevice2_CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) \
+ ( (This)->lpVtbl -> CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) )
+
+#define ID3D11VideoDevice2_CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) \
+ ( (This)->lpVtbl -> CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) )
+
+#define ID3D11VideoDevice2_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) \
+ ( (This)->lpVtbl -> CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) )
+
+#define ID3D11VideoDevice2_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) \
+ ( (This)->lpVtbl -> CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) )
+
+#define ID3D11VideoDevice2_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) \
+ ( (This)->lpVtbl -> CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) )
+
+#define ID3D11VideoDevice2_CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) \
+ ( (This)->lpVtbl -> CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) )
+
+#define ID3D11VideoDevice2_CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) \
+ ( (This)->lpVtbl -> CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) )
+
+#define ID3D11VideoDevice2_CreateVideoProcessorEnumerator(This,pDesc,ppEnum) \
+ ( (This)->lpVtbl -> CreateVideoProcessorEnumerator(This,pDesc,ppEnum) )
+
+#define ID3D11VideoDevice2_GetVideoDecoderProfileCount(This) \
+ ( (This)->lpVtbl -> GetVideoDecoderProfileCount(This) )
+
+#define ID3D11VideoDevice2_GetVideoDecoderProfile(This,Index,pDecoderProfile) \
+ ( (This)->lpVtbl -> GetVideoDecoderProfile(This,Index,pDecoderProfile) )
+
+#define ID3D11VideoDevice2_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) \
+ ( (This)->lpVtbl -> CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) )
+
+#define ID3D11VideoDevice2_GetVideoDecoderConfigCount(This,pDesc,pCount) \
+ ( (This)->lpVtbl -> GetVideoDecoderConfigCount(This,pDesc,pCount) )
+
+#define ID3D11VideoDevice2_GetVideoDecoderConfig(This,pDesc,Index,pConfig) \
+ ( (This)->lpVtbl -> GetVideoDecoderConfig(This,pDesc,Index,pConfig) )
+
+#define ID3D11VideoDevice2_GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) \
+ ( (This)->lpVtbl -> GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) )
+
+#define ID3D11VideoDevice2_CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) \
+ ( (This)->lpVtbl -> CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) )
+
+#define ID3D11VideoDevice2_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D11VideoDevice2_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+
+#define ID3D11VideoDevice2_GetCryptoSessionPrivateDataSize(This,pCryptoType,pDecoderProfile,pKeyExchangeType,pPrivateInputSize,pPrivateOutputSize) \
+ ( (This)->lpVtbl -> GetCryptoSessionPrivateDataSize(This,pCryptoType,pDecoderProfile,pKeyExchangeType,pPrivateInputSize,pPrivateOutputSize) )
+
+#define ID3D11VideoDevice2_GetVideoDecoderCaps(This,pDecoderProfile,SampleWidth,SampleHeight,pFrameRate,BitRate,pCryptoType,pDecoderCaps) \
+ ( (This)->lpVtbl -> GetVideoDecoderCaps(This,pDecoderProfile,SampleWidth,SampleHeight,pFrameRate,BitRate,pCryptoType,pDecoderCaps) )
+
+#define ID3D11VideoDevice2_CheckVideoDecoderDownsampling(This,pInputDesc,InputColorSpace,pInputConfig,pFrameRate,pOutputDesc,pSupported,pRealTimeHint) \
+ ( (This)->lpVtbl -> CheckVideoDecoderDownsampling(This,pInputDesc,InputColorSpace,pInputConfig,pFrameRate,pOutputDesc,pSupported,pRealTimeHint) )
+
+#define ID3D11VideoDevice2_RecommendVideoDecoderDownsampleParameters(This,pInputDesc,InputColorSpace,pInputConfig,pFrameRate,pRecommendedOutputDesc) \
+ ( (This)->lpVtbl -> RecommendVideoDecoderDownsampleParameters(This,pInputDesc,InputColorSpace,pInputConfig,pFrameRate,pRecommendedOutputDesc) )
+
+
+#define ID3D11VideoDevice2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
+ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
+
+#define ID3D11VideoDevice2_NegotiateCryptoSessionKeyExchangeMT(This,pCryptoSession,flags,DataSize,pData) \
+ ( (This)->lpVtbl -> NegotiateCryptoSessionKeyExchangeMT(This,pCryptoSession,flags,DataSize,pData) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D11VideoDevice2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d11_4_0000_0005 */
+/* [local] */
+
+typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC2
+ {
+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
+ UINT DataOffset;
+ UINT DataSize;
+ /* [annotation] */
+ _Field_size_opt_(IVSize) void *pIV;
+ UINT IVSize;
+ /* [annotation] */
+ _Field_size_opt_(SubSampleMappingCount) D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK *pSubSampleMappingBlock;
+ UINT SubSampleMappingCount;
+ UINT cBlocksStripeEncrypted;
+ UINT cBlocksStripeClear;
+ } D3D11_VIDEO_DECODER_BUFFER_DESC2;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0005_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0005_v0_0_s_ifspec;
+
+#ifndef __ID3D11VideoContext3_INTERFACE_DEFINED__
+#define __ID3D11VideoContext3_INTERFACE_DEFINED__
+
+/* interface ID3D11VideoContext3 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D11VideoContext3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A9E2FAA0-CB39-418F-A0B7-D8AAD4DE672E")
+ ID3D11VideoContext3 : public ID3D11VideoContext2
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame1(
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoderOutputView *pView,
+ UINT ContentKeySize,
+ /* [annotation] */
+ _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey,
+ /* [annotation] */
+ _In_range_(0, D3D11_4_VIDEO_DECODER_MAX_HISTOGRAM_COMPONENTS) UINT NumComponentHistograms,
+ /* [annotation] */
+ _In_reads_opt_(NumComponentHistograms) const UINT *pHistogramOffsets,
+ /* [annotation] */
+ _In_reads_opt_(NumComponentHistograms) ID3D11Buffer *const *ppHistogramBuffers) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers2(
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ UINT NumBuffers,
+ /* [annotation] */
+ _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC2 *pBufferDesc) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D11VideoContext3Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D11VideoContext3 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D11VideoContext3 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D11VideoContext3 * This);
+
+ void ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _Outptr_ ID3D11Device **ppDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation] */
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDecoderBuffer )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE Type,
+ /* [annotation] */
+ _Out_ UINT *pBufferSize,
+ /* [annotation] */
+ _Outptr_result_bytebuffer_(*pBufferSize) void **ppBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *ReleaseDecoderBuffer )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_DECODER_BUFFER_TYPE Type);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderBeginFrame )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoderOutputView *pView,
+ UINT ContentKeySize,
+ /* [annotation] */
+ _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderEndFrame )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder);
+
+ HRESULT ( STDMETHODCALLTYPE *SubmitDecoderBuffers )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ UINT NumBuffers,
+ /* [annotation] */
+ _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *DecoderExtension )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_opt_ const RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL YCbCr,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_COLOR *pColor);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode,
+ /* [annotation] */
+ _In_ UINT StreamIndex);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ SIZE Size);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL Enable);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorSetOutputExtension )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ const GUID *pExtensionGuid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _In_ void *pData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *Enabled,
+ /* [annotation] */
+ _Out_ RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *pYCbCr,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_COLOR *pColor);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode,
+ /* [annotation] */
+ _Out_ UINT *pStreamIndex);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ SIZE *pSize);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetOutputExtension )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ const GUID *pExtensionGuid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Out_writes_bytes_(DataSize) void *pData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_FRAME_FORMAT FrameFormat);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE OutputRate,
+ /* [annotation] */
+ _In_ BOOL RepeatFrame,
+ /* [annotation] */
+ _In_opt_ const DXGI_RATIONAL *pCustomRate);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamSourceRect )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_opt_ const RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_opt_ const RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ FLOAT Alpha);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamPalette )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ UINT Count,
+ /* [annotation] */
+ _In_reads_opt_(Count) const UINT *pEntries);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_opt_ const DXGI_RATIONAL *pSourceAspectRatio,
+ /* [annotation] */
+ _In_opt_ const DXGI_RATIONAL *pDestinationAspectRatio);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamLumaKey )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ FLOAT Lower,
+ /* [annotation] */
+ _In_ FLOAT Upper);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT Format,
+ /* [annotation] */
+ _In_ BOOL LeftViewFrame0,
+ /* [annotation] */
+ _In_ BOOL BaseViewFrame0,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE FlipMode,
+ /* [annotation] */
+ _In_ int MonoOffset);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamAutoProcessingMode )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamFilter )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ int Level);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorSetStreamExtension )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ const GUID *pExtensionGuid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _In_ void *pData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamFrameFormat )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_FRAME_FORMAT *pFrameFormat);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *pOutputRate,
+ /* [annotation] */
+ _Out_ BOOL *pRepeatFrame,
+ /* [annotation] */
+ _Out_ DXGI_RATIONAL *pCustomRate);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamSourceRect )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ FLOAT *pAlpha);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamPalette )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ UINT Count,
+ /* [annotation] */
+ _Out_writes_(Count) UINT *pEntries);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ DXGI_RATIONAL *pSourceAspectRatio,
+ /* [annotation] */
+ _Out_ DXGI_RATIONAL *pDestinationAspectRatio);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamLumaKey )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ FLOAT *pLower,
+ /* [annotation] */
+ _Out_ FLOAT *pUpper);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnable,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *pFormat,
+ /* [annotation] */
+ _Out_ BOOL *pLeftViewFrame0,
+ /* [annotation] */
+ _Out_ BOOL *pBaseViewFrame0,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *pFlipMode,
+ /* [annotation] */
+ _Out_ int *MonoOffset);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamAutoProcessingMode )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamFilter )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ int *pLevel);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetStreamExtension )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ const GUID *pExtensionGuid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Out_writes_bytes_(DataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *VideoProcessorBlt )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessorOutputView *pView,
+ /* [annotation] */
+ _In_ UINT OutputFrame,
+ /* [annotation] */
+ _In_ UINT StreamCount,
+ /* [annotation] */
+ _In_reads_(StreamCount) const D3D11_VIDEO_PROCESSOR_STREAM *pStreams);
+
+ HRESULT ( STDMETHODCALLTYPE *NegotiateCryptoSessionKeyExchange )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Inout_updates_bytes_(DataSize) void *pData);
+
+ void ( STDMETHODCALLTYPE *EncryptionBlt )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ ID3D11Texture2D *pSrcSurface,
+ /* [annotation] */
+ _In_ ID3D11Texture2D *pDstSurface,
+ /* [annotation] */
+ _In_ UINT IVSize,
+ /* [annotation] */
+ _Inout_opt_bytecount_(IVSize) void *pIV);
+
+ void ( STDMETHODCALLTYPE *DecryptionBlt )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ ID3D11Texture2D *pSrcSurface,
+ /* [annotation] */
+ _In_ ID3D11Texture2D *pDstSurface,
+ /* [annotation] */
+ _In_opt_ D3D11_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
+ /* [annotation] */
+ _In_ UINT ContentKeySize,
+ /* [annotation] */
+ _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey,
+ /* [annotation] */
+ _In_ UINT IVSize,
+ /* [annotation] */
+ _Inout_opt_bytecount_(IVSize) void *pIV);
+
+ void ( STDMETHODCALLTYPE *StartSessionKeyRefresh )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ UINT RandomNumberSize,
+ /* [annotation] */
+ _Out_writes_bytes_(RandomNumberSize) void *pRandomNumber);
+
+ void ( STDMETHODCALLTYPE *FinishSessionKeyRefresh )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession);
+
+ HRESULT ( STDMETHODCALLTYPE *GetEncryptionBltKey )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ UINT KeySize,
+ /* [annotation] */
+ _Out_writes_bytes_(KeySize) void *pReadbackKey);
+
+ HRESULT ( STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11AuthenticatedChannel *pChannel,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Inout_updates_bytes_(DataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *QueryAuthenticatedChannel )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11AuthenticatedChannel *pChannel,
+ /* [annotation] */
+ _In_ UINT InputSize,
+ /* [annotation] */
+ _In_reads_bytes_(InputSize) const void *pInput,
+ /* [annotation] */
+ _In_ UINT OutputSize,
+ /* [annotation] */
+ _Out_writes_bytes_(OutputSize) void *pOutput);
+
+ HRESULT ( STDMETHODCALLTYPE *ConfigureAuthenticatedChannel )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11AuthenticatedChannel *pChannel,
+ /* [annotation] */
+ _In_ UINT InputSize,
+ /* [annotation] */
+ _In_reads_bytes_(InputSize) const void *pInput,
+ /* [annotation] */
+ _Out_ D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *pOutput);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamRotation )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_ROTATION Rotation);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamRotation )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnable,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_ROTATION *pRotation);
+
+ HRESULT ( STDMETHODCALLTYPE *SubmitDecoderBuffers1 )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ UINT NumBuffers,
+ /* [annotation] */
+ _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC1 *pBufferDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDataForNewHardwareKey )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ UINT PrivateInputSize,
+ /* [annotation] */
+ _In_reads_(PrivateInputSize) const void *pPrivatInputData,
+ /* [annotation] */
+ _Out_ UINT64 *pPrivateOutputData);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckCryptoSessionStatus )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _Out_ D3D11_CRYPTO_SESSION_STATUS *pStatus);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderEnableDownsampling )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc,
+ /* [annotation] */
+ _In_ UINT ReferenceFrameCount);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderUpdateDownsampling )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace1 )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ DXGI_COLOR_SPACE_TYPE ColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputShaderUsage )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL ShaderUsage);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace1 )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ DXGI_COLOR_SPACE_TYPE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputShaderUsage )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *pShaderUsage);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace1 )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ DXGI_COLOR_SPACE_TYPE ColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamMirror )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ BOOL FlipHorizontal,
+ /* [annotation] */
+ _In_ BOOL FlipVertical);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace1 )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ DXGI_COLOR_SPACE_TYPE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamMirror )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnable,
+ /* [annotation] */
+ _Out_ BOOL *pFlipHorizontal,
+ /* [annotation] */
+ _Out_ BOOL *pFlipVertical);
+
+ HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetBehaviorHints )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT OutputWidth,
+ /* [annotation] */
+ _In_ UINT OutputHeight,
+ /* [annotation] */
+ _In_ DXGI_FORMAT OutputFormat,
+ /* [annotation] */
+ _In_ UINT StreamCount,
+ /* [annotation] */
+ _In_reads_(StreamCount) const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *pStreams,
+ /* [annotation] */
+ _Out_ UINT *pBehaviorHints);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputHDRMetaData )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ DXGI_HDR_METADATA_TYPE Type,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _In_reads_bytes_opt_(Size) const void *pHDRMetaData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputHDRMetaData )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ DXGI_HDR_METADATA_TYPE *pType,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _Out_writes_bytes_opt_(Size) void *pMetaData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamHDRMetaData )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ DXGI_HDR_METADATA_TYPE Type,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _In_reads_bytes_opt_(Size) const void *pHDRMetaData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamHDRMetaData )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ DXGI_HDR_METADATA_TYPE *pType,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _Out_writes_bytes_opt_(Size) void *pMetaData);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderBeginFrame1 )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoderOutputView *pView,
+ UINT ContentKeySize,
+ /* [annotation] */
+ _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey,
+ /* [annotation] */
+ _In_range_(0, D3D11_4_VIDEO_DECODER_MAX_HISTOGRAM_COMPONENTS) UINT NumComponentHistograms,
+ /* [annotation] */
+ _In_reads_opt_(NumComponentHistograms) const UINT *pHistogramOffsets,
+ /* [annotation] */
+ _In_reads_opt_(NumComponentHistograms) ID3D11Buffer *const *ppHistogramBuffers);
+
+ HRESULT ( STDMETHODCALLTYPE *SubmitDecoderBuffers2 )(
+ ID3D11VideoContext3 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ UINT NumBuffers,
+ /* [annotation] */
+ _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC2 *pBufferDesc);
+
+ END_INTERFACE
+ } ID3D11VideoContext3Vtbl;
+
+ interface ID3D11VideoContext3
+ {
+ CONST_VTBL struct ID3D11VideoContext3Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D11VideoContext3_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D11VideoContext3_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D11VideoContext3_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D11VideoContext3_GetDevice(This,ppDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
+
+#define ID3D11VideoContext3_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D11VideoContext3_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D11VideoContext3_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+
+#define ID3D11VideoContext3_GetDecoderBuffer(This,pDecoder,Type,pBufferSize,ppBuffer) \
+ ( (This)->lpVtbl -> GetDecoderBuffer(This,pDecoder,Type,pBufferSize,ppBuffer) )
+
+#define ID3D11VideoContext3_ReleaseDecoderBuffer(This,pDecoder,Type) \
+ ( (This)->lpVtbl -> ReleaseDecoderBuffer(This,pDecoder,Type) )
+
+#define ID3D11VideoContext3_DecoderBeginFrame(This,pDecoder,pView,ContentKeySize,pContentKey) \
+ ( (This)->lpVtbl -> DecoderBeginFrame(This,pDecoder,pView,ContentKeySize,pContentKey) )
+
+#define ID3D11VideoContext3_DecoderEndFrame(This,pDecoder) \
+ ( (This)->lpVtbl -> DecoderEndFrame(This,pDecoder) )
+
+#define ID3D11VideoContext3_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) \
+ ( (This)->lpVtbl -> SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) )
+
+#define ID3D11VideoContext3_DecoderExtension(This,pDecoder,pExtensionData) \
+ ( (This)->lpVtbl -> DecoderExtension(This,pDecoder,pExtensionData) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputTargetRect(This,pVideoProcessor,Enable,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputTargetRect(This,pVideoProcessor,Enable,pRect) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputBackgroundColor(This,pVideoProcessor,YCbCr,pColor) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputBackgroundColor(This,pVideoProcessor,YCbCr,pColor) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputColorSpace(This,pVideoProcessor,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputColorSpace(This,pVideoProcessor,pColorSpace) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputAlphaFillMode(This,pVideoProcessor,AlphaFillMode,StreamIndex) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputAlphaFillMode(This,pVideoProcessor,AlphaFillMode,StreamIndex) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputConstriction(This,pVideoProcessor,Enable,Size) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputConstriction(This,pVideoProcessor,Enable,Size) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputStereoMode(This,pVideoProcessor,Enable) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputStereoMode(This,pVideoProcessor,Enable) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputTargetRect(This,pVideoProcessor,Enabled,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputTargetRect(This,pVideoProcessor,Enabled,pRect) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputBackgroundColor(This,pVideoProcessor,pYCbCr,pColor) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputBackgroundColor(This,pVideoProcessor,pYCbCr,pColor) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputColorSpace(This,pVideoProcessor,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputColorSpace(This,pVideoProcessor,pColorSpace) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputAlphaFillMode(This,pVideoProcessor,pAlphaFillMode,pStreamIndex) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputAlphaFillMode(This,pVideoProcessor,pAlphaFillMode,pStreamIndex) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputConstriction(This,pVideoProcessor,pEnabled,pSize) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputConstriction(This,pVideoProcessor,pEnabled,pSize) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputStereoMode(This,pVideoProcessor,pEnabled) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputStereoMode(This,pVideoProcessor,pEnabled) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamFrameFormat(This,pVideoProcessor,StreamIndex,FrameFormat) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamFrameFormat(This,pVideoProcessor,StreamIndex,FrameFormat) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamOutputRate(This,pVideoProcessor,StreamIndex,OutputRate,RepeatFrame,pCustomRate) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamOutputRate(This,pVideoProcessor,StreamIndex,OutputRate,RepeatFrame,pCustomRate) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamSourceRect(This,pVideoProcessor,StreamIndex,Enable,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamSourceRect(This,pVideoProcessor,StreamIndex,Enable,pRect) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamDestRect(This,pVideoProcessor,StreamIndex,Enable,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamDestRect(This,pVideoProcessor,StreamIndex,Enable,pRect) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamAlpha(This,pVideoProcessor,StreamIndex,Enable,Alpha) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamAlpha(This,pVideoProcessor,StreamIndex,Enable,Alpha) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,Enable,pSourceAspectRatio,pDestinationAspectRatio) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,Enable,pSourceAspectRatio,pDestinationAspectRatio) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamLumaKey(This,pVideoProcessor,StreamIndex,Enable,Lower,Upper) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamLumaKey(This,pVideoProcessor,StreamIndex,Enable,Lower,Upper) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamStereoFormat(This,pVideoProcessor,StreamIndex,Enable,Format,LeftViewFrame0,BaseViewFrame0,FlipMode,MonoOffset) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamStereoFormat(This,pVideoProcessor,StreamIndex,Enable,Format,LeftViewFrame0,BaseViewFrame0,FlipMode,MonoOffset) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,Enable) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,Enable) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,Enable,Level) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,Enable,Level) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamFrameFormat(This,pVideoProcessor,StreamIndex,pFrameFormat) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamFrameFormat(This,pVideoProcessor,StreamIndex,pFrameFormat) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamOutputRate(This,pVideoProcessor,StreamIndex,pOutputRate,pRepeatFrame,pCustomRate) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamOutputRate(This,pVideoProcessor,StreamIndex,pOutputRate,pRepeatFrame,pCustomRate) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamSourceRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamSourceRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamDestRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamDestRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamAlpha(This,pVideoProcessor,StreamIndex,pEnabled,pAlpha) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamAlpha(This,pVideoProcessor,StreamIndex,pEnabled,pAlpha) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,pEnabled,pSourceAspectRatio,pDestinationAspectRatio) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,pEnabled,pSourceAspectRatio,pDestinationAspectRatio) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamLumaKey(This,pVideoProcessor,StreamIndex,pEnabled,pLower,pUpper) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamLumaKey(This,pVideoProcessor,StreamIndex,pEnabled,pLower,pUpper) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamStereoFormat(This,pVideoProcessor,StreamIndex,pEnable,pFormat,pLeftViewFrame0,pBaseViewFrame0,pFlipMode,MonoOffset) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamStereoFormat(This,pVideoProcessor,StreamIndex,pEnable,pFormat,pLeftViewFrame0,pBaseViewFrame0,pFlipMode,MonoOffset) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,pEnabled) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,pEnabled) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,pEnabled,pLevel) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,pEnabled,pLevel) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) )
+
+#define ID3D11VideoContext3_VideoProcessorBlt(This,pVideoProcessor,pView,OutputFrame,StreamCount,pStreams) \
+ ( (This)->lpVtbl -> VideoProcessorBlt(This,pVideoProcessor,pView,OutputFrame,StreamCount,pStreams) )
+
+#define ID3D11VideoContext3_NegotiateCryptoSessionKeyExchange(This,pCryptoSession,DataSize,pData) \
+ ( (This)->lpVtbl -> NegotiateCryptoSessionKeyExchange(This,pCryptoSession,DataSize,pData) )
+
+#define ID3D11VideoContext3_EncryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,IVSize,pIV) \
+ ( (This)->lpVtbl -> EncryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,IVSize,pIV) )
+
+#define ID3D11VideoContext3_DecryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,pEncryptedBlockInfo,ContentKeySize,pContentKey,IVSize,pIV) \
+ ( (This)->lpVtbl -> DecryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,pEncryptedBlockInfo,ContentKeySize,pContentKey,IVSize,pIV) )
+
+#define ID3D11VideoContext3_StartSessionKeyRefresh(This,pCryptoSession,RandomNumberSize,pRandomNumber) \
+ ( (This)->lpVtbl -> StartSessionKeyRefresh(This,pCryptoSession,RandomNumberSize,pRandomNumber) )
+
+#define ID3D11VideoContext3_FinishSessionKeyRefresh(This,pCryptoSession) \
+ ( (This)->lpVtbl -> FinishSessionKeyRefresh(This,pCryptoSession) )
+
+#define ID3D11VideoContext3_GetEncryptionBltKey(This,pCryptoSession,KeySize,pReadbackKey) \
+ ( (This)->lpVtbl -> GetEncryptionBltKey(This,pCryptoSession,KeySize,pReadbackKey) )
+
+#define ID3D11VideoContext3_NegotiateAuthenticatedChannelKeyExchange(This,pChannel,DataSize,pData) \
+ ( (This)->lpVtbl -> NegotiateAuthenticatedChannelKeyExchange(This,pChannel,DataSize,pData) )
+
+#define ID3D11VideoContext3_QueryAuthenticatedChannel(This,pChannel,InputSize,pInput,OutputSize,pOutput) \
+ ( (This)->lpVtbl -> QueryAuthenticatedChannel(This,pChannel,InputSize,pInput,OutputSize,pOutput) )
+
+#define ID3D11VideoContext3_ConfigureAuthenticatedChannel(This,pChannel,InputSize,pInput,pOutput) \
+ ( (This)->lpVtbl -> ConfigureAuthenticatedChannel(This,pChannel,InputSize,pInput,pOutput) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamRotation(This,pVideoProcessor,StreamIndex,Enable,Rotation) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamRotation(This,pVideoProcessor,StreamIndex,Enable,Rotation) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamRotation(This,pVideoProcessor,StreamIndex,pEnable,pRotation) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamRotation(This,pVideoProcessor,StreamIndex,pEnable,pRotation) )
+
+
+#define ID3D11VideoContext3_SubmitDecoderBuffers1(This,pDecoder,NumBuffers,pBufferDesc) \
+ ( (This)->lpVtbl -> SubmitDecoderBuffers1(This,pDecoder,NumBuffers,pBufferDesc) )
+
+#define ID3D11VideoContext3_GetDataForNewHardwareKey(This,pCryptoSession,PrivateInputSize,pPrivatInputData,pPrivateOutputData) \
+ ( (This)->lpVtbl -> GetDataForNewHardwareKey(This,pCryptoSession,PrivateInputSize,pPrivatInputData,pPrivateOutputData) )
+
+#define ID3D11VideoContext3_CheckCryptoSessionStatus(This,pCryptoSession,pStatus) \
+ ( (This)->lpVtbl -> CheckCryptoSessionStatus(This,pCryptoSession,pStatus) )
+
+#define ID3D11VideoContext3_DecoderEnableDownsampling(This,pDecoder,InputColorSpace,pOutputDesc,ReferenceFrameCount) \
+ ( (This)->lpVtbl -> DecoderEnableDownsampling(This,pDecoder,InputColorSpace,pOutputDesc,ReferenceFrameCount) )
+
+#define ID3D11VideoContext3_DecoderUpdateDownsampling(This,pDecoder,pOutputDesc) \
+ ( (This)->lpVtbl -> DecoderUpdateDownsampling(This,pDecoder,pOutputDesc) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputColorSpace1(This,pVideoProcessor,ColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputColorSpace1(This,pVideoProcessor,ColorSpace) )
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputShaderUsage(This,pVideoProcessor,ShaderUsage) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputShaderUsage(This,pVideoProcessor,ShaderUsage) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputColorSpace1(This,pVideoProcessor,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputColorSpace1(This,pVideoProcessor,pColorSpace) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputShaderUsage(This,pVideoProcessor,pShaderUsage) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputShaderUsage(This,pVideoProcessor,pShaderUsage) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamColorSpace1(This,pVideoProcessor,StreamIndex,ColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamColorSpace1(This,pVideoProcessor,StreamIndex,ColorSpace) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamMirror(This,pVideoProcessor,StreamIndex,Enable,FlipHorizontal,FlipVertical) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamMirror(This,pVideoProcessor,StreamIndex,Enable,FlipHorizontal,FlipVertical) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamColorSpace1(This,pVideoProcessor,StreamIndex,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamColorSpace1(This,pVideoProcessor,StreamIndex,pColorSpace) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamMirror(This,pVideoProcessor,StreamIndex,pEnable,pFlipHorizontal,pFlipVertical) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamMirror(This,pVideoProcessor,StreamIndex,pEnable,pFlipHorizontal,pFlipVertical) )
+
+#define ID3D11VideoContext3_VideoProcessorGetBehaviorHints(This,pVideoProcessor,OutputWidth,OutputHeight,OutputFormat,StreamCount,pStreams,pBehaviorHints) \
+ ( (This)->lpVtbl -> VideoProcessorGetBehaviorHints(This,pVideoProcessor,OutputWidth,OutputHeight,OutputFormat,StreamCount,pStreams,pBehaviorHints) )
+
+
+#define ID3D11VideoContext3_VideoProcessorSetOutputHDRMetaData(This,pVideoProcessor,Type,Size,pHDRMetaData) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputHDRMetaData(This,pVideoProcessor,Type,Size,pHDRMetaData) )
+
+#define ID3D11VideoContext3_VideoProcessorGetOutputHDRMetaData(This,pVideoProcessor,pType,Size,pMetaData) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputHDRMetaData(This,pVideoProcessor,pType,Size,pMetaData) )
+
+#define ID3D11VideoContext3_VideoProcessorSetStreamHDRMetaData(This,pVideoProcessor,StreamIndex,Type,Size,pHDRMetaData) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamHDRMetaData(This,pVideoProcessor,StreamIndex,Type,Size,pHDRMetaData) )
+
+#define ID3D11VideoContext3_VideoProcessorGetStreamHDRMetaData(This,pVideoProcessor,StreamIndex,pType,Size,pMetaData) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamHDRMetaData(This,pVideoProcessor,StreamIndex,pType,Size,pMetaData) )
+
+
+#define ID3D11VideoContext3_DecoderBeginFrame1(This,pDecoder,pView,ContentKeySize,pContentKey,NumComponentHistograms,pHistogramOffsets,ppHistogramBuffers) \
+ ( (This)->lpVtbl -> DecoderBeginFrame1(This,pDecoder,pView,ContentKeySize,pContentKey,NumComponentHistograms,pHistogramOffsets,ppHistogramBuffers) )
+
+#define ID3D11VideoContext3_SubmitDecoderBuffers2(This,pDecoder,NumBuffers,pBufferDesc) \
+ ( (This)->lpVtbl -> SubmitDecoderBuffers2(This,pDecoder,NumBuffers,pBufferDesc) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D11VideoContext3_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d11_4_0000_0006 */
+/* [local] */
+
typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS4
{
BOOL ExtendedNV12SharedTextureSupported;
@@ -3079,10 +4743,12 @@ DEFINE_GUID(IID_ID3D11Device4,0x8992ab71,0x02e6,0x4b8d,0xba,0x48,0xb0,0x56,0xdc,
DEFINE_GUID(IID_ID3D11Device5,0x8ffde202,0xa0e7,0x45df,0x9e,0x01,0xe8,0x37,0x80,0x1b,0x5e,0xa0);
DEFINE_GUID(IID_ID3D11Multithread,0x9B7E4E00,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
DEFINE_GUID(IID_ID3D11VideoContext2,0xC4E7374C,0x6243,0x4D1B,0xAE,0x87,0x52,0xB4,0xF7,0x40,0xE2,0x61);
+DEFINE_GUID(IID_ID3D11VideoDevice2,0x59C0CB01,0x35F0,0x4A70,0x8F,0x67,0x87,0x90,0x5C,0x90,0x6A,0x53);
+DEFINE_GUID(IID_ID3D11VideoContext3,0xA9E2FAA0,0xCB39,0x418F,0xA0,0xB7,0xD8,0xAA,0xD4,0xDE,0x67,0x2E);
-extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0004_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0004_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0006_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0006_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
diff --git a/renderdoc/driver/dx/official/d3d11sdklayers.h b/renderdoc/driver/dx/official/d3d11sdklayers.h
index 62aa6b9f7..b4cf36dc4 100644
--- a/renderdoc/driver/dx/official/d3d11sdklayers.h
+++ b/renderdoc/driver/dx/official/d3d11sdklayers.h
@@ -2068,7 +2068,21 @@ enum D3D11_MESSAGE_ID
D3D11_MESSAGE_ID_CREATE_FENCE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_INVALIDSTREAM + 1 ) ,
D3D11_MESSAGE_ID_LIVE_FENCE = ( D3D11_MESSAGE_ID_CREATE_FENCE + 1 ) ,
D3D11_MESSAGE_ID_DESTROY_FENCE = ( D3D11_MESSAGE_ID_LIVE_FENCE + 1 ) ,
- D3D11_MESSAGE_ID_D3D11_3_MESSAGES_END = ( D3D11_MESSAGE_ID_DESTROY_FENCE + 1 )
+ D3D11_MESSAGE_ID_CREATE_SYNCHRONIZEDCHANNEL = ( D3D11_MESSAGE_ID_DESTROY_FENCE + 1 ) ,
+ D3D11_MESSAGE_ID_LIVE_SYNCHRONIZEDCHANNEL = ( D3D11_MESSAGE_ID_CREATE_SYNCHRONIZEDCHANNEL + 1 ) ,
+ D3D11_MESSAGE_ID_DESTROY_SYNCHRONIZEDCHANNEL = ( D3D11_MESSAGE_ID_LIVE_SYNCHRONIZEDCHANNEL + 1 ) ,
+ D3D11_MESSAGE_ID_CREATEFENCE_INVALIDFLAGS = ( D3D11_MESSAGE_ID_DESTROY_SYNCHRONIZEDCHANNEL + 1 ) ,
+ D3D11_MESSAGE_ID_D3D11_3_MESSAGES_END = ( D3D11_MESSAGE_ID_CREATEFENCE_INVALIDFLAGS + 1 ) ,
+ D3D11_MESSAGE_ID_D3D11_5_MESSAGES_START = ( D3D11_MESSAGE_ID_D3D11_3_MESSAGES_END + 1 ) ,
+ D3D11_MESSAGE_ID_NEGOTIATECRYPTOSESSIONKEYEXCHANGEMT_INVALIDKEYEXCHANGETYPE = ( D3D11_MESSAGE_ID_D3D11_5_MESSAGES_START + 1 ) ,
+ D3D11_MESSAGE_ID_NEGOTIATECRYPTOSESSIONKEYEXCHANGEMT_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_NEGOTIATECRYPTOSESSIONKEYEXCHANGEMT_INVALIDKEYEXCHANGETYPE + 1 ) ,
+ D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_COMPONENT_COUNT = ( D3D11_MESSAGE_ID_NEGOTIATECRYPTOSESSIONKEYEXCHANGEMT_NOT_SUPPORTED + 1 ) ,
+ D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_COMPONENT = ( D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_COMPONENT_COUNT + 1 ) ,
+ D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_SIZE = ( D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_COMPONENT + 1 ) ,
+ D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_USAGE = ( D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_SIZE + 1 ) ,
+ D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_MISC_FLAGS = ( D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_USAGE + 1 ) ,
+ D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_OFFSET = ( D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_MISC_FLAGS + 1 ) ,
+ D3D11_MESSAGE_ID_D3D11_5_MESSAGES_END = ( D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_OFFSET + 1 )
} D3D11_MESSAGE_ID;
typedef struct D3D11_MESSAGE
diff --git a/renderdoc/driver/dx/official/d3d12.h b/renderdoc/driver/dx/official/d3d12.h
index 46eaac578..2562adf44 100644
--- a/renderdoc/driver/dx/official/d3d12.h
+++ b/renderdoc/driver/dx/official/d3d12.h
@@ -225,6 +225,104 @@ 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 __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;
@@ -235,7 +333,8 @@ typedef interface ID3D12Tools ID3D12Tools;
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
-#include "dxgi.h"
+#include "dxgicommon.h"
+#include "dxgiformat.h"
#include "d3dcommon.h"
#ifdef __cplusplus
@@ -811,6 +910,22 @@ extern "C"{
#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_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 )
@@ -866,6 +981,8 @@ extern "C"{
#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff )
+#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 )
+
#define D3D12_SHADER_MAJOR_VERSION ( 5 )
#define D3D12_SHADER_MAX_INSTANCES ( 65535 )
@@ -962,6 +1079,8 @@ extern "C"{
#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 )
@@ -970,6 +1089,12 @@ extern "C"{
#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 )
@@ -1781,13 +1906,18 @@ enum D3D12_FEATURE
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_EXISTING_HEAPS = 22,
+ D3D12_FEATURE_D3D12_OPTIONS4 = 23,
+ D3D12_FEATURE_SERIALIZATION = 24,
+ D3D12_FEATURE_CROSS_NODE = 25,
+ D3D12_FEATURE_D3D12_OPTIONS5 = 27
} D3D12_FEATURE;
typedef
@@ -1805,7 +1935,8 @@ 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_3 = 3,
+ D3D12_TILED_RESOURCES_TIER_4 = 4
} D3D12_TILED_RESOURCES_TIER;
typedef
@@ -1893,7 +2024,8 @@ 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_2 = 3,
+ D3D12_CROSS_NODE_SHARING_TIER_3 = 4
} D3D12_CROSS_NODE_SHARING_TIER;
typedef
@@ -1997,7 +2129,10 @@ 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_1 = 0x61,
+ D3D_SHADER_MODEL_6_2 = 0x62,
+ D3D_SHADER_MODEL_6_3 = 0x63,
+ D3D_SHADER_MODEL_6_4 = 0x64
} D3D_SHADER_MODEL;
typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
@@ -2082,12 +2217,74 @@ 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 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
{
@@ -2135,6 +2332,7 @@ enum D3D12_HEAP_FLAGS
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,
@@ -2323,13 +2521,16 @@ enum D3D12_RESOURCE_STATES
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_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_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 );
@@ -2556,6 +2757,11 @@ typedef struct D3D12_TEX2DMS_ARRAY_SRV
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
{
@@ -2569,7 +2775,8 @@ enum D3D12_SRV_DIMENSION
D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
D3D12_SRV_DIMENSION_TEXTURE3D = 8,
D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
- D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10
+ D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
+ D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
} D3D12_SRV_DIMENSION;
typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
@@ -2589,6 +2796,7 @@ typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
D3D12_TEX3D_SRV Texture3D;
D3D12_TEXCUBE_SRV TextureCube;
D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
} ;
} D3D12_SHADER_RESOURCE_VIEW_DESC;
@@ -3079,7 +3287,8 @@ enum D3D12_ROOT_SIGNATURE_FLAGS
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_ALLOW_STREAM_OUTPUT = 0x40,
+ D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80
} D3D12_ROOT_SIGNATURE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS );
@@ -3124,7 +3333,8 @@ enum D3D12_DESCRIPTOR_RANGE_FLAGS
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_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 );
@@ -10122,6 +10332,4800 @@ EXTERN_C const IID IID_ID3D12Device3;
#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */
+/* interface __MIDL_itf_d3d12_0000_0026 */
+/* [local] */
+
+typedef
+enum D3D12_COMMAND_LIST_FLAGS
+ {
+ D3D12_COMMAND_LIST_FLAG_NONE = 0
+ } D3D12_COMMAND_LIST_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS );
+typedef
+enum D3D12_COMMAND_POOL_FLAGS
+ {
+ D3D12_COMMAND_POOL_FLAG_NONE = 0
+ } D3D12_COMMAND_POOL_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS );
+typedef
+enum D3D12_COMMAND_RECORDER_FLAGS
+ {
+ D3D12_COMMAND_RECORDER_FLAG_NONE = 0
+ } D3D12_COMMAND_RECORDER_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS );
+typedef
+enum D3D12_PROTECTED_SESSION_STATUS
+ {
+ D3D12_PROTECTED_SESSION_STATUS_OK = 0,
+ D3D12_PROTECTED_SESSION_STATUS_INVALID = 1
+ } D3D12_PROTECTED_SESSION_STATUS;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_s_ifspec;
+
+#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__
+#define __ID3D12ProtectedSession_INTERFACE_DEFINED__
+
+/* interface ID3D12ProtectedSession */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12ProtectedSession;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B")
+ ID3D12ProtectedSession : public ID3D12DeviceChild
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetStatusFence(
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppFence) = 0;
+
+ virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12ProtectedSessionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12ProtectedSession * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12ProtectedSession * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12ProtectedSession * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12ProtectedSession * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12ProtectedSession * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12ProtectedSession * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12ProtectedSession * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12ProtectedSession * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
+ ID3D12ProtectedSession * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppFence);
+
+ D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
+ ID3D12ProtectedSession * This);
+
+ END_INTERFACE
+ } ID3D12ProtectedSessionVtbl;
+
+ interface ID3D12ProtectedSession
+ {
+ CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12ProtectedSession_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12ProtectedSession_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12ProtectedSession_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+#define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \
+ ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
+
+#define ID3D12ProtectedSession_GetSessionStatus(This) \
+ ( (This)->lpVtbl -> GetSessionStatus(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0027 */
+/* [local] */
+
+typedef
+enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS
+ {
+ D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0,
+ D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1
+ } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS );
+typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT
+ {
+ UINT NodeIndex;
+ D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
+ } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
+
+typedef
+enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS
+ {
+ D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0
+ } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS );
+typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC
+ {
+ UINT NodeMask;
+ D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
+ } D3D12_PROTECTED_RESOURCE_SESSION_DESC;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec;
+
+#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
+#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
+
+/* interface ID3D12ProtectedResourceSession */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12ProtectedResourceSession;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D")
+ ID3D12ProtectedResourceSession : public ID3D12ProtectedSession
+ {
+ public:
+ virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12ProtectedResourceSessionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12ProtectedResourceSession * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12ProtectedResourceSession * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12ProtectedResourceSession * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12ProtectedResourceSession * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12ProtectedResourceSession * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12ProtectedResourceSession * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12ProtectedResourceSession * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12ProtectedResourceSession * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
+ ID3D12ProtectedResourceSession * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppFence);
+
+ D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
+ ID3D12ProtectedResourceSession * This);
+
+ D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
+ ID3D12ProtectedResourceSession * This);
+
+ END_INTERFACE
+ } ID3D12ProtectedResourceSessionVtbl;
+
+ interface ID3D12ProtectedResourceSession
+ {
+ CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12ProtectedResourceSession_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12ProtectedResourceSession_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12ProtectedResourceSession_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \
+ ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
+
+#define ID3D12ProtectedResourceSession_GetSessionStatus(This) \
+ ( (This)->lpVtbl -> GetSessionStatus(This) )
+
+
+#define ID3D12ProtectedResourceSession_GetDesc(This) \
+ ( (This)->lpVtbl -> GetDesc(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+
+
+
+
+#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
+
+
+#ifndef __ID3D12Device4_INTERFACE_DEFINED__
+#define __ID3D12Device4_INTERFACE_DEFINED__
+
+/* interface ID3D12Device4 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12Device4;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5")
+ ID3D12Device4 : public ID3D12Device3
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CreateCommandList1(
+ _In_ UINT nodeMask,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ _In_ D3D12_COMMAND_LIST_FLAGS flags,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandList) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession(
+ _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
+ _In_ REFIID riid,
+ _COM_Outptr_ void **ppSession) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1(
+ _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
+ D3D12_HEAP_FLAGS HeapFlags,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialResourceState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riidResource,
+ _COM_Outptr_opt_ void **ppvResource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateHeap1(
+ _In_ const D3D12_HEAP_DESC *pDesc,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1(
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource) = 0;
+
+ virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
+ UINT visibleMask,
+ UINT numResourceDescs,
+ _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
+ _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12Device4Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12Device4 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12Device4 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12Device4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12Device4 * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12Device4 * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12Device4 * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12Device4 * This,
+ _In_z_ LPCWSTR Name);
+
+ UINT ( STDMETHODCALLTYPE *GetNodeCount )(
+ ID3D12Device4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandQueue);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
+ ID3D12Device4 * This,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandAllocator);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
+ ID3D12Device4 * This,
+ _In_ UINT nodeMask,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ _In_ ID3D12CommandAllocator *pCommandAllocator,
+ _In_opt_ ID3D12PipelineState *pInitialState,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandList);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
+ ID3D12Device4 * This,
+ D3D12_FEATURE Feature,
+ _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppvHeap);
+
+ UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
+ ID3D12Device4 * This,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
+ ID3D12Device4 * This,
+ _In_ UINT nodeMask,
+ _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
+ _In_ SIZE_T blobLengthInBytes,
+ REFIID riid,
+ _COM_Outptr_ void **ppvRootSignature);
+
+ void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
+ ID3D12Device4 * This,
+ _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
+ ID3D12Device4 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
+ ID3D12Device4 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ ID3D12Resource *pCounterResource,
+ _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
+ ID3D12Device4 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
+ ID3D12Device4 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateSampler )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_SAMPLER_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CopyDescriptors )(
+ ID3D12Device4 * This,
+ _In_ UINT NumDestDescriptorRanges,
+ _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
+ _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
+ _In_ UINT NumSrcDescriptorRanges,
+ _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
+ _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
+
+ void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
+ ID3D12Device4 * This,
+ _In_ UINT NumDescriptors,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
+
+ D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
+ ID3D12Device4 * This,
+ _In_ UINT visibleMask,
+ _In_ UINT numResourceDescs,
+ _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
+
+ D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
+ ID3D12Device4 * This,
+ _In_ UINT nodeMask,
+ D3D12_HEAP_TYPE heapType);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
+ D3D12_HEAP_FLAGS HeapFlags,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialResourceState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riidResource,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_HEAP_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
+ ID3D12Device4 * This,
+ _In_ ID3D12Heap *pHeap,
+ UINT64 HeapOffset,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
+ ID3D12Device4 * This,
+ _In_ ID3D12DeviceChild *pObject,
+ _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
+ DWORD Access,
+ _In_opt_ LPCWSTR Name,
+ _Out_ HANDLE *pHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
+ ID3D12Device4 * This,
+ _In_ HANDLE NTHandle,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvObj);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
+ ID3D12Device4 * This,
+ _In_ LPCWSTR Name,
+ DWORD Access,
+ /* [annotation][out] */
+ _Out_ HANDLE *pNTHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *MakeResident )(
+ ID3D12Device4 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
+
+ HRESULT ( STDMETHODCALLTYPE *Evict )(
+ ID3D12Device4 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateFence )(
+ ID3D12Device4 * This,
+ UINT64 InitialValue,
+ D3D12_FENCE_FLAGS Flags,
+ REFIID riid,
+ _COM_Outptr_ void **ppFence);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
+ ID3D12Device4 * This);
+
+ void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
+ UINT64 BaseOffset,
+ _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
+ _Out_writes_opt_(NumSubresources) UINT *pNumRows,
+ _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
+ _Out_opt_ UINT64 *pTotalBytes);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
+ ID3D12Device4 * This,
+ BOOL Enable);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
+ _In_opt_ ID3D12RootSignature *pRootSignature,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvCommandSignature);
+
+ void ( STDMETHODCALLTYPE *GetResourceTiling )(
+ ID3D12Device4 * This,
+ _In_ ID3D12Resource *pTiledResource,
+ _Out_opt_ UINT *pNumTilesForEntireResource,
+ _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
+ _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
+ _Inout_opt_ UINT *pNumSubresourceTilings,
+ _In_ UINT FirstSubresourceTilingToGet,
+ _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
+
+ LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
+ ID3D12Device4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
+ ID3D12Device4 * This,
+ _In_reads_(BlobLength) const void *pLibraryBlob,
+ SIZE_T BlobLength,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineLibrary);
+
+ HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
+ ID3D12Device4 * This,
+ _In_reads_(NumFences) ID3D12Fence *const *ppFences,
+ _In_reads_(NumFences) const UINT64 *pFenceValues,
+ UINT NumFences,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
+ HANDLE hEvent);
+
+ HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
+ ID3D12Device4 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
+ _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
+ ID3D12Device4 * This,
+ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
+ ID3D12Device4 * This,
+ _In_ const void *pAddress,
+ REFIID riid,
+ _COM_Outptr_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
+ ID3D12Device4 * This,
+ _In_ HANDLE hFileMapping,
+ REFIID riid,
+ _COM_Outptr_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
+ ID3D12Device4 * This,
+ D3D12_RESIDENCY_FLAGS Flags,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
+ _In_ ID3D12Fence *pFenceToSignal,
+ UINT64 FenceValueToSignal);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
+ ID3D12Device4 * This,
+ _In_ UINT nodeMask,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ _In_ D3D12_COMMAND_LIST_FLAGS flags,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandList);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
+ _In_ REFIID riid,
+ _COM_Outptr_ void **ppSession);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
+ D3D12_HEAP_FLAGS HeapFlags,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialResourceState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riidResource,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_HEAP_DESC *pDesc,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
+ ID3D12Device4 * This,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
+ ID3D12Device4 * This,
+ UINT visibleMask,
+ UINT numResourceDescs,
+ _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
+ _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
+
+ END_INTERFACE
+ } ID3D12Device4Vtbl;
+
+ interface ID3D12Device4
+ {
+ CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12Device4_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12Device4_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12Device4_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12Device4_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12Device4_GetNodeCount(This) \
+ ( (This)->lpVtbl -> GetNodeCount(This) )
+
+#define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
+ ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
+
+#define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
+ ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
+
+#define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
+
+#define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
+
+#define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
+ ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
+
+#define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
+ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
+
+#define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
+
+#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
+ ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
+
+#define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
+ ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
+
+#define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
+
+#define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
+
+#define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
+ ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
+
+#define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
+ ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
+
+#define ID3D12Device4_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
+ ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
+
+#define ID3D12Device4_GetCustomHeapProperties(This,nodeMask,heapType) \
+ ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
+
+#define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
+ ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
+
+#define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
+
+#define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
+ ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
+
+#define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
+ ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
+
+#define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
+ ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
+
+#define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
+ ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
+
+#define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
+ ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
+
+#define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \
+ ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
+
+#define ID3D12Device4_Evict(This,NumObjects,ppObjects) \
+ ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
+
+#define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \
+ ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
+
+#define ID3D12Device4_GetDeviceRemovedReason(This) \
+ ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
+
+#define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
+ ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
+
+#define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
+
+#define ID3D12Device4_SetStablePowerState(This,Enable) \
+ ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
+
+#define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
+ ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
+
+#define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
+ ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
+
+#define ID3D12Device4_GetAdapterLuid(This) \
+ ( (This)->lpVtbl -> GetAdapterLuid(This) )
+
+
+#define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
+ ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
+
+#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
+ ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
+
+#define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
+ ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
+
+
+#define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
+
+
+#define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
+ ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
+
+#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
+ ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
+
+#define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
+ ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
+
+
+#define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
+ ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
+
+#define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
+ ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
+
+#define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
+ ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
+
+#define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
+
+#define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
+ ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
+
+#define ID3D12Device4_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
+ ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+
+
+
+
+#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0029 */
+/* [local] */
+
+typedef
+enum D3D12_LIFETIME_STATE
+ {
+ D3D12_LIFETIME_STATE_IN_USE = 0,
+ D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 )
+ } D3D12_LIFETIME_STATE;
+
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec;
+
+#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__
+#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__
+
+/* interface ID3D12LifetimeOwner */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12LifetimeOwner;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8")
+ ID3D12LifetimeOwner : public IUnknown
+ {
+ public:
+ virtual void STDMETHODCALLTYPE LifetimeStateUpdated(
+ D3D12_LIFETIME_STATE NewState) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12LifetimeOwnerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12LifetimeOwner * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12LifetimeOwner * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12LifetimeOwner * This);
+
+ void ( STDMETHODCALLTYPE *LifetimeStateUpdated )(
+ ID3D12LifetimeOwner * This,
+ D3D12_LIFETIME_STATE NewState);
+
+ END_INTERFACE
+ } ID3D12LifetimeOwnerVtbl;
+
+ interface ID3D12LifetimeOwner
+ {
+ CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12LifetimeOwner_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12LifetimeOwner_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \
+ ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */
+
+
+#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
+#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
+
+/* interface ID3D12SwapChainAssistant */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12SwapChainAssistant;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f")
+ ID3D12SwapChainAssistant : public IUnknown
+ {
+ public:
+ virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject(
+ REFIID riid,
+ _COM_Outptr_ void **ppv) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue(
+ REFIID riidResource,
+ _COM_Outptr_ void **ppvResource,
+ REFIID riidQueue,
+ _COM_Outptr_ void **ppvQueue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12SwapChainAssistantVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12SwapChainAssistant * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12SwapChainAssistant * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12SwapChainAssistant * This);
+
+ LUID ( STDMETHODCALLTYPE *GetLUID )(
+ ID3D12SwapChainAssistant * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )(
+ ID3D12SwapChainAssistant * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppv);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )(
+ ID3D12SwapChainAssistant * This,
+ REFIID riidResource,
+ _COM_Outptr_ void **ppvResource,
+ REFIID riidQueue,
+ _COM_Outptr_ void **ppvQueue);
+
+ HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )(
+ ID3D12SwapChainAssistant * This);
+
+ END_INTERFACE
+ } ID3D12SwapChainAssistantVtbl;
+
+ interface ID3D12SwapChainAssistant
+ {
+ CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12SwapChainAssistant_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12SwapChainAssistant_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12SwapChainAssistant_GetLUID(This) \
+ ( (This)->lpVtbl -> GetLUID(This) )
+
+#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \
+ ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) )
+
+#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \
+ ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) )
+
+#define ID3D12SwapChainAssistant_InsertImplicitSync(This) \
+ ( (This)->lpVtbl -> InsertImplicitSync(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+
+
+
+
+#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
+
+
+#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__
+#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__
+
+/* interface ID3D12LifetimeTracker */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12LifetimeTracker;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813")
+ ID3D12LifetimeTracker : public ID3D12DeviceChild
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject(
+ _In_ ID3D12DeviceChild *pObject) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12LifetimeTrackerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12LifetimeTracker * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12LifetimeTracker * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12LifetimeTracker * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12LifetimeTracker * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12LifetimeTracker * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12LifetimeTracker * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12LifetimeTracker * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12LifetimeTracker * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )(
+ ID3D12LifetimeTracker * This,
+ _In_ ID3D12DeviceChild *pObject);
+
+ END_INTERFACE
+ } ID3D12LifetimeTrackerVtbl;
+
+ interface ID3D12LifetimeTracker
+ {
+ CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12LifetimeTracker_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12LifetimeTracker_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12LifetimeTracker_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+#define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \
+ ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0032 */
+/* [local] */
+
+typedef
+enum D3D12_META_COMMAND_PARAMETER_TYPE
+ {
+ D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0,
+ D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1,
+ D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2,
+ D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3,
+ D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4
+ } D3D12_META_COMMAND_PARAMETER_TYPE;
+
+typedef
+enum D3D12_META_COMMAND_PARAMETER_FLAGS
+ {
+ D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1,
+ D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2
+ } D3D12_META_COMMAND_PARAMETER_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS );
+typedef
+enum D3D12_META_COMMAND_PARAMETER_STAGE
+ {
+ D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0,
+ D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
+ D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2
+ } D3D12_META_COMMAND_PARAMETER_STAGE;
+
+typedef struct D3D12_META_COMMAND_PARAMETER_DESC
+ {
+ LPCWSTR Name;
+ D3D12_META_COMMAND_PARAMETER_TYPE Type;
+ D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
+ D3D12_RESOURCE_STATES RequiredResourceState;
+ UINT StructureOffset;
+ } D3D12_META_COMMAND_PARAMETER_DESC;
+
+typedef
+enum D3D12_GRAPHICS_STATES
+ {
+ D3D12_GRAPHICS_STATE_NONE = 0,
+ D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) ,
+ D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) ,
+ D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) ,
+ D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) ,
+ D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) ,
+ D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) ,
+ D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) ,
+ D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) ,
+ D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) ,
+ D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) ,
+ D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) ,
+ D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) ,
+ D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) ,
+ D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) ,
+ D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) ,
+ D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) ,
+ D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 )
+ } D3D12_GRAPHICS_STATES;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES );
+typedef struct D3D12_META_COMMAND_DESC
+ {
+ GUID Id;
+ LPCWSTR Name;
+ D3D12_GRAPHICS_STATES InitializationDirtyState;
+ D3D12_GRAPHICS_STATES ExecutionDirtyState;
+ } D3D12_META_COMMAND_DESC;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_s_ifspec;
+
+#ifndef __ID3D12StateObject_INTERFACE_DEFINED__
+#define __ID3D12StateObject_INTERFACE_DEFINED__
+
+/* interface ID3D12StateObject */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12StateObject;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d")
+ ID3D12StateObject : public ID3D12Pageable
+ {
+ public:
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12StateObjectVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12StateObject * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12StateObject * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12StateObject * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12StateObject * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12StateObject * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12StateObject * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12StateObject * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12StateObject * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ END_INTERFACE
+ } ID3D12StateObjectVtbl;
+
+ interface ID3D12StateObject
+ {
+ CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12StateObject_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12StateObject_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12StateObject_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */
+
+
+#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__
+#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__
+
+/* interface ID3D12StateObjectProperties */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12StateObjectProperties;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860")
+ ID3D12StateObjectProperties : public IUnknown
+ {
+ public:
+ virtual void *STDMETHODCALLTYPE GetShaderIdentifier(
+ _In_ LPCWSTR pExportName) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize(
+ _In_ LPCWSTR pExportName) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0;
+
+ virtual void STDMETHODCALLTYPE SetPipelineStackSize(
+ UINT64 PipelineStackSizeInBytes) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12StateObjectPropertiesVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12StateObjectProperties * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12StateObjectProperties * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12StateObjectProperties * This);
+
+ void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
+ ID3D12StateObjectProperties * This,
+ _In_ LPCWSTR pExportName);
+
+ UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
+ ID3D12StateObjectProperties * This,
+ _In_ LPCWSTR pExportName);
+
+ UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
+ ID3D12StateObjectProperties * This);
+
+ void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
+ ID3D12StateObjectProperties * This,
+ UINT64 PipelineStackSizeInBytes);
+
+ END_INTERFACE
+ } ID3D12StateObjectPropertiesVtbl;
+
+ interface ID3D12StateObjectProperties
+ {
+ CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12StateObjectProperties_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12StateObjectProperties_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \
+ ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
+
+#define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \
+ ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
+
+#define ID3D12StateObjectProperties_GetPipelineStackSize(This) \
+ ( (This)->lpVtbl -> GetPipelineStackSize(This) )
+
+#define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
+ ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0034 */
+/* [local] */
+
+typedef
+enum D3D12_STATE_SUBOBJECT_TYPE
+ {
+ D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0,
+ D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1,
+ D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2,
+ D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3,
+ D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5,
+ D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6,
+ D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7,
+ D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8,
+ D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9,
+ D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10,
+ D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11,
+ D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP + 1 )
+ } D3D12_STATE_SUBOBJECT_TYPE;
+
+typedef struct D3D12_STATE_SUBOBJECT
+ {
+ D3D12_STATE_SUBOBJECT_TYPE Type;
+ const void *pDesc;
+ } D3D12_STATE_SUBOBJECT;
+
+typedef
+enum D3D12_STATE_OBJECT_FLAGS
+ {
+ D3D12_STATE_OBJECT_FLAG_NONE = 0,
+ D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
+ D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2
+ } D3D12_STATE_OBJECT_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS );
+typedef struct D3D12_STATE_OBJECT_CONFIG
+ {
+ D3D12_STATE_OBJECT_FLAGS Flags;
+ } D3D12_STATE_OBJECT_CONFIG;
+
+typedef struct D3D12_GLOBAL_ROOT_SIGNATURE
+ {
+ ID3D12RootSignature *pGlobalRootSignature;
+ } D3D12_GLOBAL_ROOT_SIGNATURE;
+
+typedef struct D3D12_LOCAL_ROOT_SIGNATURE
+ {
+ ID3D12RootSignature *pLocalRootSignature;
+ } D3D12_LOCAL_ROOT_SIGNATURE;
+
+typedef struct D3D12_NODE_MASK
+ {
+ UINT NodeMask;
+ } D3D12_NODE_MASK;
+
+typedef
+enum D3D12_EXPORT_FLAGS
+ {
+ D3D12_EXPORT_FLAG_NONE = 0
+ } D3D12_EXPORT_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS );
+typedef struct D3D12_EXPORT_DESC
+ {
+ LPCWSTR Name;
+ _In_opt_ LPCWSTR ExportToRename;
+ D3D12_EXPORT_FLAGS Flags;
+ } D3D12_EXPORT_DESC;
+
+typedef struct D3D12_DXIL_LIBRARY_DESC
+ {
+ D3D12_SHADER_BYTECODE DXILLibrary;
+ UINT NumExports;
+ _In_reads_(NumExports) D3D12_EXPORT_DESC *pExports;
+ } D3D12_DXIL_LIBRARY_DESC;
+
+typedef struct D3D12_EXISTING_COLLECTION_DESC
+ {
+ ID3D12StateObject *pExistingCollection;
+ UINT NumExports;
+ _In_reads_(NumExports) D3D12_EXPORT_DESC *pExports;
+ } D3D12_EXISTING_COLLECTION_DESC;
+
+typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
+ {
+ const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate;
+ UINT NumExports;
+ _In_reads_(NumExports) LPCWSTR *pExports;
+ } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
+
+typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
+ {
+ LPCWSTR SubobjectToAssociate;
+ UINT NumExports;
+ _In_reads_(NumExports) LPCWSTR *pExports;
+ } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
+
+typedef
+enum D3D12_HIT_GROUP_TYPE
+ {
+ D3D12_HIT_GROUP_TYPE_TRIANGLES = 0,
+ D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1
+ } D3D12_HIT_GROUP_TYPE;
+
+typedef struct D3D12_HIT_GROUP_DESC
+ {
+ LPCWSTR HitGroupExport;
+ D3D12_HIT_GROUP_TYPE Type;
+ _In_opt_ LPCWSTR AnyHitShaderImport;
+ _In_opt_ LPCWSTR ClosestHitShaderImport;
+ _In_opt_ LPCWSTR IntersectionShaderImport;
+ } D3D12_HIT_GROUP_DESC;
+
+typedef struct D3D12_RAYTRACING_SHADER_CONFIG
+ {
+ UINT MaxPayloadSizeInBytes;
+ UINT MaxAttributeSizeInBytes;
+ } D3D12_RAYTRACING_SHADER_CONFIG;
+
+typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG
+ {
+ UINT MaxTraceRecursionDepth;
+ } D3D12_RAYTRACING_PIPELINE_CONFIG;
+
+typedef
+enum D3D12_STATE_OBJECT_TYPE
+ {
+ D3D12_STATE_OBJECT_TYPE_COLLECTION = 0,
+ D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3
+ } D3D12_STATE_OBJECT_TYPE;
+
+typedef struct D3D12_STATE_OBJECT_DESC
+ {
+ D3D12_STATE_OBJECT_TYPE Type;
+ UINT NumSubobjects;
+ _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects;
+ } D3D12_STATE_OBJECT_DESC;
+
+typedef
+enum D3D12_RAYTRACING_GEOMETRY_FLAGS
+ {
+ D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
+ D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
+ D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
+ } D3D12_RAYTRACING_GEOMETRY_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS );
+typedef
+enum D3D12_RAYTRACING_GEOMETRY_TYPE
+ {
+ D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0,
+ D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 )
+ } D3D12_RAYTRACING_GEOMETRY_TYPE;
+
+typedef
+enum D3D12_RAYTRACING_INSTANCE_FLAGS
+ {
+ D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
+ D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
+ D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
+ D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
+ D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8
+ } D3D12_RAYTRACING_INSTANCE_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS );
+typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
+ {
+ D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
+ UINT64 StrideInBytes;
+ } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
+
+typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE
+ {
+ D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
+ UINT64 SizeInBytes;
+ } D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
+
+typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE
+ {
+ D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
+ UINT64 SizeInBytes;
+ UINT64 StrideInBytes;
+ } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
+
+typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
+ {
+ D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
+ DXGI_FORMAT IndexFormat;
+ DXGI_FORMAT VertexFormat;
+ UINT IndexCount;
+ UINT VertexCount;
+ D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
+ D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
+ } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
+
+typedef struct D3D12_RAYTRACING_AABB
+ {
+ FLOAT MinX;
+ FLOAT MinY;
+ FLOAT MinZ;
+ FLOAT MaxX;
+ FLOAT MaxY;
+ FLOAT MaxZ;
+ } D3D12_RAYTRACING_AABB;
+
+typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC
+ {
+ UINT64 AABBCount;
+ D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
+ } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
+
+typedef
+enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
+ {
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS );
+typedef
+enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
+ {
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
+
+typedef
+enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
+ {
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
+
+typedef
+enum D3D12_ELEMENTS_LAYOUT
+ {
+ D3D12_ELEMENTS_LAYOUT_ARRAY = 0,
+ D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
+ } D3D12_ELEMENTS_LAYOUT;
+
+typedef
+enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE
+ {
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
+
+typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC
+ {
+ D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
+
+typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
+ {
+ UINT64 CompactedSizeInBytes;
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
+
+typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
+ {
+ UINT64 DecodedSizeInBytes;
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
+
+typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
+ {
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
+ UINT NumDescs;
+ } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
+
+// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,
+// depending on Type field, NumDescs above is followed by either:
+// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]
+// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].
+// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.
+
+typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
+ {
+ UINT64 SerializedSizeInBytes;
+ UINT64 NumBottomLevelAccelerationStructurePointers;
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
+
+typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
+ {
+ GUID DriverOpaqueGUID;
+ BYTE DriverOpaqueVersioningData[ 16 ];
+ } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
+
+typedef
+enum D3D12_SERIALIZED_DATA_TYPE
+ {
+ D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0
+ } D3D12_SERIALIZED_DATA_TYPE;
+
+typedef
+enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS
+ {
+ D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0,
+ D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
+ D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
+ D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
+ D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4
+ } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
+
+typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER
+ {
+ D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
+ UINT64 SerializedSizeInBytesIncludingHeader;
+ UINT64 DeserializedSizeInBytes;
+ UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
+ } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
+
+typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
+ {
+ UINT64 CurrentSizeInBytes;
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
+
+typedef struct D3D12_RAYTRACING_INSTANCE_DESC
+ {
+ FLOAT Transform[ 3 ][ 4 ];
+ UINT InstanceID : 24;
+ UINT InstanceMask : 8;
+ UINT InstanceContributionToHitGroupIndex : 24;
+ UINT Flags : 8;
+ D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
+ } D3D12_RAYTRACING_INSTANCE_DESC;
+
+typedef struct D3D12_RAYTRACING_GEOMETRY_DESC
+ {
+ D3D12_RAYTRACING_GEOMETRY_TYPE Type;
+ D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
+ union
+ {
+ D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
+ D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
+ } ;
+ } D3D12_RAYTRACING_GEOMETRY_DESC;
+
+typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
+ {
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
+ UINT NumDescs;
+ D3D12_ELEMENTS_LAYOUT DescsLayout;
+ union
+ {
+ D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
+ const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
+ const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs;
+ } ;
+ } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
+
+typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC
+ {
+ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
+ D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
+ _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
+ D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
+ } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
+
+typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
+ {
+ UINT64 ResultDataMaxSizeInBytes;
+ UINT64 ScratchDataSizeInBytes;
+ UINT64 UpdateScratchDataSizeInBytes;
+ } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
+
+typedef
+enum D3D12_RAY_FLAGS
+ {
+ D3D12_RAY_FLAG_NONE = 0,
+ D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
+ D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
+ D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
+ D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
+ D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
+ D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
+ D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
+ D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80
+ } D3D12_RAY_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS );
+typedef
+enum D3D12_HIT_KIND
+ {
+ D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
+ D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff
+ } D3D12_HIT_KIND;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec;
+
+#ifndef __ID3D12Device5_INTERFACE_DEFINED__
+#define __ID3D12Device5_INTERFACE_DEFINED__
+
+/* interface ID3D12Device5 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12Device5;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d")
+ ID3D12Device5 : public ID3D12Device4
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker(
+ _In_ ID3D12LifetimeOwner *pOwner,
+ REFIID riid,
+ _COM_Outptr_ void **ppvTracker) = 0;
+
+ virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands(
+ _Inout_ UINT *pNumMetaCommands,
+ _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters(
+ _In_ REFGUID CommandId,
+ _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
+ _Out_opt_ UINT *pTotalStructureSizeInBytes,
+ _Inout_ UINT *pParameterCount,
+ _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand(
+ _In_ REFGUID CommandId,
+ _In_ UINT NodeMask,
+ _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
+ _In_ SIZE_T CreationParametersDataSizeInBytes,
+ REFIID riid,
+ _COM_Outptr_ void **ppMetaCommand) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateStateObject(
+ const D3D12_STATE_OBJECT_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppStateObject) = 0;
+
+ virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo(
+ _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
+ _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0;
+
+ virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier(
+ _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
+ _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12Device5Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12Device5 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12Device5 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12Device5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12Device5 * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12Device5 * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12Device5 * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12Device5 * This,
+ _In_z_ LPCWSTR Name);
+
+ UINT ( STDMETHODCALLTYPE *GetNodeCount )(
+ ID3D12Device5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandQueue);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
+ ID3D12Device5 * This,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandAllocator);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
+ ID3D12Device5 * This,
+ _In_ UINT nodeMask,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ _In_ ID3D12CommandAllocator *pCommandAllocator,
+ _In_opt_ ID3D12PipelineState *pInitialState,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandList);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
+ ID3D12Device5 * This,
+ D3D12_FEATURE Feature,
+ _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppvHeap);
+
+ UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
+ ID3D12Device5 * This,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
+ ID3D12Device5 * This,
+ _In_ UINT nodeMask,
+ _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
+ _In_ SIZE_T blobLengthInBytes,
+ REFIID riid,
+ _COM_Outptr_ void **ppvRootSignature);
+
+ void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
+ ID3D12Device5 * This,
+ _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
+ ID3D12Device5 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
+ ID3D12Device5 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ ID3D12Resource *pCounterResource,
+ _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
+ ID3D12Device5 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
+ ID3D12Device5 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateSampler )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_SAMPLER_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CopyDescriptors )(
+ ID3D12Device5 * This,
+ _In_ UINT NumDestDescriptorRanges,
+ _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
+ _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
+ _In_ UINT NumSrcDescriptorRanges,
+ _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
+ _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
+
+ void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
+ ID3D12Device5 * This,
+ _In_ UINT NumDescriptors,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
+
+ D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
+ ID3D12Device5 * This,
+ _In_ UINT visibleMask,
+ _In_ UINT numResourceDescs,
+ _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
+
+ D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
+ ID3D12Device5 * This,
+ _In_ UINT nodeMask,
+ D3D12_HEAP_TYPE heapType);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
+ D3D12_HEAP_FLAGS HeapFlags,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialResourceState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riidResource,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_HEAP_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
+ ID3D12Device5 * This,
+ _In_ ID3D12Heap *pHeap,
+ UINT64 HeapOffset,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
+ ID3D12Device5 * This,
+ _In_ ID3D12DeviceChild *pObject,
+ _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
+ DWORD Access,
+ _In_opt_ LPCWSTR Name,
+ _Out_ HANDLE *pHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
+ ID3D12Device5 * This,
+ _In_ HANDLE NTHandle,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvObj);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
+ ID3D12Device5 * This,
+ _In_ LPCWSTR Name,
+ DWORD Access,
+ /* [annotation][out] */
+ _Out_ HANDLE *pNTHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *MakeResident )(
+ ID3D12Device5 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
+
+ HRESULT ( STDMETHODCALLTYPE *Evict )(
+ ID3D12Device5 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateFence )(
+ ID3D12Device5 * This,
+ UINT64 InitialValue,
+ D3D12_FENCE_FLAGS Flags,
+ REFIID riid,
+ _COM_Outptr_ void **ppFence);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
+ ID3D12Device5 * This);
+
+ void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
+ UINT64 BaseOffset,
+ _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
+ _Out_writes_opt_(NumSubresources) UINT *pNumRows,
+ _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
+ _Out_opt_ UINT64 *pTotalBytes);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
+ ID3D12Device5 * This,
+ BOOL Enable);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
+ _In_opt_ ID3D12RootSignature *pRootSignature,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvCommandSignature);
+
+ void ( STDMETHODCALLTYPE *GetResourceTiling )(
+ ID3D12Device5 * This,
+ _In_ ID3D12Resource *pTiledResource,
+ _Out_opt_ UINT *pNumTilesForEntireResource,
+ _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
+ _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
+ _Inout_opt_ UINT *pNumSubresourceTilings,
+ _In_ UINT FirstSubresourceTilingToGet,
+ _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
+
+ LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
+ ID3D12Device5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
+ ID3D12Device5 * This,
+ _In_reads_(BlobLength) const void *pLibraryBlob,
+ SIZE_T BlobLength,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineLibrary);
+
+ HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
+ ID3D12Device5 * This,
+ _In_reads_(NumFences) ID3D12Fence *const *ppFences,
+ _In_reads_(NumFences) const UINT64 *pFenceValues,
+ UINT NumFences,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
+ HANDLE hEvent);
+
+ HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
+ ID3D12Device5 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
+ _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
+ ID3D12Device5 * This,
+ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
+ ID3D12Device5 * This,
+ _In_ const void *pAddress,
+ REFIID riid,
+ _COM_Outptr_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
+ ID3D12Device5 * This,
+ _In_ HANDLE hFileMapping,
+ REFIID riid,
+ _COM_Outptr_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
+ ID3D12Device5 * This,
+ D3D12_RESIDENCY_FLAGS Flags,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
+ _In_ ID3D12Fence *pFenceToSignal,
+ UINT64 FenceValueToSignal);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
+ ID3D12Device5 * This,
+ _In_ UINT nodeMask,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ _In_ D3D12_COMMAND_LIST_FLAGS flags,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandList);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
+ _In_ REFIID riid,
+ _COM_Outptr_ void **ppSession);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
+ D3D12_HEAP_FLAGS HeapFlags,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialResourceState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riidResource,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_HEAP_DESC *pDesc,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
+ ID3D12Device5 * This,
+ UINT visibleMask,
+ UINT numResourceDescs,
+ _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
+ _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
+ ID3D12Device5 * This,
+ _In_ ID3D12LifetimeOwner *pOwner,
+ REFIID riid,
+ _COM_Outptr_ void **ppvTracker);
+
+ void ( STDMETHODCALLTYPE *RemoveDevice )(
+ ID3D12Device5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
+ ID3D12Device5 * This,
+ _Inout_ UINT *pNumMetaCommands,
+ _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
+ ID3D12Device5 * This,
+ _In_ REFGUID CommandId,
+ _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
+ _Out_opt_ UINT *pTotalStructureSizeInBytes,
+ _Inout_ UINT *pParameterCount,
+ _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
+ ID3D12Device5 * This,
+ _In_ REFGUID CommandId,
+ _In_ UINT NodeMask,
+ _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
+ _In_ SIZE_T CreationParametersDataSizeInBytes,
+ REFIID riid,
+ _COM_Outptr_ void **ppMetaCommand);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
+ ID3D12Device5 * This,
+ const D3D12_STATE_OBJECT_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppStateObject);
+
+ void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
+ ID3D12Device5 * This,
+ _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
+ _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
+
+ D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
+ ID3D12Device5 * This,
+ _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
+ _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
+
+ END_INTERFACE
+ } ID3D12Device5Vtbl;
+
+ interface ID3D12Device5
+ {
+ CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12Device5_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12Device5_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12Device5_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12Device5_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12Device5_GetNodeCount(This) \
+ ( (This)->lpVtbl -> GetNodeCount(This) )
+
+#define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
+ ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
+
+#define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
+ ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
+
+#define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
+
+#define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
+
+#define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
+ ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
+
+#define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
+ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
+
+#define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
+
+#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
+ ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
+
+#define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
+ ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
+
+#define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
+
+#define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
+
+#define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
+ ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
+
+#define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
+ ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
+
+#define ID3D12Device5_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
+ ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
+
+#define ID3D12Device5_GetCustomHeapProperties(This,nodeMask,heapType) \
+ ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
+
+#define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
+ ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
+
+#define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
+
+#define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
+ ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
+
+#define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
+ ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
+
+#define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
+ ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
+
+#define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
+ ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
+
+#define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
+ ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
+
+#define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \
+ ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
+
+#define ID3D12Device5_Evict(This,NumObjects,ppObjects) \
+ ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
+
+#define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \
+ ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
+
+#define ID3D12Device5_GetDeviceRemovedReason(This) \
+ ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
+
+#define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
+ ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
+
+#define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
+
+#define ID3D12Device5_SetStablePowerState(This,Enable) \
+ ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
+
+#define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
+ ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
+
+#define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
+ ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
+
+#define ID3D12Device5_GetAdapterLuid(This) \
+ ( (This)->lpVtbl -> GetAdapterLuid(This) )
+
+
+#define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
+ ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
+
+#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
+ ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
+
+#define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
+ ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
+
+
+#define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
+
+
+#define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
+ ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
+
+#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
+ ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
+
+#define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
+ ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
+
+
+#define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
+ ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
+
+#define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
+ ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
+
+#define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
+ ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
+
+#define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
+
+#define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
+ ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
+
+#define ID3D12Device5_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
+ ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
+
+
+#define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
+ ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
+
+#define ID3D12Device5_RemoveDevice(This) \
+ ( (This)->lpVtbl -> RemoveDevice(This) )
+
+#define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
+ ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
+
+#define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
+ ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
+
+#define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
+ ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
+
+#define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \
+ ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
+
+#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
+ ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
+
+#define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
+ ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0035 */
+/* [local] */
+
+typedef
+enum D3D12_AUTO_BREADCRUMB_OP
+ {
+ D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0,
+ D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1,
+ D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2,
+ D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3,
+ D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4,
+ D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5,
+ D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6,
+ D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7,
+ D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8,
+ D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9,
+ D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10,
+ D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11,
+ D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12,
+ D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13,
+ D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14,
+ D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15,
+ D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16,
+ D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17,
+ D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18,
+ D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19,
+ D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20,
+ D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21,
+ D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22,
+ D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23,
+ D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24,
+ D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25,
+ D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26,
+ D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27,
+ D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28,
+ D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29,
+ D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30,
+ D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31,
+ D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32,
+ D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33,
+ D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34,
+ D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35,
+ D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36,
+ D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37,
+ D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38,
+ D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39
+ } D3D12_AUTO_BREADCRUMB_OP;
+
+typedef struct D3D12_AUTO_BREADCRUMB_NODE
+ {
+ const char *pCommandListDebugNameA;
+ const wchar_t *pCommandListDebugNameW;
+ const char *pCommandQueueDebugNameA;
+ const wchar_t *pCommandQueueDebugNameW;
+ ID3D12GraphicsCommandList *pCommandList;
+ ID3D12CommandQueue *pCommandQueue;
+ UINT32 BreadcrumbCount;
+ UINT32 *pLastBreadcrumbValue;
+ D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
+ struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
+ } D3D12_AUTO_BREADCRUMB_NODE;
+
+typedef
+enum D3D12_DRED_VERSION
+ {
+ D3D12_DRED_VERSION_1_0 = 0x1
+ } D3D12_DRED_VERSION;
+
+typedef
+enum D3D12_DRED_FLAGS
+ {
+ D3D12_DRED_FLAG_NONE = 0,
+ D3D12_DRED_FLAG_FORCE_ENABLE = 1,
+ D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2
+ } D3D12_DRED_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS );
+typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
+ {
+ _In_ D3D12_DRED_FLAGS Flags;
+ _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
+ } D3D12_DEVICE_REMOVED_EXTENDED_DATA;
+
+typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
+ {
+ D3D12_DRED_VERSION Version;
+ union
+ {
+ D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
+ } ;
+ } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_s_ifspec;
+
+#ifndef __ID3D12Resource1_INTERFACE_DEFINED__
+#define __ID3D12Resource1_INTERFACE_DEFINED__
+
+/* interface ID3D12Resource1 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12Resource1;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19")
+ ID3D12Resource1 : public ID3D12Resource
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppProtectedSession) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12Resource1Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12Resource1 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12Resource1 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12Resource1 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12Resource1 * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12Resource1 * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12Resource1 * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12Resource1 * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12Resource1 * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *Map )(
+ ID3D12Resource1 * This,
+ UINT Subresource,
+ _In_opt_ const D3D12_RANGE *pReadRange,
+ _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
+
+ void ( STDMETHODCALLTYPE *Unmap )(
+ ID3D12Resource1 * This,
+ UINT Subresource,
+ _In_opt_ const D3D12_RANGE *pWrittenRange);
+
+ D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
+ ID3D12Resource1 * This);
+
+ D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
+ ID3D12Resource1 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
+ ID3D12Resource1 * This,
+ UINT DstSubresource,
+ _In_opt_ const D3D12_BOX *pDstBox,
+ _In_ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch);
+
+ HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
+ ID3D12Resource1 * This,
+ _Out_ void *pDstData,
+ UINT DstRowPitch,
+ UINT DstDepthPitch,
+ UINT SrcSubresource,
+ _In_opt_ const D3D12_BOX *pSrcBox);
+
+ HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
+ ID3D12Resource1 * This,
+ _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
+ _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
+ ID3D12Resource1 * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppProtectedSession);
+
+ END_INTERFACE
+ } ID3D12Resource1Vtbl;
+
+ interface ID3D12Resource1
+ {
+ CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12Resource1_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12Resource1_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12Resource1_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+
+#define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \
+ ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
+
+#define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \
+ ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
+
+#define ID3D12Resource1_GetDesc(This) \
+ ( (This)->lpVtbl -> GetDesc(This) )
+
+#define ID3D12Resource1_GetGPUVirtualAddress(This) \
+ ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
+
+#define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
+ ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
+
+#define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
+ ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
+
+#define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
+ ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
+
+
+#define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
+ ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */
+
+
+#ifndef __ID3D12Heap1_INTERFACE_DEFINED__
+#define __ID3D12Heap1_INTERFACE_DEFINED__
+
+/* interface ID3D12Heap1 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12Heap1;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D")
+ ID3D12Heap1 : public ID3D12Heap
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppProtectedSession) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12Heap1Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12Heap1 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12Heap1 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12Heap1 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12Heap1 * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12Heap1 * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12Heap1 * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12Heap1 * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12Heap1 * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
+ ID3D12Heap1 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
+ ID3D12Heap1 * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppProtectedSession);
+
+ END_INTERFACE
+ } ID3D12Heap1Vtbl;
+
+ interface ID3D12Heap1
+ {
+ CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12Heap1_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12Heap1_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12Heap1_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+
+#define ID3D12Heap1_GetDesc(This) \
+ ( (This)->lpVtbl -> GetDesc(This) )
+
+
+#define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
+ ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */
+
+
+#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
+#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
+
+/* interface ID3D12GraphicsCommandList3 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12GraphicsCommandList3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D")
+ ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2
+ {
+ public:
+ virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12GraphicsCommandList3Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12GraphicsCommandList3 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12GraphicsCommandList3 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12GraphicsCommandList3 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12GraphicsCommandList3 * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
+ ID3D12GraphicsCommandList3 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Close )(
+ ID3D12GraphicsCommandList3 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Reset )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12CommandAllocator *pAllocator,
+ _In_opt_ ID3D12PipelineState *pInitialState);
+
+ void ( STDMETHODCALLTYPE *ClearState )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_opt_ ID3D12PipelineState *pPipelineState);
+
+ void ( STDMETHODCALLTYPE *DrawInstanced )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT VertexCountPerInstance,
+ _In_ UINT InstanceCount,
+ _In_ UINT StartVertexLocation,
+ _In_ UINT StartInstanceLocation);
+
+ void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT IndexCountPerInstance,
+ _In_ UINT InstanceCount,
+ _In_ UINT StartIndexLocation,
+ _In_ INT BaseVertexLocation,
+ _In_ UINT StartInstanceLocation);
+
+ void ( STDMETHODCALLTYPE *Dispatch )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT ThreadGroupCountX,
+ _In_ UINT ThreadGroupCountY,
+ _In_ UINT ThreadGroupCountZ);
+
+ void ( STDMETHODCALLTYPE *CopyBufferRegion )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12Resource *pDstBuffer,
+ UINT64 DstOffset,
+ _In_ ID3D12Resource *pSrcBuffer,
+ UINT64 SrcOffset,
+ UINT64 NumBytes);
+
+ void ( STDMETHODCALLTYPE *CopyTextureRegion )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
+ _In_opt_ const D3D12_BOX *pSrcBox);
+
+ void ( STDMETHODCALLTYPE *CopyResource )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12Resource *pDstResource,
+ _In_ ID3D12Resource *pSrcResource);
+
+ void ( STDMETHODCALLTYPE *CopyTiles )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12Resource *pTiledResource,
+ _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
+ _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
+ _In_ ID3D12Resource *pBuffer,
+ UINT64 BufferStartOffsetInBytes,
+ D3D12_TILE_COPY_FLAGS Flags);
+
+ void ( STDMETHODCALLTYPE *ResolveSubresource )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12Resource *pDstResource,
+ _In_ UINT DstSubresource,
+ _In_ ID3D12Resource *pSrcResource,
+ _In_ UINT SrcSubresource,
+ _In_ DXGI_FORMAT Format);
+
+ void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
+
+ void ( STDMETHODCALLTYPE *RSSetViewports )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
+ _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
+
+ void ( STDMETHODCALLTYPE *RSSetScissorRects )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
+ _In_reads_( NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
+
+ void ( STDMETHODCALLTYPE *OMSetStencilRef )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT StencilRef);
+
+ void ( STDMETHODCALLTYPE *SetPipelineState )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12PipelineState *pPipelineState);
+
+ void ( STDMETHODCALLTYPE *ResourceBarrier )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT NumBarriers,
+ _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
+
+ void ( STDMETHODCALLTYPE *ExecuteBundle )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12GraphicsCommandList *pCommandList);
+
+ void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT NumDescriptorHeaps,
+ _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_opt_ ID3D12RootSignature *pRootSignature);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_opt_ ID3D12RootSignature *pRootSignature);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
+
+ void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ UINT SrcData,
+ _In_ UINT DestOffsetIn32BitValues);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ UINT SrcData,
+ _In_ UINT DestOffsetIn32BitValues);
+
+ void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ UINT Num32BitValuesToSet,
+ _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
+ _In_ UINT DestOffsetIn32BitValues);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ UINT Num32BitValuesToSet,
+ _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
+ _In_ UINT DestOffsetIn32BitValues);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
+
+ void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT StartSlot,
+ _In_ UINT NumViews,
+ _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
+
+ void ( STDMETHODCALLTYPE *SOSetTargets )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT StartSlot,
+ _In_ UINT NumViews,
+ _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
+
+ void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT NumRenderTargetDescriptors,
+ _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
+ _In_ BOOL RTsSingleHandleToDescriptorRange,
+ _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
+
+ void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
+ _In_ D3D12_CLEAR_FLAGS ClearFlags,
+ _In_ FLOAT Depth,
+ _In_ UINT8 Stencil,
+ _In_ UINT NumRects,
+ _In_reads_(NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
+ _In_ const FLOAT ColorRGBA[ 4 ],
+ _In_ UINT NumRects,
+ _In_reads_(NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
+ _In_ ID3D12Resource *pResource,
+ _In_ const UINT Values[ 4 ],
+ _In_ UINT NumRects,
+ _In_reads_(NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
+ _In_ ID3D12Resource *pResource,
+ _In_ const FLOAT Values[ 4 ],
+ _In_ UINT NumRects,
+ _In_reads_(NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *DiscardResource )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_DISCARD_REGION *pRegion);
+
+ void ( STDMETHODCALLTYPE *BeginQuery )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12QueryHeap *pQueryHeap,
+ _In_ D3D12_QUERY_TYPE Type,
+ _In_ UINT Index);
+
+ void ( STDMETHODCALLTYPE *EndQuery )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12QueryHeap *pQueryHeap,
+ _In_ D3D12_QUERY_TYPE Type,
+ _In_ UINT Index);
+
+ void ( STDMETHODCALLTYPE *ResolveQueryData )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12QueryHeap *pQueryHeap,
+ _In_ D3D12_QUERY_TYPE Type,
+ _In_ UINT StartIndex,
+ _In_ UINT NumQueries,
+ _In_ ID3D12Resource *pDestinationBuffer,
+ _In_ UINT64 AlignedDestinationBufferOffset);
+
+ void ( STDMETHODCALLTYPE *SetPredication )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_opt_ ID3D12Resource *pBuffer,
+ _In_ UINT64 AlignedBufferOffset,
+ _In_ D3D12_PREDICATION_OP Operation);
+
+ void ( STDMETHODCALLTYPE *SetMarker )(
+ ID3D12GraphicsCommandList3 * This,
+ UINT Metadata,
+ _In_reads_bytes_opt_(Size) const void *pData,
+ UINT Size);
+
+ void ( STDMETHODCALLTYPE *BeginEvent )(
+ ID3D12GraphicsCommandList3 * This,
+ UINT Metadata,
+ _In_reads_bytes_opt_(Size) const void *pData,
+ UINT Size);
+
+ void ( STDMETHODCALLTYPE *EndEvent )(
+ ID3D12GraphicsCommandList3 * This);
+
+ void ( STDMETHODCALLTYPE *ExecuteIndirect )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12CommandSignature *pCommandSignature,
+ _In_ UINT MaxCommandCount,
+ _In_ ID3D12Resource *pArgumentBuffer,
+ _In_ UINT64 ArgumentBufferOffset,
+ _In_opt_ ID3D12Resource *pCountBuffer,
+ _In_ UINT64 CountBufferOffset);
+
+ void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12Resource *pDstBuffer,
+ UINT64 DstOffset,
+ _In_ ID3D12Resource *pSrcBuffer,
+ UINT64 SrcOffset,
+ UINT Dependencies,
+ _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
+ _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
+
+ void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12Resource *pDstBuffer,
+ UINT64 DstOffset,
+ _In_ ID3D12Resource *pSrcBuffer,
+ UINT64 SrcOffset,
+ UINT Dependencies,
+ _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
+ _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
+
+ void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ FLOAT Min,
+ _In_ FLOAT Max);
+
+ void ( STDMETHODCALLTYPE *SetSamplePositions )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT NumSamplesPerPixel,
+ _In_ UINT NumPixels,
+ _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
+
+ void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ ID3D12Resource *pDstResource,
+ _In_ UINT DstSubresource,
+ _In_ UINT DstX,
+ _In_ UINT DstY,
+ _In_ ID3D12Resource *pSrcResource,
+ _In_ UINT SrcSubresource,
+ _In_opt_ D3D12_RECT *pSrcRect,
+ _In_ DXGI_FORMAT Format,
+ _In_ D3D12_RESOLVE_MODE ResolveMode);
+
+ void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_ UINT Mask);
+
+ void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
+ ID3D12GraphicsCommandList3 * This,
+ UINT Count,
+ _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
+ _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
+
+ void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
+ ID3D12GraphicsCommandList3 * This,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
+
+ END_INTERFACE
+ } ID3D12GraphicsCommandList3Vtbl;
+
+ interface ID3D12GraphicsCommandList3
+ {
+ CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12GraphicsCommandList3_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12GraphicsCommandList3_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12GraphicsCommandList3_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+#define ID3D12GraphicsCommandList3_GetType(This) \
+ ( (This)->lpVtbl -> GetType(This) )
+
+
+#define ID3D12GraphicsCommandList3_Close(This) \
+ ( (This)->lpVtbl -> Close(This) )
+
+#define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \
+ ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
+
+#define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \
+ ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
+
+#define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
+ ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
+
+#define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
+ ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
+
+#define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
+ ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
+
+#define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
+ ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
+
+#define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
+ ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
+
+#define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \
+ ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
+
+#define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
+ ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
+
+#define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
+ ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
+
+#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \
+ ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
+
+#define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \
+ ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
+
+#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \
+ ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \
+ ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
+
+#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \
+ ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
+
+#define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \
+ ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
+
+#define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
+ ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
+
+#define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \
+ ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
+
+#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
+ ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
+
+#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \
+ ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
+
+#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \
+ ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
+
+#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
+ ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
+
+#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
+ ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
+
+#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
+ ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
+
+#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
+ ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
+
+#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
+ ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
+
+#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
+ ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
+
+#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \
+ ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
+
+#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
+ ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
+
+#define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \
+ ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
+
+#define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
+ ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
+
+#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
+ ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
+ ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
+ ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
+ ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \
+ ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
+
+#define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
+ ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
+
+#define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
+ ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
+
+#define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
+ ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
+
+#define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
+ ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
+
+#define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \
+ ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
+
+#define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \
+ ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
+
+#define ID3D12GraphicsCommandList3_EndEvent(This) \
+ ( (This)->lpVtbl -> EndEvent(This) )
+
+#define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
+ ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
+
+
+#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
+ ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
+
+#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
+ ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
+
+#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \
+ ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
+
+#define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
+ ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
+
+#define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
+ ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
+
+#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \
+ ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
+
+
+#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
+ ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
+
+
+#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
+ ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0038 */
+/* [local] */
+
+typedef
+enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE
+ {
+ D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0,
+ D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) ,
+ D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) ,
+ D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 )
+ } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
+
+typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
+ {
+ D3D12_CLEAR_VALUE ClearValue;
+ } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
+
+typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS
+ {
+ D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
+ union
+ {
+ D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
+ } ;
+ } D3D12_RENDER_PASS_BEGINNING_ACCESS;
+
+typedef
+enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE
+ {
+ D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0,
+ D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) ,
+ D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) ,
+ D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 )
+ } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
+
+typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS
+ {
+ UINT SrcSubresource;
+ UINT DstSubresource;
+ UINT DstX;
+ UINT DstY;
+ D3D12_RECT SrcRect;
+ } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
+
+typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
+ {
+ ID3D12Resource *pSrcResource;
+ ID3D12Resource *pDstResource;
+ UINT SubresourceCount;
+ _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
+ DXGI_FORMAT Format;
+ D3D12_RESOLVE_MODE ResolveMode;
+ BOOL PreserveResolveSource;
+ } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
+
+typedef struct D3D12_RENDER_PASS_ENDING_ACCESS
+ {
+ D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
+ union
+ {
+ D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
+ } ;
+ } D3D12_RENDER_PASS_ENDING_ACCESS;
+
+typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC
+ {
+ D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
+ D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
+ D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
+ } D3D12_RENDER_PASS_RENDER_TARGET_DESC;
+
+typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC
+ {
+ D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
+ D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
+ D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
+ D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
+ D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
+ } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
+
+typedef
+enum D3D12_RENDER_PASS_FLAGS
+ {
+ D3D12_RENDER_PASS_FLAG_NONE = 0,
+ D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
+ D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
+ D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4
+ } D3D12_RENDER_PASS_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS );
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_s_ifspec;
+
+#ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__
+#define __ID3D12MetaCommand_INTERFACE_DEFINED__
+
+/* interface ID3D12MetaCommand */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12MetaCommand;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570")
+ ID3D12MetaCommand : public ID3D12Pageable
+ {
+ public:
+ virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize(
+ _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
+ _In_ UINT ParameterIndex) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12MetaCommandVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12MetaCommand * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12MetaCommand * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12MetaCommand * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12MetaCommand * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12MetaCommand * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12MetaCommand * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12MetaCommand * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12MetaCommand * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )(
+ ID3D12MetaCommand * This,
+ _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
+ _In_ UINT ParameterIndex);
+
+ END_INTERFACE
+ } ID3D12MetaCommandVtbl;
+
+ interface ID3D12MetaCommand
+ {
+ CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12MetaCommand_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12MetaCommand_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12MetaCommand_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+
+#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \
+ ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0039 */
+/* [local] */
+
+typedef struct D3D12_DISPATCH_RAYS_DESC
+ {
+ D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
+ D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
+ D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
+ D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+ } D3D12_DISPATCH_RAYS_DESC;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_s_ifspec;
+
+#ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
+#define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
+
+/* interface ID3D12GraphicsCommandList4 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12GraphicsCommandList4;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874")
+ ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3
+ {
+ public:
+ virtual void STDMETHODCALLTYPE BeginRenderPass(
+ _In_ UINT NumRenderTargets,
+ _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
+ _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
+ D3D12_RENDER_PASS_FLAGS Flags) = 0;
+
+ virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0;
+
+ virtual void STDMETHODCALLTYPE InitializeMetaCommand(
+ _In_ ID3D12MetaCommand *pMetaCommand,
+ _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
+ _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0;
+
+ virtual void STDMETHODCALLTYPE ExecuteMetaCommand(
+ _In_ ID3D12MetaCommand *pMetaCommand,
+ _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
+ _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0;
+
+ virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure(
+ _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
+ _In_ UINT NumPostbuildInfoDescs,
+ _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0;
+
+ virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo(
+ _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
+ _In_ UINT NumSourceAccelerationStructures,
+ _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure(
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
+ _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0;
+
+ virtual void STDMETHODCALLTYPE SetPipelineState1(
+ _In_ ID3D12StateObject *pStateObject) = 0;
+
+ virtual void STDMETHODCALLTYPE DispatchRays(
+ _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12GraphicsCommandList4Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12GraphicsCommandList4 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12GraphicsCommandList4 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12GraphicsCommandList4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12GraphicsCommandList4 * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
+ ID3D12GraphicsCommandList4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Close )(
+ ID3D12GraphicsCommandList4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Reset )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12CommandAllocator *pAllocator,
+ _In_opt_ ID3D12PipelineState *pInitialState);
+
+ void ( STDMETHODCALLTYPE *ClearState )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_opt_ ID3D12PipelineState *pPipelineState);
+
+ void ( STDMETHODCALLTYPE *DrawInstanced )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT VertexCountPerInstance,
+ _In_ UINT InstanceCount,
+ _In_ UINT StartVertexLocation,
+ _In_ UINT StartInstanceLocation);
+
+ void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT IndexCountPerInstance,
+ _In_ UINT InstanceCount,
+ _In_ UINT StartIndexLocation,
+ _In_ INT BaseVertexLocation,
+ _In_ UINT StartInstanceLocation);
+
+ void ( STDMETHODCALLTYPE *Dispatch )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT ThreadGroupCountX,
+ _In_ UINT ThreadGroupCountY,
+ _In_ UINT ThreadGroupCountZ);
+
+ void ( STDMETHODCALLTYPE *CopyBufferRegion )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12Resource *pDstBuffer,
+ UINT64 DstOffset,
+ _In_ ID3D12Resource *pSrcBuffer,
+ UINT64 SrcOffset,
+ UINT64 NumBytes);
+
+ void ( STDMETHODCALLTYPE *CopyTextureRegion )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
+ _In_opt_ const D3D12_BOX *pSrcBox);
+
+ void ( STDMETHODCALLTYPE *CopyResource )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12Resource *pDstResource,
+ _In_ ID3D12Resource *pSrcResource);
+
+ void ( STDMETHODCALLTYPE *CopyTiles )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12Resource *pTiledResource,
+ _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
+ _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
+ _In_ ID3D12Resource *pBuffer,
+ UINT64 BufferStartOffsetInBytes,
+ D3D12_TILE_COPY_FLAGS Flags);
+
+ void ( STDMETHODCALLTYPE *ResolveSubresource )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12Resource *pDstResource,
+ _In_ UINT DstSubresource,
+ _In_ ID3D12Resource *pSrcResource,
+ _In_ UINT SrcSubresource,
+ _In_ DXGI_FORMAT Format);
+
+ void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
+
+ void ( STDMETHODCALLTYPE *RSSetViewports )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
+ _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
+
+ void ( STDMETHODCALLTYPE *RSSetScissorRects )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
+ _In_reads_( NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
+
+ void ( STDMETHODCALLTYPE *OMSetStencilRef )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT StencilRef);
+
+ void ( STDMETHODCALLTYPE *SetPipelineState )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12PipelineState *pPipelineState);
+
+ void ( STDMETHODCALLTYPE *ResourceBarrier )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT NumBarriers,
+ _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
+
+ void ( STDMETHODCALLTYPE *ExecuteBundle )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12GraphicsCommandList *pCommandList);
+
+ void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT NumDescriptorHeaps,
+ _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_opt_ ID3D12RootSignature *pRootSignature);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_opt_ ID3D12RootSignature *pRootSignature);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
+
+ void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ UINT SrcData,
+ _In_ UINT DestOffsetIn32BitValues);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ UINT SrcData,
+ _In_ UINT DestOffsetIn32BitValues);
+
+ void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ UINT Num32BitValuesToSet,
+ _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
+ _In_ UINT DestOffsetIn32BitValues);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ UINT Num32BitValuesToSet,
+ _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
+ _In_ UINT DestOffsetIn32BitValues);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT RootParameterIndex,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
+
+ void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
+
+ void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT StartSlot,
+ _In_ UINT NumViews,
+ _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
+
+ void ( STDMETHODCALLTYPE *SOSetTargets )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT StartSlot,
+ _In_ UINT NumViews,
+ _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
+
+ void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT NumRenderTargetDescriptors,
+ _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
+ _In_ BOOL RTsSingleHandleToDescriptorRange,
+ _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
+
+ void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
+ _In_ D3D12_CLEAR_FLAGS ClearFlags,
+ _In_ FLOAT Depth,
+ _In_ UINT8 Stencil,
+ _In_ UINT NumRects,
+ _In_reads_(NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
+ _In_ const FLOAT ColorRGBA[ 4 ],
+ _In_ UINT NumRects,
+ _In_reads_(NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
+ _In_ ID3D12Resource *pResource,
+ _In_ const UINT Values[ 4 ],
+ _In_ UINT NumRects,
+ _In_reads_(NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
+ _In_ ID3D12Resource *pResource,
+ _In_ const FLOAT Values[ 4 ],
+ _In_ UINT NumRects,
+ _In_reads_(NumRects) const D3D12_RECT *pRects);
+
+ void ( STDMETHODCALLTYPE *DiscardResource )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_DISCARD_REGION *pRegion);
+
+ void ( STDMETHODCALLTYPE *BeginQuery )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12QueryHeap *pQueryHeap,
+ _In_ D3D12_QUERY_TYPE Type,
+ _In_ UINT Index);
+
+ void ( STDMETHODCALLTYPE *EndQuery )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12QueryHeap *pQueryHeap,
+ _In_ D3D12_QUERY_TYPE Type,
+ _In_ UINT Index);
+
+ void ( STDMETHODCALLTYPE *ResolveQueryData )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12QueryHeap *pQueryHeap,
+ _In_ D3D12_QUERY_TYPE Type,
+ _In_ UINT StartIndex,
+ _In_ UINT NumQueries,
+ _In_ ID3D12Resource *pDestinationBuffer,
+ _In_ UINT64 AlignedDestinationBufferOffset);
+
+ void ( STDMETHODCALLTYPE *SetPredication )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_opt_ ID3D12Resource *pBuffer,
+ _In_ UINT64 AlignedBufferOffset,
+ _In_ D3D12_PREDICATION_OP Operation);
+
+ void ( STDMETHODCALLTYPE *SetMarker )(
+ ID3D12GraphicsCommandList4 * This,
+ UINT Metadata,
+ _In_reads_bytes_opt_(Size) const void *pData,
+ UINT Size);
+
+ void ( STDMETHODCALLTYPE *BeginEvent )(
+ ID3D12GraphicsCommandList4 * This,
+ UINT Metadata,
+ _In_reads_bytes_opt_(Size) const void *pData,
+ UINT Size);
+
+ void ( STDMETHODCALLTYPE *EndEvent )(
+ ID3D12GraphicsCommandList4 * This);
+
+ void ( STDMETHODCALLTYPE *ExecuteIndirect )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12CommandSignature *pCommandSignature,
+ _In_ UINT MaxCommandCount,
+ _In_ ID3D12Resource *pArgumentBuffer,
+ _In_ UINT64 ArgumentBufferOffset,
+ _In_opt_ ID3D12Resource *pCountBuffer,
+ _In_ UINT64 CountBufferOffset);
+
+ void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12Resource *pDstBuffer,
+ UINT64 DstOffset,
+ _In_ ID3D12Resource *pSrcBuffer,
+ UINT64 SrcOffset,
+ UINT Dependencies,
+ _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
+ _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
+
+ void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12Resource *pDstBuffer,
+ UINT64 DstOffset,
+ _In_ ID3D12Resource *pSrcBuffer,
+ UINT64 SrcOffset,
+ UINT Dependencies,
+ _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
+ _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
+
+ void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ FLOAT Min,
+ _In_ FLOAT Max);
+
+ void ( STDMETHODCALLTYPE *SetSamplePositions )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT NumSamplesPerPixel,
+ _In_ UINT NumPixels,
+ _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
+
+ void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12Resource *pDstResource,
+ _In_ UINT DstSubresource,
+ _In_ UINT DstX,
+ _In_ UINT DstY,
+ _In_ ID3D12Resource *pSrcResource,
+ _In_ UINT SrcSubresource,
+ _In_opt_ D3D12_RECT *pSrcRect,
+ _In_ DXGI_FORMAT Format,
+ _In_ D3D12_RESOLVE_MODE ResolveMode);
+
+ void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT Mask);
+
+ void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
+ ID3D12GraphicsCommandList4 * This,
+ UINT Count,
+ _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
+ _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
+
+ void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
+
+ void ( STDMETHODCALLTYPE *BeginRenderPass )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ UINT NumRenderTargets,
+ _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
+ _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
+ D3D12_RENDER_PASS_FLAGS Flags);
+
+ void ( STDMETHODCALLTYPE *EndRenderPass )(
+ ID3D12GraphicsCommandList4 * This);
+
+ void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12MetaCommand *pMetaCommand,
+ _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
+ _In_ SIZE_T InitializationParametersDataSizeInBytes);
+
+ void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12MetaCommand *pMetaCommand,
+ _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
+ _In_ SIZE_T ExecutionParametersDataSizeInBytes);
+
+ void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
+ _In_ UINT NumPostbuildInfoDescs,
+ _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
+
+ void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
+ _In_ UINT NumSourceAccelerationStructures,
+ _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
+
+ void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
+ _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
+ _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
+
+ void ( STDMETHODCALLTYPE *SetPipelineState1 )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ ID3D12StateObject *pStateObject);
+
+ void ( STDMETHODCALLTYPE *DispatchRays )(
+ ID3D12GraphicsCommandList4 * This,
+ _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
+
+ END_INTERFACE
+ } ID3D12GraphicsCommandList4Vtbl;
+
+ interface ID3D12GraphicsCommandList4
+ {
+ CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12GraphicsCommandList4_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12GraphicsCommandList4_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12GraphicsCommandList4_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+#define ID3D12GraphicsCommandList4_GetType(This) \
+ ( (This)->lpVtbl -> GetType(This) )
+
+
+#define ID3D12GraphicsCommandList4_Close(This) \
+ ( (This)->lpVtbl -> Close(This) )
+
+#define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \
+ ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
+
+#define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \
+ ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
+
+#define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
+ ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
+
+#define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
+ ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
+
+#define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
+ ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
+
+#define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
+ ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
+
+#define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
+ ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
+
+#define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \
+ ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
+
+#define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
+ ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
+
+#define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
+ ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
+
+#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \
+ ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
+
+#define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \
+ ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
+
+#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \
+ ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \
+ ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
+
+#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \
+ ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
+
+#define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \
+ ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
+
+#define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \
+ ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
+
+#define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \
+ ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
+
+#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
+ ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
+
+#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \
+ ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
+
+#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \
+ ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
+
+#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
+ ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
+
+#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
+ ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
+
+#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
+ ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
+
+#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
+ ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
+
+#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
+ ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
+
+#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
+ ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
+
+#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
+ ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
+
+#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \
+ ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
+
+#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
+ ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
+
+#define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \
+ ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
+
+#define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
+ ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
+
+#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
+ ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
+ ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
+ ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
+ ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
+
+#define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \
+ ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
+
+#define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \
+ ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
+
+#define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \
+ ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
+
+#define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
+ ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
+
+#define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
+ ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
+
+#define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \
+ ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
+
+#define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \
+ ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
+
+#define ID3D12GraphicsCommandList4_EndEvent(This) \
+ ( (This)->lpVtbl -> EndEvent(This) )
+
+#define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
+ ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
+
+
+#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
+ ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
+
+#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
+ ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
+
+#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \
+ ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
+
+#define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
+ ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
+
+#define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
+ ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
+
+#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \
+ ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
+
+
+#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \
+ ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
+
+
+#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \
+ ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
+
+
+#define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
+ ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
+
+#define ID3D12GraphicsCommandList4_EndRenderPass(This) \
+ ( (This)->lpVtbl -> EndRenderPass(This) )
+
+#define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
+ ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
+
+#define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
+ ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
+
+#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
+ ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
+
+#define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
+ ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
+
+#define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
+ ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
+
+#define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \
+ ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
+
+#define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \
+ ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */
+
+
#ifndef __ID3D12Tools_INTERFACE_DEFINED__
#define __ID3D12Tools_INTERFACE_DEFINED__
@@ -10209,7 +15213,7 @@ EXTERN_C const IID IID_ID3D12Tools;
#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12_0000_0027 */
+/* interface __MIDL_itf_d3d12_0000_0041 */
/* [local] */
typedef struct D3D12_SUBRESOURCE_DATA
@@ -10311,6 +15315,35 @@ static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-8
0x40f5,
{ 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
};
+// --------------------------------------------------------------------------------------------------------------------------------
+// Experimental Feature: D3D12TiledResourceTier4
+//
+// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,
+// meaning texture tile data-inheritance is allowed.
+//
+// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.
+//
+// --------------------------------------------------------------------------------------------------------------------------------
+static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */
+ 0xc9c4725f,
+ 0xa81a,
+ 0x4f56,
+ { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }
+};
+// --------------------------------------------------------------------------------------------------------------------------------
+// Experimental Feature: D3D12MetaCommand
+//
+// Use with D3D12EnableExperimentalFeatures to enable the D3D12 Meta Command.
+//
+// Enabling D3D12MetaCommand needs no configuration struct, pass NULL in the pConfigurationStructs array.
+//
+// --------------------------------------------------------------------------------------------------------------------------------
+static const UUID D3D12MetaCommand = { /* C734C97E-8077-48C8-9FDC-D9D1DD31DD77 */
+ 0xc734c97e,
+ 0x8077,
+ 0x48c8,
+ { 0x9f, 0xdc, 0xd9, 0xd1, 0xdd, 0x31, 0xdd, 0x77 }
+};
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);
@@ -10339,11 +15372,25 @@ DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0
DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);
DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);
DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);
+DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);
+DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);
+DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);
+DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);
+DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);
+DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);
+DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);
+DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);
+DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);
+DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);
+DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);
+DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);
+DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);
+DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);
DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);
-extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0041_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0041_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
diff --git a/renderdoc/driver/dx/official/d3d12sdklayers.h b/renderdoc/driver/dx/official/d3d12sdklayers.h
index 783955b9d..c864cfcc8 100644
--- a/renderdoc/driver/dx/official/d3d12sdklayers.h
+++ b/renderdoc/driver/dx/official/d3d12sdklayers.h
@@ -64,6 +64,13 @@ typedef interface ID3D12Debug2 ID3D12Debug2;
#endif /* __ID3D12Debug2_FWD_DEFINED__ */
+#ifndef __ID3D12Debug3_FWD_DEFINED__
+#define __ID3D12Debug3_FWD_DEFINED__
+typedef interface ID3D12Debug3 ID3D12Debug3;
+
+#endif /* __ID3D12Debug3_FWD_DEFINED__ */
+
+
#ifndef __ID3D12DebugDevice1_FWD_DEFINED__
#define __ID3D12DebugDevice1_FWD_DEFINED__
typedef interface ID3D12DebugDevice1 ID3D12DebugDevice1;
@@ -78,6 +85,13 @@ typedef interface ID3D12DebugDevice ID3D12DebugDevice;
#endif /* __ID3D12DebugDevice_FWD_DEFINED__ */
+#ifndef __ID3D12DebugDevice2_FWD_DEFINED__
+#define __ID3D12DebugDevice2_FWD_DEFINED__
+typedef interface ID3D12DebugDevice2 ID3D12DebugDevice2;
+
+#endif /* __ID3D12DebugDevice2_FWD_DEFINED__ */
+
+
#ifndef __ID3D12DebugCommandQueue_FWD_DEFINED__
#define __ID3D12DebugCommandQueue_FWD_DEFINED__
typedef interface ID3D12DebugCommandQueue ID3D12DebugCommandQueue;
@@ -99,6 +113,13 @@ typedef interface ID3D12DebugCommandList ID3D12DebugCommandList;
#endif /* __ID3D12DebugCommandList_FWD_DEFINED__ */
+#ifndef __ID3D12DebugCommandList2_FWD_DEFINED__
+#define __ID3D12DebugCommandList2_FWD_DEFINED__
+typedef interface ID3D12DebugCommandList2 ID3D12DebugCommandList2;
+
+#endif /* __ID3D12DebugCommandList2_FWD_DEFINED__ */
+
+
#ifndef __ID3D12SharingContract_FWD_DEFINED__
#define __ID3D12SharingContract_FWD_DEFINED__
typedef interface ID3D12SharingContract ID3D12SharingContract;
@@ -211,6 +232,22 @@ EXTERN_C const IID IID_ID3D12Debug;
#endif /* __ID3D12Debug_INTERFACE_DEFINED__ */
+/* interface __MIDL_itf_d3d12sdklayers_0000_0001 */
+/* [local] */
+
+typedef
+enum D3D12_GPU_BASED_VALIDATION_FLAGS
+ {
+ D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0,
+ D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x1
+ } D3D12_GPU_BASED_VALIDATION_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0001_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0001_v0_0_s_ifspec;
+
#ifndef __ID3D12Debug1_INTERFACE_DEFINED__
#define __ID3D12Debug1_INTERFACE_DEFINED__
@@ -308,22 +345,6 @@ EXTERN_C const IID IID_ID3D12Debug1;
#endif /* __ID3D12Debug1_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0002 */
-/* [local] */
-
-typedef
-enum D3D12_GPU_BASED_VALIDATION_FLAGS
- {
- D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0,
- D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x1
- } D3D12_GPU_BASED_VALIDATION_FLAGS;
-
-DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS)
-
-
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0002_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0002_v0_0_s_ifspec;
-
#ifndef __ID3D12Debug2_INTERFACE_DEFINED__
#define __ID3D12Debug2_INTERFACE_DEFINED__
@@ -403,7 +424,113 @@ EXTERN_C const IID IID_ID3D12Debug2;
#endif /* __ID3D12Debug2_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0003 */
+#ifndef __ID3D12Debug3_INTERFACE_DEFINED__
+#define __ID3D12Debug3_INTERFACE_DEFINED__
+
+/* interface ID3D12Debug3 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12Debug3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5cf4e58f-f671-4ff1-a542-3686e3d153d1")
+ ID3D12Debug3 : public ID3D12Debug
+ {
+ public:
+ virtual void STDMETHODCALLTYPE SetEnableGPUBasedValidation(
+ BOOL Enable) = 0;
+
+ virtual void STDMETHODCALLTYPE SetEnableSynchronizedCommandQueueValidation(
+ BOOL Enable) = 0;
+
+ virtual void STDMETHODCALLTYPE SetGPUBasedValidationFlags(
+ D3D12_GPU_BASED_VALIDATION_FLAGS Flags) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12Debug3Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12Debug3 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12Debug3 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12Debug3 * This);
+
+ void ( STDMETHODCALLTYPE *EnableDebugLayer )(
+ ID3D12Debug3 * This);
+
+ void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )(
+ ID3D12Debug3 * This,
+ BOOL Enable);
+
+ void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )(
+ ID3D12Debug3 * This,
+ BOOL Enable);
+
+ void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )(
+ ID3D12Debug3 * This,
+ D3D12_GPU_BASED_VALIDATION_FLAGS Flags);
+
+ END_INTERFACE
+ } ID3D12Debug3Vtbl;
+
+ interface ID3D12Debug3
+ {
+ CONST_VTBL struct ID3D12Debug3Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12Debug3_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12Debug3_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12Debug3_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12Debug3_EnableDebugLayer(This) \
+ ( (This)->lpVtbl -> EnableDebugLayer(This) )
+
+
+#define ID3D12Debug3_SetEnableGPUBasedValidation(This,Enable) \
+ ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) )
+
+#define ID3D12Debug3_SetEnableSynchronizedCommandQueueValidation(This,Enable) \
+ ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) )
+
+#define ID3D12Debug3_SetGPUBasedValidationFlags(This,Flags) \
+ ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12Debug3_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12sdklayers_0000_0004 */
/* [local] */
typedef
@@ -470,8 +597,8 @@ typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0003_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0003_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0004_v0_0_s_ifspec;
#ifndef __ID3D12DebugDevice1_INTERFACE_DEFINED__
#define __ID3D12DebugDevice1_INTERFACE_DEFINED__
@@ -677,14 +804,132 @@ EXTERN_C const IID IID_ID3D12DebugDevice;
#endif /* __ID3D12DebugDevice_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0005 */
+#ifndef __ID3D12DebugDevice2_INTERFACE_DEFINED__
+#define __ID3D12DebugDevice2_INTERFACE_DEFINED__
+
+/* interface ID3D12DebugDevice2 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12DebugDevice2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("60eccbc1-378d-4df1-894c-f8ac5ce4d7dd")
+ ID3D12DebugDevice2 : public ID3D12DebugDevice
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetDebugParameter(
+ D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type,
+ _In_reads_bytes_(DataSize) const void *pData,
+ UINT DataSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDebugParameter(
+ D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type,
+ _Out_writes_bytes_(DataSize) void *pData,
+ UINT DataSize) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12DebugDevice2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12DebugDevice2 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12DebugDevice2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12DebugDevice2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )(
+ ID3D12DebugDevice2 * This,
+ D3D12_DEBUG_FEATURE Mask);
+
+ D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )(
+ ID3D12DebugDevice2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )(
+ ID3D12DebugDevice2 * This,
+ D3D12_RLDO_FLAGS Flags);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )(
+ ID3D12DebugDevice2 * This,
+ D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type,
+ _In_reads_bytes_(DataSize) const void *pData,
+ UINT DataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )(
+ ID3D12DebugDevice2 * This,
+ D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type,
+ _Out_writes_bytes_(DataSize) void *pData,
+ UINT DataSize);
+
+ END_INTERFACE
+ } ID3D12DebugDevice2Vtbl;
+
+ interface ID3D12DebugDevice2
+ {
+ CONST_VTBL struct ID3D12DebugDevice2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12DebugDevice2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12DebugDevice2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12DebugDevice2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12DebugDevice2_SetFeatureMask(This,Mask) \
+ ( (This)->lpVtbl -> SetFeatureMask(This,Mask) )
+
+#define ID3D12DebugDevice2_GetFeatureMask(This) \
+ ( (This)->lpVtbl -> GetFeatureMask(This) )
+
+#define ID3D12DebugDevice2_ReportLiveDeviceObjects(This,Flags) \
+ ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) )
+
+
+#define ID3D12DebugDevice2_SetDebugParameter(This,Type,pData,DataSize) \
+ ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) )
+
+#define ID3D12DebugDevice2_GetDebugParameter(This,Type,pData,DataSize) \
+ ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12DebugDevice2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12sdklayers_0000_0007 */
/* [local] */
DEFINE_GUID(DXGI_DEBUG_D3D12, 0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95);
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_s_ifspec;
#ifndef __ID3D12DebugCommandQueue_INTERFACE_DEFINED__
#define __ID3D12DebugCommandQueue_INTERFACE_DEFINED__
@@ -769,7 +1014,7 @@ EXTERN_C const IID IID_ID3D12DebugCommandQueue;
#endif /* __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0006 */
+/* interface __MIDL_itf_d3d12sdklayers_0000_0008 */
/* [local] */
typedef
@@ -785,8 +1030,8 @@ typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0006_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0006_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0008_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0008_v0_0_s_ifspec;
#ifndef __ID3D12DebugCommandList1_INTERFACE_DEFINED__
#define __ID3D12DebugCommandList1_INTERFACE_DEFINED__
@@ -1000,6 +1245,126 @@ EXTERN_C const IID IID_ID3D12DebugCommandList;
#endif /* __ID3D12DebugCommandList_INTERFACE_DEFINED__ */
+#ifndef __ID3D12DebugCommandList2_INTERFACE_DEFINED__
+#define __ID3D12DebugCommandList2_INTERFACE_DEFINED__
+
+/* interface ID3D12DebugCommandList2 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12DebugCommandList2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("aeb575cf-4e06-48be-ba3b-c450fc96652e")
+ ID3D12DebugCommandList2 : public ID3D12DebugCommandList
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetDebugParameter(
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type,
+ _In_reads_bytes_(DataSize) const void *pData,
+ UINT DataSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDebugParameter(
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type,
+ _Out_writes_bytes_(DataSize) void *pData,
+ UINT DataSize) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12DebugCommandList2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12DebugCommandList2 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12DebugCommandList2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12DebugCommandList2 * This);
+
+ BOOL ( STDMETHODCALLTYPE *AssertResourceState )(
+ ID3D12DebugCommandList2 * This,
+ _In_ ID3D12Resource *pResource,
+ UINT Subresource,
+ UINT State);
+
+ HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )(
+ ID3D12DebugCommandList2 * This,
+ D3D12_DEBUG_FEATURE Mask);
+
+ D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )(
+ ID3D12DebugCommandList2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )(
+ ID3D12DebugCommandList2 * This,
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type,
+ _In_reads_bytes_(DataSize) const void *pData,
+ UINT DataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )(
+ ID3D12DebugCommandList2 * This,
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type,
+ _Out_writes_bytes_(DataSize) void *pData,
+ UINT DataSize);
+
+ END_INTERFACE
+ } ID3D12DebugCommandList2Vtbl;
+
+ interface ID3D12DebugCommandList2
+ {
+ CONST_VTBL struct ID3D12DebugCommandList2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12DebugCommandList2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12DebugCommandList2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12DebugCommandList2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12DebugCommandList2_AssertResourceState(This,pResource,Subresource,State) \
+ ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) )
+
+#define ID3D12DebugCommandList2_SetFeatureMask(This,Mask) \
+ ( (This)->lpVtbl -> SetFeatureMask(This,Mask) )
+
+#define ID3D12DebugCommandList2_GetFeatureMask(This) \
+ ( (This)->lpVtbl -> GetFeatureMask(This) )
+
+
+#define ID3D12DebugCommandList2_SetDebugParameter(This,Type,pData,DataSize) \
+ ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) )
+
+#define ID3D12DebugCommandList2_GetDebugParameter(This,Type,pData,DataSize) \
+ ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12DebugCommandList2_INTERFACE_DEFINED__ */
+
+
#ifndef __ID3D12SharingContract_INTERFACE_DEFINED__
#define __ID3D12SharingContract_INTERFACE_DEFINED__
@@ -1011,18 +1376,25 @@ EXTERN_C const IID IID_ID3D12SharingContract;
#if defined(__cplusplus) && !defined(CINTERFACE)
- MIDL_INTERFACE("a251ff70-cdeb-49fa-9bcf-5ebdf4dbaca9")
+ MIDL_INTERFACE("0adf7d52-929c-4e61-addb-ffed30de66ef")
ID3D12SharingContract : public IUnknown
{
public:
virtual void STDMETHODCALLTYPE Present(
_In_ ID3D12Resource *pResource,
- UINT Subresource) = 0;
+ UINT Subresource,
+ _In_ HWND window) = 0;
virtual void STDMETHODCALLTYPE SharedFenceSignal(
_In_ ID3D12Fence *pFence,
UINT64 FenceValue) = 0;
+ virtual void STDMETHODCALLTYPE BeginCapturableWork(
+ _In_ REFGUID guid) = 0;
+
+ virtual void STDMETHODCALLTYPE EndCapturableWork(
+ _In_ REFGUID guid) = 0;
+
};
@@ -1046,13 +1418,22 @@ EXTERN_C const IID IID_ID3D12SharingContract;
void ( STDMETHODCALLTYPE *Present )(
ID3D12SharingContract * This,
_In_ ID3D12Resource *pResource,
- UINT Subresource);
+ UINT Subresource,
+ _In_ HWND window);
void ( STDMETHODCALLTYPE *SharedFenceSignal )(
ID3D12SharingContract * This,
_In_ ID3D12Fence *pFence,
UINT64 FenceValue);
+ void ( STDMETHODCALLTYPE *BeginCapturableWork )(
+ ID3D12SharingContract * This,
+ _In_ REFGUID guid);
+
+ void ( STDMETHODCALLTYPE *EndCapturableWork )(
+ ID3D12SharingContract * This,
+ _In_ REFGUID guid);
+
END_INTERFACE
} ID3D12SharingContractVtbl;
@@ -1076,12 +1457,18 @@ EXTERN_C const IID IID_ID3D12SharingContract;
( (This)->lpVtbl -> Release(This) )
-#define ID3D12SharingContract_Present(This,pResource,Subresource) \
- ( (This)->lpVtbl -> Present(This,pResource,Subresource) )
+#define ID3D12SharingContract_Present(This,pResource,Subresource,window) \
+ ( (This)->lpVtbl -> Present(This,pResource,Subresource,window) )
#define ID3D12SharingContract_SharedFenceSignal(This,pFence,FenceValue) \
( (This)->lpVtbl -> SharedFenceSignal(This,pFence,FenceValue) )
+#define ID3D12SharingContract_BeginCapturableWork(This,guid) \
+ ( (This)->lpVtbl -> BeginCapturableWork(This,guid) )
+
+#define ID3D12SharingContract_EndCapturableWork(This,guid) \
+ ( (This)->lpVtbl -> EndCapturableWork(This,guid) )
+
#endif /* COBJMACROS */
@@ -1093,7 +1480,7 @@ EXTERN_C const IID IID_ID3D12SharingContract;
#endif /* __ID3D12SharingContract_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0009 */
+/* interface __MIDL_itf_d3d12sdklayers_0000_0012 */
/* [local] */
typedef
@@ -2236,7 +2623,108 @@ enum D3D12_MESSAGE_ID
D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 1111,
D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 1112,
D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 1113,
- D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT + 1 )
+ D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 1114,
+ D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 1115,
+ D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 1116,
+ D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 1117,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 1118,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 1119,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 1120,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 1121,
+ D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 1122,
+ D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 1123,
+ D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 1124,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 1125,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 1126,
+ D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 1127,
+ D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 1128,
+ D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 1129,
+ D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 1130,
+ D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 1131,
+ D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 1132,
+ D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 1133,
+ D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 1134,
+ D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 1135,
+ D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 1136,
+ D3D12_MESSAGE_ID_CREATE_META_COMMAND = 1137,
+ D3D12_MESSAGE_ID_LIVE_META_COMMAND = 1138,
+ D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 1139,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 1140,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 1141,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 1142,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 1143,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 1144,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 1145,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 1146,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 1147,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 1148,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 1149,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 1150,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 1151,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 1152,
+ D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 1153,
+ D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 1154,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 1155,
+ D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 1156,
+ D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 1157,
+ D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1158,
+ D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 1159,
+ D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1160,
+ D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 1161,
+ D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 1162,
+ D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 1163,
+ D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 1164,
+ D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 1165,
+ D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 1166,
+ D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 1167,
+ D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 1168,
+ D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 1169,
+ D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 1170,
+ D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 1171,
+ D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 1172,
+ D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 1173,
+ D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 1174,
+ D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 1175,
+ D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 1176,
+ D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 1177,
+ D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 1178,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 1179,
+ D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 1180,
+ D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 1181,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 1182,
+ D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 1183,
+ D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 1184,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 1185,
+ D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 1186,
+ D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 1187,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 1188,
+ D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 1189,
+ D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 1190,
+ D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 1191,
+ D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 1192,
+ D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 1193,
+ D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 1194,
+ D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 1195,
+ D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 1196,
+ D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 1197,
+ D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 1198,
+ D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 1199,
+ D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 1200,
+ D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 1201,
+ D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 1202,
+ D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 1203,
+ D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 1204,
+ D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 1205,
+ D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 1206,
+ D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 1207,
+ D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 1208,
+ D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 1209,
+ D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 1210,
+ D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 1211,
+ D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 1212,
+ D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 1213,
+ D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 1214,
+ D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE + 1 )
} D3D12_MESSAGE_ID;
static_assert(D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED == 1000, "Publicly released SDK D3D12_MESSAGE_ID enum values must not be changed. New enum values must be added to the end of the list.");
@@ -2269,8 +2757,8 @@ typedef struct D3D12_INFO_QUEUE_FILTER
#define D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0009_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0009_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0012_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0012_v0_0_s_ifspec;
#ifndef __ID3D12InfoQueue_INTERFACE_DEFINED__
#define __ID3D12InfoQueue_INTERFACE_DEFINED__
@@ -2677,7 +3165,7 @@ EXTERN_C const IID IID_ID3D12InfoQueue;
#endif /* __ID3D12InfoQueue_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0010 */
+/* interface __MIDL_itf_d3d12sdklayers_0000_0013 */
/* [local] */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
@@ -2685,17 +3173,20 @@ EXTERN_C const IID IID_ID3D12InfoQueue;
DEFINE_GUID(IID_ID3D12Debug,0x344488b7,0x6846,0x474b,0xb9,0x89,0xf0,0x27,0x44,0x82,0x45,0xe0);
DEFINE_GUID(IID_ID3D12Debug1,0xaffaa4ca,0x63fe,0x4d8e,0xb8,0xad,0x15,0x90,0x00,0xaf,0x43,0x04);
DEFINE_GUID(IID_ID3D12Debug2,0x93a665c4,0xa3b2,0x4e5d,0xb6,0x92,0xa2,0x6a,0xe1,0x4e,0x33,0x74);
+DEFINE_GUID(IID_ID3D12Debug3,0x5cf4e58f,0xf671,0x4ff1,0xa5,0x42,0x36,0x86,0xe3,0xd1,0x53,0xd1);
DEFINE_GUID(IID_ID3D12DebugDevice1,0xa9b71770,0xd099,0x4a65,0xa6,0x98,0x3d,0xee,0x10,0x02,0x0f,0x88);
DEFINE_GUID(IID_ID3D12DebugDevice,0x3febd6dd,0x4973,0x4787,0x81,0x94,0xe4,0x5f,0x9e,0x28,0x92,0x3e);
+DEFINE_GUID(IID_ID3D12DebugDevice2,0x60eccbc1,0x378d,0x4df1,0x89,0x4c,0xf8,0xac,0x5c,0xe4,0xd7,0xdd);
DEFINE_GUID(IID_ID3D12DebugCommandQueue,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3a);
DEFINE_GUID(IID_ID3D12DebugCommandList1,0x102ca951,0x311b,0x4b01,0xb1,0x1f,0xec,0xb8,0x3e,0x06,0x1b,0x37);
DEFINE_GUID(IID_ID3D12DebugCommandList,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3f);
-DEFINE_GUID(IID_ID3D12SharingContract,0xa251ff70,0xcdeb,0x49fa,0x9b,0xcf,0x5e,0xbd,0xf4,0xdb,0xac,0xa9);
+DEFINE_GUID(IID_ID3D12DebugCommandList2,0xaeb575cf,0x4e06,0x48be,0xba,0x3b,0xc4,0x50,0xfc,0x96,0x65,0x2e);
+DEFINE_GUID(IID_ID3D12SharingContract,0x0adf7d52,0x929c,0x4e61,0xad,0xdb,0xff,0xed,0x30,0xde,0x66,0xef);
DEFINE_GUID(IID_ID3D12InfoQueue,0x0742a90b,0xc387,0x483f,0xb9,0x46,0x30,0xa7,0xe4,0xe6,0x14,0x58);
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0010_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0010_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0013_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0013_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
diff --git a/renderdoc/driver/dx/official/d3dcommon.h b/renderdoc/driver/dx/official/d3dcommon.h
index 54e36c084..5d7e2ca98 100644
--- a/renderdoc/driver/dx/official/d3dcommon.h
+++ b/renderdoc/driver/dx/official/d3dcommon.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0618 */
+ /* File created by MIDL compiler version 8.01.0622 */
/* @@MIDL_FILE_HEADING( ) */
@@ -986,6 +986,8 @@ DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x0
#define D3D_COMPONENT_MASK_Y 2
#define D3D_COMPONENT_MASK_Z 4
#define D3D_COMPONENT_MASK_W 8
+DEFINE_GUID(D3D_TEXTURE_LAYOUT_ROW_MAJOR,0xb5dc234f,0x72bb,0x4bec,0x97,0x05,0x8c,0xf2,0x58,0xdf,0x6b,0x6c);
+DEFINE_GUID(D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE,0x4c0f29e3,0x3f5f,0x4d35,0x84,0xc9,0xbc,0x09,0x83,0xb6,0x2c,0x28);
extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_c_ifspec;
diff --git a/renderdoc/driver/dx/official/dxgi.h b/renderdoc/driver/dx/official/dxgi.h
index 3806fd691..6831a133b 100644
--- a/renderdoc/driver/dx/official/dxgi.h
+++ b/renderdoc/driver/dx/official/dxgi.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0618 */
+ /* File created by MIDL compiler version 8.01.0622 */
/* @@MIDL_FILE_HEADING( ) */
@@ -140,6 +140,7 @@ typedef interface IDXGIDevice1 IDXGIDevice1;
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
+#include "dxgicommon.h"
#include "dxgitype.h"
#ifdef __cplusplus
@@ -181,6 +182,8 @@ typedef struct DXGI_MAPPED_RECT
} DXGI_MAPPED_RECT;
#ifdef __midl
+#ifndef LUID_DEFINED
+#define LUID_DEFINED 1
typedef struct _LUID
{
DWORD LowPart;
@@ -189,6 +192,7 @@ typedef struct _LUID
typedef struct _LUID *PLUID;
+#endif
#endif
typedef struct DXGI_ADAPTER_DESC
{
@@ -274,7 +278,8 @@ enum DXGI_SWAP_CHAIN_FLAG
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 256,
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 512,
DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024,
- DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048
+ DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048,
+ DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 4096
} DXGI_SWAP_CHAIN_FLAG;
typedef struct DXGI_SWAP_CHAIN_DESC
@@ -320,7 +325,7 @@ EXTERN_C const IID IID_IDXGIObject;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown) = 0;
+ _In_opt_ const IUnknown *pUnknown) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
/* [annotation][in] */
@@ -370,7 +375,7 @@ EXTERN_C const IID IID_IDXGIObject;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIObject * This,
@@ -489,7 +494,7 @@ EXTERN_C const IID IID_IDXGIDeviceSubObject;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIDeviceSubObject * This,
@@ -627,7 +632,7 @@ EXTERN_C const IID IID_IDXGIResource;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIResource * This,
@@ -789,7 +794,7 @@ EXTERN_C const IID IID_IDXGIKeyedMutex;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIKeyedMutex * This,
@@ -954,7 +959,7 @@ EXTERN_C const IID IID_IDXGISurface;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGISurface * This,
@@ -1111,7 +1116,7 @@ EXTERN_C const IID IID_IDXGISurface1;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGISurface1 * This,
@@ -1301,7 +1306,7 @@ EXTERN_C const IID IID_IDXGIAdapter;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIAdapter * This,
@@ -1507,7 +1512,7 @@ EXTERN_C const IID IID_IDXGIOutput;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIOutput * This,
@@ -1789,7 +1794,7 @@ EXTERN_C const IID IID_IDXGISwapChain;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGISwapChain * This,
@@ -2041,7 +2046,7 @@ EXTERN_C const IID IID_IDXGIFactory;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIFactory * This,
@@ -2243,7 +2248,7 @@ EXTERN_C const IID IID_IDXGIDevice;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIDevice * This,
@@ -2450,7 +2455,7 @@ EXTERN_C const IID IID_IDXGIFactory1;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIFactory1 * This,
@@ -2630,7 +2635,7 @@ EXTERN_C const IID IID_IDXGIAdapter1;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIAdapter1 * This,
@@ -2787,7 +2792,7 @@ EXTERN_C const IID IID_IDXGIDevice1;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIDevice1 * This,
diff --git a/renderdoc/driver/dx/official/dxgi1_2.h b/renderdoc/driver/dx/official/dxgi1_2.h
index a665b5925..f7fbde480 100644
--- a/renderdoc/driver/dx/official/dxgi1_2.h
+++ b/renderdoc/driver/dx/official/dxgi1_2.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0618 */
+ /* File created by MIDL compiler version 8.01.0622 */
/* @@MIDL_FILE_HEADING( ) */
@@ -360,7 +360,7 @@ EXTERN_C const IID IID_IDXGIOutputDuplication;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIOutputDuplication * This,
@@ -582,7 +582,7 @@ EXTERN_C const IID IID_IDXGISurface2;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGISurface2 * This,
@@ -776,7 +776,7 @@ EXTERN_C const IID IID_IDXGIResource1;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIResource1 * This,
@@ -991,7 +991,7 @@ EXTERN_C const IID IID_IDXGIDevice2;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIDevice2 * This,
@@ -1209,7 +1209,8 @@ typedef struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC
typedef struct DXGI_PRESENT_PARAMETERS
{
UINT DirtyRectsCount;
- RECT *pDirtyRects;
+ /* [annotation] */
+ _Field_size_full_opt_(DirtyRectsCount) RECT *pDirtyRects;
RECT *pScrollRect;
POINT *pScrollOffset;
} DXGI_PRESENT_PARAMETERS;
@@ -1314,7 +1315,7 @@ EXTERN_C const IID IID_IDXGISwapChain1;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGISwapChain1 * This,
@@ -1699,7 +1700,7 @@ EXTERN_C const IID IID_IDXGIFactory2;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIFactory2 * This,
@@ -2048,7 +2049,7 @@ EXTERN_C const IID IID_IDXGIAdapter2;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIAdapter2 * This,
@@ -2233,7 +2234,7 @@ EXTERN_C const IID IID_IDXGIOutput1;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIOutput1 * This,
diff --git a/renderdoc/driver/dx/official/dxgi1_3.h b/renderdoc/driver/dx/official/dxgi1_3.h
index 660d913a5..17f983078 100644
--- a/renderdoc/driver/dx/official/dxgi1_3.h
+++ b/renderdoc/driver/dx/official/dxgi1_3.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0618 */
+ /* File created by MIDL compiler version 8.01.0622 */
/* @@MIDL_FILE_HEADING( ) */
@@ -168,7 +168,7 @@ EXTERN_C const IID IID_IDXGIDevice3;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIDevice3 * This,
@@ -430,7 +430,7 @@ EXTERN_C const IID IID_IDXGISwapChain2;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGISwapChain2 * This,
@@ -792,7 +792,7 @@ EXTERN_C const IID IID_IDXGIOutput2;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIOutput2 * This,
@@ -1059,7 +1059,7 @@ EXTERN_C const IID IID_IDXGIFactory3;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIFactory3 * This,
@@ -1861,7 +1861,7 @@ EXTERN_C const IID IID_IDXGIOutput3;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIOutput3 * This,
diff --git a/renderdoc/driver/dx/official/dxgi1_4.h b/renderdoc/driver/dx/official/dxgi1_4.h
index 36ce31efe..0409795f5 100644
--- a/renderdoc/driver/dx/official/dxgi1_4.h
+++ b/renderdoc/driver/dx/official/dxgi1_4.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0618 */
+ /* File created by MIDL compiler version 8.01.0622 */
/* @@MIDL_FILE_HEADING( ) */
@@ -170,7 +170,7 @@ EXTERN_C const IID IID_IDXGISwapChain3;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGISwapChain3 * This,
@@ -599,7 +599,7 @@ EXTERN_C const IID IID_IDXGIOutput4;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIOutput4 * This,
@@ -906,7 +906,7 @@ EXTERN_C const IID IID_IDXGIFactory4;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIFactory4 * This,
@@ -1296,7 +1296,7 @@ EXTERN_C const IID IID_IDXGIAdapter3;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIAdapter3 * This,
diff --git a/renderdoc/driver/dx/official/dxgi1_5.h b/renderdoc/driver/dx/official/dxgi1_5.h
index 404a72e29..cd1195c60 100644
--- a/renderdoc/driver/dx/official/dxgi1_5.h
+++ b/renderdoc/driver/dx/official/dxgi1_5.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0618 */
+ /* File created by MIDL compiler version 8.01.0622 */
/* @@MIDL_FILE_HEADING( ) */
@@ -81,6 +81,12 @@ extern "C"{
#include "winapifamily.h"
#pragma region App Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+typedef
+enum DXGI_OUTDUPL_FLAG
+ {
+ DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY = 1
+ } DXGI_OUTDUPL_FLAG;
+
extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0000_v0_0_c_ifspec;
@@ -146,7 +152,7 @@ EXTERN_C const IID IID_IDXGIOutput5;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIOutput5 * This,
@@ -413,7 +419,8 @@ typedef
enum DXGI_HDR_METADATA_TYPE
{
DXGI_HDR_METADATA_TYPE_NONE = 0,
- DXGI_HDR_METADATA_TYPE_HDR10 = 1
+ DXGI_HDR_METADATA_TYPE_HDR10 = 1,
+ DXGI_HDR_METADATA_TYPE_HDR10PLUS = 2
} DXGI_HDR_METADATA_TYPE;
typedef struct DXGI_HDR_METADATA_HDR10
@@ -428,6 +435,11 @@ typedef struct DXGI_HDR_METADATA_HDR10
UINT16 MaxFrameAverageLightLevel;
} DXGI_HDR_METADATA_HDR10;
+typedef struct DXGI_HDR_METADATA_HDR10PLUS
+ {
+ BYTE Data[ 72 ];
+ } DXGI_HDR_METADATA_HDR10PLUS;
+
extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0001_v0_0_c_ifspec;
@@ -490,7 +502,7 @@ EXTERN_C const IID IID_IDXGISwapChain4;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGISwapChain4 * This,
@@ -948,7 +960,7 @@ EXTERN_C const IID IID_IDXGIDevice4;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIDevice4 * This,
@@ -1213,7 +1225,7 @@ EXTERN_C const IID IID_IDXGIFactory5;
/* [annotation][in] */
_In_ REFGUID Name,
/* [annotation][in] */
- _In_ const IUnknown *pUnknown);
+ _In_opt_ const IUnknown *pUnknown);
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
IDXGIFactory5 * This,
diff --git a/renderdoc/driver/dx/official/dxgi1_6.h b/renderdoc/driver/dx/official/dxgi1_6.h
index 585026240..d235ade44 100644
--- a/renderdoc/driver/dx/official/dxgi1_6.h
+++ b/renderdoc/driver/dx/official/dxgi1_6.h
@@ -53,6 +53,20 @@ typedef interface IDXGIOutput6 IDXGIOutput6;
#endif /* __IDXGIOutput6_FWD_DEFINED__ */
+#ifndef __IDXGIFactory6_FWD_DEFINED__
+#define __IDXGIFactory6_FWD_DEFINED__
+typedef interface IDXGIFactory6 IDXGIFactory6;
+
+#endif /* __IDXGIFactory6_FWD_DEFINED__ */
+
+
+#ifndef __IDXGIFactory7_FWD_DEFINED__
+#define __IDXGIFactory7_FWD_DEFINED__
+typedef interface IDXGIFactory7 IDXGIFactory7;
+
+#endif /* __IDXGIFactory7_FWD_DEFINED__ */
+
+
/* header files for imported files */
#include "dxgi1_5.h"
@@ -68,6 +82,7 @@ extern "C"{
#include "winapifamily.h"
#pragma region App Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+HRESULT WINAPI DXGIDeclareAdapterRemovalSupport();
typedef
enum DXGI_ADAPTER_FLAG3
{
@@ -708,15 +723,786 @@ EXTERN_C const IID IID_IDXGIOutput6;
/* interface __MIDL_itf_dxgi1_6_0000_0002 */
/* [local] */
-#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
-#pragma endregion
-DEFINE_GUID(IID_IDXGIAdapter4,0x3c8d99d1,0x4fbf,0x4181,0xa8,0x2c,0xaf,0x66,0xbf,0x7b,0xd2,0x4e);
-DEFINE_GUID(IID_IDXGIOutput6,0x068346e8,0xaaec,0x4b84,0xad,0xd7,0x13,0x7f,0x51,0x3f,0x77,0xa1);
+typedef
+enum DXGI_GPU_PREFERENCE
+ {
+ DXGI_GPU_PREFERENCE_UNSPECIFIED = 0,
+ DXGI_GPU_PREFERENCE_MINIMUM_POWER = ( DXGI_GPU_PREFERENCE_UNSPECIFIED + 1 ) ,
+ DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = ( DXGI_GPU_PREFERENCE_MINIMUM_POWER + 1 )
+ } DXGI_GPU_PREFERENCE;
+
extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0002_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0002_v0_0_s_ifspec;
+#ifndef __IDXGIFactory6_INTERFACE_DEFINED__
+#define __IDXGIFactory6_INTERFACE_DEFINED__
+
+/* interface IDXGIFactory6 */
+/* [unique][local][uuid][object] */
+
+
+EXTERN_C const IID IID_IDXGIFactory6;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("c1b6694f-ff09-44a9-b03c-77900a0a1d17")
+ IDXGIFactory6 : public IDXGIFactory5
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE EnumAdapterByGpuPreference(
+ /* [annotation] */
+ _In_ UINT Adapter,
+ /* [annotation] */
+ _In_ DXGI_GPU_PREFERENCE GpuPreference,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IDXGIFactory6Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IDXGIFactory6 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IDXGIFactory6 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IDXGIFactory6 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [in] */ UINT DataSize,
+ /* [annotation][in] */
+ _In_reads_bytes_(DataSize) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][in] */
+ _In_opt_ const IUnknown *pUnknown);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][out][in] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation][out] */
+ _Out_writes_bytes_(*pDataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetParent )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][retval][out] */
+ _COM_Outptr_ void **ppParent);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapters )(
+ IDXGIFactory6 * This,
+ /* [in] */ UINT Adapter,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter **ppAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )(
+ IDXGIFactory6 * This,
+ HWND WindowHandle,
+ UINT Flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )(
+ IDXGIFactory6 * This,
+ /* [annotation][out] */
+ _Out_ HWND *pWindowHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ DXGI_SWAP_CHAIN_DESC *pDesc,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )(
+ IDXGIFactory6 * This,
+ /* [in] */ HMODULE Module,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter **ppAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )(
+ IDXGIFactory6 * This,
+ /* [in] */ UINT Adapter,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter1 **ppAdapter);
+
+ BOOL ( STDMETHODCALLTYPE *IsCurrent )(
+ IDXGIFactory6 * This);
+
+ BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )(
+ IDXGIFactory6 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ HWND hWnd,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForCoreWindow )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ IUnknown *pWindow,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSharedResourceAdapterLuid )(
+ IDXGIFactory6 * This,
+ /* [annotation] */
+ _In_ HANDLE hResource,
+ /* [annotation] */
+ _Out_ LUID *pLuid);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ HWND WindowHandle,
+ /* [annotation][in] */
+ _In_ UINT wMsg,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ HANDLE hEvent,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ void ( STDMETHODCALLTYPE *UnregisterStereoStatus )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ DWORD dwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ HWND WindowHandle,
+ /* [annotation][in] */
+ _In_ UINT wMsg,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ HANDLE hEvent,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ DWORD dwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )(
+ IDXGIFactory6 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
+ IDXGIFactory6 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapterByLuid )(
+ IDXGIFactory6 * This,
+ /* [annotation] */
+ _In_ LUID AdapterLuid,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumWarpAdapter )(
+ IDXGIFactory6 * This,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
+ IDXGIFactory6 * This,
+ DXGI_FEATURE Feature,
+ /* [annotation] */
+ _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapterByGpuPreference )(
+ IDXGIFactory6 * This,
+ /* [annotation] */
+ _In_ UINT Adapter,
+ /* [annotation] */
+ _In_ DXGI_GPU_PREFERENCE GpuPreference,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter);
+
+ END_INTERFACE
+ } IDXGIFactory6Vtbl;
+
+ interface IDXGIFactory6
+ {
+ CONST_VTBL struct IDXGIFactory6Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IDXGIFactory6_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IDXGIFactory6_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IDXGIFactory6_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IDXGIFactory6_SetPrivateData(This,Name,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
+
+#define IDXGIFactory6_SetPrivateDataInterface(This,Name,pUnknown) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
+
+#define IDXGIFactory6_GetPrivateData(This,Name,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
+
+#define IDXGIFactory6_GetParent(This,riid,ppParent) \
+ ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
+
+
+#define IDXGIFactory6_EnumAdapters(This,Adapter,ppAdapter) \
+ ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) )
+
+#define IDXGIFactory6_MakeWindowAssociation(This,WindowHandle,Flags) \
+ ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) )
+
+#define IDXGIFactory6_GetWindowAssociation(This,pWindowHandle) \
+ ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) )
+
+#define IDXGIFactory6_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) )
+
+#define IDXGIFactory6_CreateSoftwareAdapter(This,Module,ppAdapter) \
+ ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) )
+
+
+#define IDXGIFactory6_EnumAdapters1(This,Adapter,ppAdapter) \
+ ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) )
+
+#define IDXGIFactory6_IsCurrent(This) \
+ ( (This)->lpVtbl -> IsCurrent(This) )
+
+
+#define IDXGIFactory6_IsWindowedStereoEnabled(This) \
+ ( (This)->lpVtbl -> IsWindowedStereoEnabled(This) )
+
+#define IDXGIFactory6_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) )
+
+#define IDXGIFactory6_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) )
+
+#define IDXGIFactory6_GetSharedResourceAdapterLuid(This,hResource,pLuid) \
+ ( (This)->lpVtbl -> GetSharedResourceAdapterLuid(This,hResource,pLuid) )
+
+#define IDXGIFactory6_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) )
+
+#define IDXGIFactory6_RegisterStereoStatusEvent(This,hEvent,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterStereoStatusEvent(This,hEvent,pdwCookie) )
+
+#define IDXGIFactory6_UnregisterStereoStatus(This,dwCookie) \
+ ( (This)->lpVtbl -> UnregisterStereoStatus(This,dwCookie) )
+
+#define IDXGIFactory6_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) )
+
+#define IDXGIFactory6_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) )
+
+#define IDXGIFactory6_UnregisterOcclusionStatus(This,dwCookie) \
+ ( (This)->lpVtbl -> UnregisterOcclusionStatus(This,dwCookie) )
+
+#define IDXGIFactory6_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) )
+
+
+#define IDXGIFactory6_GetCreationFlags(This) \
+ ( (This)->lpVtbl -> GetCreationFlags(This) )
+
+
+#define IDXGIFactory6_EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) \
+ ( (This)->lpVtbl -> EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) )
+
+#define IDXGIFactory6_EnumWarpAdapter(This,riid,ppvAdapter) \
+ ( (This)->lpVtbl -> EnumWarpAdapter(This,riid,ppvAdapter) )
+
+
+#define IDXGIFactory6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
+ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
+
+
+#define IDXGIFactory6_EnumAdapterByGpuPreference(This,Adapter,GpuPreference,riid,ppvAdapter) \
+ ( (This)->lpVtbl -> EnumAdapterByGpuPreference(This,Adapter,GpuPreference,riid,ppvAdapter) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IDXGIFactory6_INTERFACE_DEFINED__ */
+
+
+#ifndef __IDXGIFactory7_INTERFACE_DEFINED__
+#define __IDXGIFactory7_INTERFACE_DEFINED__
+
+/* interface IDXGIFactory7 */
+/* [unique][local][uuid][object] */
+
+
+EXTERN_C const IID IID_IDXGIFactory7;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("a4966eed-76db-44da-84c1-ee9a7afb20a8")
+ IDXGIFactory7 : public IDXGIFactory6
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE RegisterAdaptersChangedEvent(
+ /* [annotation][in] */
+ _In_ HANDLE hEvent,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnregisterAdaptersChangedEvent(
+ /* [annotation][in] */
+ _In_ DWORD dwCookie) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IDXGIFactory7Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IDXGIFactory7 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IDXGIFactory7 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IDXGIFactory7 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [in] */ UINT DataSize,
+ /* [annotation][in] */
+ _In_reads_bytes_(DataSize) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][in] */
+ _In_opt_ const IUnknown *pUnknown);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][out][in] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation][out] */
+ _Out_writes_bytes_(*pDataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetParent )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][retval][out] */
+ _COM_Outptr_ void **ppParent);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapters )(
+ IDXGIFactory7 * This,
+ /* [in] */ UINT Adapter,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter **ppAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )(
+ IDXGIFactory7 * This,
+ HWND WindowHandle,
+ UINT Flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )(
+ IDXGIFactory7 * This,
+ /* [annotation][out] */
+ _Out_ HWND *pWindowHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ DXGI_SWAP_CHAIN_DESC *pDesc,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )(
+ IDXGIFactory7 * This,
+ /* [in] */ HMODULE Module,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter **ppAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )(
+ IDXGIFactory7 * This,
+ /* [in] */ UINT Adapter,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter1 **ppAdapter);
+
+ BOOL ( STDMETHODCALLTYPE *IsCurrent )(
+ IDXGIFactory7 * This);
+
+ BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )(
+ IDXGIFactory7 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ HWND hWnd,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForCoreWindow )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ IUnknown *pWindow,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSharedResourceAdapterLuid )(
+ IDXGIFactory7 * This,
+ /* [annotation] */
+ _In_ HANDLE hResource,
+ /* [annotation] */
+ _Out_ LUID *pLuid);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ HWND WindowHandle,
+ /* [annotation][in] */
+ _In_ UINT wMsg,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ HANDLE hEvent,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ void ( STDMETHODCALLTYPE *UnregisterStereoStatus )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ DWORD dwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ HWND WindowHandle,
+ /* [annotation][in] */
+ _In_ UINT wMsg,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ HANDLE hEvent,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ DWORD dwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
+ IDXGIFactory7 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapterByLuid )(
+ IDXGIFactory7 * This,
+ /* [annotation] */
+ _In_ LUID AdapterLuid,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumWarpAdapter )(
+ IDXGIFactory7 * This,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
+ IDXGIFactory7 * This,
+ DXGI_FEATURE Feature,
+ /* [annotation] */
+ _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapterByGpuPreference )(
+ IDXGIFactory7 * This,
+ /* [annotation] */
+ _In_ UINT Adapter,
+ /* [annotation] */
+ _In_ DXGI_GPU_PREFERENCE GpuPreference,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterAdaptersChangedEvent )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ HANDLE hEvent,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *UnregisterAdaptersChangedEvent )(
+ IDXGIFactory7 * This,
+ /* [annotation][in] */
+ _In_ DWORD dwCookie);
+
+ END_INTERFACE
+ } IDXGIFactory7Vtbl;
+
+ interface IDXGIFactory7
+ {
+ CONST_VTBL struct IDXGIFactory7Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IDXGIFactory7_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IDXGIFactory7_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IDXGIFactory7_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IDXGIFactory7_SetPrivateData(This,Name,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
+
+#define IDXGIFactory7_SetPrivateDataInterface(This,Name,pUnknown) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
+
+#define IDXGIFactory7_GetPrivateData(This,Name,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
+
+#define IDXGIFactory7_GetParent(This,riid,ppParent) \
+ ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
+
+
+#define IDXGIFactory7_EnumAdapters(This,Adapter,ppAdapter) \
+ ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) )
+
+#define IDXGIFactory7_MakeWindowAssociation(This,WindowHandle,Flags) \
+ ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) )
+
+#define IDXGIFactory7_GetWindowAssociation(This,pWindowHandle) \
+ ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) )
+
+#define IDXGIFactory7_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) )
+
+#define IDXGIFactory7_CreateSoftwareAdapter(This,Module,ppAdapter) \
+ ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) )
+
+
+#define IDXGIFactory7_EnumAdapters1(This,Adapter,ppAdapter) \
+ ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) )
+
+#define IDXGIFactory7_IsCurrent(This) \
+ ( (This)->lpVtbl -> IsCurrent(This) )
+
+
+#define IDXGIFactory7_IsWindowedStereoEnabled(This) \
+ ( (This)->lpVtbl -> IsWindowedStereoEnabled(This) )
+
+#define IDXGIFactory7_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) )
+
+#define IDXGIFactory7_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) )
+
+#define IDXGIFactory7_GetSharedResourceAdapterLuid(This,hResource,pLuid) \
+ ( (This)->lpVtbl -> GetSharedResourceAdapterLuid(This,hResource,pLuid) )
+
+#define IDXGIFactory7_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) )
+
+#define IDXGIFactory7_RegisterStereoStatusEvent(This,hEvent,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterStereoStatusEvent(This,hEvent,pdwCookie) )
+
+#define IDXGIFactory7_UnregisterStereoStatus(This,dwCookie) \
+ ( (This)->lpVtbl -> UnregisterStereoStatus(This,dwCookie) )
+
+#define IDXGIFactory7_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) )
+
+#define IDXGIFactory7_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) )
+
+#define IDXGIFactory7_UnregisterOcclusionStatus(This,dwCookie) \
+ ( (This)->lpVtbl -> UnregisterOcclusionStatus(This,dwCookie) )
+
+#define IDXGIFactory7_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) )
+
+
+#define IDXGIFactory7_GetCreationFlags(This) \
+ ( (This)->lpVtbl -> GetCreationFlags(This) )
+
+
+#define IDXGIFactory7_EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) \
+ ( (This)->lpVtbl -> EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) )
+
+#define IDXGIFactory7_EnumWarpAdapter(This,riid,ppvAdapter) \
+ ( (This)->lpVtbl -> EnumWarpAdapter(This,riid,ppvAdapter) )
+
+
+#define IDXGIFactory7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
+ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
+
+
+#define IDXGIFactory7_EnumAdapterByGpuPreference(This,Adapter,GpuPreference,riid,ppvAdapter) \
+ ( (This)->lpVtbl -> EnumAdapterByGpuPreference(This,Adapter,GpuPreference,riid,ppvAdapter) )
+
+
+#define IDXGIFactory7_RegisterAdaptersChangedEvent(This,hEvent,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterAdaptersChangedEvent(This,hEvent,pdwCookie) )
+
+#define IDXGIFactory7_UnregisterAdaptersChangedEvent(This,dwCookie) \
+ ( (This)->lpVtbl -> UnregisterAdaptersChangedEvent(This,dwCookie) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IDXGIFactory7_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_dxgi1_6_0000_0004 */
+/* [local] */
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+#pragma endregion
+DEFINE_GUID(IID_IDXGIAdapter4,0x3c8d99d1,0x4fbf,0x4181,0xa8,0x2c,0xaf,0x66,0xbf,0x7b,0xd2,0x4e);
+DEFINE_GUID(IID_IDXGIOutput6,0x068346e8,0xaaec,0x4b84,0xad,0xd7,0x13,0x7f,0x51,0x3f,0x77,0xa1);
+DEFINE_GUID(IID_IDXGIFactory6,0xc1b6694f,0xff09,0x44a9,0xb0,0x3c,0x77,0x90,0x0a,0x0a,0x1d,0x17);
+DEFINE_GUID(IID_IDXGIFactory7,0xa4966eed,0x76db,0x44da,0x84,0xc1,0xee,0x9a,0x7a,0xfb,0x20,0xa8);
+
+
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0004_v0_0_s_ifspec;
+
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
diff --git a/renderdoc/driver/dx/official/dxgicommon.h b/renderdoc/driver/dx/official/dxgicommon.h
new file mode 100644
index 000000000..bdeab3217
--- /dev/null
+++ b/renderdoc/driver/dx/official/dxgicommon.h
@@ -0,0 +1,56 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#ifndef __dxgicommon_h__
+#define __dxgicommon_h__
+
+
+typedef struct DXGI_RATIONAL
+{
+ UINT Numerator;
+ UINT Denominator;
+} DXGI_RATIONAL;
+
+// The following values are used with DXGI_SAMPLE_DESC::Quality:
+#define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN 0xffffffff
+#define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN 0xfffffffe
+
+typedef struct DXGI_SAMPLE_DESC
+{
+ UINT Count;
+ UINT Quality;
+} DXGI_SAMPLE_DESC;
+
+typedef enum DXGI_COLOR_SPACE_TYPE
+{
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0,
+ DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3,
+ DXGI_COLOR_SPACE_RESERVED = 4,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11,
+ DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16,
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 18,
+ DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 19,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709 = 20,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020 = 21,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709 = 22,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020 = 23,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020 = 24,
+ DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF
+} DXGI_COLOR_SPACE_TYPE;
+
+#endif // __dxgicommon_h__
+
diff --git a/renderdoc/driver/dx/official/dxgitype.h b/renderdoc/driver/dx/official/dxgitype.h
index 525840e1c..c73616317 100644
--- a/renderdoc/driver/dx/official/dxgitype.h
+++ b/renderdoc/driver/dx/official/dxgitype.h
@@ -4,6 +4,7 @@
#ifndef __dxgitype_h__
#define __dxgitype_h__
+#include "dxgicommon.h"
#include "dxgiformat.h"
#define _FACDXGI 0x87a
@@ -55,12 +56,6 @@ typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES
float ControlPointPositions[1025];
} DXGI_GAMMA_CONTROL_CAPABILITIES;
-typedef struct DXGI_RATIONAL
-{
- UINT Numerator;
- UINT Denominator;
-} DXGI_RATIONAL;
-
typedef enum DXGI_MODE_SCANLINE_ORDER
{
DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0,
@@ -95,39 +90,6 @@ typedef struct DXGI_MODE_DESC
DXGI_MODE_SCALING Scaling;
} DXGI_MODE_DESC;
-// The following values are used with DXGI_SAMPLE_DESC::Quality:
-#define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN 0xffffffff
-#define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN 0xfffffffe
-
-typedef struct DXGI_SAMPLE_DESC
-{
- UINT Count;
- UINT Quality;
-} DXGI_SAMPLE_DESC;
-
-typedef enum DXGI_COLOR_SPACE_TYPE
-{
- DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0,
- DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1,
- DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2,
- DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3,
- DXGI_COLOR_SPACE_RESERVED = 4,
- DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6,
- DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8,
- DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10,
- DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11,
- DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13,
- DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16,
- DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17,
- DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF
-} DXGI_COLOR_SPACE_TYPE;
-
typedef struct DXGI_JPEG_DC_HUFFMAN_TABLE
{
BYTE CodeCounts[12];
diff --git a/renderdoc/driver/dxgi/renderdoc_dxgi.vcxproj b/renderdoc/driver/dxgi/renderdoc_dxgi.vcxproj
index cb91e8eb6..89b1c50db 100644
--- a/renderdoc/driver/dxgi/renderdoc_dxgi.vcxproj
+++ b/renderdoc/driver/dxgi/renderdoc_dxgi.vcxproj
@@ -113,6 +113,7 @@
+
diff --git a/renderdoc/driver/dxgi/renderdoc_dxgi.vcxproj.filters b/renderdoc/driver/dxgi/renderdoc_dxgi.vcxproj.filters
index 4b564e749..f48af7517 100644
--- a/renderdoc/driver/dxgi/renderdoc_dxgi.vcxproj.filters
+++ b/renderdoc/driver/dxgi/renderdoc_dxgi.vcxproj.filters
@@ -51,6 +51,9 @@
official
+
+ official
+