diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e68160..02f9320 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,7 +89,7 @@ function(add_my_executable USE_PREVIEW_AGILITY_SDK) if(USE_PREVIEW_AGILITY_SDK) target_compile_definitions(${EXE_NAME} PRIVATE USE_PREVIEW_AGILITY_SDK=1) - set(AGILITY_SDK_DIRECTORY "${PROJECT_SOURCE_DIR}/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview") + set(AGILITY_SDK_DIRECTORY "${PROJECT_SOURCE_DIR}/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview") add_custom_command(TARGET ${EXE_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "$/D3D12_preview" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${AGILITY_SDK_DIRECTORY}/build/native/bin/x64/D3D12Core.dll" @@ -97,7 +97,7 @@ function(add_my_executable USE_PREVIEW_AGILITY_SDK) COMMAND ${CMAKE_COMMAND} -E copy_if_different "${AGILITY_SDK_DIRECTORY}/build/native/bin/x64/DirectSR.dll" "$/D3D12_preview/") else() - set(AGILITY_SDK_DIRECTORY "${PROJECT_SOURCE_DIR}/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1") + set(AGILITY_SDK_DIRECTORY "${PROJECT_SOURCE_DIR}/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0") add_custom_command(TARGET ${EXE_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "$/D3D12" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${AGILITY_SDK_DIRECTORY}/build/native/bin/x64/D3D12Core.dll" diff --git a/Src/Enums.hpp b/Src/Enums.hpp index 32ce4e2..e044f62 100644 --- a/Src/Enums.hpp +++ b/Src/Enums.hpp @@ -635,4 +635,9 @@ ENUM_BEGIN(DSR_OPTIMIZATION_TYPE) ENUM_ITEM(DSR_NUM_OPTIMIZATION_TYPES) ENUM_END(DSR_OPTIMIZATION_TYPE) +ENUM_BEGIN(D3D12_TIGHT_ALIGNMENT_TIER) + ENUM_ITEM(D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED) + ENUM_ITEM(D3D12_TIGHT_ALIGNMENT_TIER_1) +ENUM_END(D3D12_TIGHT_ALIGNMENT_TIER) + #endif // #ifdef USE_PREVIEW_AGILITY_SDK diff --git a/Src/Main.cpp b/Src/Main.cpp index e111edb..8e31909 100644 --- a/Src/Main.cpp +++ b/Src/Main.cpp @@ -405,11 +405,17 @@ static void Print_D3D12_FEATURE_DATA_D3D12_OPTIONS21(const D3D12_FEATURE_DATA_D3 Print_BOOL(L"ExtendedCommandInfoSupported", o.ExtendedCommandInfoSupported); } +static void Print_D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED(const D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED& o) +{ + ScopedStructRegion region(L"D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED"); + Print_BOOL(L"Supported", o.Supported); +} + #ifdef USE_PREVIEW_AGILITY_SDK -static void Print_D3D12_FEATURE_DATA_D3D12_OPTIONS22(const D3D12_FEATURE_DATA_D3D12_OPTIONS22& o) +static void Print_D3D12_FEATURE_DATA_TIGHT_ALIGNMENT(const D3D12_FEATURE_DATA_TIGHT_ALIGNMENT& o) { - ScopedStructRegion region(L"D3D12_FEATURE_DATA_D3D12_OPTIONS22"); - Print_BOOL(L"TightAlignmentSupported", o.TightAlignmentSupported); + ScopedStructRegion region(L"D3D12_FEATURE_DATA_TIGHT_ALIGNMENT"); + PrintEnum(L"SupportTier", o.SupportTier, Enum_D3D12_TIGHT_ALIGNMENT_TIER); } #endif // #ifdef USE_PREVIEW_AGILITY_SDK @@ -1074,10 +1080,14 @@ static void PrintDeviceOptions(ID3D12Device* device) SUCCEEDED(device->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS21, &options21, sizeof(options21)))) Print_D3D12_FEATURE_DATA_D3D12_OPTIONS21(options21); + if (D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED bytecodeBypassHashSupported = {}; + SUCCEEDED(device->CheckFeatureSupport(D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED, &bytecodeBypassHashSupported, sizeof(bytecodeBypassHashSupported)))) + Print_D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED(bytecodeBypassHashSupported); + #ifdef USE_PREVIEW_AGILITY_SDK - if (D3D12_FEATURE_DATA_D3D12_OPTIONS22 options22 = {}; - SUCCEEDED(device->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS22, &options22, sizeof(options22)))) - Print_D3D12_FEATURE_DATA_D3D12_OPTIONS22(options22); + if (D3D12_FEATURE_DATA_TIGHT_ALIGNMENT tightAlignment = {}; + SUCCEEDED(device->CheckFeatureSupport(D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT, &tightAlignment, sizeof(tightAlignment)))) + Print_D3D12_FEATURE_DATA_TIGHT_ALIGNMENT(tightAlignment); #endif } diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/bin/x64/D3D12Core.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/bin/x64/D3D12Core.dll deleted file mode 100644 index 238c117..0000000 Binary files a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/bin/x64/D3D12Core.dll and /dev/null differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/bin/x64/d3d12SDKLayers.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/bin/x64/d3d12SDKLayers.dll deleted file mode 100644 index cd6f77d..0000000 Binary files a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/bin/x64/d3d12SDKLayers.dll and /dev/null differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/.signature.p7s b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/.signature.p7s similarity index 79% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/.signature.p7s rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/.signature.p7s index 51d216b..43358ee 100644 Binary files a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/.signature.p7s and b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/.signature.p7s differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/LICENSE-CODE.txt b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/LICENSE-CODE.txt similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/LICENSE-CODE.txt rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/LICENSE-CODE.txt diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/LICENSE.txt b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/LICENSE.txt similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/LICENSE.txt rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/LICENSE.txt diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/Microsoft.Direct3D.D3D12.nuspec b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/Microsoft.Direct3D.D3D12.nuspec similarity index 94% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/Microsoft.Direct3D.D3D12.nuspec rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/Microsoft.Direct3D.D3D12.nuspec index 6f4461f..ef1193a 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/Microsoft.Direct3D.D3D12.nuspec +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/Microsoft.Direct3D.D3D12.nuspec @@ -2,7 +2,7 @@ Microsoft.Direct3D.D3D12 - 1.614.1 + 1.615.0 Microsoft.Direct3D.D3D12 Microsoft Direct3D,Microsoft diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/README.md b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/README.md similarity index 96% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/README.md rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/README.md index b9bc8e7..264de10 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/README.md +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/README.md @@ -13,9 +13,6 @@ The included licenses apply to the following files: ## Changelog -### Version 1.715.1 -- Upgrade preview DirectSR built-in super res variant from FSR2 to FSR 3.1 - ### Version 1.715.0 - Preview of mesh nodes in work graphs diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/[Content_Types].xml b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/[Content_Types].xml similarity index 98% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/[Content_Types].xml rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/[Content_Types].xml index 9a74729..2d8ca14 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/[Content_Types].xml +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/[Content_Types].xml @@ -2,18 +2,18 @@ - - - - + + + - - + + + - + - + \ No newline at end of file diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/_rels/.rels b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/_rels/.rels similarity index 80% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/_rels/.rels rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/_rels/.rels index 1264e36..daccd13 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/_rels/.rels +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/_rels/.rels @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/Microsoft.Direct3D.D3D12.Rules.Project.xml b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/Microsoft.Direct3D.D3D12.Rules.Project.xml similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/Microsoft.Direct3D.D3D12.Rules.Project.xml rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/Microsoft.Direct3D.D3D12.Rules.Project.xml diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/Microsoft.Direct3D.D3D12.props b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/Microsoft.Direct3D.D3D12.props similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/Microsoft.Direct3D.D3D12.props rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/Microsoft.Direct3D.D3D12.props diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/Microsoft.Direct3D.D3D12.targets b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/Microsoft.Direct3D.D3D12.targets similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/Microsoft.Direct3D.D3D12.targets rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/Microsoft.Direct3D.D3D12.targets diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/bin/x64/D3D12Core.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/bin/x64/D3D12Core.dll new file mode 100644 index 0000000..d9deefd Binary files /dev/null and b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/bin/x64/D3D12Core.dll differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/bin/x64/d3d12SDKLayers.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/bin/x64/d3d12SDKLayers.dll new file mode 100644 index 0000000..ea3c947 Binary files /dev/null and b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/bin/x64/d3d12SDKLayers.dll differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/D3D12TokenizedProgramFormat.hpp b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/D3D12TokenizedProgramFormat.hpp similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/D3D12TokenizedProgramFormat.hpp rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/D3D12TokenizedProgramFormat.hpp diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12.h similarity index 96% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12.h index 6e79c24..23e316b 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12.h @@ -486,6 +486,27 @@ typedef interface ID3D12Tools ID3D12Tools; #endif /* __ID3D12Tools_FWD_DEFINED__ */ +#ifndef __ID3D12Tools1_FWD_DEFINED__ +#define __ID3D12Tools1_FWD_DEFINED__ +typedef interface ID3D12Tools1 ID3D12Tools1; + +#endif /* __ID3D12Tools1_FWD_DEFINED__ */ + + +#ifndef __ID3D12PageableTools_FWD_DEFINED__ +#define __ID3D12PageableTools_FWD_DEFINED__ +typedef interface ID3D12PageableTools ID3D12PageableTools; + +#endif /* __ID3D12PageableTools_FWD_DEFINED__ */ + + +#ifndef __ID3D12DeviceTools_FWD_DEFINED__ +#define __ID3D12DeviceTools_FWD_DEFINED__ +typedef interface ID3D12DeviceTools ID3D12DeviceTools; + +#endif /* __ID3D12DeviceTools_FWD_DEFINED__ */ + + #ifndef __ID3D12SDKConfiguration_FWD_DEFINED__ #define __ID3D12SDKConfiguration_FWD_DEFINED__ typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration; @@ -563,6 +584,13 @@ typedef interface ID3D12GraphicsCommandList10 ID3D12GraphicsCommandList10; #endif /* __ID3D12GraphicsCommandList10_FWD_DEFINED__ */ +#ifndef __ID3D12DSRDeviceFactory_FWD_DEFINED__ +#define __ID3D12DSRDeviceFactory_FWD_DEFINED__ +typedef interface ID3D12DSRDeviceFactory ID3D12DSRDeviceFactory; + +#endif /* __ID3D12DSRDeviceFactory_FWD_DEFINED__ */ + + #ifndef __ID3D12GBVDiagnostics_FWD_DEFINED__ #define __ID3D12GBVDiagnostics_FWD_DEFINED__ typedef interface ID3D12GBVDiagnostics ID3D12GBVDiagnostics; @@ -1102,7 +1130,7 @@ extern "C"{ #define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) -#define D3D12_PREVIEW_SDK_VERSION ( 714 ) +#define D3D12_PREVIEW_SDK_VERSION ( 716 ) #define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) @@ -1235,7 +1263,7 @@ extern "C"{ #define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 ) -#define D3D12_SDK_VERSION ( 614 ) +#define D3D12_SDK_VERSION ( 615 ) #define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 ) @@ -1521,6 +1549,19 @@ typedef struct D3D12_BOX UINT back; } D3D12_BOX; +#ifdef __midl +#ifndef LUID_DEFINED +#define LUID_DEFINED 1 +typedef struct __LUID + { + DWORD LowPart; + LONG HighPart; + } LUID; + +typedef struct __LUID *PLUID; + +#endif +#endif typedef enum D3D12_COMPARISON_FUNC { @@ -2311,7 +2352,8 @@ enum D3D12_FEATURE D3D12_FEATURE_PREDICATION = 50, D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, D3D12_FEATURE_HARDWARE_COPY = 52, - D3D12_FEATURE_D3D12_OPTIONS21 = 53 + D3D12_FEATURE_D3D12_OPTIONS21 = 53, + D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57 } D3D12_FEATURE; typedef @@ -2882,6 +2924,11 @@ typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY _Out_ BOOL Supported; } D3D12_FEATURE_DATA_HARDWARE_COPY; +typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED + { + _Out_ BOOL Supported; + } D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED; + typedef struct D3D12_RESOURCE_ALLOCATION_INFO { UINT64 SizeInBytes; @@ -4375,6 +4422,20 @@ HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer( _In_ REFIID pRootSignatureDeserializerInterface, _Out_ void** ppRootSignatureDeserializer); +typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)( + _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, + _In_ SIZE_T SrcDataSizeInBytes, + _In_ LPCWSTR RootSignatureSubobjectName, + _In_ REFIID pRootSignatureDeserializerInterface, + _Out_ void** ppRootSignatureDeserializer); + +HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary( + _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, + _In_ SIZE_T SrcDataSizeInBytes, + _In_opt_ LPCWSTR RootSignatureSubobjectName, + _In_ REFIID pRootSignatureDeserializerInterface, + _Out_ void** ppRootSignatureDeserializer); + typedef struct D3D12_CPU_DESCRIPTOR_HANDLE { SIZE_T ptr; @@ -8898,27 +8959,6 @@ EXTERN_C const IID IID_ID3D12CommandQueue; #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0020 */ -/* [local] */ - -#ifdef __midl -#ifndef LUID_DEFINED -#define LUID_DEFINED 1 -typedef struct __LUID - { - DWORD LowPart; - LONG HighPart; - } LUID; - -typedef struct __LUID *PLUID; - -#endif -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_s_ifspec; - #ifndef __ID3D12Device_INTERFACE_DEFINED__ #define __ID3D12Device_INTERFACE_DEFINED__ @@ -15634,7 +15674,8 @@ enum D3D12_AUTO_BREADCRUMB_OP D3D12_AUTO_BREADCRUMB_OP_BARRIER = 45, D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = 46, D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = 47, - D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48 + D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = 52 } D3D12_AUTO_BREADCRUMB_OP; typedef struct D3D12_AUTO_BREADCRUMB_NODE @@ -28635,7 +28676,283 @@ EXTERN_C const IID IID_ID3D12Tools; #endif /* __ID3D12Tools_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0062 */ +#ifndef __ID3D12Tools1_INTERFACE_DEFINED__ +#define __ID3D12Tools1_INTERFACE_DEFINED__ + +/* interface ID3D12Tools1 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12Tools1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("e4fbc019-dd3c-43e1-8f32-7f649575f0a0") + ID3D12Tools1 : public ID3D12Tools + { + public: + virtual HRESULT STDMETHODCALLTYPE ReserveGPUVARangesAtCreate( + _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges, + _In_ UINT uiNumRanges) = 0; + + virtual void STDMETHODCALLTYPE ClearReservedGPUVARangesList( void) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12Tools1Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12Tools1 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12Tools1 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12Tools1 * This); + + DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation) + void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )( + ID3D12Tools1 * This, + BOOL bEnable); + + DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled) + BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )( + ID3D12Tools1 * This); + + DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate) + HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )( + ID3D12Tools1 * This, + _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges, + _In_ UINT uiNumRanges); + + DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList) + void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )( + ID3D12Tools1 * This); + + END_INTERFACE + } ID3D12Tools1Vtbl; + + interface ID3D12Tools1 + { + CONST_VTBL struct ID3D12Tools1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12Tools1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12Tools1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12Tools1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12Tools1_EnableShaderInstrumentation(This,bEnable) \ + ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) ) + +#define ID3D12Tools1_ShaderInstrumentationEnabled(This) \ + ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) ) + + +#define ID3D12Tools1_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \ + ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) ) + +#define ID3D12Tools1_ClearReservedGPUVARangesList(This) \ + ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12Tools1_INTERFACE_DEFINED__ */ + + +#ifndef __ID3D12PageableTools_INTERFACE_DEFINED__ +#define __ID3D12PageableTools_INTERFACE_DEFINED__ + +/* interface ID3D12PageableTools */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12PageableTools; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("8f1359db-d8d1-42f9-b5cf-79f4cbad0d3d") + ID3D12PageableTools : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetAllocation( + _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12PageableToolsVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12PageableTools * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12PageableTools * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12PageableTools * This); + + DECLSPEC_XFGVIRT(ID3D12PageableTools, GetAllocation) + HRESULT ( STDMETHODCALLTYPE *GetAllocation )( + ID3D12PageableTools * This, + _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation); + + END_INTERFACE + } ID3D12PageableToolsVtbl; + + interface ID3D12PageableTools + { + CONST_VTBL struct ID3D12PageableToolsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12PageableTools_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12PageableTools_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12PageableTools_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12PageableTools_GetAllocation(This,pAllocation) \ + ( (This)->lpVtbl -> GetAllocation(This,pAllocation) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12PageableTools_INTERFACE_DEFINED__ */ + + +#ifndef __ID3D12DeviceTools_INTERFACE_DEFINED__ +#define __ID3D12DeviceTools_INTERFACE_DEFINED__ + +/* interface ID3D12DeviceTools */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12DeviceTools; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("2ea68e9c-19c3-4e47-a109-6cdadff0aca9") + ID3D12DeviceTools : public IUnknown + { + public: + virtual void STDMETHODCALLTYPE SetNextAllocationAddress( + _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12DeviceToolsVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12DeviceTools * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12DeviceTools * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12DeviceTools * This); + + DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress) + void ( STDMETHODCALLTYPE *SetNextAllocationAddress )( + ID3D12DeviceTools * This, + _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress); + + END_INTERFACE + } ID3D12DeviceToolsVtbl; + + interface ID3D12DeviceTools + { + CONST_VTBL struct ID3D12DeviceToolsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12DeviceTools_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12DeviceTools_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12DeviceTools_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12DeviceTools_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \ + ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12DeviceTools_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12_0000_0065 */ /* [local] */ typedef struct D3D12_SUBRESOURCE_DATA @@ -28753,6 +29070,21 @@ static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb } }; // -------------------------------------------------------------------------------------------------------------------------------- +// Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS +// +// Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS, +// driver support is still required for this feature. +// +// Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array. +// +// -------------------------------------------------------------------------------------------------------------------------------- +static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */ + 0x45dc51f3, + 0x767f, + 0x4588, + { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae } +}; +// -------------------------------------------------------------------------------------------------------------------------------- // D3D12GetInterface // // Retrieve Global D3D12 Interface. @@ -28763,6 +29095,7 @@ DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2); DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce); DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55); +DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28); typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** ); @@ -28770,8 +29103,8 @@ HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_O -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0062_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0062_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0065_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0065_v0_0_s_ifspec; #ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__ #define __ID3D12SDKConfiguration_INTERFACE_DEFINED__ @@ -28966,7 +29299,7 @@ EXTERN_C const IID IID_ID3D12SDKConfiguration1; #endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0064 */ +/* interface __MIDL_itf_d3d12_0000_0067 */ /* [local] */ typedef @@ -28981,8 +29314,8 @@ enum D3D12_DEVICE_FACTORY_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0064_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0064_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_s_ifspec; #ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__ #define __ID3D12DeviceFactory_INTERFACE_DEFINED__ @@ -29143,7 +29476,7 @@ EXTERN_C const IID IID_ID3D12DeviceFactory; #endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0065 */ +/* interface __MIDL_itf_d3d12_0000_0068 */ /* [local] */ typedef @@ -29174,8 +29507,8 @@ typedef struct D3D12_DEVICE_CONFIGURATION_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0065_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0065_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_s_ifspec; #ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ #define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ @@ -29463,7 +29796,7 @@ EXTERN_C const IID IID_ID3D12DeviceConfiguration1; #endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0067 */ +/* interface __MIDL_itf_d3d12_0000_0070 */ /* [local] */ typedef @@ -29503,8 +29836,8 @@ enum D3D12_SHADING_RATE_COMBINER -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ @@ -30339,7 +30672,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList5; #endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0068 */ +/* interface __MIDL_itf_d3d12_0000_0071 */ /* [local] */ typedef struct D3D12_DISPATCH_MESH_ARGUMENTS @@ -30351,8 +30684,8 @@ typedef struct D3D12_DISPATCH_MESH_ARGUMENTS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ @@ -34691,6 +35024,95 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList10; #endif /* __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ */ +#ifndef __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ +#define __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ + +/* interface ID3D12DSRDeviceFactory */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12DSRDeviceFactory; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("f343d1a0-afe3-439f-b13d-cd87a43b70ca") + ID3D12DSRDeviceFactory : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE CreateDSRDevice( + ID3D12Device *pD3D12Device, + UINT NodeMask, + REFIID riid, + _COM_Outptr_ void **ppvDSRDevice) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12DSRDeviceFactoryVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12DSRDeviceFactory * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12DSRDeviceFactory * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12DSRDeviceFactory * This); + + DECLSPEC_XFGVIRT(ID3D12DSRDeviceFactory, CreateDSRDevice) + HRESULT ( STDMETHODCALLTYPE *CreateDSRDevice )( + ID3D12DSRDeviceFactory * This, + ID3D12Device *pD3D12Device, + UINT NodeMask, + REFIID riid, + _COM_Outptr_ void **ppvDSRDevice); + + END_INTERFACE + } ID3D12DSRDeviceFactoryVtbl; + + interface ID3D12DSRDeviceFactory + { + CONST_VTBL struct ID3D12DSRDeviceFactoryVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12DSRDeviceFactory_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12DSRDeviceFactory_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12DSRDeviceFactory_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12DSRDeviceFactory_CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) \ + ( (This)->lpVtbl -> CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ */ + + #ifndef __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ #define __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ @@ -34841,7 +35263,7 @@ EXTERN_C const IID IID_ID3D12GBVDiagnostics; #endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0074 */ +/* interface __MIDL_itf_d3d12_0000_0078 */ /* [local] */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ @@ -34908,6 +35330,9 @@ DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23); DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76); DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5); +DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0); +DEFINE_GUID(IID_ID3D12PageableTools,0x8f1359db,0xd8d1,0x42f9,0xb5,0xcf,0x79,0xf4,0xcb,0xad,0x0d,0x3d); +DEFINE_GUID(IID_ID3D12DeviceTools,0x2ea68e9c,0x19c3,0x4e47,0xa1,0x09,0x6c,0xda,0xdf,0xf0,0xac,0xa9); DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7); DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f); DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb); @@ -34919,11 +35344,12 @@ DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51); DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1); DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc); +DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0x87,0xa4,0x3b,0x70,0xca); DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee); -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12.idl similarity index 96% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12.idl index 65f1d88..5970bb5 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12.idl +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12.idl @@ -293,7 +293,7 @@ const UINT D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff; const UINT D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff8; const UINT D3D12_PACKED_TILE = 0xffffffff; const UINT D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15; -const UINT D3D12_PREVIEW_SDK_VERSION = 714; +const UINT D3D12_PREVIEW_SDK_VERSION = 716; const UINT D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 16; const UINT D3D12_PS_CS_UAV_REGISTER_COMPONENTS = 1; const UINT D3D12_PS_CS_UAV_REGISTER_COUNT = 8; @@ -361,7 +361,7 @@ const UINT D3D12_REQ_TEXTURECUBE_DIMENSION = 16384; const UINT D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0; const UINT D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 0xffffffff; const UINT D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT = 2; -const UINT D3D12_SDK_VERSION = 614; +const UINT D3D12_SDK_VERSION = 615; const UINT D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES = 32; const UINT D3D12_SHADER_MAJOR_VERSION = 5; const UINT D3D12_SHADER_MAX_INSTANCES = 65535; @@ -573,6 +573,19 @@ typedef struct D3D12_BOX UINT back; } D3D12_BOX; +//-------------------------------------------------------------------------------------------------------- +// The system LUID struct isn't defined in wtypes, so we repeat it here just +// for the MIDL compiler. +cpp_quote("#ifdef __midl") +cpp_quote("#ifndef LUID_DEFINED") +cpp_quote("#define LUID_DEFINED 1") +typedef struct __LUID { + DWORD LowPart; + LONG HighPart; +} LUID, * PLUID; +cpp_quote("#endif") +cpp_quote("#endif") + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // @@ -1031,6 +1044,7 @@ typedef enum D3D12_FEATURE D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, D3D12_FEATURE_HARDWARE_COPY = 52, D3D12_FEATURE_D3D12_OPTIONS21 = 53, + D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57, } D3D12_FEATURE; typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT @@ -1155,11 +1169,13 @@ typedef enum D3D12_VIEW_INSTANCING_TIER D3D12_VIEW_INSTANCING_TIER_3 = 3, } D3D12_VIEW_INSTANCING_TIER; + typedef enum D3D12_WORK_GRAPHS_TIER { D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0, D3D12_WORK_GRAPHS_TIER_1_0 = 10, } D3D12_WORK_GRAPHS_TIER; + // D3D12_FEATURE_D3D12_OPTIONS typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS { @@ -1611,6 +1627,7 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 } D3D12_FEATURE_DATA_D3D12_OPTIONS21; + typedef struct D3D12_FEATURE_DATA_PREDICATION { [annotation("_Out_")] BOOL Supported; @@ -1622,6 +1639,11 @@ typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY } D3D12_FEATURE_DATA_HARDWARE_COPY; +typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED +{ + [annotation("_Out_")] BOOL Supported; +} D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED; + typedef struct D3D12_RESOURCE_ALLOCATION_INFO { UINT64 SizeInBytes; @@ -2973,8 +2995,20 @@ cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes, cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) cpp_quote( "" ) - - +cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)(") +cpp_quote(" _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,") +cpp_quote(" _In_ SIZE_T SrcDataSizeInBytes,") +cpp_quote(" _In_ LPCWSTR RootSignatureSubobjectName,") +cpp_quote(" _In_ REFIID pRootSignatureDeserializerInterface,") +cpp_quote(" _Out_ void** ppRootSignatureDeserializer);") +cpp_quote("") +cpp_quote("HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(") +cpp_quote(" _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,") +cpp_quote(" _In_ SIZE_T SrcDataSizeInBytes,") +cpp_quote(" _In_opt_ LPCWSTR RootSignatureSubobjectName,") +cpp_quote(" _In_ REFIID pRootSignatureDeserializerInterface,") +cpp_quote(" _Out_ void** ppRootSignatureDeserializer);") +cpp_quote("") typedef struct D3D12_CPU_DESCRIPTOR_HANDLE { @@ -3290,6 +3324,7 @@ interface ID3D12Fence1 D3D12_FENCE_FLAGS GetCreationFlags(); }; + [ uuid( 765a30f3-f624-4c6f-a828-ace948622445 ), object, local, pointer_default( unique ) ] interface ID3D12PipelineState : ID3D12Pageable @@ -3748,19 +3783,6 @@ interface ID3D12CommandQueue D3D12_COMMAND_QUEUE_DESC GetDesc(); } -//-------------------------------------------------------------------------------------------------------- -// The system LUID struct isn't defined in wtypes, so we repeat it here just -// for the MIDL compiler. -cpp_quote("#ifdef __midl") -cpp_quote("#ifndef LUID_DEFINED") -cpp_quote("#define LUID_DEFINED 1") -typedef struct __LUID { - DWORD LowPart; - LONG HighPart; -} LUID, *PLUID; -cpp_quote("#endif") -cpp_quote("#endif") - [ uuid( 189819f1-1db6-4b57-be54-1821339b85f7 ), object, local, pointer_default( unique ) ] interface ID3D12Device : ID3D12Object @@ -5045,6 +5067,7 @@ typedef enum D3D12_AUTO_BREADCRUMB_OP D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = 46, D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = 47, D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = 52, } D3D12_AUTO_BREADCRUMB_OP; typedef struct D3D12_AUTO_BREADCRUMB_NODE @@ -6092,6 +6115,33 @@ interface ID3D12Tools BOOL ShaderInstrumentationEnabled(); } +[uuid(e4fbc019-dd3c-43e1-8f32-7f649575f0a0), object, local, pointer_default(unique)] +interface ID3D12Tools1 + : ID3D12Tools +{ + HRESULT ReserveGPUVARangesAtCreate( + [annotation("_In_reads_(uiNumRanges)")] D3D12_GPU_VIRTUAL_ADDRESS_RANGE* pRanges, + [annotation("_In_")] UINT uiNumRanges); + void ClearReservedGPUVARangesList(); +} + + +[uuid(8f1359db-d8d1-42f9-b5cf-79f4cbad0d3d), object, local, pointer_default(unique)] +interface ID3D12PageableTools + : IUnknown +{ + HRESULT GetAllocation( + [annotation("_Inout_")] D3D12_GPU_VIRTUAL_ADDRESS_RANGE* pAllocation); +} + +[uuid(2ea68e9c-19c3-4e47-a109-6cdadff0aca9), object, local, pointer_default(unique)] +interface ID3D12DeviceTools + : IUnknown +{ + void SetNextAllocationAddress( + [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress); +} + typedef struct D3D12_SUBRESOURCE_DATA { @@ -6213,6 +6263,21 @@ cpp_quote(" 0xa81a,") cpp_quote(" 0x4f56,") cpp_quote(" { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }") cpp_quote("};") +cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") +cpp_quote("// Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS") +cpp_quote("//") +cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS, ") +cpp_quote("// driver support is still required for this feature.") +cpp_quote("//") +cpp_quote("// Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array.") +cpp_quote("//") +cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") +cpp_quote("static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */") +cpp_quote(" 0x45dc51f3,") +cpp_quote(" 0x767f,") +cpp_quote(" 0x4588,") +cpp_quote(" { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae }") +cpp_quote("};") cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") cpp_quote("// D3D12GetInterface") @@ -6225,6 +6290,7 @@ cpp_quote("DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c cpp_quote("DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);") cpp_quote("DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);") cpp_quote("DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55);") +cpp_quote("DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28);") cpp_quote("") cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );") cpp_quote("") @@ -6458,6 +6524,15 @@ interface ID3D12GraphicsCommandList10 : ID3D12GraphicsCommandList9 }; +[uuid(f343d1a0-afe3-439f-b13d-cd87a43b70ca), object, local, pointer_default(unique)] +interface ID3D12DSRDeviceFactory : IUnknown +{ + HRESULT CreateDSRDevice( + [in] ID3D12Device *pD3D12Device, + [in] UINT NodeMask, + [in] REFIID riid, // Expected IDSRDevice + [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvDSRDevice); +} [uuid(597985ab-9b75-4dbb-be23-0761195bebee), object, local, pointer_default(unique)] interface ID3D12GBVDiagnostics @@ -6544,6 +6619,9 @@ cpp_quote( "DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x cpp_quote( "DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12PageableTools,0x8f1359db,0xd8d1,0x42f9,0xb5,0xcf,0x79,0xf4,0xcb,0xad,0x0d,0x3d);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceTools,0x2ea68e9c,0x19c3,0x4e47,0xa1,0x09,0x6c,0xda,0xdf,0xf0,0xac,0xa9);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb);" ) @@ -6555,4 +6633,5 @@ cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769, cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0x87,0xa4,0x3b,0x70,0xca);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee);" ) diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12compatibility.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12compatibility.h similarity index 87% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12compatibility.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12compatibility.h index 98eb3b5..13bdada 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12compatibility.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12compatibility.h @@ -108,6 +108,13 @@ typedef interface DirectMLPyTorchCreatorID DirectMLPyTorchCreatorID; #endif /* __DirectMLPyTorchCreatorID_FWD_DEFINED__ */ +#ifndef __DirectMLWebNNCreatorID_FWD_DEFINED__ +#define __DirectMLWebNNCreatorID_FWD_DEFINED__ +typedef interface DirectMLWebNNCreatorID DirectMLWebNNCreatorID; + +#endif /* __DirectMLWebNNCreatorID_FWD_DEFINED__ */ + + /* header files for imported files */ #include "oaidl.h" #include "ocidl.h" @@ -788,7 +795,79 @@ EXTERN_C const IID IID_DirectMLPyTorchCreatorID; #endif /* __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12compatibility_0000_0008 */ +#ifndef __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ +#define __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ + +/* interface DirectMLWebNNCreatorID */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_DirectMLWebNNCreatorID; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("fdf01a76-1e11-450f-902b-74f04ea08094") + DirectMLWebNNCreatorID : public IUnknown + { + public: + }; + + +#else /* C style interface */ + + typedef struct DirectMLWebNNCreatorIDVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + DirectMLWebNNCreatorID * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + DirectMLWebNNCreatorID * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + DirectMLWebNNCreatorID * This); + + END_INTERFACE + } DirectMLWebNNCreatorIDVtbl; + + interface DirectMLWebNNCreatorID + { + CONST_VTBL struct DirectMLWebNNCreatorIDVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define DirectMLWebNNCreatorID_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define DirectMLWebNNCreatorID_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define DirectMLWebNNCreatorID_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12compatibility_0000_0009 */ /* [local] */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ @@ -801,10 +880,11 @@ DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x26,0x20,0xca DEFINE_GUID(IID_VulkanOn12CreatorID,0xbc806e01,0x3052,0x406c,0xa3,0xe8,0x9f,0xc0,0x7f,0x04,0x8f,0x98); DEFINE_GUID(IID_DirectMLTensorFlowCreatorID,0xcb7490ac,0x8a0f,0x44ec,0x9b,0x7b,0x6f,0x4c,0xaf,0xe8,0xe9,0xab); DEFINE_GUID(IID_DirectMLPyTorchCreatorID,0xaf029192,0xfba1,0x4b05,0x91,0x16,0x23,0x5e,0x06,0x56,0x03,0x54); +DEFINE_GUID(IID_DirectMLWebNNCreatorID,0xfdf01a76,0x1e11,0x450f,0x90,0x2b,0x74,0xf0,0x4e,0xa0,0x80,0x94); -extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0008_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0009_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0009_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12compatibility.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12compatibility.idl similarity index 92% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12compatibility.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12compatibility.idl index 37f2b14..516a149 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12compatibility.idl +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12compatibility.idl @@ -82,6 +82,9 @@ interface DirectMLTensorFlowCreatorID : IUnknown { }; [uuid(af029192-fba1-4b05-9116-235e06560354), object, local, pointer_default(unique)] interface DirectMLPyTorchCreatorID : IUnknown { }; +[uuid(fdf01a76-1e11-450f-902b-74f04ea08094), object, local, pointer_default(unique)] +interface DirectMLWebNNCreatorID : IUnknown { }; + cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") #pragma endregion @@ -94,3 +97,4 @@ cpp_quote( "DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x cpp_quote( "DEFINE_GUID(IID_VulkanOn12CreatorID,0xbc806e01,0x3052,0x406c,0xa3,0xe8,0x9f,0xc0,0x7f,0x04,0x8f,0x98);" ) cpp_quote( "DEFINE_GUID(IID_DirectMLTensorFlowCreatorID,0xcb7490ac,0x8a0f,0x44ec,0x9b,0x7b,0x6f,0x4c,0xaf,0xe8,0xe9,0xab);" ) cpp_quote( "DEFINE_GUID(IID_DirectMLPyTorchCreatorID,0xaf029192,0xfba1,0x4b05,0x91,0x16,0x23,0x5e,0x06,0x56,0x03,0x54);" ) +cpp_quote( "DEFINE_GUID(IID_DirectMLWebNNCreatorID,0xfdf01a76,0x1e11,0x450f,0x90,0x2b,0x74,0xf0,0x4e,0xa0,0x80,0x94);" ) diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12sdklayers.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12sdklayers.h similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12sdklayers.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12sdklayers.h index c581756..a78b0fd 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12sdklayers.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12sdklayers.h @@ -999,7 +999,8 @@ enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE { D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS = 0, D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = ( D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS + 1 ) , - D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS + 1 ) + D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS + 1 ) , + D3D12_DEBUG_DEVICE_PARAMETER_BYTECODE_VALIDATION_MODE = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR + 1 ) } D3D12_DEBUG_DEVICE_PARAMETER_TYPE; typedef @@ -1046,6 +1047,15 @@ typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR FLOAT SlowdownFactor; } D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; +typedef +enum D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE + { + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED = 0, + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED = ( D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED + 1 ) , + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_ALL_BYTECODE = ( D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED + 1 ) , + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE_DEFAULT = D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED + } D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE; + extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_c_ifspec; @@ -3347,7 +3357,9 @@ enum D3D12_MESSAGE_ID D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SET_BEFORE_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1419, D3D12_MESSAGE_ID_DIFFERENT_DESCRIPTOR_HEAP_SET_AFTER_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1420, D3D12_MESSAGE_ID_APPLICATION_SPECIFIC_DRIVER_STATE_NOT_SUPPORTED = 1421, - D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_APPLICATION_SPECIFIC_DRIVER_STATE_NOT_SUPPORTED + 1 ) + D3D12_MESSAGE_ID_RENDER_TARGET_OR_DEPTH_STENCIL_RESOUCE_NOT_INITIALIZED = 1422, + D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR = 1423, + D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR + 1 ) } D3D12_MESSAGE_ID; typedef struct D3D12_MESSAGE diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12sdklayers.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12sdklayers.idl similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12sdklayers.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12sdklayers.idl index 83922c5..f5b4474 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12sdklayers.idl +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12sdklayers.idl @@ -100,6 +100,7 @@ typedef enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS, D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS, D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR, + D3D12_DEBUG_DEVICE_PARAMETER_BYTECODE_VALIDATION_MODE } D3D12_DEBUG_DEVICE_PARAMETER_TYPE; typedef enum D3D12_DEBUG_FEATURE @@ -145,6 +146,15 @@ typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR FLOAT SlowdownFactor; } D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; +typedef enum D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE +{ + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED, + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED, + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_ALL_BYTECODE, + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE_DEFAULT = + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED +} D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE; + [uuid(a9b71770-d099-4a65-a698-3dee10020f88), object, local, pointer_default(unique)] interface ID3D12DebugDevice1 : IUnknown @@ -1496,6 +1506,8 @@ typedef enum D3D12_MESSAGE_ID { D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SET_BEFORE_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1419, D3D12_MESSAGE_ID_DIFFERENT_DESCRIPTOR_HEAP_SET_AFTER_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1420, D3D12_MESSAGE_ID_APPLICATION_SPECIFIC_DRIVER_STATE_NOT_SUPPORTED = 1421, + D3D12_MESSAGE_ID_RENDER_TARGET_OR_DEPTH_STENCIL_RESOUCE_NOT_INITIALIZED = 1422, + D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR = 1423, D3D12_MESSAGE_ID_D3D12_MESSAGES_END } D3D12_MESSAGE_ID; diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12shader.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12shader.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12shader.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12shader.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12video.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12video.h similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12video.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12video.h index 3add252..5848f07 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12video.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12video.h @@ -7563,7 +7563,10 @@ enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = 0x100, D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200, D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000 + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_QPMAP_NOT_SUPPORTED = 0x2000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_DIRTY_REGIONS_NOT_SUPPORTED = 0x4000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_MOTION_SEARCH_NOT_SUPPORTED = 0x8000 } D3D12_VIDEO_ENCODER_VALIDATION_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS) diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12video.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12video.idl similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12video.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12video.idl index 8e37fab..b0322f8 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12video.idl +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12video.idl @@ -2625,6 +2625,9 @@ typedef enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200, D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800, D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_QPMAP_NOT_SUPPORTED = 0x2000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_DIRTY_REGIONS_NOT_SUPPORTED = 0x4000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_MOTION_SEARCH_NOT_SUPPORTED = 0x8000, } D3D12_VIDEO_ENCODER_VALIDATION_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS)") diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dcommon.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dcommon.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dcommon.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dcommon.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dcommon.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dcommon.idl similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dcommon.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dcommon.idl diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_barriers.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_barriers.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_barriers.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_barriers.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_check_feature_support.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_check_feature_support.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_check_feature_support.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_check_feature_support.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_core.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_core.h similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_core.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_core.h index d1b38c4..56d6c50 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_core.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_core.h @@ -1464,7 +1464,7 @@ inline const CD3DX12_RESOURCE_DESC1* D3DX12ConditionallyExpandAPIDesc( } return uiRet; }; - auto Max = [](UINT64 const & a, UINT64 const & b) + auto Max = [](UINT64 const& a, UINT64 const& b) { return (a < b) ? b : a; }; diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_default.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_default.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_default.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_default.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_pipeline_state_stream.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_pipeline_state_stream.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_pipeline_state_stream.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_pipeline_state_stream.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_property_format_table.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_property_format_table.h similarity index 95% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_property_format_table.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_property_format_table.h index 315a15d..bc6970e 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_property_format_table.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_property_format_table.h @@ -62,8 +62,10 @@ struct D3D12_PROPERTY_LAYOUT_FORMAT_TABLE static LPCSTR GetName (DXGI_FORMAT Format, bool bHideInternalFormats = true); static bool IsSRGBFormat (DXGI_FORMAT Format); static UINT GetBitsPerStencil (DXGI_FORMAT Format); + static UINT GetBitsPerDepth (DXGI_FORMAT Format); static void GetFormatReturnTypes (DXGI_FORMAT Format, D3D_FORMAT_COMPONENT_INTERPRETATION* pInterpretations); // return array of 4 components static UINT GetNumComponentsInFormat(DXGI_FORMAT Format); + static UINT GetMinNumComponentsInFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB); // Converts the sequential component index (range from 0 to GetNumComponentsInFormat()) to // the absolute component index (range 0 to 3). @@ -116,6 +118,8 @@ struct D3D12_PROPERTY_LAYOUT_FORMAT_TABLE static UINT GetDetailTableIndex (DXGI_FORMAT Format); static UINT GetDetailTableIndexNoThrow (DXGI_FORMAT Format); static UINT GetDetailTableIndexThrow (DXGI_FORMAT Format); + static bool SupportsDepth (DXGI_FORMAT Format); + static bool SupportsStencil (DXGI_FORMAT Format); private: static const FORMAT_DETAIL* GetFormatDetail (DXGI_FORMAT Format); diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_render_pass.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_render_pass.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_render_pass.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_render_pass.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_resource_helpers.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_resource_helpers.h similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_resource_helpers.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_resource_helpers.h index 571b97a..1a1daae 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_resource_helpers.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_resource_helpers.h @@ -460,7 +460,7 @@ inline bool D3DX12GetCopyableFootprints( UINT32 MinPlanePitchWidth, PlaneWidth, PlaneHeight; D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetPlaneSubsampledSizeAndFormatForCopyableLayout(PlaneSlice, Format, (UINT)Width, Height, /*_Out_*/ PlaneFormat, /*_Out_*/ MinPlanePitchWidth, /* _Out_ */ PlaneWidth, /*_Out_*/ PlaneHeight); - D3D12_SUBRESOURCE_FOOTPRINT LocalPlacement; + D3D12_SUBRESOURCE_FOOTPRINT LocalPlacement = {}; auto& Placement = pLayouts ? pLayouts[uSubRes].Footprint : LocalPlacement; Placement.Format = PlaneFormat; Placement.Width = PlaneWidth; diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_root_signature.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_root_signature.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_root_signature.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_root_signature.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_state_object.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_state_object.h similarity index 90% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_state_object.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_state_object.h index 069c678..2aad225 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_state_object.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3dx12/d3dx12_state_object.h @@ -71,8 +71,10 @@ class CD3DX12_STATE_OBJECT_DESC ownedSubobject->Finalize(); } +#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) m_RepointedSubobjectVectors.clear(); m_RepointedPrograms.clear(); +#endif m_RepointedAssociations.clear(); m_SubobjectArray.clear(); m_SubobjectArray.reserve(m_Desc.NumSubobjects); @@ -100,6 +102,7 @@ class CD3DX12_STATE_OBJECT_DESC m_RepointedAssociations.push_back(Repointed); m_SubobjectArray[i].pDesc = &m_RepointedAssociations.back(); } +#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) else if (m_SubobjectArray[i].Type == D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM) { auto originalGenericProgramDesc = @@ -122,6 +125,7 @@ class CD3DX12_STATE_OBJECT_DESC m_RepointedPrograms.push_back(Repointed); m_SubobjectArray[i].pDesc = &m_RepointedPrograms.back(); } +#endif } // Below: using ugly way to get pointer in case .data() is not defined m_Desc.pSubobjects = m_Desc.NumSubobjects ? &m_SubobjectArray[0] : nullptr; @@ -185,8 +189,10 @@ class CD3DX12_STATE_OBJECT_DESC m_SubobjectList.clear(); m_SubobjectArray.clear(); m_RepointedAssociations.clear(); +#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) m_RepointedSubobjectVectors.clear(); m_RepointedPrograms.clear(); +#endif } typedef struct SUBOBJECT_WRAPPER : public D3D12_STATE_SUBOBJECT { @@ -202,10 +208,12 @@ class CD3DX12_STATE_OBJECT_DESC m_RepointedAssociations; // subobject type that contains pointers to other subobjects, // repointed to flattened array +#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) std::list> m_RepointedSubobjectVectors; std::list m_RepointedPrograms; +#endif template class StringContainer @@ -317,6 +325,10 @@ class CD3DX12_DXIL_LIBRARY_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_DXIL_LIBRARY_SUBOBJECT(const CD3DX12_DXIL_LIBRARY_SUBOBJECT& other) = delete; + CD3DX12_DXIL_LIBRARY_SUBOBJECT& operator=(const CD3DX12_DXIL_LIBRARY_SUBOBJECT& other) = delete; + CD3DX12_DXIL_LIBRARY_SUBOBJECT(CD3DX12_DXIL_LIBRARY_SUBOBJECT&& other) = default; + CD3DX12_DXIL_LIBRARY_SUBOBJECT& operator=(CD3DX12_DXIL_LIBRARY_SUBOBJECT&& other) = default; void SetDXILLibrary(const D3D12_SHADER_BYTECODE* pCode) noexcept { static const D3D12_SHADER_BYTECODE Default = {}; @@ -383,6 +395,10 @@ class CD3DX12_EXISTING_COLLECTION_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_EXISTING_COLLECTION_SUBOBJECT(const CD3DX12_EXISTING_COLLECTION_SUBOBJECT& other) = delete; + CD3DX12_EXISTING_COLLECTION_SUBOBJECT& operator=(const CD3DX12_EXISTING_COLLECTION_SUBOBJECT& other) = delete; + CD3DX12_EXISTING_COLLECTION_SUBOBJECT(CD3DX12_EXISTING_COLLECTION_SUBOBJECT&& other) = default; + CD3DX12_EXISTING_COLLECTION_SUBOBJECT& operator=(CD3DX12_EXISTING_COLLECTION_SUBOBJECT&& other) = default; void SetExistingCollection(ID3D12StateObject*pExistingCollection) noexcept { m_Desc.pExistingCollection = pExistingCollection; @@ -451,6 +467,10 @@ class CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT(const CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT& other) = delete; + CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT& operator=(const CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT& other) = delete; + CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT(CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT&& other) = default; + CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT& operator=(CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT&& other) = default; void SetSubobjectToAssociate(const D3D12_STATE_SUBOBJECT& SubobjectToAssociate) noexcept { m_Desc.pSubobjectToAssociate = &SubobjectToAssociate; @@ -509,6 +529,10 @@ class CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION(const CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& other) = delete; + CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& operator=(const CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& other) = delete; + CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION(CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION&& other) = default; + CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& operator=(CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION&& other) = default; void SetSubobjectNameToAssociate(LPCWSTR SubobjectToAssociate) { m_Desc.SubobjectToAssociate = m_SubobjectName.LocalCopy(SubobjectToAssociate, true); @@ -569,6 +593,10 @@ class CD3DX12_HIT_GROUP_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_HIT_GROUP_SUBOBJECT(const CD3DX12_HIT_GROUP_SUBOBJECT& other) = delete; + CD3DX12_HIT_GROUP_SUBOBJECT& operator=(const CD3DX12_HIT_GROUP_SUBOBJECT& other) = delete; + CD3DX12_HIT_GROUP_SUBOBJECT(CD3DX12_HIT_GROUP_SUBOBJECT&& other) = default; + CD3DX12_HIT_GROUP_SUBOBJECT& operator=(CD3DX12_HIT_GROUP_SUBOBJECT&& other) = default; void SetHitGroupExport(LPCWSTR exportName) { m_Desc.HitGroupExport = m_Strings[0].LocalCopy(exportName, true); @@ -622,6 +650,10 @@ class CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT(const CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT& other) = delete; + CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT& operator=(const CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT& other) = delete; + CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT(CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT&& other) = default; + CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT& operator=(CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT&& other) = default; void Config(UINT MaxPayloadSizeInBytes, UINT MaxAttributeSizeInBytes) noexcept { m_Desc.MaxPayloadSizeInBytes = MaxPayloadSizeInBytes; @@ -656,6 +688,10 @@ class CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT(const CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT& other) = delete; + CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT& operator=(const CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT& other) = delete; + CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT(CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT&& other) = default; + CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT& operator=(CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT&& other) = default; void Config(UINT MaxTraceRecursionDepth) noexcept { m_Desc.MaxTraceRecursionDepth = MaxTraceRecursionDepth; @@ -689,6 +725,10 @@ class CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT(const CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT& other) = delete; + CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT& operator=(const CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT& other) = delete; + CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT(CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT&& other) = default; + CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT& operator=(CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT&& other) = default; void Config(UINT MaxTraceRecursionDepth, D3D12_RAYTRACING_PIPELINE_FLAGS Flags) noexcept { m_Desc.MaxTraceRecursionDepth = MaxTraceRecursionDepth; @@ -723,6 +763,10 @@ class CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT(const CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT& other) = delete; + CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT& operator=(const CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT& other) = delete; + CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT&& other) = default; + CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT& operator=(CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT&& other) = default; void SetRootSignature(ID3D12RootSignature* pRootSig) noexcept { m_pRootSig = pRootSig; @@ -756,6 +800,10 @@ class CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT(const CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT& other) = delete; + CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT& operator=(const CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT& other) = delete; + CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT&& other) = default; + CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT& operator=(CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT&& other) = default; void SetRootSignature(ID3D12RootSignature* pRootSig) noexcept { m_pRootSig = pRootSig; @@ -789,6 +837,10 @@ class CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT(const CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT& other) = delete; + CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT& operator=(const CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT& other) = delete; + CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT(CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT&& other) = default; + CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT& operator=(CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT&& other) = default; void SetFlags(D3D12_STATE_OBJECT_FLAGS Flags) noexcept { m_Desc.Flags = Flags; @@ -822,6 +874,10 @@ class CD3DX12_NODE_MASK_SUBOBJECT Init(); AddToStateObject(ContainingStateObject); } + CD3DX12_NODE_MASK_SUBOBJECT(const CD3DX12_NODE_MASK_SUBOBJECT& other) = delete; + CD3DX12_NODE_MASK_SUBOBJECT& operator=(const CD3DX12_NODE_MASK_SUBOBJECT& other) = delete; + CD3DX12_NODE_MASK_SUBOBJECT(CD3DX12_NODE_MASK_SUBOBJECT&& other) = default; + CD3DX12_NODE_MASK_SUBOBJECT& operator=(CD3DX12_NODE_MASK_SUBOBJECT&& other) = default; void SetNodeMask(UINT NodeMask) noexcept { m_Desc.NodeMask = NodeMask; diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/dxgiformat.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/dxgiformat.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/dxgiformat.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/dxgiformat.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/dxgiformat.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/dxgiformat.idl similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/dxgiformat.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/dxgiformat.idl diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/src/d3dx12/d3dx12_property_format_table.cpp b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/src/d3dx12/d3dx12_property_format_table.cpp similarity index 95% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/src/d3dx12/d3dx12_property_format_table.cpp rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/src/d3dx12/d3dx12_property_format_table.cpp index ccf9eb9..39eb926 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/src/d3dx12/d3dx12_property_format_table.cpp +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/src/d3dx12/d3dx12_property_format_table.cpp @@ -21,9 +21,12 @@ #include #endif #include "d3dx12_property_format_table.h" -#include #include +#include #include "D3D12TokenizedProgramFormat.hpp" +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) +#include +#endif #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) #ifndef ASSUME #define ASSUME(x) assert(x) @@ -197,7 +200,88 @@ const LPCSTR D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::s_FormatNames[] = // separate "AI44", "IA44", "P8", - "A8P8", + "A8P8", + "B4G4R4A4_UNORM", + + nullptr, // 116 + nullptr, // 117 + nullptr, // 118 + nullptr, // 119 + nullptr, // 120 + nullptr, // 121 + nullptr, // 122 + nullptr, // 123 + nullptr, // 124 + nullptr, // 125 + nullptr, // 126 + nullptr, // 127 + nullptr, // 128 + nullptr, // 129 + + "P208", + "V208", + "V408", + + NULL, // 133 + NULL, // 134 + NULL, // 135 + NULL, // 136 + NULL, // 137 + NULL, // 138 + NULL, // 139 + NULL, // 140 + NULL, // 141 + NULL, // 142 + NULL, // 143 + NULL, // 144 + NULL, // 145 + NULL, // 146 + NULL, // 147 + NULL, // 148 + NULL, // 149 + NULL, // 150 + NULL, // 151 + NULL, // 152 + NULL, // 153 + NULL, // 154 + NULL, // 155 + NULL, // 156 + NULL, // 157 + NULL, // 158 + NULL, // 159 + NULL, // 160 + NULL, // 161 + NULL, // 162 + NULL, // 163 + NULL, // 164 + NULL, // 165 + NULL, // 166 + NULL, // 167 + NULL, // 168 + NULL, // 169 + NULL, // 170 + NULL, // 171 + NULL, // 172 + NULL, // 173 + NULL, // 174 + NULL, // 175 + NULL, // 176 + NULL, // 177 + NULL, // 178 + NULL, // 179 + NULL, // 180 + NULL, // 181 + NULL, // 182 + NULL, // 183 + NULL, // 184 + NULL, // 185 + NULL, // 186 + NULL, // 187 + NULL, // 188 + + "SAMPLER_FEEDBACK_MIN_MIP_OPAQUE", + "SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE", + "A4B4G4R4_UNORM", }; // -------------------------------------------------------------------------------------------------------------------------------- @@ -886,7 +970,7 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FormatExistsInHeader(DXGI_FORMAT Format LPCSTR D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetName(DXGI_FORMAT Format, bool bHideInternalFormats) { const UINT Index = GetDetailTableIndex( Format ); - if (UINT( -1 ) == Index || (bHideInternalFormats && GetFormatDetail( Format )->bInternal)) + if (UINT( -1 ) == Index || (bHideInternalFormats && GetFormatDetail( Format )->bInternal) || !s_FormatNames[Index]) { return "Unrecognized"; } @@ -1002,6 +1086,11 @@ HRESULT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateResourceSize( _Out_writes_opt_(subresources) D3D12_MEMCPY_DEST *pDst) { UINT tableIndex = GetDetailTableIndexNoThrow( format ); + if (tableIndex == UINT(-1)) + return E_INVALIDARG; + + totalByteSize = 0; + const FORMAT_DETAIL& formatDetail = s_FormatDetail[tableIndex]; bool fIsBlockCompressedFormat = IsBlockCompressFormat(format ); @@ -1069,7 +1158,7 @@ HRESULT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateResourceSize( { return INTSAFE_E_ARITHMETIC_OVERFLOW; } - SIZE_T subresourceByteSize = subDepth * depthPitch; + SIZE_T subresourceByteSize = SIZE_T(UINT64(subDepth) * UINT64(depthPitch)); if (pDst) { @@ -1319,6 +1408,34 @@ UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerStencil(DXGI_FORMAT Format) return 0; } +//--------------------------------------------------------------------------------------------------------------------------------- +// GetBitsPerDepth +UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerDepth(DXGI_FORMAT Format) +{ + const UINT Index = GetDetailTableIndexThrow( Format ); + if( (s_FormatDetail[Index].TypeLevel != D3DFTL_PARTIAL_TYPE) && + (s_FormatDetail[Index].TypeLevel != D3DFTL_FULL_TYPE) ) + { + return 0; + } + for( UINT comp = 0; comp < 4; comp++ ) + { + D3D_FORMAT_COMPONENT_NAME name = D3DFCN_D; + switch(comp) + { + case 0: name = s_FormatDetail[Index].ComponentName0; break; + case 1: name = s_FormatDetail[Index].ComponentName1; break; + case 2: name = s_FormatDetail[Index].ComponentName2; break; + case 3: name = s_FormatDetail[Index].ComponentName3; break; + } + if( name == D3DFCN_D ) + { + return s_FormatDetail[Index].BitsPerComponent[comp]; + } + } + return 0; +} + //--------------------------------------------------------------------------------------------------------------------------------- // GetFormatReturnTypes void D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetFormatReturnTypes( @@ -1378,6 +1495,16 @@ UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetNumComponentsInFormat( DXGI_FORMAT return n; } +//--------------------------------------------------------------------------------------------------------------------------------- +// GetMinNumComponentsInFormats +UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetMinNumComponentsInFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB) +{ + UINT NumComponentsFormatA = GetNumComponentsInFormat(FormatA); + UINT NumComponentsFormatB = GetNumComponentsInFormat(FormatB); + UINT NumComponents = NumComponentsFormatA < NumComponentsFormatB ? NumComponentsFormatA : NumComponentsFormatB; + return NumComponents; +} + //--------------------------------------------------------------------------------------------------------------------------------- // Sequential2AbsoluteComponentIndex UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Sequential2AbsoluteComponentIndex( DXGI_FORMAT Format, UINT SequentialComponentIndex) @@ -1403,7 +1530,7 @@ UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Sequential2AbsoluteComponentIndex( DXGI n++; } } - return UINT(-1); + return UINT( -1 ); } //--------------------------------------------------------------------------------------------------------------------------------- @@ -1465,14 +1592,18 @@ D3D_FORMAT_LAYOUT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetLayout(DXGI_FORMAT Form // GetComponentName D3D_FORMAT_COMPONENT_NAME D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetComponentName(DXGI_FORMAT Format, UINT AbsoluteComponentIndex) { - D3D_FORMAT_COMPONENT_NAME name; + D3D_FORMAT_COMPONENT_NAME name = {}; switch( AbsoluteComponentIndex ) { case 0: name = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentName0; break; case 1: name = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentName1; break; case 2: name = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentName2; break; case 3: name = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentName3; break; - default: throw E_FAIL; +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) + default: throw std::invalid_argument("AbsoluteComponentIndex"); +#else + default: break; +#endif } return name; } @@ -1482,7 +1613,11 @@ UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerComponent(DXGI_FORMAT Format, { if( AbsoluteComponentIndex > 3 ) { - throw E_FAIL; +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) + throw std::invalid_argument("AbsoluteComponentIndex"); +#else + return UINT( -1 ); +#endif } return s_FormatDetail[GetDetailTableIndexNoThrow( Format )].BitsPerComponent[AbsoluteComponentIndex]; } @@ -1499,7 +1634,11 @@ D3D_FORMAT_COMPONENT_INTERPRETATION D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetForma case 1: interp = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentInterpretation1; break; case 2: interp = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentInterpretation2; break; case 3: interp = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentInterpretation3; break; -// default: throw E_FAIL; +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) + default: throw std::invalid_argument("AbsoluteComponentIndex"); +#else + default: break; +#endif } return interp; } @@ -1541,13 +1680,15 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FamilySupportsStencil(DXGI_FORMAT Forma //--------------------------------------------------------------------------------------------------------------------------------- // GetDetailTableIndexThrow -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexThrow(DXGI_FORMAT Format) +UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexThrow(DXGI_FORMAT Format) { UINT Index = GetDetailTableIndex( Format ); +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) if(UINT( -1 ) == Index ) { - throw E_FAIL; + throw std::invalid_argument("Format"); } +#endif return Index; } @@ -2367,7 +2508,7 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::IsSupportedTextureDisplayableFormat //--------------------------------------------------------------------------------------------------------------------------------- bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FloatAndNotFloatFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB) { - UINT NumComponents = (std::min)(GetNumComponentsInFormat(FormatA), GetNumComponentsInFormat(FormatB)); + UINT NumComponents = GetMinNumComponentsInFormats(FormatA, FormatB); for (UINT c = 0; c < NumComponents; c++) { D3D_FORMAT_COMPONENT_INTERPRETATION fciA = GetFormatComponentInterpretation(FormatA, c); @@ -2383,7 +2524,7 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FloatAndNotFloatFormats(DXGI_FORMAT Fo //--------------------------------------------------------------------------------------------------------------------------------- bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SNORMAndUNORMFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB) { - UINT NumComponents = (std::min)(GetNumComponentsInFormat(FormatA), GetNumComponentsInFormat(FormatB)); + UINT NumComponents = GetMinNumComponentsInFormats(FormatA, FormatB); for (UINT c = 0; c < NumComponents; c++) { D3D_FORMAT_COMPONENT_INTERPRETATION fciA = GetFormatComponentInterpretation(FormatA, c); @@ -2424,6 +2565,20 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SNORMAndUNORMFormats(DXGI_FORMAT Forma return Format == DXGI_FORMAT_NV12; } +//--------------------------------------------------------------------------------------------------------------------------------- + bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SupportsDepth(DXGI_FORMAT Format) + { + // If the number of bits associated with depth in the format is greater then 0, then the format supports depth + return (GetComponentName(Format, 0) == D3DFCN_D); + } + + //--------------------------------------------------------------------------------------------------------------------------------- + bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SupportsStencil(DXGI_FORMAT Format) + { + // If the number of bits associated with stencil in the format is greater then 0, then the format supports stencil + return GetBitsPerStencil(Format) > 0; + } + #undef R #undef G #undef B diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/distributable files.txt b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/distributable files.txt similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/distributable files.txt rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/distributable files.txt diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/icon.png b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/icon.png similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/icon.png rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/icon.png diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/package/services/metadata/core-properties/19145efd4cee4ce78be56fa2e9c5daf0.psmdcp b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/package/services/metadata/core-properties/52acf83f4828402bacbdede3da786d5e.psmdcp similarity index 94% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/package/services/metadata/core-properties/19145efd4cee4ce78be56fa2e9c5daf0.psmdcp rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/package/services/metadata/core-properties/52acf83f4828402bacbdede3da786d5e.psmdcp index f8c0cba..c6865e2 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/package/services/metadata/core-properties/19145efd4cee4ce78be56fa2e9c5daf0.psmdcp +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.615.0/package/services/metadata/core-properties/52acf83f4828402bacbdede3da786d5e.psmdcp @@ -3,7 +3,7 @@ Microsoft DirectX 12 Agility SDK Microsoft.Direct3D.D3D12 - 1.614.1 + 1.615.0 DirectX Direct3D D3D12 Direct3D12 DirectX12 Agility NuGet, Version=6.4.0.123, Culture=neutral, PublicKeyToken=31bf3856ad364e35;Microsoft Windows NT 10.0.20348.0;.NET Framework 4.7.2 \ No newline at end of file diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/D3D12Core.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/D3D12Core.dll deleted file mode 100644 index 63d6add..0000000 Binary files a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/D3D12Core.dll and /dev/null differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/d3d12SDKLayers.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/d3d12SDKLayers.dll deleted file mode 100644 index 698403e..0000000 Binary files a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/d3d12SDKLayers.dll and /dev/null differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/.signature.p7s b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/.signature.p7s similarity index 73% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/.signature.p7s rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/.signature.p7s index bd84856..96d166c 100644 Binary files a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/.signature.p7s and b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/.signature.p7s differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/LICENSE-CODE.txt b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/LICENSE-CODE.txt similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/LICENSE-CODE.txt rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/LICENSE-CODE.txt diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/LICENSE.txt b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/LICENSE.txt similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/LICENSE.txt rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/LICENSE.txt diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/Microsoft.Direct3D.D3D12.nuspec b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/Microsoft.Direct3D.D3D12.nuspec similarity index 93% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/Microsoft.Direct3D.D3D12.nuspec rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/Microsoft.Direct3D.D3D12.nuspec index 1368fa0..74cefdd 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/Microsoft.Direct3D.D3D12.nuspec +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/Microsoft.Direct3D.D3D12.nuspec @@ -2,7 +2,7 @@ Microsoft.Direct3D.D3D12 - 1.715.1-preview + 1.716.0-preview Microsoft.Direct3D.D3D12 Microsoft Direct3D,Microsoft diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/README.md b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/README.md similarity index 70% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/README.md rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/README.md index e377662..7a59a0a 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/README.md +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/README.md @@ -12,13 +12,64 @@ The included licenses apply to the following files: - **LICENSE-CODE.txt** : applies to all files under `build/native/include/` ## Changelog - -### Version 1.614.1 -- Minor work graph and generic program validation fixes +### Version 1.716.0 +- Preview of Tight Alignment +- Mesh Nodes in work graphs support disabled +- Video Encode new features: + - Subregion notifications: Slice/tile partial encoding and async completion signaling + - Dirty regions: Configurable skip encoding for frame regions + - Motion vector hints provided externally to the encoder + - Enhanced frame/block statistics per encoded frame + - HEVC 4:2:2/4:4:4 profiles support + - Readable DPB reconstructed pictures + - Input ID3D12Resource QP Map + +### Version 1.715.0 +- Preview of mesh nodes in work graphs (only available for 1.715) + +### Version 1.714.0 +- Preview release of DirectSR + - Supports both native and built-in Super Resolution techniques ("variants") ### Version 1.614.0 - Enabled R9G9B9E5_SHAREDEXP format for Render Target and Unordered Access Views +### Version 1.613.3 + +- Same as 1.613.2, with minor updates shown at the end of this list: +- Work Graphs +- Generic Programs in State objects +- Shader Model 6.8 + - Work Graphs support + - Start Vertex/Instance Location + - Wave Size Range + - Expanded Comparison Sampling +- GPU Upload Heaps (requires preview or future OS, or current OS in developer mode) +- Incrementing Constants in ExecuteIndirect +- Minor updates for .3: + - Honor root signature associations added to export in collections when the export is imported into generic program in an executable state object. + - Propagate root signatures to exports that have bindings and no root signatures within the scope of a generic program, like what happens with PSOs. + - Other generic programs related bug fixes, additional validation and optimizations. + - For state objects, minor fixes to subobject association logic in edge cases involving collections to more precisely match spec wording. + - GPU Upload Heaps can now be used with a current OS in developer mode, in addition to preview and future OS that don't require developer mode. + +### Version 1.613.2 + +- Same as 1.613.1, with minor updates shown at the end of this list: +- Work Graphs +- Generic Programs in State objects +- Shader Model 6.8 + - Work Graphs support + - Start Vertex/Instance Location + - Wave Size Range + - Expanded Comparison Sampling +- GPU Upload Heaps (requires preview or future OS) +- Incrementing Constants in ExecuteIndirect +- Minor updates for .2: + - Close validation hole: Prevent use of features in incompatible state object types, such as defining generic program components (like rast state) in a raytracing pipeline. + - Debug layer fixes around lifetime management of program identifiers (e.g. the handles for the new generic programs) + - ExecuteIndirect validation was too strict: buffer size only needs to be big enough for the number of commands * stride, _minus the unused space at end of last command_ + ### Version 1.613.1 - Same as 1.613.0, with minor updates shown at the end of this list: diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/[Content_Types].xml b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/[Content_Types].xml similarity index 98% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/[Content_Types].xml rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/[Content_Types].xml index ebd2241..e6442b7 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/[Content_Types].xml +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/[Content_Types].xml @@ -2,18 +2,18 @@ - - - - - + - - + + + + + + \ No newline at end of file diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/_rels/.rels b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/_rels/.rels similarity index 80% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/_rels/.rels rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/_rels/.rels index c17814f..dffbed3 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/_rels/.rels +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/_rels/.rels @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/Microsoft.Direct3D.D3D12.Rules.Project.xml b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/Microsoft.Direct3D.D3D12.Rules.Project.xml similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/Microsoft.Direct3D.D3D12.Rules.Project.xml rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/Microsoft.Direct3D.D3D12.Rules.Project.xml diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/Microsoft.Direct3D.D3D12.props b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/Microsoft.Direct3D.D3D12.props similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/Microsoft.Direct3D.D3D12.props rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/Microsoft.Direct3D.D3D12.props diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/Microsoft.Direct3D.D3D12.targets b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/Microsoft.Direct3D.D3D12.targets similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/Microsoft.Direct3D.D3D12.targets rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/Microsoft.Direct3D.D3D12.targets diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/D3D12Core.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/D3D12Core.dll new file mode 100644 index 0000000..d3caa13 Binary files /dev/null and b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/D3D12Core.dll differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/DirectSR.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/DirectSR.dll similarity index 67% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/DirectSR.dll rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/DirectSR.dll index 8aa4470..374e017 100644 Binary files a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/bin/x64/DirectSR.dll and b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/DirectSR.dll differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/d3d12SDKLayers.dll b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/d3d12SDKLayers.dll new file mode 100644 index 0000000..c2e5c15 Binary files /dev/null and b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/bin/x64/d3d12SDKLayers.dll differ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/D3D12TokenizedProgramFormat.hpp b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/D3D12TokenizedProgramFormat.hpp similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/D3D12TokenizedProgramFormat.hpp rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/D3D12TokenizedProgramFormat.hpp diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12.h similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12.h index cfeb1d6..16a7ba2 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12.h @@ -304,13 +304,6 @@ typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties; #endif /* __ID3D12WorkGraphProperties_FWD_DEFINED__ */ -#ifndef __ID3D12WorkGraphProperties1_FWD_DEFINED__ -#define __ID3D12WorkGraphProperties1_FWD_DEFINED__ -typedef interface ID3D12WorkGraphProperties1 ID3D12WorkGraphProperties1; - -#endif /* __ID3D12WorkGraphProperties1_FWD_DEFINED__ */ - - #ifndef __ID3D12Device5_FWD_DEFINED__ #define __ID3D12Device5_FWD_DEFINED__ typedef interface ID3D12Device5 ID3D12Device5; @@ -1158,7 +1151,7 @@ extern "C"{ #define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) -#define D3D12_PREVIEW_SDK_VERSION ( 715 ) +#define D3D12_PREVIEW_SDK_VERSION ( 716 ) #define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) @@ -2382,8 +2375,9 @@ enum D3D12_FEATURE D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, D3D12_FEATURE_HARDWARE_COPY = 52, D3D12_FEATURE_D3D12_OPTIONS21 = 53, - D3D12_FEATURE_D3D12_OPTIONS22 = 54, - D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56 + D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54, + D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56, + D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57 } D3D12_FEATURE; typedef @@ -2945,10 +2939,17 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 _Out_ BOOL ExtendedCommandInfoSupported; } D3D12_FEATURE_DATA_D3D12_OPTIONS21; -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS22 +typedef +enum D3D12_TIGHT_ALIGNMENT_TIER + { + D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED = 0, + D3D12_TIGHT_ALIGNMENT_TIER_1 = ( D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED + 1 ) + } D3D12_TIGHT_ALIGNMENT_TIER; + +typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT { - _Out_ BOOL TightAlignmentSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS22; + _Out_ D3D12_TIGHT_ALIGNMENT_TIER SupportTier; + } D3D12_FEATURE_DATA_TIGHT_ALIGNMENT; typedef struct D3D12_FEATURE_DATA_PREDICATION { @@ -2965,6 +2966,11 @@ typedef struct D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE _Out_ BOOL Supported; } D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE; +typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED + { + _Out_ BOOL Supported; + } D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED; + typedef struct D3D12_RESOURCE_ALLOCATION_INFO { UINT64 SizeInBytes; @@ -3085,7 +3091,7 @@ enum D3D12_RESOURCE_FLAGS D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100, - D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x200 + D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400 } D3D12_RESOURCE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS ) @@ -4459,6 +4465,20 @@ HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer( _In_ REFIID pRootSignatureDeserializerInterface, _Out_ void** ppRootSignatureDeserializer); +typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)( + _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, + _In_ SIZE_T SrcDataSizeInBytes, + _In_ LPCWSTR RootSignatureSubobjectName, + _In_ REFIID pRootSignatureDeserializerInterface, + _Out_ void** ppRootSignatureDeserializer); + +HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary( + _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, + _In_ SIZE_T SrcDataSizeInBytes, + _In_opt_ LPCWSTR RootSignatureSubobjectName, + _In_ REFIID pRootSignatureDeserializerInterface, + _Out_ void** ppRootSignatureDeserializer); + typedef struct D3D12_CPU_DESCRIPTOR_HANDLE { SIZE_T ptr; @@ -14239,236 +14259,7 @@ EXTERN_C const IID IID_ID3D12WorkGraphProperties; #endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */ -#ifndef __ID3D12WorkGraphProperties1_INTERFACE_DEFINED__ -#define __ID3D12WorkGraphProperties1_INTERFACE_DEFINED__ - -/* interface ID3D12WorkGraphProperties1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12WorkGraphProperties1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5490ef66-165f-4b3f-9658-74e5c6d2e1d0") - ID3D12WorkGraphProperties1 : public ID3D12WorkGraphProperties - { - public: - virtual void STDMETHODCALLTYPE SetMaximumInputRecords( - UINT WorkGraphIndex, - UINT MaxRecords, - UINT MaxNodeInputs) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12WorkGraphProperties1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12WorkGraphProperties1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12WorkGraphProperties1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12WorkGraphProperties1 * This); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumWorkGraphs) - UINT ( STDMETHODCALLTYPE *GetNumWorkGraphs )( - ID3D12WorkGraphProperties1 * This); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetProgramName) - LPCWSTR ( STDMETHODCALLTYPE *GetProgramName )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphIndex) - UINT ( STDMETHODCALLTYPE *GetWorkGraphIndex )( - ID3D12WorkGraphProperties1 * This, - LPCWSTR pProgramName); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumNodes) - UINT ( STDMETHODCALLTYPE *GetNumNodes )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeID) -#if !defined(_WIN32) - D3D12_NODE_ID ( STDMETHODCALLTYPE *GetNodeID )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - UINT NodeIndex); - -#else - D3D12_NODE_ID *( STDMETHODCALLTYPE *GetNodeID )( - ID3D12WorkGraphProperties1 * This, - D3D12_NODE_ID * RetVal, - UINT WorkGraphIndex, - UINT NodeIndex); - -#endif - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeIndex) - UINT ( STDMETHODCALLTYPE *GetNodeIndex )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - D3D12_NODE_ID NodeID); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeLocalRootArgumentsTableIndex) - UINT ( STDMETHODCALLTYPE *GetNodeLocalRootArgumentsTableIndex )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - UINT NodeIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumEntrypoints) - UINT ( STDMETHODCALLTYPE *GetNumEntrypoints )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointID) -#if !defined(_WIN32) - D3D12_NODE_ID ( STDMETHODCALLTYPE *GetEntrypointID )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - UINT EntrypointIndex); - -#else - D3D12_NODE_ID *( STDMETHODCALLTYPE *GetEntrypointID )( - ID3D12WorkGraphProperties1 * This, - D3D12_NODE_ID * RetVal, - UINT WorkGraphIndex, - UINT EntrypointIndex); - -#endif - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointIndex) - UINT ( STDMETHODCALLTYPE *GetEntrypointIndex )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - D3D12_NODE_ID NodeID); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordSizeInBytes) - UINT ( STDMETHODCALLTYPE *GetEntrypointRecordSizeInBytes )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - UINT EntrypointIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphMemoryRequirements) - void ( STDMETHODCALLTYPE *GetWorkGraphMemoryRequirements )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordAlignmentInBytes) - UINT ( STDMETHODCALLTYPE *GetEntrypointRecordAlignmentInBytes )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - UINT EntrypointIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties1, SetMaximumInputRecords) - void ( STDMETHODCALLTYPE *SetMaximumInputRecords )( - ID3D12WorkGraphProperties1 * This, - UINT WorkGraphIndex, - UINT MaxRecords, - UINT MaxNodeInputs); - - END_INTERFACE - } ID3D12WorkGraphProperties1Vtbl; - - interface ID3D12WorkGraphProperties1 - { - CONST_VTBL struct ID3D12WorkGraphProperties1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12WorkGraphProperties1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12WorkGraphProperties1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12WorkGraphProperties1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12WorkGraphProperties1_GetNumWorkGraphs(This) \ - ( (This)->lpVtbl -> GetNumWorkGraphs(This) ) - -#define ID3D12WorkGraphProperties1_GetProgramName(This,WorkGraphIndex) \ - ( (This)->lpVtbl -> GetProgramName(This,WorkGraphIndex) ) - -#define ID3D12WorkGraphProperties1_GetWorkGraphIndex(This,pProgramName) \ - ( (This)->lpVtbl -> GetWorkGraphIndex(This,pProgramName) ) - -#define ID3D12WorkGraphProperties1_GetNumNodes(This,WorkGraphIndex) \ - ( (This)->lpVtbl -> GetNumNodes(This,WorkGraphIndex) ) -#if !defined(_WIN32) - -#define ID3D12WorkGraphProperties1_GetNodeID(This,WorkGraphIndex,NodeIndex) \ - ( (This)->lpVtbl -> GetNodeID(This,WorkGraphIndex,NodeIndex) ) -#else -#define ID3D12WorkGraphProperties1_GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) \ - ( (This)->lpVtbl -> GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) ) -#endif - -#define ID3D12WorkGraphProperties1_GetNodeIndex(This,WorkGraphIndex,NodeID) \ - ( (This)->lpVtbl -> GetNodeIndex(This,WorkGraphIndex,NodeID) ) - -#define ID3D12WorkGraphProperties1_GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) \ - ( (This)->lpVtbl -> GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) ) - -#define ID3D12WorkGraphProperties1_GetNumEntrypoints(This,WorkGraphIndex) \ - ( (This)->lpVtbl -> GetNumEntrypoints(This,WorkGraphIndex) ) -#if !defined(_WIN32) - -#define ID3D12WorkGraphProperties1_GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) \ - ( (This)->lpVtbl -> GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) ) -#else -#define ID3D12WorkGraphProperties1_GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) \ - ( (This)->lpVtbl -> GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) ) -#endif - -#define ID3D12WorkGraphProperties1_GetEntrypointIndex(This,WorkGraphIndex,NodeID) \ - ( (This)->lpVtbl -> GetEntrypointIndex(This,WorkGraphIndex,NodeID) ) - -#define ID3D12WorkGraphProperties1_GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) \ - ( (This)->lpVtbl -> GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) ) - -#define ID3D12WorkGraphProperties1_GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) \ - ( (This)->lpVtbl -> GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) ) - -#define ID3D12WorkGraphProperties1_GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) \ - ( (This)->lpVtbl -> GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) ) - - -#define ID3D12WorkGraphProperties1_SetMaximumInputRecords(This,WorkGraphIndex,MaxRecords,MaxNodeInputs) \ - ( (This)->lpVtbl -> SetMaximumInputRecords(This,WorkGraphIndex,MaxRecords,MaxNodeInputs) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12WorkGraphProperties1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0037 */ +/* interface __MIDL_itf_d3d12_0000_0036 */ /* [local] */ typedef @@ -15090,8 +14881,8 @@ enum D3D12_HIT_KIND -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec; #ifndef __ID3D12Device5_INTERFACE_DEFINED__ #define __ID3D12Device5_INTERFACE_DEFINED__ @@ -15921,7 +15712,7 @@ EXTERN_C const IID IID_ID3D12Device5; #endif /* __ID3D12Device5_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0038 */ +/* interface __MIDL_itf_d3d12_0000_0037 */ /* [local] */ typedef @@ -15975,7 +15766,8 @@ enum D3D12_AUTO_BREADCRUMB_OP D3D12_AUTO_BREADCRUMB_OP_BARRIER = 45, D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = 46, D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = 47, - D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48 + D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = 52 } D3D12_AUTO_BREADCRUMB_OP; typedef struct D3D12_AUTO_BREADCRUMB_NODE @@ -16181,8 +15973,8 @@ typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA -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; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_s_ifspec; #ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ #define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ @@ -16845,7 +16637,7 @@ EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2; #endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0044 */ +/* interface __MIDL_itf_d3d12_0000_0043 */ /* [local] */ typedef @@ -16868,8 +16660,8 @@ enum D3D12_MEASUREMENTS_ACTION -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_s_ifspec; #ifndef __ID3D12Device6_INTERFACE_DEFINED__ #define __ID3D12Device6_INTERFACE_DEFINED__ @@ -17678,7 +17470,7 @@ EXTERN_C const IID IID_ID3D12Device6; #endif /* __ID3D12Device6_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0045 */ +/* interface __MIDL_itf_d3d12_0000_0044 */ /* [local] */ DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82); @@ -17704,8 +17496,8 @@ typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0045_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0045_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_s_ifspec; #ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ #define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ @@ -21014,7 +20806,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList3; #endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0052 */ +/* interface __MIDL_itf_d3d12_0000_0051 */ /* [local] */ typedef @@ -21128,8 +20920,8 @@ enum D3D12_RENDER_PASS_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_s_ifspec; #ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__ #define __ID3D12MetaCommand_INTERFACE_DEFINED__ @@ -21265,7 +21057,7 @@ EXTERN_C const IID IID_ID3D12MetaCommand; #endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0053 */ +/* interface __MIDL_itf_d3d12_0000_0052 */ /* [local] */ typedef struct D3D12_DISPATCH_RAYS_DESC @@ -21375,8 +21167,8 @@ typedef struct D3D12_DISPATCH_GRAPH_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ @@ -22225,7 +22017,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList4; #endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0054 */ +/* interface __MIDL_itf_d3d12_0000_0053 */ /* [local] */ typedef @@ -22427,8 +22219,8 @@ typedef struct D3D12_BARRIER_GROUP -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_s_ifspec; #ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ #define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ @@ -22628,7 +22420,7 @@ EXTERN_C const IID IID_ID3D12ShaderCacheSession; #endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0055 */ +/* interface __MIDL_itf_d3d12_0000_0054 */ /* [local] */ typedef @@ -22652,8 +22444,8 @@ enum D3D12_SHADER_CACHE_CONTROL_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec; #ifndef __ID3D12Device9_INTERFACE_DEFINED__ #define __ID3D12Device9_INTERFACE_DEFINED__ @@ -29370,7 +29162,7 @@ EXTERN_C const IID IID_ID3D12DeviceTools; #endif /* __ID3D12DeviceTools_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0067 */ +/* interface __MIDL_itf_d3d12_0000_0066 */ /* [local] */ typedef @@ -29384,8 +29176,8 @@ enum D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0066_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0066_v0_0_s_ifspec; #ifndef __ID3D12DeviceTools1_INTERFACE_DEFINED__ #define __ID3D12DeviceTools1_INTERFACE_DEFINED__ @@ -29488,7 +29280,7 @@ EXTERN_C const IID IID_ID3D12DeviceTools1; #endif /* __ID3D12DeviceTools1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0068 */ +/* interface __MIDL_itf_d3d12_0000_0067 */ /* [local] */ typedef struct D3D12_SUBRESOURCE_DATA @@ -29606,6 +29398,21 @@ static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb } }; // -------------------------------------------------------------------------------------------------------------------------------- +// Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS +// +// Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS, +// driver support is still required for this feature. +// +// Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array. +// +// -------------------------------------------------------------------------------------------------------------------------------- +static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */ + 0x45dc51f3, + 0x767f, + 0x4588, + { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae } +}; +// -------------------------------------------------------------------------------------------------------------------------------- // Experimental Feature: D3D12StateObjectsExperiment // // Use with D3D12EnableExperimentalFeatures to enable preview features related to state objects. @@ -29638,8 +29445,8 @@ HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_O -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_s_ifspec; #ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__ #define __ID3D12SDKConfiguration_INTERFACE_DEFINED__ @@ -29834,7 +29641,7 @@ EXTERN_C const IID IID_ID3D12SDKConfiguration1; #endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0070 */ +/* interface __MIDL_itf_d3d12_0000_0069 */ /* [local] */ typedef @@ -29849,8 +29656,8 @@ enum D3D12_DEVICE_FACTORY_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0069_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0069_v0_0_s_ifspec; #ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__ #define __ID3D12DeviceFactory_INTERFACE_DEFINED__ @@ -30011,7 +29818,7 @@ EXTERN_C const IID IID_ID3D12DeviceFactory; #endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0071 */ +/* interface __MIDL_itf_d3d12_0000_0070 */ /* [local] */ typedef @@ -30042,8 +29849,8 @@ typedef struct D3D12_DEVICE_CONFIGURATION_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec; #ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ #define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ @@ -30331,7 +30138,7 @@ EXTERN_C const IID IID_ID3D12DeviceConfiguration1; #endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0073 */ +/* interface __MIDL_itf_d3d12_0000_0072 */ /* [local] */ typedef @@ -30371,8 +30178,8 @@ enum D3D12_SHADING_RATE_COMBINER -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0072_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0072_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ @@ -31207,7 +31014,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList5; #endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0074 */ +/* interface __MIDL_itf_d3d12_0000_0073 */ /* [local] */ typedef struct D3D12_DISPATCH_MESH_ARGUMENTS @@ -31219,8 +31026,8 @@ typedef struct D3D12_DISPATCH_MESH_ARGUMENTS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ @@ -36705,7 +36512,7 @@ EXTERN_C const IID IID_ID3D12GBVDiagnostics; #endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0082 */ +/* interface __MIDL_itf_d3d12_0000_0081 */ /* [local] */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ @@ -36746,7 +36553,6 @@ DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0 DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60); DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38); DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57); -DEFINE_GUID(IID_ID3D12WorkGraphProperties1,0x5490ef66,0x165f,0x4b3f,0x96,0x58,0x74,0xe5,0xc6,0xd2,0xe1,0xd0); DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d); DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63); DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B); @@ -36794,8 +36600,8 @@ DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0 DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee); -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0082_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0082_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0081_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0081_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12.idl similarity index 96% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12.idl index 797b919..35bedeb 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12.idl +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12.idl @@ -293,7 +293,7 @@ const UINT D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff; const UINT D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff8; const UINT D3D12_PACKED_TILE = 0xffffffff; const UINT D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15; -const UINT D3D12_PREVIEW_SDK_VERSION = 715; +const UINT D3D12_PREVIEW_SDK_VERSION = 716; const UINT D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 16; const UINT D3D12_PS_CS_UAV_REGISTER_COMPONENTS = 1; const UINT D3D12_PS_CS_UAV_REGISTER_COUNT = 8; @@ -1045,8 +1045,9 @@ typedef enum D3D12_FEATURE D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, D3D12_FEATURE_HARDWARE_COPY = 52, D3D12_FEATURE_D3D12_OPTIONS21 = 53, - D3D12_FEATURE_D3D12_OPTIONS22 = 54, + D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54, D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56, + D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57, } D3D12_FEATURE; typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT @@ -1629,10 +1630,16 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 [annotation("_Out_")] BOOL ExtendedCommandInfoSupported; } D3D12_FEATURE_DATA_D3D12_OPTIONS21; -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS22 +typedef enum D3D12_TIGHT_ALIGNMENT_TIER { - [annotation("_Out_")] BOOL TightAlignmentSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS22; + D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED, + D3D12_TIGHT_ALIGNMENT_TIER_1 // Tight alignment of buffers supported +} D3D12_TIGHT_ALIGNMENT_TIER; + +typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT +{ + [annotation("_Out_")] D3D12_TIGHT_ALIGNMENT_TIER SupportTier; +} D3D12_FEATURE_DATA_TIGHT_ALIGNMENT; typedef struct D3D12_FEATURE_DATA_PREDICATION @@ -1650,6 +1657,11 @@ typedef struct D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE [annotation("_Out_")] BOOL Supported; } D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE; +typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED +{ + [annotation("_Out_")] BOOL Supported; +} D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED; + typedef struct D3D12_RESOURCE_ALLOCATION_INFO { UINT64 SizeInBytes; @@ -1767,7 +1779,7 @@ typedef enum D3D12_RESOURCE_FLAGS D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100, - D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x200, + D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400, } D3D12_RESOURCE_FLAGS; cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS )" ) @@ -3002,8 +3014,20 @@ cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes, cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) cpp_quote( "" ) - - +cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)(") +cpp_quote(" _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,") +cpp_quote(" _In_ SIZE_T SrcDataSizeInBytes,") +cpp_quote(" _In_ LPCWSTR RootSignatureSubobjectName,") +cpp_quote(" _In_ REFIID pRootSignatureDeserializerInterface,") +cpp_quote(" _Out_ void** ppRootSignatureDeserializer);") +cpp_quote("") +cpp_quote("HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(") +cpp_quote(" _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,") +cpp_quote(" _In_ SIZE_T SrcDataSizeInBytes,") +cpp_quote(" _In_opt_ LPCWSTR RootSignatureSubobjectName,") +cpp_quote(" _In_ REFIID pRootSignatureDeserializerInterface,") +cpp_quote(" _Out_ void** ppRootSignatureDeserializer);") +cpp_quote("") typedef struct D3D12_CPU_DESCRIPTOR_HANDLE { @@ -4410,12 +4434,6 @@ interface ID3D12WorkGraphProperties : IUnknown UINT GetEntrypointRecordAlignmentInBytes(UINT WorkGraphIndex, UINT EntrypointIndex); } -[uuid(5490ef66-165f-4b3f-9658-74e5c6d2e1d0), object, local, pointer_default(unique)] -interface ID3D12WorkGraphProperties1 - : ID3D12WorkGraphProperties -{ - void SetMaximumInputRecords(UINT WorkGraphIndex, UINT MaxRecords, UINT MaxNodeInputs); -} typedef enum D3D12_STATE_SUBOBJECT_TYPE { @@ -5118,6 +5136,7 @@ typedef enum D3D12_AUTO_BREADCRUMB_OP D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = 46, D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = 47, D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = 52, } D3D12_AUTO_BREADCRUMB_OP; typedef struct D3D12_AUTO_BREADCRUMB_NODE @@ -6340,6 +6359,21 @@ cpp_quote(" 0x4f56,") cpp_quote(" { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }") cpp_quote("};") cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") +cpp_quote("// Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS") +cpp_quote("//") +cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS, ") +cpp_quote("// driver support is still required for this feature.") +cpp_quote("//") +cpp_quote("// Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array.") +cpp_quote("//") +cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") +cpp_quote("static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */") +cpp_quote(" 0x45dc51f3,") +cpp_quote(" 0x767f,") +cpp_quote(" 0x4588,") +cpp_quote(" { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae }") +cpp_quote("};") +cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") cpp_quote("// Experimental Feature: D3D12StateObjectsExperiment") cpp_quote("//") cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable preview features related to state objects.") @@ -6353,7 +6387,6 @@ cpp_quote(" 0xa15a,") cpp_quote(" 0x42c1,") cpp_quote(" {0x96, 0x05, 0x4b, 0xd9, 0x99, 0x9a, 0x61, 0xaf}") cpp_quote("};") - cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") cpp_quote("// D3D12GetInterface") cpp_quote("//") @@ -6676,7 +6709,6 @@ cpp_quote( "DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea cpp_quote( "DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12WorkGraphProperties1,0x5490ef66,0x165f,0x4b3f,0x96,0x58,0x74,0xe5,0xc6,0xd2,0xe1,0xd0);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B);" ) diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12compatibility.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12compatibility.h similarity index 87% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12compatibility.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12compatibility.h index 98eb3b5..13bdada 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12compatibility.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12compatibility.h @@ -108,6 +108,13 @@ typedef interface DirectMLPyTorchCreatorID DirectMLPyTorchCreatorID; #endif /* __DirectMLPyTorchCreatorID_FWD_DEFINED__ */ +#ifndef __DirectMLWebNNCreatorID_FWD_DEFINED__ +#define __DirectMLWebNNCreatorID_FWD_DEFINED__ +typedef interface DirectMLWebNNCreatorID DirectMLWebNNCreatorID; + +#endif /* __DirectMLWebNNCreatorID_FWD_DEFINED__ */ + + /* header files for imported files */ #include "oaidl.h" #include "ocidl.h" @@ -788,7 +795,79 @@ EXTERN_C const IID IID_DirectMLPyTorchCreatorID; #endif /* __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12compatibility_0000_0008 */ +#ifndef __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ +#define __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ + +/* interface DirectMLWebNNCreatorID */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_DirectMLWebNNCreatorID; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("fdf01a76-1e11-450f-902b-74f04ea08094") + DirectMLWebNNCreatorID : public IUnknown + { + public: + }; + + +#else /* C style interface */ + + typedef struct DirectMLWebNNCreatorIDVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + DirectMLWebNNCreatorID * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + DirectMLWebNNCreatorID * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + DirectMLWebNNCreatorID * This); + + END_INTERFACE + } DirectMLWebNNCreatorIDVtbl; + + interface DirectMLWebNNCreatorID + { + CONST_VTBL struct DirectMLWebNNCreatorIDVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define DirectMLWebNNCreatorID_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define DirectMLWebNNCreatorID_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define DirectMLWebNNCreatorID_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12compatibility_0000_0009 */ /* [local] */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ @@ -801,10 +880,11 @@ DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x26,0x20,0xca DEFINE_GUID(IID_VulkanOn12CreatorID,0xbc806e01,0x3052,0x406c,0xa3,0xe8,0x9f,0xc0,0x7f,0x04,0x8f,0x98); DEFINE_GUID(IID_DirectMLTensorFlowCreatorID,0xcb7490ac,0x8a0f,0x44ec,0x9b,0x7b,0x6f,0x4c,0xaf,0xe8,0xe9,0xab); DEFINE_GUID(IID_DirectMLPyTorchCreatorID,0xaf029192,0xfba1,0x4b05,0x91,0x16,0x23,0x5e,0x06,0x56,0x03,0x54); +DEFINE_GUID(IID_DirectMLWebNNCreatorID,0xfdf01a76,0x1e11,0x450f,0x90,0x2b,0x74,0xf0,0x4e,0xa0,0x80,0x94); -extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0008_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0009_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0009_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12compatibility.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12compatibility.idl similarity index 92% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12compatibility.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12compatibility.idl index 37f2b14..516a149 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12compatibility.idl +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12compatibility.idl @@ -82,6 +82,9 @@ interface DirectMLTensorFlowCreatorID : IUnknown { }; [uuid(af029192-fba1-4b05-9116-235e06560354), object, local, pointer_default(unique)] interface DirectMLPyTorchCreatorID : IUnknown { }; +[uuid(fdf01a76-1e11-450f-902b-74f04ea08094), object, local, pointer_default(unique)] +interface DirectMLWebNNCreatorID : IUnknown { }; + cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") #pragma endregion @@ -94,3 +97,4 @@ cpp_quote( "DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x cpp_quote( "DEFINE_GUID(IID_VulkanOn12CreatorID,0xbc806e01,0x3052,0x406c,0xa3,0xe8,0x9f,0xc0,0x7f,0x04,0x8f,0x98);" ) cpp_quote( "DEFINE_GUID(IID_DirectMLTensorFlowCreatorID,0xcb7490ac,0x8a0f,0x44ec,0x9b,0x7b,0x6f,0x4c,0xaf,0xe8,0xe9,0xab);" ) cpp_quote( "DEFINE_GUID(IID_DirectMLPyTorchCreatorID,0xaf029192,0xfba1,0x4b05,0x91,0x16,0x23,0x5e,0x06,0x56,0x03,0x54);" ) +cpp_quote( "DEFINE_GUID(IID_DirectMLWebNNCreatorID,0xfdf01a76,0x1e11,0x450f,0x90,0x2b,0x74,0xf0,0x4e,0xa0,0x80,0x94);" ) diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12sdklayers.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12sdklayers.h similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12sdklayers.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12sdklayers.h index 8d96be6..a78b0fd 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12sdklayers.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12sdklayers.h @@ -999,7 +999,8 @@ enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE { D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS = 0, D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = ( D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS + 1 ) , - D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS + 1 ) + D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS + 1 ) , + D3D12_DEBUG_DEVICE_PARAMETER_BYTECODE_VALIDATION_MODE = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR + 1 ) } D3D12_DEBUG_DEVICE_PARAMETER_TYPE; typedef @@ -1046,6 +1047,15 @@ typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR FLOAT SlowdownFactor; } D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; +typedef +enum D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE + { + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED = 0, + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED = ( D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED + 1 ) , + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_ALL_BYTECODE = ( D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED + 1 ) , + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE_DEFAULT = D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED + } D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE; + extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_c_ifspec; @@ -3346,7 +3356,10 @@ enum D3D12_MESSAGE_ID D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INSTANCE_COUNT_ZERO = 1418, D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SET_BEFORE_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1419, D3D12_MESSAGE_ID_DIFFERENT_DESCRIPTOR_HEAP_SET_AFTER_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1420, - D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_DIFFERENT_DESCRIPTOR_HEAP_SET_AFTER_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG + 1 ) + D3D12_MESSAGE_ID_APPLICATION_SPECIFIC_DRIVER_STATE_NOT_SUPPORTED = 1421, + D3D12_MESSAGE_ID_RENDER_TARGET_OR_DEPTH_STENCIL_RESOUCE_NOT_INITIALIZED = 1422, + D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR = 1423, + D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR + 1 ) } D3D12_MESSAGE_ID; typedef struct D3D12_MESSAGE diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12sdklayers.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12sdklayers.idl similarity index 96% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12sdklayers.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12sdklayers.idl index f7d9036..f5b4474 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12sdklayers.idl +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12sdklayers.idl @@ -100,6 +100,7 @@ typedef enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS, D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS, D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR, + D3D12_DEBUG_DEVICE_PARAMETER_BYTECODE_VALIDATION_MODE } D3D12_DEBUG_DEVICE_PARAMETER_TYPE; typedef enum D3D12_DEBUG_FEATURE @@ -145,6 +146,15 @@ typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR FLOAT SlowdownFactor; } D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; +typedef enum D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE +{ + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED, + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED, + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_ALL_BYTECODE, + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE_DEFAULT = + D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED +} D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE; + [uuid(a9b71770-d099-4a65-a698-3dee10020f88), object, local, pointer_default(unique)] interface ID3D12DebugDevice1 : IUnknown @@ -1455,7 +1465,7 @@ typedef enum D3D12_MESSAGE_ID { D3D12_MESSAGE_ID_PROBABLE_PIX_EVENT_LEAK = 1383, D3D12_MESSAGE_ID_PIX_EVENT_UNDERFLOW = 1384, - + D3D12_MESSAGE_ID_RECREATEAT_INVALID_TARGET = 1385, D3D12_MESSAGE_ID_RECREATEAT_INSUFFICIENT_SUPPORT = 1386, @@ -1463,31 +1473,31 @@ typedef enum D3D12_MESSAGE_ID { D3D12_MESSAGE_ID_DISPATCH_GRAPH_INVALID = 1388, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_TARGET_FORMAT_INVALID = 1389, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_TARGET_DIMENSION_INVALID = 1390, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_SOURCE_COLOR_FORMAT_INVALID = 1391, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_SOURCE_DEPTH_FORMAT_INVALID = 1392, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXPOSURE_SCALE_FORMAT_INVALID = 1393, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_ENGINE_CREATE_FLAGS_INVALID = 1394, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_LOAD_FAILURE = 1395, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_ENGINE_CREATION_ERROR = 1396, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_UPSCALER_CREATION_ERROR = 1397, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_UPSCALER_EXECUTION_ERROR = 1398, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_REGION_INVALID = 1399, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_TIME_DELTA_INVALID = 1400, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_REQUIRED_TEXTURE_IS_NULL = 1401, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_MOTION_VECTORS_FORMAT_INVALID = 1402, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_FLAGS_INVALID = 1403, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_FORMAT_INVALID = 1404, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_EXPOSURE_SCALE_TEXTURE_SIZE_INVALID = 1405, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_VARIANT_INDEX_OUT_OF_BOUNDS = 1406, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_VARIANT_ID_NOT_FOUND = 1407, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_DUPLICATE_VARIANT_ID = 1408, - D3D12_MESSAGE_ID_DIRECTSR_OUT_OF_MEMORY = 1409, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_UNEXPECTED_TEXTURE_IS_IGNORED = 1410, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EVICT_UNDERFLOW = 1411, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_OPTIONAL_TEXTURE_IS_NULL = 1412, - D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_INVALID_CAMERA_JITTER = 1413, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_TARGET_FORMAT_INVALID = 1389, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_TARGET_DIMENSION_INVALID = 1390, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_SOURCE_COLOR_FORMAT_INVALID = 1391, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_SOURCE_DEPTH_FORMAT_INVALID = 1392, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXPOSURE_SCALE_FORMAT_INVALID = 1393, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_ENGINE_CREATE_FLAGS_INVALID = 1394, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_LOAD_FAILURE = 1395, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_ENGINE_CREATION_ERROR = 1396, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_UPSCALER_CREATION_ERROR = 1397, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_UPSCALER_EXECUTION_ERROR = 1398, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_REGION_INVALID = 1399, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_TIME_DELTA_INVALID = 1400, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_REQUIRED_TEXTURE_IS_NULL = 1401, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_MOTION_VECTORS_FORMAT_INVALID = 1402, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_FLAGS_INVALID = 1403, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_FORMAT_INVALID = 1404, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_EXPOSURE_SCALE_TEXTURE_SIZE_INVALID = 1405, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_VARIANT_INDEX_OUT_OF_BOUNDS = 1406, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_VARIANT_ID_NOT_FOUND = 1407, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_DUPLICATE_VARIANT_ID = 1408, + D3D12_MESSAGE_ID_DIRECTSR_OUT_OF_MEMORY = 1409, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_UNEXPECTED_TEXTURE_IS_IGNORED = 1410, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EVICT_UNDERFLOW = 1411, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_OPTIONAL_TEXTURE_IS_NULL = 1412, + D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_INVALID_CAMERA_JITTER = 1413, D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_WARNING = 1414, D3D12_MESSAGE_ID_GUID_TEXTURE_LAYOUT_UNSUPPORTED = 1415, D3D12_MESSAGE_ID_RESOLVE_ENCODER_INPUT_PARAM_LAYOUT_INVALID_PARAMETERS = 1416, @@ -1495,6 +1505,9 @@ typedef enum D3D12_MESSAGE_ID { D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INSTANCE_COUNT_ZERO = 1418, D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SET_BEFORE_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1419, D3D12_MESSAGE_ID_DIFFERENT_DESCRIPTOR_HEAP_SET_AFTER_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1420, + D3D12_MESSAGE_ID_APPLICATION_SPECIFIC_DRIVER_STATE_NOT_SUPPORTED = 1421, + D3D12_MESSAGE_ID_RENDER_TARGET_OR_DEPTH_STENCIL_RESOUCE_NOT_INITIALIZED = 1422, + D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR = 1423, D3D12_MESSAGE_ID_D3D12_MESSAGES_END } D3D12_MESSAGE_ID; diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12shader.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12shader.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12shader.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12shader.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12video.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12video.h similarity index 88% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12video.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12video.h index 3add252..701a595 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12video.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12video.h @@ -241,6 +241,13 @@ typedef interface ID3D12VideoEncodeCommandList3 ID3D12VideoEncodeCommandList3; #endif /* __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ */ +#ifndef __ID3D12VideoEncodeCommandList4_FWD_DEFINED__ +#define __ID3D12VideoEncodeCommandList4_FWD_DEFINED__ +typedef interface ID3D12VideoEncodeCommandList4 ID3D12VideoEncodeCommandList4; + +#endif /* __ID3D12VideoEncodeCommandList4_FWD_DEFINED__ */ + + /* header files for imported files */ #include "oaidl.h" #include "ocidl.h" @@ -340,7 +347,13 @@ enum D3D12_FEATURE_VIDEO D3D12_FEATURE_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = 44, D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS = 45, D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG = 46, - D3D12_FEATURE_VIDEO_ENCODER_SUPPORT1 = 47 + D3D12_FEATURE_VIDEO_ENCODER_SUPPORT1 = 47, + D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 = 48, + D3D12_FEATURE_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT = 49, + D3D12_FEATURE_VIDEO_ENCODER_QPMAP_INPUT = 50, + D3D12_FEATURE_VIDEO_ENCODER_DIRTY_REGIONS = 51, + D3D12_FEATURE_VIDEO_ENCODER_MOTION_SEARCH = 52, + D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 = 57 } D3D12_FEATURE_VIDEO; typedef @@ -7138,7 +7151,8 @@ enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION = 3, D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = 4, D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_GRID_PARTITION = 5, - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_CONFIGURABLE_GRID_PARTITION = 6 + D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_CONFIGURABLE_GRID_PARTITION = 6, + D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_AUTO = 7 } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE; typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE @@ -7206,7 +7220,10 @@ typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG typedef enum D3D12_VIDEO_ENCODER_HEAP_FLAGS { - D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 0 + D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 0, + D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS = 0x1, + D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_SINGLE_BUFFER = 0x2, + D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_DIRTY_REGIONS = 0x4 } D3D12_VIDEO_ENCODER_HEAP_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS) @@ -7450,7 +7467,12 @@ enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS D3D12_VIDEO_ENCODER_SUPPORT_FLAG_MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE = 0x1000, D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_EXTENSION1_SUPPORT = 0x2000, D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_QUALITY_VS_SPEED_AVAILABLE = 0x4000, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_READABLE_RECONSTRUCTED_PICTURE_LAYOUT_AVAILABLE = 0x8000 + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_READABLE_RECONSTRUCTED_PICTURE_LAYOUT_AVAILABLE = 0x8000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_QP_MAP_METADATA_AVAILABLE = 0x10000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_SATD_MAP_METADATA_AVAILABLE = 0x20000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_RC_BIT_ALLOCATION_MAP_METADATA_AVAILABLE = 0x40000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS_AVAILABLE = 0x80000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_SINGLE_BUFFER_AVAILABLE = 0x100000 } D3D12_VIDEO_ENCODER_SUPPORT_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS) @@ -7563,7 +7585,10 @@ enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = 0x100, D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200, D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000 + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_QPMAP_NOT_SUPPORTED = 0x2000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_DIRTY_REGIONS_NOT_SUPPORTED = 0x4000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_MOTION_SEARCH_NOT_SUPPORTED = 0x8000 } D3D12_VIDEO_ENCODER_VALIDATION_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS) @@ -8479,7 +8504,10 @@ typedef enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS { D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = 0x1 + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = 0x1, + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_QUANTIZATION_MATRIX_INPUT = 0x2, + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_DIRTY_REGIONS_INPUT = 0x4, + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_MOTION_VECTORS_INPUT = 0x8 } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS) @@ -9265,6 +9293,807 @@ EXTERN_C const IID IID_ID3D12VideoEncodeCommandList3; /* interface __MIDL_itf_d3d12video_0000_0027 */ /* [local] */ +typedef +enum D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS + { + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_NONE = 0, + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_QP_MAP = 0x1, + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_SATD_MAP = 0x2, + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_RC_BIT_ALLOCATION_MAP = 0x4 + } D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS ) +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 + { + UINT NodeIndex; + D3D12_VIDEO_ENCODER_CODEC Codec; + D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; + DXGI_FORMAT InputFormat; + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; + BOOL IsSupported; + UINT CompressedBitstreamBufferAccessAlignment; + UINT EncoderMetadataBufferAccessAlignment; + UINT MaxEncoderOutputMetadataBufferSize; + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; + D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataQPMapTextureDimensions; + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataSATDMapTextureDimensions; + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataBitAllocationMapTextureDimensions; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1; + +typedef +enum D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE + { + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER = 0, + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE = 1 + } D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE; + +typedef +enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE + { + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_DIRTY = 0, + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_SKIP = 1 + } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO + { + D3D12_VIDEO_ENCODER_CODEC Codec; + D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; + D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; + DXGI_FORMAT InputFormat; + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution; + D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; + D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; + } D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO; + +typedef +enum D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE + { + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_QUANTIZATION_MATRIX = 0, + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_DIRTY_REGIONS = 1, + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_MOTION_VECTORS = 2 + } D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE; + +typedef +enum D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE + { + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_FULL_SEARCH = 0, + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT = 1, + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT_LIMITED_DISTANCE = 2 + } D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT + { + UINT NodeIndex; + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + BOOL IsSupported; + UINT MapSourcePreferenceRanking; + UINT BlockSize; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT; + +typedef +enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS + { + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_NONE = 0, + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_REPEAT_FRAME = 0x1, + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS = 0x2, + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS_REQUIRE_FULL_ROW = 0x4 + } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS ) +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS + { + UINT NodeIndex; + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS SupportFlags; + UINT MapSourcePreferenceRanking; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS; + +typedef +enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION + { + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL = 0, + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL = 1, + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL = 2 + } D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION; + +typedef +enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS + { + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_NONE = 0, + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_FULL_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL ) , + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_HALF_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL ) , + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_QUARTER_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL ) + } D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS ) +typedef +enum D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS + { + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_NONE = 0, + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_SUPPORTED = 0x1, + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_MULTIPLE_HINTS = 0x2 + } D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS ) +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH + { + UINT NodeIndex; + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + BOOL BidirectionalRefFrameEnabled; + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; + UINT MaxMotionHints; + UINT MinDeviation; + UINT MaxDeviation; + UINT MapSourcePreferenceRanking; + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupport; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT + { + UINT NodeIndex; + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; + BOOL IsSupported; + UINT64 MaxResolvedBufferAllocationSize; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT; + +typedef struct D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION + { + BOOL Enabled; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + } D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP + { + UINT MapSourcePreferenceRanking; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP; + +typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION + { + BOOL Enabled; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; + } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS + { + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS DirtyRegionsSupportFlags; + UINT MapSourcePreferenceRanking; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS; + +typedef struct D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION + { + BOOL Enabled; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; + BOOL BidirectionalRefFrameEnabled; + } D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH + { + UINT MaxMotionHints; + UINT MinDeviation; + UINT MaxDeviation; + UINT MapSourcePreferenceRanking; + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupportFlags; + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 + { + UINT MaxSubregionsNumber; + UINT MaxIntraRefreshFrameDuration; + UINT SubregionBlockPixelsSize; + UINT QPMapRegionPixelsSize; + D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP QPMap; + D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS DirtyRegions; + D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH MotionSearch; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2 + { + UINT NodeIndex; + D3D12_VIDEO_ENCODER_CODEC Codec; + DXGI_FORMAT InputFormat; + D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; + D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; + D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; + D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; + D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; + UINT ResolutionsListCount; + const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList; + UINT MaxReferenceFramesInDPB; + D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; + D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; + D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; + D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; + _Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 *pResolutionDependentSupport; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; + UINT MaxQualityVsSpeed; + D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions; + D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch; + } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2; + +typedef struct D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO + { + BOOL FullFrameIdentical; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; + UINT NumDirtyRects; + _Field_size_full_(NumDirtyRects) RECT *pDirtyRects; + UINT SourceDPBFrameReference; + } D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO; + +typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS + { + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + union + { + ID3D12Resource *pOpaqueLayoutBuffer; + D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO *pCPUBuffer; + } ; + } D3D12_VIDEO_ENCODER_DIRTY_REGIONS; + +typedef struct D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP + { + ID3D12Resource *pOpaqueQuantizationMap; + } D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP; + +typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG + { + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; + UINT SearchDeviationLimit; + } D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG; + +typedef struct D3D12_VIDEO_ENCODER_MOVE_RECT + { + POINT SourcePoint; + RECT DestRect; + } D3D12_VIDEO_ENCODER_MOVE_RECT; + +typedef +enum D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS + { + D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_NONE = 0, + D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_MULTIPLE_HINTS = 0x1 + } D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS; + +typedef struct D3D12_VIDEO_ENCODER_MOVEREGION_INFO + { + UINT NumMoveRegions; + _Field_size_full_(NumMoveRegions) D3D12_VIDEO_ENCODER_MOVE_RECT *pMoveRegions; + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; + UINT SourceDPBFrameReference; + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; + D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS Flags; + } D3D12_VIDEO_ENCODER_MOVEREGION_INFO; + +typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS + { + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + union + { + ID3D12Resource *pOpaqueLayoutBuffer; + D3D12_VIDEO_ENCODER_MOVEREGION_INFO *pCPUBuffer; + } ; + } D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS; + +typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 + { + UINT IntraRefreshFrameIndex; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData; + D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames; + D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS MotionVectors; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS DirtyRects; + D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP QuantizationTextureMap; + } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1; + +typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 + { + D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 PictureControlDesc; + ID3D12Resource *pInputFrame; + UINT InputFrameSubresource; + UINT CurrentFrameBitstreamMetadataSize; + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; + } D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1; + +typedef +enum D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE + { + D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_ARRAY_OF_BUFFERS = 0, + D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_SINGLE_BUFFER = 1 + } D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE; + +typedef struct D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM + { + D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE BufferMode; + UINT ExpectedSubregionCount; + UINT64 *pSubregionBitstreamsBaseOffsets; + ID3D12Resource **ppSubregionBitstreams; + ID3D12Resource **ppSubregionSizes; + ID3D12Resource **ppSubregionOffsets; + ID3D12Fence **ppSubregionFences; + UINT64 *pSubregionFenceValues; + } D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM; + +typedef +enum D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE + { + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_FULL_FRAME = 0, + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_SUBREGIONS = 1 + } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE; + +typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 + { + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE NotificationMode; + union + { + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM FrameOutputBuffer; + D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM SubregionOutputBuffers; + } ; + } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1; + +typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 + { + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 Bitstream; + D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; + D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; + } D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1; + +typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 + { + D3D12_VIDEO_ENCODER_CODEC EncoderCodec; + D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile; + DXGI_FORMAT EncoderInputFormat; + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution; + D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata; + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; + D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; + } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1; + +typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 + { + D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; + ID3D12Resource *pOutputQPMap; + ID3D12Resource *pOutputSATDMap; + ID3D12Resource *pOutputBitAllocationMap; + } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX + { + ID3D12Resource *pQuantizationMap; + } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS + { + BOOL FullFrameIdentical; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; + ID3D12Resource *pDirtyRegionsMap; + UINT SourceDPBFrameReference; + } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS + { + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; + UINT NumHintsPerPixel; + _Field_size_full_(NumHintsPerPixel) ID3D12Resource **ppMotionVectorMaps; + _Field_size_full_(NumHintsPerPixel) UINT *pMotionVectorMapsSubresources; + _Field_size_full_(NumHintsPerPixel) ID3D12Resource **ppMotionVectorMapsMetadata; + _Field_size_full_(NumHintsPerPixel) UINT *pMotionVectorMapsMetadataSubresources; + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlConfiguration; + } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA + { + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; + union + { + D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX Quantization; + D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS DirtyRegions; + D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS MotionVectors; + } ; + } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA; + +typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS + { + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_INPUT_MAP_DATA InputData; + } D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS; + +typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS + { + ID3D12Resource *pOpaqueLayoutBuffer; + } D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_s_ifspec; + +#ifndef __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__ +#define __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__ + +/* interface ID3D12VideoEncodeCommandList4 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12VideoEncodeCommandList4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("4dcba08f-9c02-431e-9181-d1e8a2a8aa8b") + ID3D12VideoEncodeCommandList4 : public ID3D12VideoEncodeCommandList3 + { + public: + virtual void STDMETHODCALLTYPE EncodeFrame1( + _In_ ID3D12VideoEncoder *pEncoder, + _In_ ID3D12VideoEncoderHeap *pHeap, + _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 *pInputArguments, + _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 *pOutputArguments) = 0; + + virtual void STDMETHODCALLTYPE ResolveEncoderOutputMetadata1( + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 *pInputArguments, + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 *pOutputArguments) = 0; + + virtual void STDMETHODCALLTYPE ResolveInputParamLayout( + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS *pInputArguments, + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS *pOutputArguments) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12VideoEncodeCommandList4Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12VideoEncodeCommandList4 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12VideoEncodeCommandList4 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12VideoEncodeCommandList4 * This); + + DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D12VideoEncodeCommandList4 * This, + _In_ REFGUID guid, + _Inout_ UINT *pDataSize, + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D12VideoEncodeCommandList4 * This, + _In_ REFGUID guid, + _In_ UINT DataSize, + _In_reads_bytes_opt_( DataSize ) const void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D12VideoEncodeCommandList4 * This, + _In_ REFGUID guid, + _In_opt_ const IUnknown *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetName) + HRESULT ( STDMETHODCALLTYPE *SetName )( + ID3D12VideoEncodeCommandList4 * This, + _In_z_ LPCWSTR Name); + + DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) + HRESULT ( STDMETHODCALLTYPE *GetDevice )( + ID3D12VideoEncodeCommandList4 * This, + REFIID riid, + _COM_Outptr_opt_ void **ppvDevice); + + DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) + D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( + ID3D12VideoEncodeCommandList4 * This); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) + HRESULT ( STDMETHODCALLTYPE *Close )( + ID3D12VideoEncodeCommandList4 * This); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12CommandAllocator *pAllocator); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) + void ( STDMETHODCALLTYPE *ClearState )( + ID3D12VideoEncodeCommandList4 * This); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) + void ( STDMETHODCALLTYPE *ResourceBarrier )( + ID3D12VideoEncodeCommandList4 * This, + _In_ UINT NumBarriers, + _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) + void ( STDMETHODCALLTYPE *DiscardResource )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12Resource *pResource, + _In_opt_ const D3D12_DISCARD_REGION *pRegion); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) + void ( STDMETHODCALLTYPE *BeginQuery )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12QueryHeap *pQueryHeap, + _In_ D3D12_QUERY_TYPE Type, + _In_ UINT Index); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) + void ( STDMETHODCALLTYPE *EndQuery )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12QueryHeap *pQueryHeap, + _In_ D3D12_QUERY_TYPE Type, + _In_ UINT Index); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) + void ( STDMETHODCALLTYPE *ResolveQueryData )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12QueryHeap *pQueryHeap, + _In_ D3D12_QUERY_TYPE Type, + _In_ UINT StartIndex, + _In_ UINT NumQueries, + _In_ ID3D12Resource *pDestinationBuffer, + _In_ UINT64 AlignedDestinationBufferOffset); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication) + void ( STDMETHODCALLTYPE *SetPredication )( + ID3D12VideoEncodeCommandList4 * This, + _In_opt_ ID3D12Resource *pBuffer, + _In_ UINT64 AlignedBufferOffset, + _In_ D3D12_PREDICATION_OP Operation); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) + void ( STDMETHODCALLTYPE *SetMarker )( + ID3D12VideoEncodeCommandList4 * This, + UINT Metadata, + _In_reads_bytes_opt_(Size) const void *pData, + UINT Size); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) + void ( STDMETHODCALLTYPE *BeginEvent )( + ID3D12VideoEncodeCommandList4 * This, + UINT Metadata, + _In_reads_bytes_opt_(Size) const void *pData, + UINT Size); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) + void ( STDMETHODCALLTYPE *EndEvent )( + ID3D12VideoEncodeCommandList4 * This); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) + void ( STDMETHODCALLTYPE *EstimateMotion )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12VideoMotionEstimator *pMotionEstimator, + _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments, + _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap) + void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )( + ID3D12VideoEncodeCommandList4 * This, + const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments, + const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate) + void ( STDMETHODCALLTYPE *WriteBufferImmediate )( + ID3D12VideoEncodeCommandList4 * This, + UINT Count, + _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, + _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession) + void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( + ID3D12VideoEncodeCommandList4 * This, + _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand) + void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12VideoExtensionCommand *pExtensionCommand, + _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, + SIZE_T InitializationParametersSizeInBytes); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand) + void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12VideoExtensionCommand *pExtensionCommand, + _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, + SIZE_T ExecutionParametersSizeInBytes); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame) + void ( STDMETHODCALLTYPE *EncodeFrame )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12VideoEncoder *pEncoder, + _In_ ID3D12VideoEncoderHeap *pHeap, + _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments, + _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata) + void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )( + ID3D12VideoEncodeCommandList4 * This, + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments, + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList3, Barrier) + void ( STDMETHODCALLTYPE *Barrier )( + ID3D12VideoEncodeCommandList4 * This, + UINT32 NumBarrierGroups, + _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, EncodeFrame1) + void ( STDMETHODCALLTYPE *EncodeFrame1 )( + ID3D12VideoEncodeCommandList4 * This, + _In_ ID3D12VideoEncoder *pEncoder, + _In_ ID3D12VideoEncoderHeap *pHeap, + _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 *pInputArguments, + _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 *pOutputArguments); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, ResolveEncoderOutputMetadata1) + void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata1 )( + ID3D12VideoEncodeCommandList4 * This, + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 *pInputArguments, + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 *pOutputArguments); + + DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, ResolveInputParamLayout) + void ( STDMETHODCALLTYPE *ResolveInputParamLayout )( + ID3D12VideoEncodeCommandList4 * This, + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS *pInputArguments, + _In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS *pOutputArguments); + + END_INTERFACE + } ID3D12VideoEncodeCommandList4Vtbl; + + interface ID3D12VideoEncodeCommandList4 + { + CONST_VTBL struct ID3D12VideoEncodeCommandList4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12VideoEncodeCommandList4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12VideoEncodeCommandList4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12VideoEncodeCommandList4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12VideoEncodeCommandList4_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D12VideoEncodeCommandList4_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D12VideoEncodeCommandList4_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D12VideoEncodeCommandList4_SetName(This,Name) \ + ( (This)->lpVtbl -> SetName(This,Name) ) + + +#define ID3D12VideoEncodeCommandList4_GetDevice(This,riid,ppvDevice) \ + ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) + + +#define ID3D12VideoEncodeCommandList4_GetType(This) \ + ( (This)->lpVtbl -> GetType(This) ) + + +#define ID3D12VideoEncodeCommandList4_Close(This) \ + ( (This)->lpVtbl -> Close(This) ) + +#define ID3D12VideoEncodeCommandList4_Reset(This,pAllocator) \ + ( (This)->lpVtbl -> Reset(This,pAllocator) ) + +#define ID3D12VideoEncodeCommandList4_ClearState(This) \ + ( (This)->lpVtbl -> ClearState(This) ) + +#define ID3D12VideoEncodeCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \ + ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) + +#define ID3D12VideoEncodeCommandList4_DiscardResource(This,pResource,pRegion) \ + ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) + +#define ID3D12VideoEncodeCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \ + ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) + +#define ID3D12VideoEncodeCommandList4_EndQuery(This,pQueryHeap,Type,Index) \ + ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) + +#define ID3D12VideoEncodeCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ + ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) + +#define ID3D12VideoEncodeCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ + ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) + +#define ID3D12VideoEncodeCommandList4_SetMarker(This,Metadata,pData,Size) \ + ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) + +#define ID3D12VideoEncodeCommandList4_BeginEvent(This,Metadata,pData,Size) \ + ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) + +#define ID3D12VideoEncodeCommandList4_EndEvent(This) \ + ( (This)->lpVtbl -> EndEvent(This) ) + +#define ID3D12VideoEncodeCommandList4_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ + ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) + +#define ID3D12VideoEncodeCommandList4_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ + ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) + +#define ID3D12VideoEncodeCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \ + ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) + +#define ID3D12VideoEncodeCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \ + ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) + + +#define ID3D12VideoEncodeCommandList4_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ + ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) + +#define ID3D12VideoEncodeCommandList4_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ + ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) + + +#define ID3D12VideoEncodeCommandList4_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \ + ( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) ) + +#define ID3D12VideoEncodeCommandList4_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \ + ( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) ) + + +#define ID3D12VideoEncodeCommandList4_Barrier(This,NumBarrierGroups,pBarrierGroups) \ + ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) + + +#define ID3D12VideoEncodeCommandList4_EncodeFrame1(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \ + ( (This)->lpVtbl -> EncodeFrame1(This,pEncoder,pHeap,pInputArguments,pOutputArguments) ) + +#define ID3D12VideoEncodeCommandList4_ResolveEncoderOutputMetadata1(This,pInputArguments,pOutputArguments) \ + ( (This)->lpVtbl -> ResolveEncoderOutputMetadata1(This,pInputArguments,pOutputArguments) ) + +#define ID3D12VideoEncodeCommandList4_ResolveInputParamLayout(This,pInputArguments,pOutputArguments) \ + ( (This)->lpVtbl -> ResolveInputParamLayout(This,pInputArguments,pOutputArguments) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12video_0000_0028 */ +/* [local] */ + #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ #pragma endregion DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F); @@ -9294,10 +10123,11 @@ DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0 DEFINE_GUID(IID_ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44); DEFINE_GUID(IID_ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a); DEFINE_GUID(IID_ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76); +DEFINE_GUID(IID_ID3D12VideoEncodeCommandList4,0x4dcba08f,0x9c02,0x431e,0x91,0x81,0xd1,0xe8,0xa2,0xa8,0xaa,0x8b); -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0028_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0028_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12video.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12video.idl similarity index 85% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12video.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12video.idl index 335ddda..db22045 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12video.idl +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12video.idl @@ -94,6 +94,12 @@ typedef enum D3D12_FEATURE_VIDEO D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS = 45, D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG = 46, D3D12_FEATURE_VIDEO_ENCODER_SUPPORT1 = 47, + D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 = 48, + D3D12_FEATURE_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT = 49, + D3D12_FEATURE_VIDEO_ENCODER_QPMAP_INPUT = 50, + D3D12_FEATURE_VIDEO_ENCODER_DIRTY_REGIONS = 51, + D3D12_FEATURE_VIDEO_ENCODER_MOTION_SEARCH = 52, + D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 = 57, } D3D12_FEATURE_VIDEO; @@ -2227,6 +2233,7 @@ typedef enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = 4, D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_GRID_PARTITION = 5, D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_CONFIGURABLE_GRID_PARTITION = 6, + D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_AUTO = 7, } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE; typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE @@ -2293,6 +2300,9 @@ typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG typedef enum D3D12_VIDEO_ENCODER_HEAP_FLAGS { D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 0x0, + D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS = 0x1, + D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_SINGLE_BUFFER = 0x2, + D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_DIRTY_REGIONS = 0x4, } D3D12_VIDEO_ENCODER_HEAP_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS)") @@ -2517,6 +2527,12 @@ typedef enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_EXTENSION1_SUPPORT = 0x2000, D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_QUALITY_VS_SPEED_AVAILABLE = 0x4000, D3D12_VIDEO_ENCODER_SUPPORT_FLAG_READABLE_RECONSTRUCTED_PICTURE_LAYOUT_AVAILABLE = 0x8000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_QP_MAP_METADATA_AVAILABLE = 0x10000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_SATD_MAP_METADATA_AVAILABLE = 0x20000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_RC_BIT_ALLOCATION_MAP_METADATA_AVAILABLE = 0x40000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS_AVAILABLE = 0x80000, + D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_SINGLE_BUFFER_AVAILABLE = 0x100000, + } D3D12_VIDEO_ENCODER_SUPPORT_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS)") @@ -2624,6 +2640,9 @@ typedef enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200, D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800, D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_QPMAP_NOT_SUPPORTED = 0x2000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_DIRTY_REGIONS_NOT_SUPPORTED = 0x4000, + D3D12_VIDEO_ENCODER_VALIDATION_FLAG_MOTION_SEARCH_NOT_SUPPORTED = 0x8000, } D3D12_VIDEO_ENCODER_VALIDATION_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS)") @@ -2988,6 +3007,9 @@ typedef enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS { D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_NONE = 0x0, D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = 0x1, + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_QUANTIZATION_MATRIX_INPUT = 0x2, + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_DIRTY_REGIONS_INPUT = 0x4, + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_MOTION_VECTORS_INPUT = 0x8, } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS)") @@ -3136,6 +3158,461 @@ interface ID3D12VideoEncodeCommandList3 ); } +typedef enum D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS +{ + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_NONE = 0x0, + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_QP_MAP = 0x1, + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_SATD_MAP = 0x2, + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_RC_BIT_ALLOCATION_MAP = 0x4, +} D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS )") + +// Binary back-compat with D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 +{ + UINT NodeIndex; // input + D3D12_VIDEO_ENCODER_CODEC Codec; // input + D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input + DXGI_FORMAT InputFormat; // input + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; // input + + BOOL IsSupported; // output + UINT CompressedBitstreamBufferAccessAlignment; // output + UINT EncoderMetadataBufferAccessAlignment; // output + UINT MaxEncoderOutputMetadataBufferSize; // output + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; // input + D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; // input + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataQPMapTextureDimensions; // output + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataSATDMapTextureDimensions; // output + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataBitAllocationMapTextureDimensions; // output +} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1; + +typedef enum D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE +{ + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER = 0, + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE = 1, +} D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE; + +typedef enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE +{ + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_DIRTY = 0, + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_SKIP = 1, +} D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO +{ + D3D12_VIDEO_ENCODER_CODEC Codec; + D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; + D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; + DXGI_FORMAT InputFormat; + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution; + D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; + D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; +} D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO; + +typedef enum D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE +{ + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_QUANTIZATION_MATRIX = 0, + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_DIRTY_REGIONS = 1, + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_MOTION_VECTORS = 2, +} D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE; + +typedef enum D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE +{ + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_FULL_SEARCH = 0, + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT = 1, + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT_LIMITED_DISTANCE = 2, +} D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE; + +// D3D12_FEATURE_VIDEO_ENCODER_QPMAP_INPUT +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT +{ + UINT NodeIndex; + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + BOOL IsSupported; + UINT MapSourcePreferenceRanking; + UINT BlockSize; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT; + +typedef enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS +{ + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_NONE = 0x0, + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_REPEAT_FRAME = 0x1, + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS = 0x2, + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS_REQUIRE_FULL_ROW = 0x4, +} D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS )") + +// D3D12_FEATURE_VIDEO_ENCODER_DIRTY_REGIONS +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS +{ + UINT NodeIndex; + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS SupportFlags; + UINT MapSourcePreferenceRanking; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS; + +typedef enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION +{ + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL = 0, + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL = 1, + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL = 2, +} D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION; + +typedef enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS { + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_NONE = 0x0, + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_FULL_PIXEL = (1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL), // 0x1 + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_HALF_PIXEL = (1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL), // 0x2 + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_QUARTER_PIXEL = (1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL), // 0x4 +} D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS )") + +typedef enum D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS +{ + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_NONE = 0x0, + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_SUPPORTED = 0x1, + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_MULTIPLE_HINTS = 0x2, + + +} D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS )") + +// D3D12_FEATURE_VIDEO_ENCODER_MOTION_SEARCH +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH +{ + UINT NodeIndex; + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + BOOL BidirectionalRefFrameEnabled; + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; + UINT MaxMotionHints; + UINT MinDeviation; + UINT MaxDeviation; + UINT MapSourcePreferenceRanking; + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupport; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH; + +// D3D12_FEATURE_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT +{ + UINT NodeIndex; + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; + BOOL IsSupported; + UINT64 MaxResolvedBufferAllocationSize; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT; + +typedef struct D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION +{ + BOOL Enabled; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; +} D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP +{ + // Reuse existing D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1.QPMapRegionPixelsSize for BlockSize + UINT MapSourcePreferenceRanking; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP; + +typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION +{ + BOOL Enabled; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; +} D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS +{ + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS DirtyRegionsSupportFlags; + UINT MapSourcePreferenceRanking; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS; + +typedef struct D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION +{ + BOOL Enabled; + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; + BOOL BidirectionalRefFrameEnabled; +} D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH +{ + UINT MaxMotionHints; + UINT MinDeviation; + UINT MaxDeviation; + UINT MapSourcePreferenceRanking; + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupportFlags; + D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH; + +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 +{ + /* Below match existing D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS */ + UINT MaxSubregionsNumber; + UINT MaxIntraRefreshFrameDuration; + UINT SubregionBlockPixelsSize; + UINT QPMapRegionPixelsSize; + + /* Below are new arguments for D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 */ + D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP QPMap; + D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS DirtyRegions; + D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH MotionSearch; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1; + +// D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 +typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2 +{ + /* + * Below params match existing D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1 binary size + * please note pResolutionDependentSupport type changes from D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS to D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 + */ + + UINT NodeIndex; + D3D12_VIDEO_ENCODER_CODEC Codec; + DXGI_FORMAT InputFormat; + D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; + D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; + D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; + D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; + D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; + UINT ResolutionsListCount; + const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList; + UINT MaxReferenceFramesInDPB; + D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; + D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; + D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; + D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; + [annotation("_Field_size_full_(ResolutionsListCount)")] D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1* pResolutionDependentSupport; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; + UINT MaxQualityVsSpeed; + + /* Below are new arguments for D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2 */ + D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions; + D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch; +} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2; + +typedef struct D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO +{ + BOOL FullFrameIdentical; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; + UINT NumDirtyRects; + [annotation("_Field_size_full_(NumDirtyRects)")] RECT* pDirtyRects; + UINT SourceDPBFrameReference; +} D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO; + +typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS +{ + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + union + { + // Use with: D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE + ID3D12Resource* pOpaqueLayoutBuffer; + // Use with: D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER + D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO* pCPUBuffer; + }; +} D3D12_VIDEO_ENCODER_DIRTY_REGIONS; + +typedef struct D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP +{ + ID3D12Resource* pOpaqueQuantizationMap; +} D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP; + +typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG +{ + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; + UINT SearchDeviationLimit; +} D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG; + +typedef struct D3D12_VIDEO_ENCODER_MOVE_RECT +{ + POINT SourcePoint; + RECT DestRect; +} D3D12_VIDEO_ENCODER_MOVE_RECT; + +typedef enum D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS +{ + D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_NONE = 0x0, + D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_MULTIPLE_HINTS = 0x1, +} D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS; + +typedef struct D3D12_VIDEO_ENCODER_MOVEREGION_INFO +{ + UINT NumMoveRegions; + [annotation("_Field_size_full_(NumMoveRegions)")] D3D12_VIDEO_ENCODER_MOVE_RECT* pMoveRegions; + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; + UINT SourceDPBFrameReference; + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; + D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS Flags; +} D3D12_VIDEO_ENCODER_MOVEREGION_INFO; + +typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS +{ + D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; + union + { + // Use with: D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE + ID3D12Resource* pOpaqueLayoutBuffer; + // Use with: D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER + D3D12_VIDEO_ENCODER_MOVEREGION_INFO* pCPUBuffer; + }; +} D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS; + +typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 +{ + UINT IntraRefreshFrameIndex; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData; + D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames; + D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS MotionVectors; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS DirtyRects; + D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP QuantizationTextureMap; +} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1; + +typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 +{ + D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 PictureControlDesc; + ID3D12Resource* pInputFrame; + UINT InputFrameSubresource; + UINT CurrentFrameBitstreamMetadataSize; + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; +} D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1; + +typedef enum D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE +{ + D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_ARRAY_OF_BUFFERS = 0, + D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_SINGLE_BUFFER = 1, +} D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE; + +typedef struct D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM +{ + D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE BufferMode; + UINT ExpectedSubregionCount; + UINT64* pSubregionBitstreamsBaseOffsets; + ID3D12Resource** ppSubregionBitstreams; + ID3D12Resource** ppSubregionSizes; + ID3D12Resource** ppSubregionOffsets; + ID3D12Fence** ppSubregionFences; + UINT64* pSubregionFenceValues; +} D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM; + +typedef enum D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE +{ + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_FULL_FRAME = 0, + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_SUBREGIONS = 1, +} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE; + +typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 +{ + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE NotificationMode; + union + { + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM FrameOutputBuffer; + D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM SubregionOutputBuffers; + }; +} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1; + +typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 +{ + D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 Bitstream; + D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; + D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; +} D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1; + +typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 +{ + D3D12_VIDEO_ENCODER_CODEC EncoderCodec; + D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile; + DXGI_FORMAT EncoderInputFormat; + D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution; + D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata; + D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; + D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; +} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1; + +typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 +{ + D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; + ID3D12Resource* pOutputQPMap; + ID3D12Resource* pOutputSATDMap; + ID3D12Resource* pOutputBitAllocationMap; +} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX +{ + ID3D12Resource* pQuantizationMap; +} D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS +{ + BOOL FullFrameIdentical; + D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; + ID3D12Resource* pDirtyRegionsMap; + UINT SourceDPBFrameReference; +} D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS +{ + D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; + UINT NumHintsPerPixel; + [annotation("_Field_size_full_(NumHintsPerPixel)")] ID3D12Resource** ppMotionVectorMaps; + [annotation("_Field_size_full_(NumHintsPerPixel)")] UINT* pMotionVectorMapsSubresources; + [annotation("_Field_size_full_(NumHintsPerPixel)")] ID3D12Resource** ppMotionVectorMapsMetadata; + [annotation("_Field_size_full_(NumHintsPerPixel)")] UINT* pMotionVectorMapsMetadataSubresources; + D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; + D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlConfiguration; +} D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS; + +typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA +{ + D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; + union + { + // For MapType: D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_QUANTIZATION_MATRIX + D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX Quantization; + // For MapType: D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_DIRTY_REGIONS + D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS DirtyRegions; + // For MapType: D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_MOTION_VECTORS + D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS MotionVectors; + }; +} D3D12_VIDEO_ENCODER_INPUT_MAP_DATA; + +typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS +{ + D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; + D3D12_VIDEO_ENCODER_INPUT_MAP_DATA InputData; +} D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS; + +typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS +{ + ID3D12Resource* pOpaqueLayoutBuffer; +} D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS; + +[uuid(4dcba08f-9c02-431e-9181-d1e8a2a8aa8b), object, local, pointer_default(unique)] +interface ID3D12VideoEncodeCommandList4 + : ID3D12VideoEncodeCommandList3 +{ + void EncodeFrame1( + [annotation("_In_")] ID3D12VideoEncoder* pEncoder, + [annotation("_In_")] ID3D12VideoEncoderHeap* pHeap, + [annotation("_In_")] const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1* pInputArguments, + [annotation("_In_")] const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1* pOutputArguments); + + void ResolveEncoderOutputMetadata1( + [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1* pInputArguments, + [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1* pOutputArguments); + + void ResolveInputParamLayout( + [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS* pInputArguments, + [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS* pOutputArguments); +} + cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") #pragma endregion @@ -3166,3 +3643,4 @@ cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2 cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a);" ) cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList4,0x4dcba08f,0x9c02,0x431e,0x91,0x81,0xd1,0xe8,0xa2,0xa8,0xaa,0x8b);" ) diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dcommon.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dcommon.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dcommon.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dcommon.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dcommon.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dcommon.idl similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dcommon.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dcommon.idl diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_barriers.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_barriers.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_barriers.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_barriers.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_check_feature_support.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_check_feature_support.h similarity index 95% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_check_feature_support.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_check_feature_support.h index 879fbc8..3cae507 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_check_feature_support.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_check_feature_support.h @@ -236,8 +236,8 @@ class CD3DX12FeatureSupport D3D12_WORK_GRAPHS_TIER WorkGraphsTier() const noexcept; #endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 614) - BOOL TightAlignmentSupported() const noexcept; +#if defined(D3D12_PREVIEW_SDK_VERSION) && (D3D12_PREVIEW_SDK_VERSION >= 716) + D3D12_TIGHT_ALIGNMENT_TIER TightAlignmentSupportTier() const noexcept; #endif private: // Private structs and helpers declaration @@ -329,8 +329,8 @@ class CD3DX12FeatureSupport #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) D3D12_FEATURE_DATA_D3D12_OPTIONS21 m_dOptions21; #endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 614) - D3D12_FEATURE_DATA_D3D12_OPTIONS22 m_dOptions22; +#if defined(D3D12_PREVIEW_SDK_VERSION) && (D3D12_PREVIEW_SDK_VERSION >= 716) + D3D12_FEATURE_DATA_TIGHT_ALIGNMENT m_dTightAlignment; #endif }; @@ -426,8 +426,8 @@ inline CD3DX12FeatureSupport::CD3DX12FeatureSupport() noexcept #if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) , m_dOptions21{} #endif -#if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 614) -, m_dOptions22{} +#if defined(D3D12_PREVIEW_SDK_VERSION) && (D3D12_PREVIEW_SDK_VERSION >= 716) +, m_dTightAlignment{} #endif {} @@ -604,10 +604,10 @@ inline HRESULT CD3DX12FeatureSupport::Init(ID3D12Device* pDevice) } #endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 614) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS22, &m_dOptions22, sizeof(m_dOptions22)))) +#if defined(D3D12_PREVIEW_SDK_VERSION) && (D3D12_PREVIEW_SDK_VERSION >= 716) + if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT, &m_dTightAlignment, sizeof(m_dTightAlignment)))) { - m_dOptions22 = {}; + m_dTightAlignment = {}; } #endif @@ -989,9 +989,9 @@ FEATURE_SUPPORT_GET(D3D12_EXECUTE_INDIRECT_TIER, m_dOptions21, ExecuteIndirectTi FEATURE_SUPPORT_GET(D3D12_WORK_GRAPHS_TIER, m_dOptions21, WorkGraphsTier); #endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 614) -// 51: Options22 -FEATURE_SUPPORT_GET(BOOL, m_dOptions22, TightAlignmentSupported); +#if defined(D3D12_PREVIEW_SDK_VERSION) && (D3D12_PREVIEW_SDK_VERSION >= 716) +// 51: TightAlignment +FEATURE_SUPPORT_GET_NAME(D3D12_TIGHT_ALIGNMENT_TIER, m_dTightAlignment, SupportTier, TightAlignmentSupportTier); #endif // Helper function to decide the highest shader model supported by the system diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_core.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_core.h similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_core.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_core.h index d1b38c4..56d6c50 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_core.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_core.h @@ -1464,7 +1464,7 @@ inline const CD3DX12_RESOURCE_DESC1* D3DX12ConditionallyExpandAPIDesc( } return uiRet; }; - auto Max = [](UINT64 const & a, UINT64 const & b) + auto Max = [](UINT64 const& a, UINT64 const& b) { return (a < b) ? b : a; }; diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_default.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_default.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_default.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_default.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_pipeline_state_stream.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_pipeline_state_stream.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_pipeline_state_stream.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_pipeline_state_stream.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_property_format_table.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_property_format_table.h similarity index 95% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_property_format_table.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_property_format_table.h index 315a15d..bc6970e 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_property_format_table.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_property_format_table.h @@ -62,8 +62,10 @@ struct D3D12_PROPERTY_LAYOUT_FORMAT_TABLE static LPCSTR GetName (DXGI_FORMAT Format, bool bHideInternalFormats = true); static bool IsSRGBFormat (DXGI_FORMAT Format); static UINT GetBitsPerStencil (DXGI_FORMAT Format); + static UINT GetBitsPerDepth (DXGI_FORMAT Format); static void GetFormatReturnTypes (DXGI_FORMAT Format, D3D_FORMAT_COMPONENT_INTERPRETATION* pInterpretations); // return array of 4 components static UINT GetNumComponentsInFormat(DXGI_FORMAT Format); + static UINT GetMinNumComponentsInFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB); // Converts the sequential component index (range from 0 to GetNumComponentsInFormat()) to // the absolute component index (range 0 to 3). @@ -116,6 +118,8 @@ struct D3D12_PROPERTY_LAYOUT_FORMAT_TABLE static UINT GetDetailTableIndex (DXGI_FORMAT Format); static UINT GetDetailTableIndexNoThrow (DXGI_FORMAT Format); static UINT GetDetailTableIndexThrow (DXGI_FORMAT Format); + static bool SupportsDepth (DXGI_FORMAT Format); + static bool SupportsStencil (DXGI_FORMAT Format); private: static const FORMAT_DETAIL* GetFormatDetail (DXGI_FORMAT Format); diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_render_pass.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_render_pass.h similarity index 96% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_render_pass.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_render_pass.h index 31f50df..1215198 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_render_pass.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_render_pass.h @@ -60,6 +60,8 @@ inline bool operator==( const D3D12_RENDER_PASS_BEGINNING_ACCESS &a, const D3D12 if (!(a.PreserveLocal == b.PreserveLocal)) return false; break; #endif + default: + break; } return true; } @@ -79,8 +81,9 @@ inline bool operator==(const D3D12_RENDER_PASS_ENDING_ACCESS& a, const D3D12_REN if (!(a.PreserveLocal == b.PreserveLocal)) return false; break; #endif + default: + break; } - return true; } diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_resource_helpers.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_resource_helpers.h similarity index 97% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_resource_helpers.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_resource_helpers.h index b9567eb..1a1daae 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3dx12/d3dx12_resource_helpers.h +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_resource_helpers.h @@ -460,7 +460,7 @@ inline bool D3DX12GetCopyableFootprints( UINT32 MinPlanePitchWidth, PlaneWidth, PlaneHeight; D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetPlaneSubsampledSizeAndFormatForCopyableLayout(PlaneSlice, Format, (UINT)Width, Height, /*_Out_*/ PlaneFormat, /*_Out_*/ MinPlanePitchWidth, /* _Out_ */ PlaneWidth, /*_Out_*/ PlaneHeight); - D3D12_SUBRESOURCE_FOOTPRINT LocalPlacement; + D3D12_SUBRESOURCE_FOOTPRINT LocalPlacement = {}; auto& Placement = pLayouts ? pLayouts[uSubRes].Footprint : LocalPlacement; Placement.Format = PlaneFormat; Placement.Width = PlaneWidth; @@ -600,3 +600,4 @@ inline bool D3DX12GetCopyableFootprints( } #endif // D3D12_SDK_VERSION >= 606 + diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_root_signature.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_root_signature.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_root_signature.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_root_signature.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_state_object.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_state_object.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3dx12/d3dx12_state_object.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3dx12/d3dx12_state_object.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/directsr.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/directsr.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/directsr.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/directsr.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/directsr.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/directsr.idl similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/directsr.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/directsr.idl diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/dxgiformat.h b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/dxgiformat.h similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/dxgiformat.h rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/dxgiformat.h diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/dxgiformat.idl b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/dxgiformat.idl similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/dxgiformat.idl rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/dxgiformat.idl diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/src/d3dx12/d3dx12_property_format_table.cpp b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/src/d3dx12/d3dx12_property_format_table.cpp similarity index 95% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/src/d3dx12/d3dx12_property_format_table.cpp rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/src/d3dx12/d3dx12_property_format_table.cpp index ccf9eb9..39eb926 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/src/d3dx12/d3dx12_property_format_table.cpp +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/src/d3dx12/d3dx12_property_format_table.cpp @@ -21,9 +21,12 @@ #include #endif #include "d3dx12_property_format_table.h" -#include #include +#include #include "D3D12TokenizedProgramFormat.hpp" +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) +#include +#endif #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) #ifndef ASSUME #define ASSUME(x) assert(x) @@ -197,7 +200,88 @@ const LPCSTR D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::s_FormatNames[] = // separate "AI44", "IA44", "P8", - "A8P8", + "A8P8", + "B4G4R4A4_UNORM", + + nullptr, // 116 + nullptr, // 117 + nullptr, // 118 + nullptr, // 119 + nullptr, // 120 + nullptr, // 121 + nullptr, // 122 + nullptr, // 123 + nullptr, // 124 + nullptr, // 125 + nullptr, // 126 + nullptr, // 127 + nullptr, // 128 + nullptr, // 129 + + "P208", + "V208", + "V408", + + NULL, // 133 + NULL, // 134 + NULL, // 135 + NULL, // 136 + NULL, // 137 + NULL, // 138 + NULL, // 139 + NULL, // 140 + NULL, // 141 + NULL, // 142 + NULL, // 143 + NULL, // 144 + NULL, // 145 + NULL, // 146 + NULL, // 147 + NULL, // 148 + NULL, // 149 + NULL, // 150 + NULL, // 151 + NULL, // 152 + NULL, // 153 + NULL, // 154 + NULL, // 155 + NULL, // 156 + NULL, // 157 + NULL, // 158 + NULL, // 159 + NULL, // 160 + NULL, // 161 + NULL, // 162 + NULL, // 163 + NULL, // 164 + NULL, // 165 + NULL, // 166 + NULL, // 167 + NULL, // 168 + NULL, // 169 + NULL, // 170 + NULL, // 171 + NULL, // 172 + NULL, // 173 + NULL, // 174 + NULL, // 175 + NULL, // 176 + NULL, // 177 + NULL, // 178 + NULL, // 179 + NULL, // 180 + NULL, // 181 + NULL, // 182 + NULL, // 183 + NULL, // 184 + NULL, // 185 + NULL, // 186 + NULL, // 187 + NULL, // 188 + + "SAMPLER_FEEDBACK_MIN_MIP_OPAQUE", + "SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE", + "A4B4G4R4_UNORM", }; // -------------------------------------------------------------------------------------------------------------------------------- @@ -886,7 +970,7 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FormatExistsInHeader(DXGI_FORMAT Format LPCSTR D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetName(DXGI_FORMAT Format, bool bHideInternalFormats) { const UINT Index = GetDetailTableIndex( Format ); - if (UINT( -1 ) == Index || (bHideInternalFormats && GetFormatDetail( Format )->bInternal)) + if (UINT( -1 ) == Index || (bHideInternalFormats && GetFormatDetail( Format )->bInternal) || !s_FormatNames[Index]) { return "Unrecognized"; } @@ -1002,6 +1086,11 @@ HRESULT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateResourceSize( _Out_writes_opt_(subresources) D3D12_MEMCPY_DEST *pDst) { UINT tableIndex = GetDetailTableIndexNoThrow( format ); + if (tableIndex == UINT(-1)) + return E_INVALIDARG; + + totalByteSize = 0; + const FORMAT_DETAIL& formatDetail = s_FormatDetail[tableIndex]; bool fIsBlockCompressedFormat = IsBlockCompressFormat(format ); @@ -1069,7 +1158,7 @@ HRESULT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateResourceSize( { return INTSAFE_E_ARITHMETIC_OVERFLOW; } - SIZE_T subresourceByteSize = subDepth * depthPitch; + SIZE_T subresourceByteSize = SIZE_T(UINT64(subDepth) * UINT64(depthPitch)); if (pDst) { @@ -1319,6 +1408,34 @@ UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerStencil(DXGI_FORMAT Format) return 0; } +//--------------------------------------------------------------------------------------------------------------------------------- +// GetBitsPerDepth +UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerDepth(DXGI_FORMAT Format) +{ + const UINT Index = GetDetailTableIndexThrow( Format ); + if( (s_FormatDetail[Index].TypeLevel != D3DFTL_PARTIAL_TYPE) && + (s_FormatDetail[Index].TypeLevel != D3DFTL_FULL_TYPE) ) + { + return 0; + } + for( UINT comp = 0; comp < 4; comp++ ) + { + D3D_FORMAT_COMPONENT_NAME name = D3DFCN_D; + switch(comp) + { + case 0: name = s_FormatDetail[Index].ComponentName0; break; + case 1: name = s_FormatDetail[Index].ComponentName1; break; + case 2: name = s_FormatDetail[Index].ComponentName2; break; + case 3: name = s_FormatDetail[Index].ComponentName3; break; + } + if( name == D3DFCN_D ) + { + return s_FormatDetail[Index].BitsPerComponent[comp]; + } + } + return 0; +} + //--------------------------------------------------------------------------------------------------------------------------------- // GetFormatReturnTypes void D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetFormatReturnTypes( @@ -1378,6 +1495,16 @@ UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetNumComponentsInFormat( DXGI_FORMAT return n; } +//--------------------------------------------------------------------------------------------------------------------------------- +// GetMinNumComponentsInFormats +UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetMinNumComponentsInFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB) +{ + UINT NumComponentsFormatA = GetNumComponentsInFormat(FormatA); + UINT NumComponentsFormatB = GetNumComponentsInFormat(FormatB); + UINT NumComponents = NumComponentsFormatA < NumComponentsFormatB ? NumComponentsFormatA : NumComponentsFormatB; + return NumComponents; +} + //--------------------------------------------------------------------------------------------------------------------------------- // Sequential2AbsoluteComponentIndex UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Sequential2AbsoluteComponentIndex( DXGI_FORMAT Format, UINT SequentialComponentIndex) @@ -1403,7 +1530,7 @@ UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Sequential2AbsoluteComponentIndex( DXGI n++; } } - return UINT(-1); + return UINT( -1 ); } //--------------------------------------------------------------------------------------------------------------------------------- @@ -1465,14 +1592,18 @@ D3D_FORMAT_LAYOUT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetLayout(DXGI_FORMAT Form // GetComponentName D3D_FORMAT_COMPONENT_NAME D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetComponentName(DXGI_FORMAT Format, UINT AbsoluteComponentIndex) { - D3D_FORMAT_COMPONENT_NAME name; + D3D_FORMAT_COMPONENT_NAME name = {}; switch( AbsoluteComponentIndex ) { case 0: name = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentName0; break; case 1: name = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentName1; break; case 2: name = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentName2; break; case 3: name = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentName3; break; - default: throw E_FAIL; +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) + default: throw std::invalid_argument("AbsoluteComponentIndex"); +#else + default: break; +#endif } return name; } @@ -1482,7 +1613,11 @@ UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerComponent(DXGI_FORMAT Format, { if( AbsoluteComponentIndex > 3 ) { - throw E_FAIL; +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) + throw std::invalid_argument("AbsoluteComponentIndex"); +#else + return UINT( -1 ); +#endif } return s_FormatDetail[GetDetailTableIndexNoThrow( Format )].BitsPerComponent[AbsoluteComponentIndex]; } @@ -1499,7 +1634,11 @@ D3D_FORMAT_COMPONENT_INTERPRETATION D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetForma case 1: interp = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentInterpretation1; break; case 2: interp = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentInterpretation2; break; case 3: interp = s_FormatDetail[GetDetailTableIndexNoThrow( Format )].ComponentInterpretation3; break; -// default: throw E_FAIL; +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) + default: throw std::invalid_argument("AbsoluteComponentIndex"); +#else + default: break; +#endif } return interp; } @@ -1541,13 +1680,15 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FamilySupportsStencil(DXGI_FORMAT Forma //--------------------------------------------------------------------------------------------------------------------------------- // GetDetailTableIndexThrow -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexThrow(DXGI_FORMAT Format) +UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexThrow(DXGI_FORMAT Format) { UINT Index = GetDetailTableIndex( Format ); +#if defined(__cpp_exceptions) && (!defined(_HAS_EXCEPTIONS) || _HAS_EXCEPTIONS != 0) if(UINT( -1 ) == Index ) { - throw E_FAIL; + throw std::invalid_argument("Format"); } +#endif return Index; } @@ -2367,7 +2508,7 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::IsSupportedTextureDisplayableFormat //--------------------------------------------------------------------------------------------------------------------------------- bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FloatAndNotFloatFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB) { - UINT NumComponents = (std::min)(GetNumComponentsInFormat(FormatA), GetNumComponentsInFormat(FormatB)); + UINT NumComponents = GetMinNumComponentsInFormats(FormatA, FormatB); for (UINT c = 0; c < NumComponents; c++) { D3D_FORMAT_COMPONENT_INTERPRETATION fciA = GetFormatComponentInterpretation(FormatA, c); @@ -2383,7 +2524,7 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FloatAndNotFloatFormats(DXGI_FORMAT Fo //--------------------------------------------------------------------------------------------------------------------------------- bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SNORMAndUNORMFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB) { - UINT NumComponents = (std::min)(GetNumComponentsInFormat(FormatA), GetNumComponentsInFormat(FormatB)); + UINT NumComponents = GetMinNumComponentsInFormats(FormatA, FormatB); for (UINT c = 0; c < NumComponents; c++) { D3D_FORMAT_COMPONENT_INTERPRETATION fciA = GetFormatComponentInterpretation(FormatA, c); @@ -2424,6 +2565,20 @@ bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SNORMAndUNORMFormats(DXGI_FORMAT Forma return Format == DXGI_FORMAT_NV12; } +//--------------------------------------------------------------------------------------------------------------------------------- + bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SupportsDepth(DXGI_FORMAT Format) + { + // If the number of bits associated with depth in the format is greater then 0, then the format supports depth + return (GetComponentName(Format, 0) == D3DFCN_D); + } + + //--------------------------------------------------------------------------------------------------------------------------------- + bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SupportsStencil(DXGI_FORMAT Format) + { + // If the number of bits associated with stencil in the format is greater then 0, then the format supports stencil + return GetBitsPerStencil(Format) > 0; + } + #undef R #undef G #undef B diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/icon.png b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/icon.png similarity index 100% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/icon.png rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/icon.png diff --git a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/package/services/metadata/core-properties/8737dbad38e7445c83081cd835f62e81.psmdcp b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/package/services/metadata/core-properties/e9c0950bd68c4fd982fde87f0785b9bb.psmdcp similarity index 93% rename from Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/package/services/metadata/core-properties/8737dbad38e7445c83081cd835f62e81.psmdcp rename to Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/package/services/metadata/core-properties/e9c0950bd68c4fd982fde87f0785b9bb.psmdcp index d0d99c7..ab646f0 100644 --- a/Src/ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/package/services/metadata/core-properties/8737dbad38e7445c83081cd835f62e81.psmdcp +++ b/Src/ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/package/services/metadata/core-properties/e9c0950bd68c4fd982fde87f0785b9bb.psmdcp @@ -3,7 +3,7 @@ Microsoft DirectX 12 Agility SDK Microsoft.Direct3D.D3D12 - 1.715.1-preview + 1.716.0-preview DirectX Direct3D D3D12 Direct3D12 DirectX12 Agility NuGet, Version=6.4.0.123, Culture=neutral, PublicKeyToken=31bf3856ad364e35;Microsoft Windows NT 10.0.20348.0;.NET Framework 4.7.2 \ No newline at end of file diff --git a/Src/pch.hpp b/Src/pch.hpp index e234247..2253968 100644 --- a/Src/pch.hpp +++ b/Src/pch.hpp @@ -19,10 +19,10 @@ For more information, see files README.md, LICENSE.txt. // Agility SDK needs to be included before Windows 10 SDK - according to Microsoft. #ifdef USE_PREVIEW_AGILITY_SDK - #include "ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/d3d12.h" - #include "ThirdParty/microsoft.direct3d.d3d12.1.715.1-preview/build/native/include/directsr.h" + #include "ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/d3d12.h" + #include "ThirdParty/microsoft.direct3d.d3d12.1.716.0-preview/build/native/include/directsr.h" #else - #include "ThirdParty/microsoft.direct3d.d3d12.1.614.1/build/native/include/d3d12.h" + #include "ThirdParty/microsoft.direct3d.d3d12.1.615.0/build/native/include/d3d12.h" #endif #include