diff --git a/Juliet/Juliet.vcxproj b/Juliet/Juliet.vcxproj index 07869ea..b977a4e 100644 --- a/Juliet/Juliet.vcxproj +++ b/Juliet/Juliet.vcxproj @@ -44,14 +44,14 @@ - $(SolutionDir)\lib\$(Platform)\$(Configuration)\ + $(SolutionDir)\bin\$(Platform)\$(Configuration)\ $(SolutionDir)Intermediate\$(ProjectName)\$(Platform)\$(Configuration)\ - $(SolutionDir)Juliet\include\;$(SolutionDir)Juliet\src\;$(SolutionDir)Juliet\src\Graphics\DX12\D3D12;$(IncludePath) + $(SolutionDir)Juliet\include\;$(SolutionDir)Juliet\src\;$(SolutionDir)Juliet\src\Graphics\D3D12\;$(IncludePath) $(SolutionDir)\bin\$(Platform)\$(Configuration)\ $(SolutionDir)Intermediate\$(ProjectName)\$(Platform)\$(Configuration)\ - $(SolutionDir)Juliet\include\;$(SolutionDir)Juliet\src\;$(SolutionDir)Juliet\src\Graphics\DX12\D3D12;$(IncludePath) + $(SolutionDir)Juliet\include\;$(SolutionDir)Juliet\src\;$(SolutionDir)Juliet\src\Graphics\D3D12\;$(IncludePath) @@ -70,7 +70,7 @@ true - ws2_32.lib;d3d12.lib;dxgi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + ws2_32.lib;dxguid.lib;d3d12.lib;dxgi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) @@ -98,7 +98,7 @@ true true true - ws2_32.lib;d3d12.lib;dxgi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + ws2_32.lib;dxguid.lib;d3d12.lib;dxgi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) @@ -148,44 +148,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -209,9 +173,7 @@ - - - + MultiThreadedDebugDll Disabled @@ -273,13 +235,6 @@ - - - - - - - diff --git a/Juliet/src/Graphics/D3D12/DX12GraphicsDevice.cpp b/Juliet/src/Graphics/D3D12/DX12GraphicsDevice.cpp new file mode 100644 index 0000000..6acaa04 --- /dev/null +++ b/Juliet/src/Graphics/D3D12/DX12GraphicsDevice.cpp @@ -0,0 +1,58 @@ +#include + +#include +#include + +namespace Juliet +{ + // TODO : Use LoadLibrary and not link to the lib. Allows failing earlier if Dx12 is not installed for some reason + // + Will load the dll when needed + // This will prevent us from using IID_ variables as they are defined in dxguid.lib + namespace + { + bool CheckDriver() + { + HRESULT result; + // ID3D12Device *device; + IDXGIFactory4* factory4; + IDXGIFactory6* factory6; + IDXGIAdapter1* adapter; + + ID3D12Object* test; + // Can create DXGI factory ? + IDXGIFactory1* factory1 = nullptr; + result = CreateDXGIFactory1(IID_IDXGIFactory1, reinterpret_cast(&factory1)); + if (FAILED(result)) + { + Log(LogLevel::Warning, LogCategory::Graphics, "DX12: Cannot create DXGIFactory1"); + return false; + } + + // Can query the 1.4 factory ? + result = IDXGIFactory1_QueryInterface(factory1, IID_IDXGIFactory4, reinterpret_cast(&factory4)); + if (FAILED(result)) + { + IDXGIFactory1_Release(factory1); + Log(LogLevel::Warning, LogCategory::Graphics, "DX12: Failed to query DXGI1.4."); + return false; + } + IDXGIFactory4_Release(factory4); + IDXGIFactory1_Release(factory1); + + return false; + } + + GraphicsDevice* CreateGraphicsDevice() + { + return nullptr; + } + } // namespace + + // clang-format off + GraphicsDeviceFactory DX12DeviceFactory = { + .Name="DirectX12", + .Type=RendererType::DX12, + .CheckDriver = CheckDriver, + .CreateGraphicsDevice = CreateGraphicsDevice }; + // clang-format on +} // namespace Juliet diff --git a/Juliet/src/Graphics/D3D12/DX12Includes.h b/Juliet/src/Graphics/D3D12/DX12Includes.h new file mode 100644 index 0000000..f9292ef --- /dev/null +++ b/Juliet/src/Graphics/D3D12/DX12Includes.h @@ -0,0 +1,23 @@ +#pragma once + +// Might now use it +// // Windows Runtime Library to handle ComPtr +// #include +// namespace wrl = Microsoft::WRL; + +// We will use the C interface of DX12. +// Those define disable the C++ API. +// It also prevents using d3dx12 because it only supports C++ :( +#define COBJMACROS +#define CINTERFACE; + +#include +#include "d3d12.h" +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include diff --git a/Juliet/src/Graphics/DX12/DX12Utils.h b/Juliet/src/Graphics/D3D12/DX12Utils.h similarity index 65% rename from Juliet/src/Graphics/DX12/DX12Utils.h rename to Juliet/src/Graphics/D3D12/DX12Utils.h index 211d583..b1decea 100644 --- a/Juliet/src/Graphics/DX12/DX12Utils.h +++ b/Juliet/src/Graphics/D3D12/DX12Utils.h @@ -1,8 +1,8 @@ #pragma once -#include +#include -namespace Juliet::RHI::DX12 +namespace Juliet { inline void AssertOnFailure(HRESULT hr) { diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/D3D12TokenizedProgramFormat.hpp b/Juliet/src/Graphics/DX12/D3D12/directx/D3D12TokenizedProgramFormat.hpp deleted file mode 100644 index b951454..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/D3D12TokenizedProgramFormat.hpp +++ /dev/null @@ -1,2634 +0,0 @@ -#pragma once -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* -// -// High Level Goals -// -// - Serve as the runtime/DDI representation for all D3D11 tokenized code, -// for all classes of programs, including pixel program, vertex program, -// geometry program, etc. -// -// - Any information that HLSL needs to give to drivers is encoded in -// this token format in some form. -// -// - Enable common tools and source code for managing all tokenizable -// program formats. -// -// - Support extensible token definitions, allowing full customizations for -// specific program classes, while maintaining general conventions for all -// program models. -// -// - Binary backwards compatible with D3D10. Any token name that was originally -// defined with "D3D10" in it is unchanged; D3D11 only adds new tokens. -// -// ---------------------------------------------------------------------------- -// -// Low Level Feature Summary -// -// - DWORD based tokens always, for simplicity -// - Opcode token is generally a single DWORD, though there is a bit indicating -// if extended information (extra DWORD(s)) are present -// - Operand tokens are a completely self contained, extensible format, -// with scalar and 4-vector data types as first class citizens, but -// allowance for extension to n-component vectors. -// - Initial operand token identifies register type, register file -// structure/dimensionality and mode of indexing for each dimension, -// and choice of component selection mechanism (i.e. mask vs. swizzle etc). -// - Optional additional extended operand tokens can defined things like -// modifiers (which are not needed by default). -// - Operand's immediate index value(s), if needed, appear as subsequent DWORD -// values, and if relative addressing is specified, an additional completely -// self contained operand definition appears nested in the token sequence. -// -// ---------------------------------------------------------------------------- - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) - -// ---------------------------------------------------------------------------- -// Version Token (VerTok) -// -// [07:00] minor version number (0-255) -// [15:08] major version number (0-255) -// [31:16] D3D10_SB_TOKENIZED_PROGRAM_TYPE -// -// ---------------------------------------------------------------------------- - -typedef enum D3D10_SB_TOKENIZED_PROGRAM_TYPE -{ - D3D10_SB_PIXEL_SHADER = 0, - D3D10_SB_VERTEX_SHADER = 1, - D3D10_SB_GEOMETRY_SHADER = 2, - - // D3D11 Shaders - D3D11_SB_HULL_SHADER = 3, - D3D11_SB_DOMAIN_SHADER = 4, - D3D11_SB_COMPUTE_SHADER = 5, - - // Subset of D3D12 Shaders where this field is referenced by runtime - // Entries from 6-12 are unique to state objects - // (e.g. library, callable and raytracing shaders) - D3D12_SB_MESH_SHADER = 13, - D3D12_SB_AMPLIFICATION_SHADER = 14, - - D3D11_SB_RESERVED0 = 0xFFF0 -} D3D10_SB_TOKENIZED_PROGRAM_TYPE; - -#define D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK 0xffff0000 -#define D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT 16 - -// DECODER MACRO: Retrieve program type from version token -#define DECODE_D3D10_SB_TOKENIZED_PROGRAM_TYPE(VerTok) ((D3D10_SB_TOKENIZED_PROGRAM_TYPE)(((VerTok)&D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK)>>D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT)) - -#define D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK 0x000000f0 -#define D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT 4 -#define D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK 0x0000000f - -// DECODER MACRO: Retrieve major version # from version token -#define DECODE_D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION(VerTok) (((VerTok)&D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK)>>D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT) -// DECODER MACRO: Retrieve minor version # from version token -#define DECODE_D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION(VerTok) ((VerTok)&D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK) - -// ENCODER MACRO: Create complete VerTok -#define ENCODE_D3D10_SB_TOKENIZED_PROGRAM_VERSION_TOKEN(ProgType,MajorVer,MinorVer) ((((ProgType)<> D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT) - -// ENCODER MACRO: Store instruction length -// portion of OpcodeToken0, in # of DWORDs -// including the opcode token(s). -// Valid range is 1-127. -#define ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(Length) (((Length)<>D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT)) -// ENCODER MACRO: Store "zero" or "nonzero" in the opcode -// specific control range of OpcodeToken0 -#define ENCODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN(Boolean) (((Boolean)<>D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT)) -// ENCODER MACRO: Given a set of -// D3D10_SB_OPERAND_4_COMPONENT_[X|Y|Z|W] values -// or'd together, encode them in OpcodeToken0. -#define ENCODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(ComponentMask) (((ComponentMask)<>D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT)) -// ENCODER MACRO: Encode the return type for the resinfo instruction -// in the opcode specific control range of OpcodeToken0 -#define ENCODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE(ReturnType) (((ReturnType)<> D3D10_SB_OPCODE_EXTENDED_SHIFT) -// ENCODER MACRO: Store in OpcodeToken0 whether the opcode is extended -// by an additional opcode token. -#define ENCODE_D3D10_SB_OPCODE_EXTENDED(bExtended) (((bExtended)!=0)?D3D10_SB_OPCODE_EXTENDED_MASK:0) - -// ---------------------------------------------------------------------------- -// Extended Opcode Format (OpcodeToken1) -// -// If bit31 of an opcode token is set, the -// opcode has an additional extended opcode token DWORD -// directly following OpcodeToken0. Other tokens -// expected for the opcode, such as the operand -// token(s) always follow -// OpcodeToken0 AND OpcodeToken1..n (extended -// opcode tokens, if present). -// -// [05:00] D3D10_SB_EXTENDED_OPCODE_TYPE -// [30:06] if([05:00] == D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS) -// { -// This custom opcode contains controls for SAMPLE. -// [08:06] Ignored, 0. -// [12:09] U texel immediate offset (4 bit 2's comp) (0 default) -// [16:13] V texel immediate offset (4 bit 2's comp) (0 default) -// [20:17] W texel immediate offset (4 bit 2's comp) (0 default) -// [30:14] Ignored, 0. -// } -// else if( [05:00] == D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM ) -// { -// [10:06] D3D10_SB_RESOURCE_DIMENSION -// [22:11] When dimension is D3D11_SB_RESOURCE_DIMENSION_STRUCTURED_BUFFER this holds the buffer stride, otherwise 0 -// [30:23] Ignored, 0. -// } -// else if( [05:00] == D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE ) -// { -// [09:06] D3D10_SB_RESOURCE_RETURN_TYPE for component X -// [13:10] D3D10_SB_RESOURCE_RETURN_TYPE for component Y -// [17:14] D3D10_SB_RESOURCE_RETURN_TYPE for component Z -// [21:18] D3D10_SB_RESOURCE_RETURN_TYPE for component W -// [30:22] Ignored, 0. -// } -// else -// { -// [30:04] Ignored, 0. -// } -// [31] 0 normally. 1 there is another extended opcode. Any number -// of extended opcode tokens can be chained. It is possible that some extended -// opcode tokens could include multiple DWORDS - that is defined -// on a case by case basis. -// -// ---------------------------------------------------------------------------- -typedef enum D3D10_SB_EXTENDED_OPCODE_TYPE -{ - D3D10_SB_EXTENDED_OPCODE_EMPTY = 0, - D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS = 1, - D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM = 2, - D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE = 3, -} D3D10_SB_EXTENDED_OPCODE_TYPE; -#define D3D11_SB_MAX_SIMULTANEOUS_EXTENDED_OPCODES 3 - -#define D3D10_SB_EXTENDED_OPCODE_TYPE_MASK 0x0000003f - -// DECODER MACRO: Given an extended opcode -// token (OpcodeToken1), figure out what type -// of token it is (from D3D10_SB_EXTENDED_OPCODE_TYPE enum) -// to be able to interpret the rest of the token's contents. -#define DECODE_D3D10_SB_EXTENDED_OPCODE_TYPE(OpcodeToken1) ((D3D10_SB_EXTENDED_OPCODE_TYPE)((OpcodeToken1)&D3D10_SB_EXTENDED_OPCODE_TYPE_MASK)) - -// ENCODER MACRO: Store extended opcode token -// type in OpcodeToken1. -#define ENCODE_D3D10_SB_EXTENDED_OPCODE_TYPE(ExtOpcodeType) ((ExtOpcodeType)&D3D10_SB_EXTENDED_OPCODE_TYPE_MASK) - -typedef enum D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD -{ - D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_U = 0, - D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_V = 1, - D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_W = 2, -} D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD; -#define D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD_MASK (3) -#define D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord) (9+4*((Coord)&D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD_MASK)) -#define D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord) (0x0000000f<>(D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord)))) - -// ENCODER MACRO: Store the immediate texel address offset -// for U or V or W Coord (D3D10_SB_ADDRESS_OFFSET_COORD) in an extended -// opcode token (OpcodeToken1) that has extended opcode -// type == D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS (opcode type encoded separately) -// A 2's complement number is expected as input, from which the LSB 4 bits are extracted. -#define ENCODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET(Coord,ImmediateOffset) (((ImmediateOffset)<>D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT)) - -// ENCODER MACRO: Store resource dimension -// (D3D10_SB_RESOURCE_DIMENSION enum) into a -// an extended resource declaration token (D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM) -#define ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION(ResourceDim) (((ResourceDim)<>D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT) - -// ENCODER MACRO: Store resource dimension structure stride -// (12-bit unsigned integer) into a -// an extended resource declaration token (D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM) -#define ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(Stride) (((Stride)<> \ - (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS + D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT))&D3D10_SB_RESOURCE_RETURN_TYPE_MASK)) - -// ENCODER MACRO: Generate a resource return type for a component in an extended -// resource delcaration token (D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE) -#define ENCODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE(ReturnType, Component) \ - (((ReturnType)&D3D10_SB_RESOURCE_RETURN_TYPE_MASK) << (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS + D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT)) - -// ---------------------------------------------------------------------------- -// Custom-Data Block Format -// -// DWORD 0 (CustomDataDescTok): -// [10:00] == D3D10_SB_OPCODE_CUSTOMDATA -// [31:11] == D3D10_SB_CUSTOMDATA_CLASS -// -// DWORD 1: -// 32-bit unsigned integer count of number -// of DWORDs in custom-data block, -// including DWORD 0 and DWORD 1. -// So the minimum value is 0x00000002, -// meaning empty custom-data. -// -// Layout of custom-data contents, for the various meta-data classes, -// not defined in this file. -// -// ---------------------------------------------------------------------------- - -typedef enum D3D10_SB_CUSTOMDATA_CLASS -{ - D3D10_SB_CUSTOMDATA_COMMENT = 0, - D3D10_SB_CUSTOMDATA_DEBUGINFO, - D3D10_SB_CUSTOMDATA_OPAQUE, - D3D10_SB_CUSTOMDATA_DCL_IMMEDIATE_CONSTANT_BUFFER, - D3D11_SB_CUSTOMDATA_SHADER_MESSAGE, - D3D11_SB_CUSTOMDATA_SHADER_CLIP_PLANE_CONSTANT_MAPPINGS_FOR_DX9, -} D3D10_SB_CUSTOMDATA_CLASS; - -#define D3D10_SB_CUSTOMDATA_CLASS_MASK 0xfffff800 -#define D3D10_SB_CUSTOMDATA_CLASS_SHIFT 11 -// DECODER MACRO: Find out what class of custom-data is present. -// The contents of the custom-data block are defined -// for each class of custom-data. -#define DECODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataDescTok) ((D3D10_SB_CUSTOMDATA_CLASS)(((CustomDataDescTok)&D3D10_SB_CUSTOMDATA_CLASS_MASK)>>D3D10_SB_CUSTOMDATA_CLASS_SHIFT)) -// ENCODER MACRO: Create complete CustomDataDescTok -#define ENCODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataClass) (ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_CUSTOMDATA)|(((CustomDataClass)<= D3D10_SB_OPERAND_INDEX_1D ) -// D3D10_SB_OPERAND_INDEX_REPRESENTATION for first operand index -// else -// Ignored, 0 -// [27:25] if( [21:20] >= D3D10_SB_OPERAND_INDEX_2D ) -// D3D10_SB_OPERAND_INDEX_REPRESENTATION for second operand index -// else -// Ignored, 0 -// [30:28] if( [21:20] == D3D10_SB_OPERAND_INDEX_3D ) -// D3D10_SB_OPERAND_INDEX_REPRESENTATION for third operand index -// else -// Ignored, 0 -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. -// -// ---------------------------------------------------------------------------- - -// Number of components in data vector referred to by operand. -typedef enum D3D10_SB_OPERAND_NUM_COMPONENTS -{ - D3D10_SB_OPERAND_0_COMPONENT = 0, - D3D10_SB_OPERAND_1_COMPONENT = 1, - D3D10_SB_OPERAND_4_COMPONENT = 2, - D3D10_SB_OPERAND_N_COMPONENT = 3 // unused for now -} D3D10_SB_OPERAND_NUM_COMPONENTS; -#define D3D10_SB_OPERAND_NUM_COMPONENTS_MASK 0x00000003 - -// DECODER MACRO: Extract from OperandToken0 how many components -// the data vector referred to by the operand contains. -// (D3D10_SB_OPERAND_NUM_COMPONENTS enum) -#define DECODE_D3D10_SB_OPERAND_NUM_COMPONENTS(OperandToken0) ((D3D10_SB_OPERAND_NUM_COMPONENTS)((OperandToken0)&D3D10_SB_OPERAND_NUM_COMPONENTS_MASK)) - -// ENCODER MACRO: Define in OperandToken0 how many components -// the data vector referred to by the operand contains. -// (D3D10_SB_OPERAND_NUM_COMPONENTS enum). -#define ENCODE_D3D10_SB_OPERAND_NUM_COMPONENTS(NumComp) ((NumComp)&D3D10_SB_OPERAND_NUM_COMPONENTS_MASK) - -typedef enum D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE -{ - D3D10_SB_OPERAND_4_COMPONENT_MASK_MODE = 0, // mask 4 components - D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MODE = 1, // swizzle 4 components - D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE = 2, // select 1 of 4 components -} D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE; - -#define D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK 0x0000000c -#define D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT 2 - -// DECODER MACRO: For an operand representing 4component data, -// extract from OperandToken0 the method for selecting data from -// the 4 components (D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE). -#define DECODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE(OperandToken0) ((D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE)(((OperandToken0)&D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK)>>D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT)) - -// ENCODER MACRO: For an operand representing 4component data, -// encode in OperandToken0 a value from D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE -#define ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE(SelectionMode) (((SelectionMode)<>(D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT+2*((DestComp)&D3D10_SB_4_COMPONENT_NAME_MASK)))&D3D10_SB_4_COMPONENT_NAME_MASK)) - -// ENCODER MACRO: Generate a 4 component swizzle given -// 4 D3D10_SB_4_COMPONENT_NAME source values for dest -// components x, y, z, w respectively. -#define ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(XSrc,YSrc,ZSrc,WSrc) ((((XSrc)&D3D10_SB_4_COMPONENT_NAME_MASK)| \ - (((YSrc)&D3D10_SB_4_COMPONENT_NAME_MASK)<<2)| \ - (((ZSrc)&D3D10_SB_4_COMPONENT_NAME_MASK)<<4)| \ - (((WSrc)&D3D10_SB_4_COMPONENT_NAME_MASK)<<6) \ - )<>D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT)) - -// ENCODER MACRO: Given a D3D10_SB_4_COMPONENT_NAME selecting -// a single component for D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE, -// encode it into OperandToken0 -#define ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1(SelectedComp) (((SelectedComp)<>D3D10_SB_OPERAND_TYPE_SHIFT)) - -// ENCODER MACRO: Store operand type in OperandToken0. -#define ENCODE_D3D10_SB_OPERAND_TYPE(OperandType) (((OperandType)<>D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT)) - -// ENCODER MACRO: Store operand index dimension -// (D3D10_SB_OPERAND_INDEX_DIMENSION enum) in OperandToken0. -#define ENCODE_D3D10_SB_OPERAND_INDEX_DIMENSION(OperandIndexDim) (((OperandIndexDim)<>D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim))) - -// ENCODER MACRO: Store in OperandToken0 what representation -// an operand index is provided as (D3D10_SB_OPERAND_INDEX_REPRESENTATION enum), -// for index dimension [0], [1] or [2], depending on D3D10_SB_OPERAND_INDEX_DIMENSION. -#define ENCODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION(Dim,IndexRepresentation) (((IndexRepresentation)<>D3D10_SB_OPERAND_EXTENDED_SHIFT) - -// ENCODER MACRO: Store in OperandToken0 whether the operand is extended -// by an additional operand token. -#define ENCODE_D3D10_SB_OPERAND_EXTENDED(bExtended) (((bExtended)!=0)?D3D10_SB_OPERAND_EXTENDED_MASK:0) - -// ---------------------------------------------------------------------------- -// Extended Instruction Operand Format (OperandToken1) -// -// If bit31 of an operand token is set, the -// operand has additional data in a second DWORD -// directly following OperandToken0. Other tokens -// expected for the operand, such as immmediate -// values or relative address operands (full -// operands in themselves) always follow -// OperandToken0 AND OperandToken1..n (extended -// operand tokens, if present). -// -// [05:00] D3D10_SB_EXTENDED_OPERAND_TYPE -// [16:06] if([05:00] == D3D10_SB_EXTENDED_OPERAND_MODIFIER) -// { -// [13:06] D3D10_SB_OPERAND_MODIFIER -// [16:14] Min Precision: D3D11_SB_OPERAND_MIN_PRECISION -// [17:17] Non-uniform: D3D12_SB_OPERAND_NON_UNIFORM -// } -// else -// { -// [17:06] Ignored, 0. -// } -// [30:18] Ignored, 0. -// [31] 0 normally. 1 if second order extended operand definition, -// meaning next DWORD contains yet ANOTHER extended operand -// description. Currently no second order extensions defined. -// This would be useful if a particular extended operand does -// not have enough space to store the required information in -// a single token and so is extended further. -// -// ---------------------------------------------------------------------------- - -typedef enum D3D10_SB_EXTENDED_OPERAND_TYPE -{ - D3D10_SB_EXTENDED_OPERAND_EMPTY = 0, // Might be used if this - // enum is full and - // further extended opcode - // is needed. - D3D10_SB_EXTENDED_OPERAND_MODIFIER = 1, -} D3D10_SB_EXTENDED_OPERAND_TYPE; -#define D3D10_SB_EXTENDED_OPERAND_TYPE_MASK 0x0000003f - -// DECODER MACRO: Given an extended operand -// token (OperandToken1), figure out what type -// of token it is (from D3D10_SB_EXTENDED_OPERAND_TYPE enum) -// to be able to interpret the rest of the token's contents. -#define DECODE_D3D10_SB_EXTENDED_OPERAND_TYPE(OperandToken1) ((D3D10_SB_EXTENDED_OPERAND_TYPE)((OperandToken1)&D3D10_SB_EXTENDED_OPERAND_TYPE_MASK)) - -// ENCODER MACRO: Store extended operand token -// type in OperandToken1. -#define ENCODE_D3D10_SB_EXTENDED_OPERAND_TYPE(ExtOperandType) ((ExtOperandType)&D3D10_SB_EXTENDED_OPERAND_TYPE_MASK) - -typedef enum D3D10_SB_OPERAND_MODIFIER -{ - D3D10_SB_OPERAND_MODIFIER_NONE = 0, // Nop. This is the implied - // default if the extended - // operand is not present for - // an operand for which source - // modifiers are meaningful - D3D10_SB_OPERAND_MODIFIER_NEG = 1, // Negate - D3D10_SB_OPERAND_MODIFIER_ABS = 2, // Absolute value, abs() - D3D10_SB_OPERAND_MODIFIER_ABSNEG = 3, // -abs() -} D3D10_SB_OPERAND_MODIFIER; -#define D3D10_SB_OPERAND_MODIFIER_MASK 0x00003fc0 -#define D3D10_SB_OPERAND_MODIFIER_SHIFT 6 - -// DECODER MACRO: Given a D3D10_SB_EXTENDED_OPERAND_MODIFIER -// extended token (OperandToken1), determine the source modifier -// (D3D10_SB_OPERAND_MODIFIER enum) -#define DECODE_D3D10_SB_OPERAND_MODIFIER(OperandToken1) ((D3D10_SB_OPERAND_MODIFIER)(((OperandToken1)&D3D10_SB_OPERAND_MODIFIER_MASK)>>D3D10_SB_OPERAND_MODIFIER_SHIFT)) - -// ENCODER MACRO: Generate a complete source modifier extended token -// (OperandToken1), given D3D10_SB_OPERAND_MODIFIER enum (the -// ext. operand type is also set to D3D10_SB_EXTENDED_OPERAND_MODIFIER). -#define ENCODE_D3D10_SB_EXTENDED_OPERAND_MODIFIER(SourceMod) ((((SourceMod)<> D3D11_SB_OPERAND_MIN_PRECISION_SHIFT)) - -// ENCODER MACRO: Encode minimum precision for execution -// into the extended operand token, OperandToken1 -#define ENCODE_D3D11_SB_OPERAND_MIN_PRECISION(MinPrecision) (((MinPrecision)<< D3D11_SB_OPERAND_MIN_PRECISION_SHIFT)& D3D11_SB_OPERAND_MIN_PRECISION_MASK) - - -// Non-uniform extended operand modifier. -#define D3D12_SB_OPERAND_NON_UNIFORM_MASK 0x00020000 -#define D3D12_SB_OPERAND_NON_UNIFORM_SHIFT 17 - -// DECODER MACRO: For an OperandToken1 that can specify a non-uniform operand -#define DECODE_D3D12_SB_OPERAND_NON_UNIFORM(OperandToken1) (((OperandToken1)& D3D12_SB_OPERAND_NON_UNIFORM_MASK)>> D3D12_SB_OPERAND_NON_UNIFORM_SHIFT) - -// ENCODER MACRO: Encode non-uniform state into the extended operand token, OperandToken1 -#define ENCODE_D3D12_SB_OPERAND_NON_UNIFORM(NonUniform) (((NonUniform)<< D3D12_SB_OPERAND_NON_UNIFORM_SHIFT)& D3D12_SB_OPERAND_NON_UNIFORM_MASK) - - -#define D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK 0x80000000 -#define D3D10_SB_OPERAND_DOUBLE_EXTENDED_SHIFT 31 -// DECODER MACRO: Determine if an extended operand token -// (OperandToken1) is further extended by yet another token -// (OperandToken2). Currently there are no secondary -// extended operand tokens. -#define DECODE_IS_D3D10_SB_OPERAND_DOUBLE_EXTENDED(OperandToken1) (((OperandToken1)&D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK)>>D3D10_SB_OPERAND_DOUBLE_EXTENDED_SHIFT) - -// ENCODER MACRO: Store in OperandToken1 whether the operand is extended -// by an additional operand token. Currently there are no secondary -// extended operand tokens. -#define ENCODE_D3D10_SB_OPERAND_DOUBLE_EXTENDED(bExtended) (((bExtended)!=0)?D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK:0) - -// ---------------------------------------------------------------------------- -// Name Token (NameToken) (used in declaration statements) -// -// [15:00] D3D10_SB_NAME enumeration -// [31:16] Reserved, 0 -// -// ---------------------------------------------------------------------------- -#define D3D10_SB_NAME_MASK 0x0000ffff - -// DECODER MACRO: Get the name from NameToken -#define DECODE_D3D10_SB_NAME(NameToken) ((D3D10_SB_NAME)((NameToken)&D3D10_SB_NAME_MASK)) - -// ENCODER MACRO: Generate a complete NameToken given a D3D10_SB_NAME -#define ENCODE_D3D10_SB_NAME(Name) ((Name)&D3D10_SB_NAME_MASK) - -//--------------------------------------------------------------------- -// Declaration Statements -// -// Declarations start with a standard opcode token, -// having opcode type being D3D10_SB_OPCODE_DCL*. -// Each particular declaration type has custom -// operand token(s), described below. -//--------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// Global Flags Declaration -// -// OpcodeToken0: -// -// [10:00] D3D10_SB_OPCODE_DCL_GLOBAL_FLAGS -// [11:11] Refactoring allowed if bit set. -// [12:12] Enable double precision float ops. -// [13:13] Force early depth-stencil test. -// [14:14] Enable RAW and structured buffers in non-CS 4.x shaders. -// [15:15] Skip optimizations of shader IL when translating to native code -// [16:16] Enable minimum-precision data types -// [17:17] Enable 11.1 double-precision floating-point instruction extensions -// [18:18] Enable 11.1 non-double instruction extensions -// [23:19] Reserved for future flags. -// [30:24] Instruction length in DWORDs including the opcode token. == 1 -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by no operands. -// -// ---------------------------------------------------------------------------- -#define D3D10_SB_GLOBAL_FLAG_REFACTORING_ALLOWED (1<<11) -#define D3D11_SB_GLOBAL_FLAG_ENABLE_DOUBLE_PRECISION_FLOAT_OPS (1<<12) -#define D3D11_SB_GLOBAL_FLAG_FORCE_EARLY_DEPTH_STENCIL (1<<13) -#define D3D11_SB_GLOBAL_FLAG_ENABLE_RAW_AND_STRUCTURED_BUFFERS (1<<14) -#define D3D11_1_SB_GLOBAL_FLAG_SKIP_OPTIMIZATION (1<<15) -#define D3D11_1_SB_GLOBAL_FLAG_ENABLE_MINIMUM_PRECISION (1<<16) -#define D3D11_1_SB_GLOBAL_FLAG_ENABLE_DOUBLE_EXTENSIONS (1<<17) -#define D3D11_1_SB_GLOBAL_FLAG_ENABLE_SHADER_EXTENSIONS (1<<18) -#define D3D12_SB_GLOBAL_FLAG_ALL_RESOURCES_BOUND (1<<19) - -#define D3D10_SB_GLOBAL_FLAGS_MASK 0x00fff800 - -// DECODER MACRO: Get global flags -#define DECODE_D3D10_SB_GLOBAL_FLAGS(OpcodeToken0) ((OpcodeToken0)&D3D10_SB_GLOBAL_FLAGS_MASK) - -// ENCODER MACRO: Encode global flags -#define ENCODE_D3D10_SB_GLOBAL_FLAGS(Flags) ((Flags)&D3D10_SB_GLOBAL_FLAGS_MASK) - -// ---------------------------------------------------------------------------- -// Resource Declaration (non multisampled) -// -// OpcodeToken0: -// -// [10:00] D3D10_SB_OPCODE_DCL_RESOURCE -// [15:11] D3D10_SB_RESOURCE_DIMENSION -// [23:16] Ignored, 0 -// [30:24] Instruction length in DWORDs including the opcode token. -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by 2 operands on Shader Models 4.0 through 5.0: -// (1) an operand, starting with OperandToken0, defining which -// t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. -// (2) a Resource Return Type token (ResourceReturnTypeToken) -// -// OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: -// (1) an operand, starting with OperandToken0, defining which -// t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. -// The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, -// and the meaning of the index dimensions are as follows: (t[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of resources in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the t# is used in shader instructions, where the register -// must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index -// dimensions are as follows: (t[]): -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of resource within space (may be dynamically indexed) -// (2) a Resource Return Type token (ResourceReturnTypeToken) -// (3) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- -#define D3D10_SB_RESOURCE_DIMENSION_MASK 0x0000F800 -#define D3D10_SB_RESOURCE_DIMENSION_SHIFT 11 - -// DECODER MACRO: Given a resource declaration token, -// (OpcodeToken0), determine the resource dimension -// (D3D10_SB_RESOURCE_DIMENSION enum) -#define DECODE_D3D10_SB_RESOURCE_DIMENSION(OpcodeToken0) ((D3D10_SB_RESOURCE_DIMENSION)(((OpcodeToken0)&D3D10_SB_RESOURCE_DIMENSION_MASK)>>D3D10_SB_RESOURCE_DIMENSION_SHIFT)) - -// ENCODER MACRO: Store resource dimension -// (D3D10_SB_RESOURCE_DIMENSION enum) into a -// a resource declaration token (OpcodeToken0) -#define ENCODE_D3D10_SB_RESOURCE_DIMENSION(ResourceDim) (((ResourceDim)<[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of resources in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the t# is used in shader instructions, where the register -// must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index -// dimensions are as follows: (t[]): -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of resource within space (may be dynamically indexed) -// (2) a Resource Return Type token (ResourceReturnTypeToken) -// (3) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- - -// use same macro for encoding/decoding resource dimension aas the non-msaa declaration - -#define D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK 0x07F0000 -#define D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT 16 - -// DECODER MACRO: Given a resource declaration token, -// (OpcodeToken0), determine the resource sample count (1..127) -#define DECODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(OpcodeToken0) ((UINT)(((OpcodeToken0)&D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK)>>D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT)) - -// ENCODER MACRO: Store resource sample count up to 127 into a -// a resource declaration token (OpcodeToken0) -#define ENCODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(SampleCount) (((SampleCount > 127 ? 127 : SampleCount)<> \ - (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS))&D3D10_SB_RESOURCE_RETURN_TYPE_MASK)) - -// ENCODER MACRO: Generate a resource return type for a component -#define ENCODE_D3D10_SB_RESOURCE_RETURN_TYPE(ReturnType, Component) \ - (((ReturnType)&D3D10_SB_RESOURCE_RETURN_TYPE_MASK) << (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS)) - -// ---------------------------------------------------------------------------- -// Sampler Declaration -// -// OpcodeToken0: -// -// [10:00] D3D10_SB_OPCODE_DCL_SAMPLER -// [14:11] D3D10_SB_SAMPLER_MODE -// [23:15] Ignored, 0 -// [30:24] Instruction length in DWORDs including the opcode token. -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by 1 operand on Shader Models 4.0 through 5.0: -// (1) Operand starting with OperandToken0, defining which sampler -// (D3D10_SB_OPERAND_TYPE_SAMPLER) register # is being declared. -// -// OpcodeToken0 is followed by 2 operands on Shader Model 5.1 and later: -// (1) an operand, starting with OperandToken0, defining which -// s# register (D3D10_SB_OPERAND_TYPE_SAMPLER) is being declared. -// The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, -// and the meaning of the index dimensions are as follows: (s[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of samplers in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the s# is used in shader instructions, where the register -// must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index -// dimensions are as follows: (s[]): -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of sampler within space (may be dynamically indexed) -// (2) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- -typedef enum D3D10_SB_SAMPLER_MODE -{ - D3D10_SB_SAMPLER_MODE_DEFAULT = 0, - D3D10_SB_SAMPLER_MODE_COMPARISON = 1, - D3D10_SB_SAMPLER_MODE_MONO = 2, -} D3D10_SB_SAMPLER_MODE; - -#define D3D10_SB_SAMPLER_MODE_MASK 0x00007800 -#define D3D10_SB_SAMPLER_MODE_SHIFT 11 - -// DECODER MACRO: Find out if a Constant Buffer is going to be indexed or not -#define DECODE_D3D10_SB_SAMPLER_MODE(OpcodeToken0) ((D3D10_SB_SAMPLER_MODE)(((OpcodeToken0)&D3D10_SB_SAMPLER_MODE_MASK)>>D3D10_SB_SAMPLER_MODE_SHIFT)) - -// ENCODER MACRO: Generate a resource return type for a component -#define ENCODE_D3D10_SB_SAMPLER_MODE(SamplerMode) (((SamplerMode)<>D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT)) - -// ENCODER MACRO: Encode interpolation mode for a register. -#define ENCODE_D3D10_SB_INPUT_INTERPOLATION_MODE(InterpolationMode) (((InterpolationMode)<[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of constant buffers in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the cb#[] is used in shader instructions: (cb[][]) -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of constant buffer within space (may be dynamically indexed) -// 3 : location of vector within constant buffer being referenced, -// which may also be dynamically indexed, with no access pattern flag required. -// (2) a DWORD indicating the size of the constant buffer as a count of 16-byte vectors. -// Each vector is 32-bit*4 elements == 128-bits == 16 bytes. -// If the size is specified as 0, the CB size is not known (any size CB -// can be bound to the slot). -// (3) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- - -typedef enum D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN -{ - D3D10_SB_CONSTANT_BUFFER_IMMEDIATE_INDEXED = 0, - D3D10_SB_CONSTANT_BUFFER_DYNAMIC_INDEXED = 1 -} D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN; - -#define D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK 0x00000800 -#define D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT 11 - -// DECODER MACRO: Find out if a Constant Buffer is going to be indexed or not -#define DECODE_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN(OpcodeToken0) ((D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN)(((OpcodeToken0)&D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK)>>D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT)) - -// ENCODER MACRO: Encode the access pattern for the Constant Buffer -#define ENCODE_D3D10_SB_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN(AccessPattern) (((AccessPattern)<>D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT)) - -// ENCODER MACRO: Store primitive topology -// (D3D10_SB_PRIMITIVE enum) into a -// a primitive topology declaration token (OpcodeToken0) -#define ENCODE_D3D10_SB_GS_INPUT_PRIMITIVE(Prim) (((Prim)<>D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT)) - -// ENCODER MACRO: Store primitive topology -// (D3D10_SB_PRIMITIVE_TOPOLOGY enum) into a -// a primitive topology declaration token (OpcodeToken0) -#define ENCODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY(PrimTopology) (((PrimTopology)<>D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT)) - -// ENCODER MACRO: Store input control point count into a declaration token -#define ENCODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(Count) (((Count)<>D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT)) - -// ENCODER MACRO: Store output control point count into a declaration token -#define ENCODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(Count) (((Count)<>D3D11_SB_TESS_DOMAIN_SHIFT)) - -// ENCODER MACRO: Store tessellator domain -// (D3D11_SB_TESSELLATOR_DOMAIN enum) into a -// a tessellator domain declaration token (OpcodeToken0) -#define ENCODE_D3D11_SB_TESS_DOMAIN(Domain) (((Domain)<>D3D11_SB_TESS_PARTITIONING_SHIFT)) - -// ENCODER MACRO: Store tessellator partitioning -// (D3D11_SB_TESSELLATOR_PARTITIONING enum) into a -// a tessellator partitioning declaration token (OpcodeToken0) -#define ENCODE_D3D11_SB_TESS_PARTITIONING(Partitioning) (((Partitioning)<>D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT)) - -// ENCODER MACRO: Store tessellator output primitive -// (D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE enum) into a -// a tessellator output primitive declaration token (OpcodeToken0) -#define ENCODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE(OutputPrimitive) (((OutputPrimitive)<>D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT)) -// ENCODER MACRO: Encode the return type for instructions -// in the opcode specific control range of OpcodeToken0 -#define ENCODE_D3D10_SB_INSTRUCTION_RETURN_TYPE(ReturnType) (((ReturnType)<>D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT) ? true : false) -#define ENCODE_D3D11_SB_INTERFACE_INDEXED_BIT(IndexedBit) (((IndexedBit)<>D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT)) -#define ENCODE_D3D11_SB_INTERFACE_TABLE_LENGTH(TableLength) (((TableLength)<>D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT)) -#define ENCODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(ArrayLength) (((ArrayLength)<[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of UAV's in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the u# is used in shader instructions, where the register -// must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index -// dimensions are as follows: (u[]): -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of uav within space (may be dynamically indexed) -// (2) a Resource Return Type token (ResourceReturnTypeToken) -// (3) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- -// UAV access scope flags -#define D3D11_SB_GLOBALLY_COHERENT_ACCESS 0x00010000 -#define D3D11_SB_ACCESS_COHERENCY_MASK 0x00010000 - -// DECODER MACRO: Retrieve flags for sync instruction from OpcodeToken0. -#define DECODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(OperandToken0) ((OperandToken0)&D3D11_SB_ACCESS_COHERENCY_MASK) - -// ENCODER MACRO: Given a set of sync instruciton flags, encode them in OpcodeToken0. -#define ENCODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(Flags) ((Flags)&D3D11_SB_ACCESS_COHERENCY_MASK) - -// Additional UAV access flags -#define D3D11_SB_RASTERIZER_ORDERED_ACCESS 0x00020000 - -// Resource flags mask. Use to retrieve all resource flags, including the order preserving counter. -#define D3D11_SB_RESOURCE_FLAGS_MASK (D3D11_SB_GLOBALLY_COHERENT_ACCESS|D3D11_SB_RASTERIZER_ORDERED_ACCESS|D3D11_SB_UAV_HAS_ORDER_PRESERVING_COUNTER) - -// DECODER MACRO: Retrieve UAV access flags for from OpcodeToken0. -#define DECODE_D3D11_SB_RESOURCE_FLAGS(OperandToken0) ((OperandToken0)&D3D11_SB_RESOURCE_FLAGS_MASK) - -// ENCODER MACRO: Given UAV access flags, encode them in OpcodeToken0. -#define ENCODE_D3D11_SB_RESOURCE_FLAGS(Flags) ((Flags)&D3D11_SB_RESOURCE_FLAGS_MASK) - -// ---------------------------------------------------------------------------- -// Raw Unordered Access View Declaration -// -// OpcodeToken0: -// -// [10:00] D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_RAW -// [15:11] Ignored, 0 -// [16:16] D3D11_SB_GLOBALLY_COHERENT_ACCESS or 0 (LOCALLY_COHERENT) -// [17:17] D3D11_SB_RASTERIZER_ORDERED_ACCESS or 0 -// [23:18] Ignored, 0 -// [30:24] Instruction length in DWORDs including the opcode token. -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by 1 operand on Shader Models 4.0 through 5.0: -// (1) an operand, starting with OperandToken0, defining which -// u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is being declared. -// -// OpcodeToken0 is followed by 2 operands on Shader Model 5.1 and later: -// (1) an operand, starting with OperandToken0, defining which -// u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is being declared. -// The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, -// and the meaning of the index dimensions are as follows: (u[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of UAV's in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the u# is used in shader instructions, where the register -// must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index -// dimensions are as follows: (u[]): -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of uav within space (may be dynamically indexed) -// (2) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// Structured Unordered Access View Declaration -// -// OpcodeToken0: -// -// [10:00] D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_STRUCTURED -// [15:11] Ignored, 0 -// [16:16] D3D11_SB_GLOBALLY_COHERENT_ACCESS or 0 (LOCALLY_COHERENT) -// [17:17] D3D11_SB_RASTERIZER_ORDERED_ACCESS or 0 -// [22:18] Ignored, 0 -// [23:23] D3D11_SB_UAV_HAS_ORDER_PRESERVING_COUNTER or 0 -// -// The presence of this flag means that if a UAV is bound to the -// corresponding slot, it must have been created with -// D3D11_BUFFER_UAV_FLAG_COUNTER at the API. Also, the shader -// can contain either imm_atomic_alloc or _consume instructions -// operating on the given UAV. -// -// If this flag is not present, the shader can still contain -// either imm_atomic_alloc or imm_atomic_consume instructions for -// this UAV. But if such instructions are present in this case, -// and a UAV is bound corresponding slot, it must have been created -// with the D3D11_BUFFER_UAV_FLAG_APPEND flag at the API. -// Append buffers have a counter as well, but values returned -// to the shader are only valid for the lifetime of the shader -// invocation. -// -// [30:24] Instruction length in DWORDs including the opcode token. -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by 2 operands: -// (1) an operand, starting with OperandToken0, defining which -// u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is -// being declared. -// (2) a DWORD indicating UINT32 byte stride -// -// OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: -// (1) an operand, starting with OperandToken0, defining which -// u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is being declared. -// The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, -// and the meaning of the index dimensions are as follows: (u[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of UAV's in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the u# is used in shader instructions, where the register -// must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index -// dimensions are as follows: (u[]): -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of uav within space (may be dynamically indexed) -// (2) a DWORD indicating UINT32 byte stride -// (3) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- -// UAV flags -#define D3D11_SB_UAV_HAS_ORDER_PRESERVING_COUNTER 0x00800000 -#define D3D11_SB_UAV_FLAGS_MASK 0x00800000 - -// DECODER MACRO: Retrieve flags about UAV from OpcodeToken0. -#define DECODE_D3D11_SB_UAV_FLAGS(OperandToken0) ((OperandToken0)&D3D11_SB_UAV_FLAGS_MASK) - -// ENCODER MACRO: Given a set of UAV flags, encode them in OpcodeToken0. -#define ENCODE_D3D11_SB_UAV_FLAGS(Flags) ((Flags)&D3D11_SB_UAV_FLAGS_MASK) - -// ---------------------------------------------------------------------------- -// Raw Thread Group Shared Memory Declaration -// -// OpcodeToken0: -// -// [10:00] D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_RAW -// [23:11] Ignored, 0 -// [30:24] Instruction length in DWORDs including the opcode token. -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by 2 operands: -// (1) an operand, starting with OperandToken0, defining which -// g# register (D3D11_SB_OPERAND_TYPE_THREAD_GROUP_SHARED_MEMORY) is being declared. -// (2) a DWORD indicating the byte count, which must be a multiple of 4. -// -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// Structured Thread Group Shared Memory Declaration -// -// OpcodeToken0: -// -// [10:00] D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_STRUCTURED -// [23:11] Ignored, 0 -// [30:24] Instruction length in DWORDs including the opcode token. -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by 3 operands: -// (1) an operand, starting with OperandToken0, defining which -// g# register (D3D11_SB_OPERAND_TYPE_THREAD_GROUP_SHARED_MEMORY) is -// being declared. -// (2) a DWORD indicating UINT32 struct byte stride -// (3) a DWORD indicating UINT32 struct count -// -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// Raw Shader Resource View Declaration -// -// OpcodeToken0: -// -// [10:00] D3D11_SB_OPCODE_DCL_RESOURCE_RAW -// [23:11] Ignored, 0 -// [30:24] Instruction length in DWORDs including the opcode token. -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by 1 operand: -// (1) an operand, starting with OperandToken0, defining which -// t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. -// -// OpcodeToken0 is followed by 2 operands on Shader Model 5.1 and later: -// (1) an operand, starting with OperandToken0, defining which -// t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. -// The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, -// and the meaning of the index dimensions are as follows: (t[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of resources in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the t# is used in shader instructions, where the register -// must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index -// dimensions are as follows: (t[]): -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of resource within space (may be dynamically indexed) -// (2) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// Structured Shader Resource View Declaration -// -// OpcodeToken0: -// -// [10:00] D3D11_SB_OPCODE_DCL_RESOURCE_STRUCTURED -// [23:11] Ignored, 0 -// [30:24] Instruction length in DWORDs including the opcode token. -// [31] 0 normally. 1 if extended operand definition, meaning next DWORD -// contains extended operand description. This dcl is currently not -// extended. -// -// OpcodeToken0 is followed by 2 operands: -// (1) an operand, starting with OperandToken0, defining which -// g# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is -// being declared. -// (2) a DWORD indicating UINT32 struct byte stride -// -// OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: -// (1) an operand, starting with OperandToken0, defining which -// t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. -// The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, -// and the meaning of the index dimensions are as follows: (t[:]) -// 1 : variable ID being declared -// 2 : the lower bound of the range of resources in the space -// 3 : the upper bound (inclusive) of this range -// As opposed to when the t# is used in shader instructions, where the register -// must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index -// dimensions are as follows: (t[]): -// 1 : variable ID being used (matches dcl) -// 2 : absolute index of resource within space (may be dynamically indexed) -// (2) a DWORD indicating UINT32 struct byte stride -// (3) a DWORD indicating the space index. -// -// ---------------------------------------------------------------------------- - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ -#pragma endregion diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/DirectML.h b/Juliet/src/Graphics/DX12/D3D12/directx/DirectML.h deleted file mode 100644 index 3bd1921..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/DirectML.h +++ /dev/null @@ -1,2651 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. - -#ifndef DIRECTML_H -#define DIRECTML_H -#pragma once - -#ifdef _GAMING_XBOX_SCARLETT -#include "d3d12_xs.h" -#elif _GAMING_XBOX_XBOXONE -#include "d3d12_x.h" -#else -#include "d3d12.h" -#endif - -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) - -#ifndef DML_DECLARE_INTERFACE -#define DML_DECLARE_INTERFACE(iid) DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE -#endif - -#ifndef DML_TARGET_VERSION - -#if !defined(NTDDI_VERSION) || defined(DML_TARGET_VERSION_USE_LATEST) // Use the latest if using redist or no Windows target set. -#define DML_TARGET_VERSION 0x6400 -#elif defined(NTDDI_WIN10_ZN) && NTDDI_VERSION >= NTDDI_WIN10_ZN -#define DML_TARGET_VERSION 0x6000 -#elif defined(NTDDI_WIN10_NI) && NTDDI_VERSION >= NTDDI_WIN10_NI -#define DML_TARGET_VERSION 0x5000 -#elif defined(NTDDI_WIN10_CO) && NTDDI_VERSION >= NTDDI_WIN10_CO -#define DML_TARGET_VERSION 0x4000 -#elif defined(NTDDI_WIN10_FE) && NTDDI_VERSION >= NTDDI_WIN10_FE -#define DML_TARGET_VERSION 0x3000 -#elif defined(NTDDI_WIN10_VB) && NTDDI_VERSION >= NTDDI_WIN10_VB // Windows 10 2004 Update -#define DML_TARGET_VERSION 0x2000 -#else // defined(NTDDI_WIN10_19H1) && NTDDI_VERSION >= NTDDI_WIN10_19H1 // Windows 10 1903 Update -#define DML_TARGET_VERSION 0x1000 -#endif - -#endif // !defined(DML_TARGET_VERSION) - -// =================================================================================================================== -// DirectML constants -// =================================================================================================================== - -static const UINT DML_TENSOR_DIMENSION_COUNT_MAX = 5; -#if DML_TARGET_VERSION >= 0x3000 -static const UINT DML_TENSOR_DIMENSION_COUNT_MAX1 = 8; -#endif - -static const UINT DML_TEMPORARY_BUFFER_ALIGNMENT = 256; -static const UINT DML_PERSISTENT_BUFFER_ALIGNMENT = 256; - -static const UINT DML_MINIMUM_BUFFER_TENSOR_ALIGNMENT = 16; - - -// =================================================================================================================== -// Interface declarations -// =================================================================================================================== - -interface IDMLObject; -interface IDMLDevice; -interface IDMLDeviceChild; -interface IDMLPageable; -interface IDMLDispatchable; -interface IDMLOperator; -interface IDMLCompiledOperator; -interface IDMLOperatorInitializer; -interface IDMLBindingTable; -interface IDMLCommandRecorder; - - -// =================================================================================================================== -// Tensor descriptions -// =================================================================================================================== - -enum DML_TENSOR_DATA_TYPE -{ - DML_TENSOR_DATA_TYPE_UNKNOWN, - DML_TENSOR_DATA_TYPE_FLOAT32, - DML_TENSOR_DATA_TYPE_FLOAT16, - DML_TENSOR_DATA_TYPE_UINT32, - DML_TENSOR_DATA_TYPE_UINT16, - DML_TENSOR_DATA_TYPE_UINT8, - DML_TENSOR_DATA_TYPE_INT32, - DML_TENSOR_DATA_TYPE_INT16, - DML_TENSOR_DATA_TYPE_INT8, - DML_TENSOR_DATA_TYPE_FLOAT64, - DML_TENSOR_DATA_TYPE_UINT64, - DML_TENSOR_DATA_TYPE_INT64, -#if DML_TARGET_VERSION >= 0x6300 - DML_TENSOR_DATA_TYPE_UINT4, - DML_TENSOR_DATA_TYPE_INT4, -#endif // DML_TARGET_VERSION >= 0x6300 -}; - -enum DML_TENSOR_TYPE -{ - DML_TENSOR_TYPE_INVALID, - - DML_TENSOR_TYPE_BUFFER, -}; - -enum DML_TENSOR_FLAGS -{ - DML_TENSOR_FLAG_NONE = 0x0, - DML_TENSOR_FLAG_OWNED_BY_DML = 0x1, -}; - -DEFINE_ENUM_FLAG_OPERATORS(DML_TENSOR_FLAGS) - -struct DML_BUFFER_TENSOR_DESC -{ - DML_TENSOR_DATA_TYPE DataType; - DML_TENSOR_FLAGS Flags; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Sizes; - _Field_size_opt_(DimensionCount) const UINT* Strides; - UINT64 TotalTensorSizeInBytes; - UINT GuaranteedBaseOffsetAlignment; -}; - -struct DML_TENSOR_DESC -{ - DML_TENSOR_TYPE Type; - _Field_size_(_Inexpressible_("Dependent on tensor type")) const void* Desc; -}; - - -// =================================================================================================================== -// Operator types -// =================================================================================================================== - -enum DML_OPERATOR_TYPE -{ - DML_OPERATOR_INVALID, - - DML_OPERATOR_ELEMENT_WISE_IDENTITY, - DML_OPERATOR_ELEMENT_WISE_ABS, - DML_OPERATOR_ELEMENT_WISE_ACOS, - DML_OPERATOR_ELEMENT_WISE_ADD, - DML_OPERATOR_ELEMENT_WISE_ASIN, - DML_OPERATOR_ELEMENT_WISE_ATAN, - DML_OPERATOR_ELEMENT_WISE_CEIL, - DML_OPERATOR_ELEMENT_WISE_CLIP, - DML_OPERATOR_ELEMENT_WISE_COS, - DML_OPERATOR_ELEMENT_WISE_DIVIDE, - DML_OPERATOR_ELEMENT_WISE_EXP, - DML_OPERATOR_ELEMENT_WISE_FLOOR, - DML_OPERATOR_ELEMENT_WISE_LOG, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR, - DML_OPERATOR_ELEMENT_WISE_MAX, - DML_OPERATOR_ELEMENT_WISE_MEAN, - DML_OPERATOR_ELEMENT_WISE_MIN, - DML_OPERATOR_ELEMENT_WISE_MULTIPLY, - DML_OPERATOR_ELEMENT_WISE_POW, - DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW, - DML_OPERATOR_ELEMENT_WISE_RECIP, - DML_OPERATOR_ELEMENT_WISE_SIN, - DML_OPERATOR_ELEMENT_WISE_SQRT, - DML_OPERATOR_ELEMENT_WISE_SUBTRACT, - DML_OPERATOR_ELEMENT_WISE_TAN, - DML_OPERATOR_ELEMENT_WISE_THRESHOLD, - DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR, - DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR, - DML_OPERATOR_ACTIVATION_ELU, - DML_OPERATOR_ACTIVATION_HARDMAX, - DML_OPERATOR_ACTIVATION_HARD_SIGMOID, - DML_OPERATOR_ACTIVATION_IDENTITY, - DML_OPERATOR_ACTIVATION_LEAKY_RELU, - DML_OPERATOR_ACTIVATION_LINEAR, - DML_OPERATOR_ACTIVATION_LOG_SOFTMAX, - DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU, - DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS, - DML_OPERATOR_ACTIVATION_RELU, - DML_OPERATOR_ACTIVATION_SCALED_ELU, - DML_OPERATOR_ACTIVATION_SCALED_TANH, - DML_OPERATOR_ACTIVATION_SIGMOID, - DML_OPERATOR_ACTIVATION_SOFTMAX, - DML_OPERATOR_ACTIVATION_SOFTPLUS, - DML_OPERATOR_ACTIVATION_SOFTSIGN, - DML_OPERATOR_ACTIVATION_TANH, - DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU, - DML_OPERATOR_CONVOLUTION, - DML_OPERATOR_GEMM, - DML_OPERATOR_REDUCE, - DML_OPERATOR_AVERAGE_POOLING, - DML_OPERATOR_LP_POOLING, - DML_OPERATOR_MAX_POOLING, - DML_OPERATOR_ROI_POOLING, - DML_OPERATOR_SLICE, - DML_OPERATOR_CAST, - DML_OPERATOR_SPLIT, - DML_OPERATOR_JOIN, - DML_OPERATOR_PADDING, - DML_OPERATOR_VALUE_SCALE_2D, - DML_OPERATOR_UPSAMPLE_2D, - DML_OPERATOR_GATHER, - DML_OPERATOR_SPACE_TO_DEPTH, - DML_OPERATOR_DEPTH_TO_SPACE, - DML_OPERATOR_TILE, - DML_OPERATOR_TOP_K, - DML_OPERATOR_BATCH_NORMALIZATION, - DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION, - DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION, - DML_OPERATOR_LP_NORMALIZATION, - DML_OPERATOR_RNN, - DML_OPERATOR_LSTM, - DML_OPERATOR_GRU, - -#if DML_TARGET_VERSION >= 0x2000 - DML_OPERATOR_ELEMENT_WISE_SIGN, - DML_OPERATOR_ELEMENT_WISE_IS_NAN, - DML_OPERATOR_ELEMENT_WISE_ERF, - DML_OPERATOR_ELEMENT_WISE_SINH, - DML_OPERATOR_ELEMENT_WISE_COSH, - DML_OPERATOR_ELEMENT_WISE_TANH, - DML_OPERATOR_ELEMENT_WISE_ASINH, - DML_OPERATOR_ELEMENT_WISE_ACOSH, - DML_OPERATOR_ELEMENT_WISE_ATANH, - DML_OPERATOR_ELEMENT_WISE_IF, - DML_OPERATOR_ELEMENT_WISE_ADD1, - DML_OPERATOR_ACTIVATION_SHRINK, - DML_OPERATOR_MAX_POOLING1, - DML_OPERATOR_MAX_UNPOOLING, - DML_OPERATOR_DIAGONAL_MATRIX, - DML_OPERATOR_SCATTER_ELEMENTS, - DML_OPERATOR_SCATTER = DML_OPERATOR_SCATTER_ELEMENTS, // Alias name for backwards compatibility. - DML_OPERATOR_ONE_HOT, - DML_OPERATOR_RESAMPLE, -#endif // DML_TARGET_VERSION >= 0x2000 - -#if DML_TARGET_VERSION >= 0x2100 - DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT, - DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT, - DML_OPERATOR_ELEMENT_WISE_ROUND, - DML_OPERATOR_ELEMENT_WISE_IS_INFINITY, - DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE, - DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR, - DML_OPERATOR_FILL_VALUE_CONSTANT, - DML_OPERATOR_FILL_VALUE_SEQUENCE, - DML_OPERATOR_CUMULATIVE_SUMMATION, - DML_OPERATOR_REVERSE_SUBSEQUENCES, - DML_OPERATOR_GATHER_ELEMENTS, - DML_OPERATOR_GATHER_ND, - DML_OPERATOR_SCATTER_ND, - DML_OPERATOR_MAX_POOLING2, - DML_OPERATOR_SLICE1, - DML_OPERATOR_TOP_K1, - DML_OPERATOR_DEPTH_TO_SPACE1, - DML_OPERATOR_SPACE_TO_DEPTH1, - DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1, - DML_OPERATOR_RESAMPLE1, - DML_OPERATOR_MATRIX_MULTIPLY_INTEGER, - DML_OPERATOR_QUANTIZED_LINEAR_MATRIX_MULTIPLY, - DML_OPERATOR_CONVOLUTION_INTEGER, - DML_OPERATOR_QUANTIZED_LINEAR_CONVOLUTION, -#endif // DML_TARGET_VERSION >= 0x2100 - -#if DML_TARGET_VERSION >= 0x3000 - DML_OPERATOR_ELEMENT_WISE_BIT_AND, - DML_OPERATOR_ELEMENT_WISE_BIT_OR, - DML_OPERATOR_ELEMENT_WISE_BIT_XOR, - DML_OPERATOR_ELEMENT_WISE_BIT_NOT, - DML_OPERATOR_ELEMENT_WISE_BIT_COUNT, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL, - DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL, - DML_OPERATOR_ACTIVATION_CELU, - DML_OPERATOR_ACTIVATION_RELU_GRAD, - DML_OPERATOR_AVERAGE_POOLING_GRAD, - DML_OPERATOR_MAX_POOLING_GRAD, - DML_OPERATOR_RANDOM_GENERATOR, - DML_OPERATOR_NONZERO_COORDINATES, - DML_OPERATOR_RESAMPLE_GRAD, - DML_OPERATOR_SLICE_GRAD, - DML_OPERATOR_ADAM_OPTIMIZER, - DML_OPERATOR_ARGMIN, - DML_OPERATOR_ARGMAX, - DML_OPERATOR_ROI_ALIGN, - DML_OPERATOR_GATHER_ND1, -#endif // DML_TARGET_VERSION >= 0x3000 - -#if DML_TARGET_VERSION >= 0x3100 - DML_OPERATOR_ELEMENT_WISE_ATAN_YX, - DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD, - DML_OPERATOR_ELEMENT_WISE_DIFFERENCE_SQUARE, - DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION_GRAD, - DML_OPERATOR_CUMULATIVE_PRODUCT, - DML_OPERATOR_BATCH_NORMALIZATION_GRAD, -#endif // DML_TARGET_VERSION >= 0x3100 - -#if DML_TARGET_VERSION >= 0x4000 - DML_OPERATOR_ELEMENT_WISE_QUANTIZED_LINEAR_ADD, - DML_OPERATOR_DYNAMIC_QUANTIZE_LINEAR, - DML_OPERATOR_ROI_ALIGN1, -#endif // DML_TARGET_VERSION >= 0x4000 - -#if DML_TARGET_VERSION >= 0x4100 - DML_OPERATOR_ROI_ALIGN_GRAD, - DML_OPERATOR_BATCH_NORMALIZATION_TRAINING, - DML_OPERATOR_BATCH_NORMALIZATION_TRAINING_GRAD, -#endif // DML_TARGET_VERSION >= 0x4100 - -#if DML_TARGET_VERSION >= 0x5000 - DML_OPERATOR_ELEMENT_WISE_CLIP1, - DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD1, - DML_OPERATOR_PADDING1, - DML_OPERATOR_ELEMENT_WISE_NEGATE, -#endif // DML_TARGET_VERSION >= 0x5000 - -#if DML_TARGET_VERSION >= 0x5100 - DML_OPERATOR_ACTIVATION_GELU, - DML_OPERATOR_ACTIVATION_SOFTMAX1, - DML_OPERATOR_ACTIVATION_LOG_SOFTMAX1, - DML_OPERATOR_ACTIVATION_HARDMAX1, - DML_OPERATOR_RESAMPLE2, - DML_OPERATOR_RESAMPLE_GRAD1, - DML_OPERATOR_DIAGONAL_MATRIX1, -#endif // DML_TARGET_VERSION >= 0x5100 - -#if DML_TARGET_VERSION >= 0x6100 - DML_OPERATOR_MULTIHEAD_ATTENTION, -#endif // DML_TARGET_VERSION >= 0x6100 - -#if DML_TARGET_VERSION >= 0x6200 - DML_OPERATOR_LP_POOLING1, - DML_OPERATOR_AVERAGE_POOLING1, - DML_OPERATOR_ACTIVATION_SWISH, - DML_OPERATOR_ACTIVATION_HARD_SWISH, - DML_OPERATOR_QUANTIZED_LINEAR_AVERAGE_POOLING, - DML_OPERATOR_MATRIX_MULTIPLY_INTEGER_TO_FLOAT, -#endif // DML_TARGET_VERSION >= 0x6200 - -#if DML_TARGET_VERSION >= 0x6300 - DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION2, - DML_OPERATOR_MULTIHEAD_ATTENTION1, - DML_OPERATOR_QUANTIZE, - DML_OPERATOR_DEQUANTIZE, -#endif // DML_TARGET_VERSION >= 0x6300 - -#if DML_TARGET_VERSION >= 0x6400 - DML_OPERATOR_RESAMPLE3, - DML_OPERATOR_FOLD, - DML_OPERATOR_UNFOLD, -#endif // DML_TARGET_VERSION >= 0x6400 -}; - -// =================================================================================================================== -// Operator enumerations and structures -// =================================================================================================================== - -enum DML_REDUCE_FUNCTION -{ - DML_REDUCE_FUNCTION_ARGMAX, - DML_REDUCE_FUNCTION_ARGMIN, - DML_REDUCE_FUNCTION_AVERAGE, - DML_REDUCE_FUNCTION_L1, - DML_REDUCE_FUNCTION_L2, - DML_REDUCE_FUNCTION_LOG_SUM, - DML_REDUCE_FUNCTION_LOG_SUM_EXP, - DML_REDUCE_FUNCTION_MAX, - DML_REDUCE_FUNCTION_MIN, - DML_REDUCE_FUNCTION_MULTIPLY, - DML_REDUCE_FUNCTION_SUM, - DML_REDUCE_FUNCTION_SUM_SQUARE, -}; - -enum DML_MATRIX_TRANSFORM -{ - DML_MATRIX_TRANSFORM_NONE, - DML_MATRIX_TRANSFORM_TRANSPOSE, -}; - -enum DML_CONVOLUTION_MODE -{ - DML_CONVOLUTION_MODE_CONVOLUTION, - DML_CONVOLUTION_MODE_CROSS_CORRELATION, -}; - -enum DML_CONVOLUTION_DIRECTION -{ - DML_CONVOLUTION_DIRECTION_FORWARD, - DML_CONVOLUTION_DIRECTION_BACKWARD, -}; - -enum DML_PADDING_MODE -{ - DML_PADDING_MODE_CONSTANT, - DML_PADDING_MODE_EDGE, - DML_PADDING_MODE_REFLECTION, - -#if DML_TARGET_VERSION >= 0x3000 - DML_PADDING_MODE_SYMMETRIC, -#endif - -#if DML_TARGET_VERSION >= 0x6400 - DML_PADDING_MODE_WRAP, -#endif -}; - -enum DML_INTERPOLATION_MODE -{ - DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR, - DML_INTERPOLATION_MODE_LINEAR, -}; - -struct DML_SCALE_BIAS -{ - FLOAT Scale; - FLOAT Bias; -}; - -struct DML_SIZE_2D -{ - UINT Width; - UINT Height; -}; - -enum DML_RECURRENT_NETWORK_DIRECTION -{ - DML_RECURRENT_NETWORK_DIRECTION_FORWARD, - DML_RECURRENT_NETWORK_DIRECTION_BACKWARD, - DML_RECURRENT_NETWORK_DIRECTION_BIDIRECTIONAL, -}; - -#if DML_TARGET_VERSION >= 0x2100 - -enum DML_ROUNDING_MODE -{ - DML_ROUNDING_MODE_HALVES_TO_NEAREST_EVEN, - DML_ROUNDING_MODE_TOWARD_ZERO, - DML_ROUNDING_MODE_TOWARD_INFINITY, -}; - -enum DML_IS_INFINITY_MODE -{ - DML_IS_INFINITY_MODE_EITHER = 0, - DML_IS_INFINITY_MODE_POSITIVE = 1, - DML_IS_INFINITY_MODE_NEGATIVE = 2, -}; - -enum DML_AXIS_DIRECTION -{ - DML_AXIS_DIRECTION_INCREASING = 0, - DML_AXIS_DIRECTION_DECREASING = 1, -}; - -enum DML_DEPTH_SPACE_ORDER -{ - DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW, - DML_DEPTH_SPACE_ORDER_COLUMN_ROW_DEPTH, -}; - -union DML_SCALAR_UNION -{ - BYTE Bytes[8]; - INT8 Int8; - UINT8 UInt8; - INT16 Int16; - UINT16 UInt16; - INT32 Int32; - UINT32 UInt32; - INT64 Int64; - UINT64 UInt64; - FLOAT Float32; - DOUBLE Float64; -}; - -#endif // DML_TARGET_VERSION >= 0x2100 - -#if DML_TARGET_VERSION >= 0x3000 - -enum DML_RANDOM_GENERATOR_TYPE -{ - DML_RANDOM_GENERATOR_TYPE_PHILOX_4X32_10 -}; - -#endif // DML_TARGET_VERSION >= 0x3000 - -#if DML_TARGET_VERSION >= 0x6100 - -enum DML_MULTIHEAD_ATTENTION_MASK_TYPE -{ - DML_MULTIHEAD_ATTENTION_MASK_TYPE_NONE, - DML_MULTIHEAD_ATTENTION_MASK_TYPE_KEY_SEQUENCE_LENGTH, - DML_MULTIHEAD_ATTENTION_MASK_TYPE_KEY_SEQUENCE_END_START, - DML_MULTIHEAD_ATTENTION_MASK_TYPE_KEY_QUERY_SEQUENCE_LENGTH_START_END, - DML_MULTIHEAD_ATTENTION_MASK_TYPE_BOOLEAN, -}; - -#endif // DML_TARGET_VERSION >= 0x6100 - -#if DML_TARGET_VERSION >= 0x6300 - -enum DML_QUANTIZATION_TYPE -{ - DML_QUANTIZATION_TYPE_NONE, - DML_QUANTIZATION_TYPE_SCALE, - DML_QUANTIZATION_TYPE_SCALE_ZERO_POINT, -}; - -#endif // DML_TARGET_VERSION >= 0x6300 - -// =================================================================================================================== -// Operator descriptions -// =================================================================================================================== - -struct DML_OPERATOR_DESC -{ - DML_OPERATOR_TYPE Type; - _Field_size_(_Inexpressible_("Dependent on operator type")) const void* Desc; -}; - -struct DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_ABS_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_ACOS_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_ADD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_ADD1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; -}; - -struct DML_ELEMENT_WISE_ASIN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_ATAN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_CEIL_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_CLIP_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; - FLOAT Min; - FLOAT Max; -}; - -struct DML_ELEMENT_WISE_COS_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_EXP_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_LOG_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_MAX_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_MEAN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_MIN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_POW_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* ExponentTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; - FLOAT Exponent; -}; - -struct DML_ELEMENT_WISE_RECIP_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_SIN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_SQRT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_TAN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_THRESHOLD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; - FLOAT Min; -}; - -struct DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* ScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* ZeroPointTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* ScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* ZeroPointTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_ELU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; -}; - -struct DML_ACTIVATION_HARDMAX_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_HARD_SIGMOID_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; - FLOAT Beta; -}; - -struct DML_ACTIVATION_IDENTITY_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_LEAKY_RELU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; -}; - -struct DML_ACTIVATION_LINEAR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; - FLOAT Beta; -}; - -struct DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* SlopeTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; - FLOAT Beta; -}; - -struct DML_ACTIVATION_RELU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_SCALED_ELU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; - FLOAT Gamma; -}; - -struct DML_ACTIVATION_SCALED_TANH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; - FLOAT Beta; -}; - -struct DML_ACTIVATION_SIGMOID_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_SOFTMAX_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_SOFTPLUS_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Steepness; -}; - -struct DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_TANH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; -}; - -struct DML_CONVOLUTION_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* FilterTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_CONVOLUTION_MODE Mode; - DML_CONVOLUTION_DIRECTION Direction; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* Dilations; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - _Field_size_(DimensionCount) const UINT* OutputPadding; - UINT GroupCount; - _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; -}; - -struct DML_GEMM_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - _Maybenull_ const DML_TENSOR_DESC* CTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_MATRIX_TRANSFORM TransA; - DML_MATRIX_TRANSFORM TransB; - FLOAT Alpha; - FLOAT Beta; - _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; -}; - -struct DML_REDUCE_OPERATOR_DESC -{ - DML_REDUCE_FUNCTION Function; - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT AxisCount; - _Field_size_(AxisCount) const UINT* Axes; -}; - -struct DML_AVERAGE_POOLING_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - BOOL IncludePadding; -}; - -struct DML_LP_POOLING_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - UINT P; -}; - -struct DML_MAX_POOLING_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; -}; - -struct DML_ROI_POOLING_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* ROITensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT SpatialScale; - DML_SIZE_2D PooledSize; -}; - -struct DML_SLICE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Offsets; - _Field_size_(DimensionCount) const UINT* Sizes; - _Field_size_(DimensionCount) const UINT* Strides; -}; - -struct DML_CAST_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_SPLIT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - UINT OutputCount; - _Field_size_(OutputCount) const DML_TENSOR_DESC* OutputTensors; - UINT Axis; -}; - -struct DML_JOIN_OPERATOR_DESC -{ - UINT InputCount; - _Field_size_(InputCount) const DML_TENSOR_DESC* InputTensors; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; -}; - -struct DML_PADDING_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_PADDING_MODE PaddingMode; - FLOAT PaddingValue; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; -}; - -struct DML_VALUE_SCALE_2D_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Scale; - UINT ChannelCount; - _Field_size_(ChannelCount) const FLOAT* Bias; -}; - -struct DML_UPSAMPLE_2D_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_SIZE_2D ScaleSize; - DML_INTERPOLATION_MODE InterpolationMode; -}; - -struct DML_GATHER_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* IndicesTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; - UINT IndexDimensions; -}; - -struct DML_SPACE_TO_DEPTH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT BlockSize; -}; - -struct DML_DEPTH_TO_SPACE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT BlockSize; -}; - -struct DML_TILE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT RepeatsCount; - _Field_size_(RepeatsCount) const UINT* Repeats; -}; - -struct DML_TOP_K_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputValueTensor; - const DML_TENSOR_DESC* OutputIndexTensor; - UINT Axis; - UINT K; -}; - -struct DML_BATCH_NORMALIZATION_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* MeanTensor; - const DML_TENSOR_DESC* VarianceTensor; - const DML_TENSOR_DESC* ScaleTensor; - const DML_TENSOR_DESC* BiasTensor; - const DML_TENSOR_DESC* OutputTensor; - BOOL Spatial; - FLOAT Epsilon; - _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; -}; - -struct DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - _Maybenull_ const DML_TENSOR_DESC* ScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - const DML_TENSOR_DESC* OutputTensor; - BOOL CrossChannel; - BOOL NormalizeVariance; - FLOAT Epsilon; - _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; -}; - -struct DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - BOOL CrossChannel; - UINT LocalSize; - FLOAT Alpha; - FLOAT Beta; - FLOAT Bias; -}; - -struct DML_LP_NORMALIZATION_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; - FLOAT Epsilon; - UINT P; -}; - -struct DML_RNN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* WeightTensor; - const DML_TENSOR_DESC* RecurrenceTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - _Maybenull_ const DML_TENSOR_DESC* HiddenInitTensor; - _Maybenull_ const DML_TENSOR_DESC* SequenceLengthsTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputSequenceTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputSingleTensor; - UINT ActivationDescCount; - _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC* ActivationDescs; - DML_RECURRENT_NETWORK_DIRECTION Direction; -}; - -struct DML_LSTM_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* WeightTensor; - const DML_TENSOR_DESC* RecurrenceTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - _Maybenull_ const DML_TENSOR_DESC* HiddenInitTensor; - _Maybenull_ const DML_TENSOR_DESC* CellMemInitTensor; - _Maybenull_ const DML_TENSOR_DESC* SequenceLengthsTensor; - _Maybenull_ const DML_TENSOR_DESC* PeepholeTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputSequenceTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputSingleTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputCellSingleTensor; - UINT ActivationDescCount; - _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC* ActivationDescs; - DML_RECURRENT_NETWORK_DIRECTION Direction; - float ClipThreshold; - BOOL UseClipThreshold; - BOOL CoupleInputForget; -}; - -struct DML_GRU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* WeightTensor; - const DML_TENSOR_DESC* RecurrenceTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - _Maybenull_ const DML_TENSOR_DESC* HiddenInitTensor; - _Maybenull_ const DML_TENSOR_DESC* SequenceLengthsTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputSequenceTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputSingleTensor; - UINT ActivationDescCount; - _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC* ActivationDescs; - DML_RECURRENT_NETWORK_DIRECTION Direction; - BOOL LinearBeforeReset; -}; - -#if DML_TARGET_VERSION >= 0x2000 - -struct DML_ELEMENT_WISE_SIGN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_IS_NAN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_ERF_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_SINH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_COSH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_TANH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_ASINH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_ACOSH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_ATANH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; -}; - -struct DML_ELEMENT_WISE_IF_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ConditionTensor; - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_SHRINK_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Bias; - FLOAT Threshold; -}; - -struct DML_MAX_POOLING1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputIndicesTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; -}; - -struct DML_MAX_UNPOOLING_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* IndicesTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_DIAGONAL_MATRIX_OPERATOR_DESC -{ - const DML_TENSOR_DESC* OutputTensor; - INT Offset; - FLOAT Value; -}; - -struct DML_SCATTER_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* IndicesTensor; - const DML_TENSOR_DESC* UpdatesTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; -}; - -struct DML_ONE_HOT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* IndicesTensor; - const DML_TENSOR_DESC* ValuesTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; -}; - -struct DML_RESAMPLE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_INTERPOLATION_MODE InterpolationMode; - UINT ScaleCount; - _Field_size_(ScaleCount) const FLOAT* Scales; -}; - -#endif // DML_TARGET_VERSION >= 0x2000 - -#if DML_TARGET_VERSION >= 0x2100 - -struct DML_ELEMENT_WISE_BIT_SHIFT_LEFT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_BIT_SHIFT_RIGHT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_ROUND_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_ROUNDING_MODE RoundingMode; -}; - -struct DML_ELEMENT_WISE_IS_INFINITY_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_IS_INFINITY_MODE InfinityMode; -}; - -struct DML_ELEMENT_WISE_MODULUS_TRUNCATE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_MODULUS_FLOOR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_FILL_VALUE_CONSTANT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* OutputTensor; - DML_TENSOR_DATA_TYPE ValueDataType; - DML_SCALAR_UNION Value; -}; - -struct DML_FILL_VALUE_SEQUENCE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* OutputTensor; - DML_TENSOR_DATA_TYPE ValueDataType; - DML_SCALAR_UNION ValueStart; - DML_SCALAR_UNION ValueDelta; -}; - -struct DML_CUMULATIVE_SUMMATION_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; - DML_AXIS_DIRECTION AxisDirection; - BOOL HasExclusiveSum; -}; - -struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* SequenceLengthsTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; -}; - -struct DML_GATHER_ELEMENTS_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* IndicesTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; -}; - -// Alias existing operator, symmetric with DML_GATHER_ELEMENTS_OPERATOR_DESC. -using DML_SCATTER_ELEMENTS_OPERATOR_DESC = DML_SCATTER_OPERATOR_DESC; - -struct DML_GATHER_ND_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* IndicesTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT InputDimensionCount; - UINT IndicesDimensionCount; -}; - -struct DML_SCATTER_ND_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* IndicesTensor; - const DML_TENSOR_DESC* UpdatesTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT InputDimensionCount; - UINT IndicesDimensionCount; -}; - -struct DML_MAX_POOLING2_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputIndicesTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - _Field_size_(DimensionCount) const UINT* Dilations; -}; - -struct DML_SLICE1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* InputWindowOffsets; - _Field_size_(DimensionCount) const UINT* InputWindowSizes; - _Field_size_(DimensionCount) const INT* InputWindowStrides; -}; - -struct DML_TOP_K1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputValueTensor; - const DML_TENSOR_DESC* OutputIndexTensor; - UINT Axis; - UINT K; - DML_AXIS_DIRECTION AxisDirection; -}; - -struct DML_DEPTH_TO_SPACE1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT BlockSize; - DML_DEPTH_SPACE_ORDER Order; -}; - -struct DML_SPACE_TO_DEPTH1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT BlockSize; - DML_DEPTH_SPACE_ORDER Order; -}; - -struct DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - _Maybenull_ const DML_TENSOR_DESC* ScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT AxisCount; - _Field_size_(AxisCount) const UINT* Axes; - BOOL NormalizeVariance; - FLOAT Epsilon; - _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; -}; - -struct DML_RESAMPLE1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_INTERPOLATION_MODE InterpolationMode; - UINT DimensionCount; - _Field_size_(DimensionCount) const FLOAT* Scales; - _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; - _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; -}; - -struct DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - _Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor; - const DML_TENSOR_DESC* BTensor; - _Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_QUANTIZED_LINEAR_MATRIX_MULTIPLY_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* AScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* BScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor; - const DML_TENSOR_DESC* OutputScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_CONVOLUTION_INTEGER_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - _Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor; - const DML_TENSOR_DESC* FilterTensor; - _Maybenull_ const DML_TENSOR_DESC* FilterZeroPointTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* Dilations; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - UINT GroupCount; -}; - -struct DML_QUANTIZED_LINEAR_CONVOLUTION_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor; - const DML_TENSOR_DESC* FilterTensor; - const DML_TENSOR_DESC* FilterScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* FilterZeroPointTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - const DML_TENSOR_DESC* OutputScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* Dilations; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - UINT GroupCount; -}; - -#endif // DML_TARGET_VERSION >= 0x2100 - -#if DML_TARGET_VERSION >= 0x3000 - -struct DML_ELEMENT_WISE_BIT_AND_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_BIT_OR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_BIT_XOR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_BIT_NOT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_BIT_COUNT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_CELU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; -}; - -struct DML_ACTIVATION_RELU_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; -}; - -struct DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - BOOL IncludePadding; -}; - -struct DML_MAX_POOLING_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - _Field_size_(DimensionCount) const UINT* Dilations; -}; - -struct DML_RANDOM_GENERATOR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputStateTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputStateTensor; - DML_RANDOM_GENERATOR_TYPE Type; -}; - -struct DML_NONZERO_COORDINATES_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputCountTensor; - const DML_TENSOR_DESC* OutputCoordinatesTensor; -}; - -struct DML_RESAMPLE_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - DML_INTERPOLATION_MODE InterpolationMode; - UINT DimensionCount; - _Field_size_(DimensionCount) const FLOAT* Scales; - _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; - _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; -}; - -struct DML_SLICE_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* InputWindowOffsets; - _Field_size_(DimensionCount) const UINT* InputWindowSizes; - _Field_size_(DimensionCount) const INT* InputWindowStrides; -}; - -struct DML_ADAM_OPTIMIZER_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputParametersTensor; - const DML_TENSOR_DESC* InputFirstMomentTensor; - const DML_TENSOR_DESC* InputSecondMomentTensor; - const DML_TENSOR_DESC* GradientTensor; - const DML_TENSOR_DESC* TrainingStepTensor; - const DML_TENSOR_DESC* OutputParametersTensor; - const DML_TENSOR_DESC* OutputFirstMomentTensor; - const DML_TENSOR_DESC* OutputSecondMomentTensor; - FLOAT LearningRate; - FLOAT Beta1; - FLOAT Beta2; - FLOAT Epsilon; -}; - -struct DML_ARGMIN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT AxisCount; - _Field_size_(AxisCount) const UINT* Axes; - DML_AXIS_DIRECTION AxisDirection; -}; - -struct DML_ARGMAX_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT AxisCount; - _Field_size_(AxisCount) const UINT* Axes; - DML_AXIS_DIRECTION AxisDirection; -}; - -struct DML_ROI_ALIGN_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* ROITensor; - const DML_TENSOR_DESC* BatchIndicesTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_REDUCE_FUNCTION ReductionFunction; - DML_INTERPOLATION_MODE InterpolationMode; - FLOAT SpatialScaleX; - FLOAT SpatialScaleY; - FLOAT OutOfBoundsInputValue; - UINT MinimumSamplesPerOutput; - UINT MaximumSamplesPerOutput; -}; - -struct DML_GATHER_ND1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* IndicesTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT InputDimensionCount; - UINT IndicesDimensionCount; - UINT BatchDimensionCount; -}; - -#endif // DML_TARGET_VERSION >= 0x3000 - -#if DML_TARGET_VERSION >= 0x3100 - -struct DML_ELEMENT_WISE_ATAN_YX_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ELEMENT_WISE_CLIP_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - FLOAT Min; - FLOAT Max; -}; - -struct DML_ELEMENT_WISE_DIFFERENCE_SQUARE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_LOCAL_RESPONSE_NORMALIZATION_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - BOOL CrossChannel; - UINT LocalSize; - FLOAT Alpha; - FLOAT Beta; - FLOAT Bias; -}; - -struct DML_CUMULATIVE_PRODUCT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT Axis; - DML_AXIS_DIRECTION AxisDirection; - BOOL HasExclusiveProduct; -}; - -struct DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* MeanTensor; - const DML_TENSOR_DESC* VarianceTensor; - const DML_TENSOR_DESC* ScaleTensor; - - const DML_TENSOR_DESC* OutputGradientTensor; - const DML_TENSOR_DESC* OutputScaleGradientTensor; - const DML_TENSOR_DESC* OutputBiasGradientTensor; - - FLOAT Epsilon; -}; - -#endif // DML_TARGET_VERSION >= 0x3100 - -#if DML_TARGET_VERSION >= 0x4000 -struct DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* AScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* BScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor; - const DML_TENSOR_DESC* OutputScaleTensor; // This is an input tensor - _Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor; // This is an input tensor - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - const DML_TENSOR_DESC* OutputScaleTensor; // This is an output tensor - const DML_TENSOR_DESC* OutputZeroPointTensor; // This is an output tensor -}; - -struct DML_ROI_ALIGN1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* ROITensor; - const DML_TENSOR_DESC* BatchIndicesTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_REDUCE_FUNCTION ReductionFunction; - DML_INTERPOLATION_MODE InterpolationMode; - FLOAT SpatialScaleX; - FLOAT SpatialScaleY; - FLOAT InputPixelOffset; - FLOAT OutputPixelOffset; - FLOAT OutOfBoundsInputValue; - UINT MinimumSamplesPerOutput; - UINT MaximumSamplesPerOutput; - BOOL AlignRegionsToCorners; -}; - -#endif // DML_TARGET_VERSION >= 0x4000 - -#if DML_TARGET_VERSION >= 0x4100 - -struct DML_ROI_ALIGN_GRAD_OPERATOR_DESC -{ - _Maybenull_ const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* ROITensor; - const DML_TENSOR_DESC* BatchIndicesTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputGradientTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputROIGradientTensor; - DML_REDUCE_FUNCTION ReductionFunction; - DML_INTERPOLATION_MODE InterpolationMode; - FLOAT SpatialScaleX; - FLOAT SpatialScaleY; - FLOAT InputPixelOffset; - FLOAT OutputPixelOffset; - UINT MinimumSamplesPerOutput; - UINT MaximumSamplesPerOutput; - BOOL AlignRegionsToCorners; -}; - -struct DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* ScaleTensor; - const DML_TENSOR_DESC* BiasTensor; - _Maybenull_ const DML_TENSOR_DESC* FusedAddTensor; - const DML_TENSOR_DESC* OutputTensor; - const DML_TENSOR_DESC* OutputMeanTensor; - const DML_TENSOR_DESC* OutputVarianceTensor; - FLOAT Epsilon; - _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; -}; - -struct DML_BATCH_NORMALIZATION_TRAINING_GRAD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* MeanTensor; - const DML_TENSOR_DESC* VarianceTensor; - const DML_TENSOR_DESC* ScaleTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - const DML_TENSOR_DESC* OutputScaleGradientTensor; - const DML_TENSOR_DESC* OutputBiasGradientTensor; - FLOAT Epsilon; -}; - -#endif // DML_TARGET_VERSION >= 0x4100 - -#if DML_TARGET_VERSION >= 0x5000 - -struct DML_ELEMENT_WISE_CLIP1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_SCALE_BIAS* ScaleBias; - DML_TENSOR_DATA_TYPE MinMaxDataType; - DML_SCALAR_UNION Min; - DML_SCALAR_UNION Max; -}; - -struct DML_ELEMENT_WISE_CLIP_GRAD1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - DML_TENSOR_DATA_TYPE MinMaxDataType; - DML_SCALAR_UNION Min; - DML_SCALAR_UNION Max; -}; - -struct DML_PADDING1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_PADDING_MODE PaddingMode; - DML_TENSOR_DATA_TYPE PaddingValueDataType; - DML_SCALAR_UNION PaddingValue; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; -}; - -struct DML_ELEMENT_WISE_NEGATE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -#endif // DML_TARGET_VERSION >= 0x5000 - -#if DML_TARGET_VERSION >= 0x5100 - -struct DML_ACTIVATION_GELU_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_ACTIVATION_SOFTMAX1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT AxisCount; - _Field_size_(AxisCount) const UINT* Axes; -}; - -struct DML_ACTIVATION_LOG_SOFTMAX1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT AxisCount; - _Field_size_(AxisCount) const UINT* Axes; -}; - -struct DML_ACTIVATION_HARDMAX1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT AxisCount; - _Field_size_(AxisCount) const UINT* Axes; -}; - -struct DML_RESAMPLE2_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_INTERPOLATION_MODE InterpolationMode; - DML_AXIS_DIRECTION RoundingDirection; - UINT DimensionCount; - _Field_size_(DimensionCount) const FLOAT* Scales; - _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; - _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; -}; - -struct DML_RESAMPLE_GRAD1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputGradientTensor; - const DML_TENSOR_DESC* OutputGradientTensor; - DML_INTERPOLATION_MODE InterpolationMode; - DML_AXIS_DIRECTION RoundingDirection; - UINT DimensionCount; - _Field_size_(DimensionCount) const FLOAT* Scales; - _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; - _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; -}; - -struct DML_DIAGONAL_MATRIX1_OPERATOR_DESC -{ - _Maybenull_ const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_TENSOR_DATA_TYPE ValueDataType; - DML_SCALAR_UNION Value; - INT DiagonalFillBegin; - INT DiagonalFillEnd; -}; - -#endif // DML_TARGET_VERSION >= 0x5100 - -#if DML_TARGET_VERSION >= 0x6100 - -struct DML_MULTIHEAD_ATTENTION_OPERATOR_DESC -{ - _Maybenull_ const DML_TENSOR_DESC* QueryTensor; - _Maybenull_ const DML_TENSOR_DESC* KeyTensor; - _Maybenull_ const DML_TENSOR_DESC* ValueTensor; - _Maybenull_ const DML_TENSOR_DESC* StackedQueryKeyTensor; - _Maybenull_ const DML_TENSOR_DESC* StackedKeyValueTensor; - _Maybenull_ const DML_TENSOR_DESC* StackedQueryKeyValueTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - _Maybenull_ const DML_TENSOR_DESC* MaskTensor; - _Maybenull_ const DML_TENSOR_DESC* RelativePositionBiasTensor; - _Maybenull_ const DML_TENSOR_DESC* PastKeyTensor; - _Maybenull_ const DML_TENSOR_DESC* PastValueTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputPresentKeyTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputPresentValueTensor; - FLOAT Scale; - FLOAT MaskFilterValue; - UINT HeadCount; - DML_MULTIHEAD_ATTENTION_MASK_TYPE MaskType; -}; - -#endif // DML_TARGET_VERSION >= 0x6100 - -#if DML_TARGET_VERSION >= 0x6200 - -struct DML_LP_POOLING1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - _Field_size_(DimensionCount) const UINT* Dilations; - UINT P; -}; - -struct DML_AVERAGE_POOLING1_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - _Field_size_(DimensionCount) const UINT* Dilations; - BOOL IncludePadding; -}; - -struct DML_ACTIVATION_SWISH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT SigmoidInputScale; -}; - -struct DML_ACTIVATION_HARD_SWISH_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - FLOAT Alpha; - FLOAT Beta; -}; - -struct DML_QUANTIZED_LINEAR_AVERAGE_POOLING_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* InputScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor; - const DML_TENSOR_DESC* OutputScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* Strides; - _Field_size_(DimensionCount) const UINT* WindowSize; - _Field_size_(DimensionCount) const UINT* StartPadding; - _Field_size_(DimensionCount) const UINT* EndPadding; - _Field_size_(DimensionCount) const UINT* Dilations; - BOOL IncludePadding; -}; - -struct DML_MATRIX_MULTIPLY_INTEGER_TO_FLOAT_OPERATOR_DESC -{ - const DML_TENSOR_DESC* ATensor; - const DML_TENSOR_DESC* AScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor; - const DML_TENSOR_DESC* BTensor; - const DML_TENSOR_DESC* BScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - const DML_TENSOR_DESC* OutputTensor; -}; - -#endif // DML_TARGET_VERSION >= 0x6200 - -#if DML_TARGET_VERSION >= 0x6300 - -struct DML_MEAN_VARIANCE_NORMALIZATION2_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - _Maybenull_ const DML_TENSOR_DESC* ScaleTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT AxisCount; - _Field_size_(AxisCount) const UINT* Axes; - BOOL UseMean; - BOOL UseVariance; - FLOAT Epsilon; - _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; -}; - -struct DML_MULTIHEAD_ATTENTION1_OPERATOR_DESC -{ - _Maybenull_ const DML_TENSOR_DESC* QueryTensor; - _Maybenull_ const DML_TENSOR_DESC* KeyTensor; - _Maybenull_ const DML_TENSOR_DESC* ValueTensor; - _Maybenull_ const DML_TENSOR_DESC* StackedQueryKeyTensor; - _Maybenull_ const DML_TENSOR_DESC* StackedKeyValueTensor; - _Maybenull_ const DML_TENSOR_DESC* StackedQueryKeyValueTensor; - _Maybenull_ const DML_TENSOR_DESC* BiasTensor; - _Maybenull_ const DML_TENSOR_DESC* MaskTensor; - _Maybenull_ const DML_TENSOR_DESC* RelativePositionBiasTensor; - _Maybenull_ const DML_TENSOR_DESC* PastKeyTensor; - _Maybenull_ const DML_TENSOR_DESC* PastValueTensor; - _Maybenull_ const DML_TENSOR_DESC* PastSequenceLengthsTensor; - const DML_TENSOR_DESC* OutputTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputPresentKeyTensor; - _Maybenull_ const DML_TENSOR_DESC* OutputPresentValueTensor; - FLOAT Scale; - FLOAT MaskFilterValue; - UINT QueryHeadCount; - UINT KeyValueHeadCount; - DML_MULTIHEAD_ATTENTION_MASK_TYPE MaskType; -}; - -struct DML_QUANTIZE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - DML_QUANTIZATION_TYPE QuantizationType; - UINT QuantizationTensorCount; - _Field_size_(QuantizationTensorCount) const DML_TENSOR_DESC* QuantizationTensors; - const DML_TENSOR_DESC* OutputTensor; -}; - -struct DML_DEQUANTIZE_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - DML_QUANTIZATION_TYPE QuantizationType; - UINT QuantizationTensorCount; - _Field_size_(QuantizationTensorCount) const DML_TENSOR_DESC* QuantizationTensors; - const DML_TENSOR_DESC* OutputTensor; -}; - -#endif // DML_TARGET_VERSION >= 0x6300 - -#if DML_TARGET_VERSION >= 0x6400 - -struct DML_RESAMPLE3_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - DML_INTERPOLATION_MODE InterpolationMode; - DML_AXIS_DIRECTION RoundingDirection; - UINT DimensionCount; - _Field_size_(DimensionCount) const FLOAT* Scales; - _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; - _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; - BOOL Antialiased; -}; - -struct DML_FOLD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* WindowSizes; // Size of the extracted patch - _Field_size_(DimensionCount) const UINT* Strides; // Step size of the extracted patches - _Field_size_(DimensionCount) const UINT* Dilations; // Dialations of the extracted patch - _Field_size_(DimensionCount) const UINT* StartPadding; // Start padding of the "source tensor" - _Field_size_(DimensionCount) const UINT* EndPadding; // End padding of the "source tensor" -}; - -struct DML_UNFOLD_OPERATOR_DESC -{ - const DML_TENSOR_DESC* InputTensor; - const DML_TENSOR_DESC* OutputTensor; - UINT DimensionCount; - _Field_size_(DimensionCount) const UINT* WindowSizes; // Size of the extracted patch - _Field_size_(DimensionCount) const UINT* Strides; // Step size of the extracted patches - _Field_size_(DimensionCount) const UINT* Dilations; // Dialations of the extracted patch - _Field_size_(DimensionCount) const UINT* StartPadding; // Start padding of the "source tensor" - _Field_size_(DimensionCount) const UINT* EndPadding; // End padding of the "source tensor" -}; - -#endif // DML_TARGET_VERSION >= 0x6400 - -// =================================================================================================================== -// DML feature support queries -// =================================================================================================================== - -#if DML_TARGET_VERSION >= 0x2000 - -enum DML_FEATURE_LEVEL -{ - DML_FEATURE_LEVEL_1_0 = 0x1000, - DML_FEATURE_LEVEL_2_0 = 0x2000, - DML_FEATURE_LEVEL_2_1 = 0x2100, - DML_FEATURE_LEVEL_3_0 = 0x3000, - DML_FEATURE_LEVEL_3_1 = 0x3100, - DML_FEATURE_LEVEL_4_0 = 0x4000, - DML_FEATURE_LEVEL_4_1 = 0x4100, - DML_FEATURE_LEVEL_5_0 = 0x5000, - DML_FEATURE_LEVEL_5_1 = 0x5100, - DML_FEATURE_LEVEL_5_2 = 0x5200, - DML_FEATURE_LEVEL_6_0 = 0x6000, - DML_FEATURE_LEVEL_6_1 = 0x6100, - DML_FEATURE_LEVEL_6_2 = 0x6200, - DML_FEATURE_LEVEL_6_3 = 0x6300, - DML_FEATURE_LEVEL_6_4 = 0x6400, -}; - -#endif // DML_TARGET_VERSION >= 0x2000 - -enum DML_FEATURE -{ - DML_FEATURE_TENSOR_DATA_TYPE_SUPPORT, - -#if DML_TARGET_VERSION >= 0x2000 - DML_FEATURE_FEATURE_LEVELS, -#endif // DML_TARGET_VERSION >= 0x2000 -}; - -struct DML_FEATURE_QUERY_TENSOR_DATA_TYPE_SUPPORT -{ - DML_TENSOR_DATA_TYPE DataType; -}; - -struct DML_FEATURE_DATA_TENSOR_DATA_TYPE_SUPPORT -{ - BOOL IsSupported; -}; - -#if DML_TARGET_VERSION >= 0x2000 - -struct DML_FEATURE_QUERY_FEATURE_LEVELS -{ - UINT RequestedFeatureLevelCount; - _Field_size_(RequestedFeatureLevelCount) const DML_FEATURE_LEVEL* RequestedFeatureLevels; -}; - -struct DML_FEATURE_DATA_FEATURE_LEVELS -{ - DML_FEATURE_LEVEL MaxSupportedFeatureLevel; -}; - -#endif // DML_TARGET_VERSION >= 0x2000 - -// =================================================================================================================== -// DML device functions, enumerations, and structures -// =================================================================================================================== - -struct DML_BINDING_TABLE_DESC -{ - IDMLDispatchable* Dispatchable; - D3D12_CPU_DESCRIPTOR_HANDLE CPUDescriptorHandle; - D3D12_GPU_DESCRIPTOR_HANDLE GPUDescriptorHandle; - UINT SizeInDescriptors; -}; - -enum DML_EXECUTION_FLAGS -{ - DML_EXECUTION_FLAG_NONE = 0, - DML_EXECUTION_FLAG_ALLOW_HALF_PRECISION_COMPUTATION = 0x1, - DML_EXECUTION_FLAG_DISABLE_META_COMMANDS = 0x2, - DML_EXECUTION_FLAG_DESCRIPTORS_VOLATILE = 0x4, -}; - -DEFINE_ENUM_FLAG_OPERATORS(DML_EXECUTION_FLAGS) - -enum DML_CREATE_DEVICE_FLAGS -{ - DML_CREATE_DEVICE_FLAG_NONE = 0, - DML_CREATE_DEVICE_FLAG_DEBUG = 0x1, -}; - -DEFINE_ENUM_FLAG_OPERATORS(DML_CREATE_DEVICE_FLAGS) - -STDAPI DMLCreateDevice( - ID3D12Device* d3d12Device, - DML_CREATE_DEVICE_FLAGS flags, - REFIID riid, // Expected: IDMLDevice - _COM_Outptr_opt_ void** ppv - ); - -#if DML_TARGET_VERSION >= 0x2000 - -STDAPI DMLCreateDevice1( - ID3D12Device* d3d12Device, - DML_CREATE_DEVICE_FLAGS flags, - DML_FEATURE_LEVEL minimumFeatureLevel, - REFIID riid, // Expected: IDMLDevice - _COM_Outptr_opt_ void** ppv - ); - -#endif // DML_TARGET_VERSION >= 0x2000 - -// =================================================================================================================== -// DML object -// =================================================================================================================== - -interface DML_DECLARE_INTERFACE("c8263aac-9e0c-4a2d-9b8e-007521a3317c") IDMLObject : IUnknown -{ - IFACEMETHOD(GetPrivateData)( - REFGUID guid, - _Inout_ UINT* dataSize, - _Out_writes_bytes_opt_(*dataSize) void* data - ) = 0; - - IFACEMETHOD(SetPrivateData)( - REFGUID guid, - UINT dataSize, - _In_reads_bytes_opt_(dataSize) const void* data - ) = 0; - - IFACEMETHOD(SetPrivateDataInterface)( - REFGUID guid, - _In_opt_ IUnknown* data - ) = 0; - - IFACEMETHOD(SetName)( - PCWSTR name - ) = 0; -}; - -// =================================================================================================================== -// DML device -// =================================================================================================================== - -interface DML_DECLARE_INTERFACE("6dbd6437-96fd-423f-a98c-ae5e7c2a573f") IDMLDevice : IDMLObject -{ - IFACEMETHOD(CheckFeatureSupport)( - DML_FEATURE feature, - UINT featureQueryDataSize, - _In_reads_bytes_opt_(featureQueryDataSize) const void* featureQueryData, - UINT featureSupportDataSize, - _Out_writes_bytes_(featureSupportDataSize) void* featureSupportData - ) = 0; - - IFACEMETHOD(CreateOperator)( - const DML_OPERATOR_DESC* desc, - REFIID riid, // expected: IDMLOperator - _COM_Outptr_opt_ void** ppv - ) = 0; - - IFACEMETHOD(CompileOperator)( - IDMLOperator* op, - DML_EXECUTION_FLAGS flags, - REFIID riid, // expected: IDMLCompiledOperator - _COM_Outptr_opt_ void** ppv - ) = 0; - - IFACEMETHOD(CreateOperatorInitializer)( - UINT operatorCount, - _In_reads_opt_(operatorCount) IDMLCompiledOperator* const* operators, - REFIID riid, // expected: IDMLOperatorInitializer - _COM_Outptr_ void** ppv - ) = 0; - - IFACEMETHOD(CreateCommandRecorder)( - REFIID riid, // expected: IDMLCommandRecorder - _COM_Outptr_ void** ppv - ) = 0; - - IFACEMETHOD(CreateBindingTable)( - _In_opt_ const DML_BINDING_TABLE_DESC* desc, - REFIID riid, // expected: IDMLBindingTable - _COM_Outptr_ void** ppv - ) = 0; - - IFACEMETHOD(Evict)( - UINT count, - _In_reads_(count) IDMLPageable* const* ppObjects - ) = 0; - - IFACEMETHOD(MakeResident)( - UINT count, - _In_reads_(count) IDMLPageable* const* ppObjects - ) = 0; - - IFACEMETHOD(GetDeviceRemovedReason)( - ) = 0; - - IFACEMETHOD(GetParentDevice)( - REFIID riid, - _COM_Outptr_ void** ppv - ) = 0; -}; - - -// =================================================================================================================== -// DML device children -// =================================================================================================================== - -interface DML_DECLARE_INTERFACE("27e83142-8165-49e3-974e-2fd66e4cb69d") IDMLDeviceChild : IDMLObject -{ - IFACEMETHOD(GetDevice)( - REFIID riid, // expected: IDMLDevice - _COM_Outptr_ void** ppv - ) = 0; -}; - -interface DML_DECLARE_INTERFACE("b1ab0825-4542-4a4b-8617-6dde6e8f6201") IDMLPageable : IDMLDeviceChild -{ -}; - - -// =================================================================================================================== -// DML operator -// =================================================================================================================== - -interface DML_DECLARE_INTERFACE("26caae7a-3081-4633-9581-226fbe57695d") IDMLOperator : IDMLDeviceChild -{ -}; - - -// =================================================================================================================== -// DML dispatchable -// =================================================================================================================== - -struct DML_BINDING_PROPERTIES -{ - UINT RequiredDescriptorCount; - UINT64 TemporaryResourceSize; - UINT64 PersistentResourceSize; -}; - -interface DML_DECLARE_INTERFACE("dcb821a8-1039-441e-9f1c-b1759c2f3cec") IDMLDispatchable : IDMLPageable -{ - IFACEMETHOD_(DML_BINDING_PROPERTIES, GetBindingProperties)() = 0; -}; - - -// =================================================================================================================== -// DML compiled operator -// =================================================================================================================== - -interface DML_DECLARE_INTERFACE("6b15e56a-bf5c-4902-92d8-da3a650afea4") IDMLCompiledOperator : IDMLDispatchable -{ -}; - - -// =================================================================================================================== -// DML operator initializer -// =================================================================================================================== - -interface DML_DECLARE_INTERFACE("427c1113-435c-469c-8676-4d5dd072f813") IDMLOperatorInitializer : IDMLDispatchable -{ - IFACEMETHOD(Reset)( - UINT operatorCount, - _In_reads_opt_(operatorCount) IDMLCompiledOperator* const* operators - ) = 0; -}; - -// =================================================================================================================== -// DML binding table -// =================================================================================================================== - -enum DML_BINDING_TYPE -{ - DML_BINDING_TYPE_NONE, - DML_BINDING_TYPE_BUFFER, - DML_BINDING_TYPE_BUFFER_ARRAY, -}; - -struct DML_BINDING_DESC -{ - DML_BINDING_TYPE Type; - _Field_size_opt_(_Inexpressible_("Dependent on binding type")) const void* Desc; -}; - -struct DML_BUFFER_BINDING -{ - _Maybenull_ ID3D12Resource* Buffer; - UINT64 Offset; - UINT64 SizeInBytes; -}; - -struct DML_BUFFER_ARRAY_BINDING -{ - UINT BindingCount; - _Field_size_(BindingCount) const DML_BUFFER_BINDING* Bindings; -}; - -interface DML_DECLARE_INTERFACE("29c687dc-de74-4e3b-ab00-1168f2fc3cfc") IDMLBindingTable : IDMLDeviceChild -{ - IFACEMETHOD_(void, BindInputs)( - UINT bindingCount, - _In_reads_opt_(bindingCount) const DML_BINDING_DESC* bindings - ) = 0; - - IFACEMETHOD_(void, BindOutputs)( - UINT bindingCount, - _In_reads_opt_(bindingCount) const DML_BINDING_DESC* bindings - ) = 0; - - IFACEMETHOD_(void, BindTemporaryResource)( - _In_opt_ const DML_BINDING_DESC* binding - ) = 0; - - IFACEMETHOD_(void, BindPersistentResource)( - _In_opt_ const DML_BINDING_DESC* binding - ) = 0; - - IFACEMETHOD(Reset)( - _In_opt_ const DML_BINDING_TABLE_DESC* desc - ) = 0; -}; - - -// =================================================================================================================== -// DML command recorder -// =================================================================================================================== - -interface DML_DECLARE_INTERFACE("e6857a76-2e3e-4fdd-bff4-5d2ba10fb453") IDMLCommandRecorder : IDMLDeviceChild -{ - IFACEMETHOD_(void, RecordDispatch)( - ID3D12CommandList* commandList, - IDMLDispatchable* dispatchable, - IDMLBindingTable* bindings - ) = 0; -}; - - -// =================================================================================================================== -// DML debug -// =================================================================================================================== - -interface DML_DECLARE_INTERFACE("7d6f3ac9-394a-4ac3-92a7-390cc57a8217") IDMLDebugDevice : IUnknown -{ - IFACEMETHOD_(void, SetMuteDebugOutput)( - BOOL mute - ) = 0; -}; - - -// =================================================================================================================== -// DML graph -// =================================================================================================================== - -#if DML_TARGET_VERSION >= 0x2100 - -enum DML_GRAPH_EDGE_TYPE -{ - DML_GRAPH_EDGE_TYPE_INVALID, - DML_GRAPH_EDGE_TYPE_INPUT, - DML_GRAPH_EDGE_TYPE_OUTPUT, - DML_GRAPH_EDGE_TYPE_INTERMEDIATE, -}; - -struct DML_GRAPH_EDGE_DESC -{ - DML_GRAPH_EDGE_TYPE Type; - _Field_size_(_Inexpressible_("Dependent on edge type")) const void* Desc; -}; - -struct DML_INPUT_GRAPH_EDGE_DESC -{ - UINT GraphInputIndex; - UINT ToNodeIndex; - UINT ToNodeInputIndex; - _Field_z_ _Maybenull_ const char* Name; -}; - -struct DML_OUTPUT_GRAPH_EDGE_DESC -{ - UINT FromNodeIndex; - UINT FromNodeOutputIndex; - UINT GraphOutputIndex; - _Field_z_ _Maybenull_ const char* Name; -}; - -struct DML_INTERMEDIATE_GRAPH_EDGE_DESC -{ - UINT FromNodeIndex; - UINT FromNodeOutputIndex; - UINT ToNodeIndex; - UINT ToNodeInputIndex; - _Field_z_ _Maybenull_ const char* Name; -}; - -enum DML_GRAPH_NODE_TYPE -{ - DML_GRAPH_NODE_TYPE_INVALID, - DML_GRAPH_NODE_TYPE_OPERATOR, -#if DML_TARGET_VERSION >= 0x6200 - DML_GRAPH_NODE_TYPE_CONSTANT -#endif // DML_TARGET_VERSION >= 0x6200 -}; - -struct DML_GRAPH_NODE_DESC -{ - DML_GRAPH_NODE_TYPE Type; - _Field_size_(_Inexpressible_("Dependent on node type")) const void* Desc; -}; - -struct DML_OPERATOR_GRAPH_NODE_DESC -{ - IDMLOperator* Operator; - _Field_z_ _Maybenull_ const char* Name; -}; - -#if DML_TARGET_VERSION >= 0x6200 -struct DML_CONSTANT_DATA_GRAPH_NODE_DESC -{ - _Field_size_bytes_(DataSize) const void* Data; - SIZE_T DataSize; - _Field_z_ _Maybenull_ const char* Name; -}; -#endif // DML_TARGET_VERSION >= 0x6200 - -struct DML_GRAPH_DESC -{ - UINT InputCount; - UINT OutputCount; - - UINT NodeCount; - _Field_size_(NodeCount) const DML_GRAPH_NODE_DESC* Nodes; - - UINT InputEdgeCount; - _Field_size_opt_(InputEdgeCount) const DML_GRAPH_EDGE_DESC* InputEdges; - - UINT OutputEdgeCount; - _Field_size_(OutputEdgeCount) const DML_GRAPH_EDGE_DESC* OutputEdges; - - UINT IntermediateEdgeCount; - _Field_size_opt_(IntermediateEdgeCount) const DML_GRAPH_EDGE_DESC* IntermediateEdges; -}; - -interface DML_DECLARE_INTERFACE("a0884f9a-d2be-4355-aa5d-5901281ad1d2") IDMLDevice1 : IDMLDevice -{ - IFACEMETHOD(CompileGraph)( - const DML_GRAPH_DESC* desc, - DML_EXECUTION_FLAGS flags, - REFIID riid, // expected: IDMLCompiledOperator - _COM_Outptr_opt_ void** ppv - ) = 0; -}; - -#endif // DML_TARGET_VERSION >= 0x2100 - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) -#endif // DIRECTML_H diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12.h deleted file mode 100644 index 684ef13..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12.h +++ /dev/null @@ -1,34938 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0628 */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __d3d12_h__ -#define __d3d12_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -#ifndef DECLSPEC_XFGVIRT -#if defined(_CONTROL_FLOW_GUARD_XFG) -#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) -#else -#define DECLSPEC_XFGVIRT(base, func) -#endif -#endif - -/* Forward Declarations */ - -#ifndef __ID3D12Object_FWD_DEFINED__ -#define __ID3D12Object_FWD_DEFINED__ -typedef interface ID3D12Object ID3D12Object; - -#endif /* __ID3D12Object_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceChild_FWD_DEFINED__ -#define __ID3D12DeviceChild_FWD_DEFINED__ -typedef interface ID3D12DeviceChild ID3D12DeviceChild; - -#endif /* __ID3D12DeviceChild_FWD_DEFINED__ */ - - -#ifndef __ID3D12RootSignature_FWD_DEFINED__ -#define __ID3D12RootSignature_FWD_DEFINED__ -typedef interface ID3D12RootSignature ID3D12RootSignature; - -#endif /* __ID3D12RootSignature_FWD_DEFINED__ */ - - -#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__ -#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__ -typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer; - -#endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */ - - -#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ -#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ -typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer; - -#endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */ - - -#ifndef __ID3D12Pageable_FWD_DEFINED__ -#define __ID3D12Pageable_FWD_DEFINED__ -typedef interface ID3D12Pageable ID3D12Pageable; - -#endif /* __ID3D12Pageable_FWD_DEFINED__ */ - - -#ifndef __ID3D12Heap_FWD_DEFINED__ -#define __ID3D12Heap_FWD_DEFINED__ -typedef interface ID3D12Heap ID3D12Heap; - -#endif /* __ID3D12Heap_FWD_DEFINED__ */ - - -#ifndef __ID3D12Resource_FWD_DEFINED__ -#define __ID3D12Resource_FWD_DEFINED__ -typedef interface ID3D12Resource ID3D12Resource; - -#endif /* __ID3D12Resource_FWD_DEFINED__ */ - - -#ifndef __ID3D12CommandAllocator_FWD_DEFINED__ -#define __ID3D12CommandAllocator_FWD_DEFINED__ -typedef interface ID3D12CommandAllocator ID3D12CommandAllocator; - -#endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */ - - -#ifndef __ID3D12Fence_FWD_DEFINED__ -#define __ID3D12Fence_FWD_DEFINED__ -typedef interface ID3D12Fence ID3D12Fence; - -#endif /* __ID3D12Fence_FWD_DEFINED__ */ - - -#ifndef __ID3D12Fence1_FWD_DEFINED__ -#define __ID3D12Fence1_FWD_DEFINED__ -typedef interface ID3D12Fence1 ID3D12Fence1; - -#endif /* __ID3D12Fence1_FWD_DEFINED__ */ - - -#ifndef __ID3D12PipelineState_FWD_DEFINED__ -#define __ID3D12PipelineState_FWD_DEFINED__ -typedef interface ID3D12PipelineState ID3D12PipelineState; - -#endif /* __ID3D12PipelineState_FWD_DEFINED__ */ - - -#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ -#define __ID3D12DescriptorHeap_FWD_DEFINED__ -typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; - -#endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */ - - -#ifndef __ID3D12QueryHeap_FWD_DEFINED__ -#define __ID3D12QueryHeap_FWD_DEFINED__ -typedef interface ID3D12QueryHeap ID3D12QueryHeap; - -#endif /* __ID3D12QueryHeap_FWD_DEFINED__ */ - - -#ifndef __ID3D12CommandSignature_FWD_DEFINED__ -#define __ID3D12CommandSignature_FWD_DEFINED__ -typedef interface ID3D12CommandSignature ID3D12CommandSignature; - -#endif /* __ID3D12CommandSignature_FWD_DEFINED__ */ - - -#ifndef __ID3D12CommandList_FWD_DEFINED__ -#define __ID3D12CommandList_FWD_DEFINED__ -typedef interface ID3D12CommandList ID3D12CommandList; - -#endif /* __ID3D12CommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList; - -#endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList1_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1; - -#endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList2_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2; - -#endif /* __ID3D12GraphicsCommandList2_FWD_DEFINED__ */ - - -#ifndef __ID3D12CommandQueue_FWD_DEFINED__ -#define __ID3D12CommandQueue_FWD_DEFINED__ -typedef interface ID3D12CommandQueue ID3D12CommandQueue; - -#endif /* __ID3D12CommandQueue_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device_FWD_DEFINED__ -#define __ID3D12Device_FWD_DEFINED__ -typedef interface ID3D12Device ID3D12Device; - -#endif /* __ID3D12Device_FWD_DEFINED__ */ - - -#ifndef __ID3D12PipelineLibrary_FWD_DEFINED__ -#define __ID3D12PipelineLibrary_FWD_DEFINED__ -typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary; - -#endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */ - - -#ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__ -#define __ID3D12PipelineLibrary1_FWD_DEFINED__ -typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1; - -#endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device1_FWD_DEFINED__ -#define __ID3D12Device1_FWD_DEFINED__ -typedef interface ID3D12Device1 ID3D12Device1; - -#endif /* __ID3D12Device1_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device2_FWD_DEFINED__ -#define __ID3D12Device2_FWD_DEFINED__ -typedef interface ID3D12Device2 ID3D12Device2; - -#endif /* __ID3D12Device2_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device3_FWD_DEFINED__ -#define __ID3D12Device3_FWD_DEFINED__ -typedef interface ID3D12Device3 ID3D12Device3; - -#endif /* __ID3D12Device3_FWD_DEFINED__ */ - - -#ifndef __ID3D12ProtectedSession_FWD_DEFINED__ -#define __ID3D12ProtectedSession_FWD_DEFINED__ -typedef interface ID3D12ProtectedSession ID3D12ProtectedSession; - -#endif /* __ID3D12ProtectedSession_FWD_DEFINED__ */ - - -#ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__ -#define __ID3D12ProtectedResourceSession_FWD_DEFINED__ -typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession; - -#endif /* __ID3D12ProtectedResourceSession_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device4_FWD_DEFINED__ -#define __ID3D12Device4_FWD_DEFINED__ -typedef interface ID3D12Device4 ID3D12Device4; - -#endif /* __ID3D12Device4_FWD_DEFINED__ */ - - -#ifndef __ID3D12LifetimeOwner_FWD_DEFINED__ -#define __ID3D12LifetimeOwner_FWD_DEFINED__ -typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner; - -#endif /* __ID3D12LifetimeOwner_FWD_DEFINED__ */ - - -#ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__ -#define __ID3D12SwapChainAssistant_FWD_DEFINED__ -typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant; - -#endif /* __ID3D12SwapChainAssistant_FWD_DEFINED__ */ - - -#ifndef __ID3D12LifetimeTracker_FWD_DEFINED__ -#define __ID3D12LifetimeTracker_FWD_DEFINED__ -typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker; - -#endif /* __ID3D12LifetimeTracker_FWD_DEFINED__ */ - - -#ifndef __ID3D12StateObject_FWD_DEFINED__ -#define __ID3D12StateObject_FWD_DEFINED__ -typedef interface ID3D12StateObject ID3D12StateObject; - -#endif /* __ID3D12StateObject_FWD_DEFINED__ */ - - -#ifndef __ID3D12StateObjectProperties_FWD_DEFINED__ -#define __ID3D12StateObjectProperties_FWD_DEFINED__ -typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties; - -#endif /* __ID3D12StateObjectProperties_FWD_DEFINED__ */ - - -#ifndef __ID3D12StateObjectProperties1_FWD_DEFINED__ -#define __ID3D12StateObjectProperties1_FWD_DEFINED__ -typedef interface ID3D12StateObjectProperties1 ID3D12StateObjectProperties1; - -#endif /* __ID3D12StateObjectProperties1_FWD_DEFINED__ */ - - -#ifndef __ID3D12WorkGraphProperties_FWD_DEFINED__ -#define __ID3D12WorkGraphProperties_FWD_DEFINED__ -typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties; - -#endif /* __ID3D12WorkGraphProperties_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device5_FWD_DEFINED__ -#define __ID3D12Device5_FWD_DEFINED__ -typedef interface ID3D12Device5 ID3D12Device5; - -#endif /* __ID3D12Device5_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ -#define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ -typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings; - -#endif /* __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ -#define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ -typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1; - -#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ -#define __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ -typedef interface ID3D12DeviceRemovedExtendedDataSettings2 ID3D12DeviceRemovedExtendedDataSettings2; - -#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ -#define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ -typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData; - -#endif /* __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ -#define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ -typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1; - -#endif /* __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ -#define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ -typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2; - -#endif /* __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device6_FWD_DEFINED__ -#define __ID3D12Device6_FWD_DEFINED__ -typedef interface ID3D12Device6 ID3D12Device6; - -#endif /* __ID3D12Device6_FWD_DEFINED__ */ - - -#ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__ -#define __ID3D12ProtectedResourceSession1_FWD_DEFINED__ -typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1; - -#endif /* __ID3D12ProtectedResourceSession1_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device7_FWD_DEFINED__ -#define __ID3D12Device7_FWD_DEFINED__ -typedef interface ID3D12Device7 ID3D12Device7; - -#endif /* __ID3D12Device7_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device8_FWD_DEFINED__ -#define __ID3D12Device8_FWD_DEFINED__ -typedef interface ID3D12Device8 ID3D12Device8; - -#endif /* __ID3D12Device8_FWD_DEFINED__ */ - - -#ifndef __ID3D12Resource1_FWD_DEFINED__ -#define __ID3D12Resource1_FWD_DEFINED__ -typedef interface ID3D12Resource1 ID3D12Resource1; - -#endif /* __ID3D12Resource1_FWD_DEFINED__ */ - - -#ifndef __ID3D12Resource2_FWD_DEFINED__ -#define __ID3D12Resource2_FWD_DEFINED__ -typedef interface ID3D12Resource2 ID3D12Resource2; - -#endif /* __ID3D12Resource2_FWD_DEFINED__ */ - - -#ifndef __ID3D12Heap1_FWD_DEFINED__ -#define __ID3D12Heap1_FWD_DEFINED__ -typedef interface ID3D12Heap1 ID3D12Heap1; - -#endif /* __ID3D12Heap1_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList3_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3; - -#endif /* __ID3D12GraphicsCommandList3_FWD_DEFINED__ */ - - -#ifndef __ID3D12MetaCommand_FWD_DEFINED__ -#define __ID3D12MetaCommand_FWD_DEFINED__ -typedef interface ID3D12MetaCommand ID3D12MetaCommand; - -#endif /* __ID3D12MetaCommand_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList4_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4; - -#endif /* __ID3D12GraphicsCommandList4_FWD_DEFINED__ */ - - -#ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__ -#define __ID3D12ShaderCacheSession_FWD_DEFINED__ -typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession; - -#endif /* __ID3D12ShaderCacheSession_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device9_FWD_DEFINED__ -#define __ID3D12Device9_FWD_DEFINED__ -typedef interface ID3D12Device9 ID3D12Device9; - -#endif /* __ID3D12Device9_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device10_FWD_DEFINED__ -#define __ID3D12Device10_FWD_DEFINED__ -typedef interface ID3D12Device10 ID3D12Device10; - -#endif /* __ID3D12Device10_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device11_FWD_DEFINED__ -#define __ID3D12Device11_FWD_DEFINED__ -typedef interface ID3D12Device11 ID3D12Device11; - -#endif /* __ID3D12Device11_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device12_FWD_DEFINED__ -#define __ID3D12Device12_FWD_DEFINED__ -typedef interface ID3D12Device12 ID3D12Device12; - -#endif /* __ID3D12Device12_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device13_FWD_DEFINED__ -#define __ID3D12Device13_FWD_DEFINED__ -typedef interface ID3D12Device13 ID3D12Device13; - -#endif /* __ID3D12Device13_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device14_FWD_DEFINED__ -#define __ID3D12Device14_FWD_DEFINED__ -typedef interface ID3D12Device14 ID3D12Device14; - -#endif /* __ID3D12Device14_FWD_DEFINED__ */ - - -#ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ -#define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ -typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice; - -#endif /* __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ */ - - -#ifndef __ID3D12Tools_FWD_DEFINED__ -#define __ID3D12Tools_FWD_DEFINED__ -typedef interface ID3D12Tools ID3D12Tools; - -#endif /* __ID3D12Tools_FWD_DEFINED__ */ - - -#ifndef __ID3D12SDKConfiguration_FWD_DEFINED__ -#define __ID3D12SDKConfiguration_FWD_DEFINED__ -typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration; - -#endif /* __ID3D12SDKConfiguration_FWD_DEFINED__ */ - - -#ifndef __ID3D12SDKConfiguration1_FWD_DEFINED__ -#define __ID3D12SDKConfiguration1_FWD_DEFINED__ -typedef interface ID3D12SDKConfiguration1 ID3D12SDKConfiguration1; - -#endif /* __ID3D12SDKConfiguration1_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceFactory_FWD_DEFINED__ -#define __ID3D12DeviceFactory_FWD_DEFINED__ -typedef interface ID3D12DeviceFactory ID3D12DeviceFactory; - -#endif /* __ID3D12DeviceFactory_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceConfiguration_FWD_DEFINED__ -#define __ID3D12DeviceConfiguration_FWD_DEFINED__ -typedef interface ID3D12DeviceConfiguration ID3D12DeviceConfiguration; - -#endif /* __ID3D12DeviceConfiguration_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceConfiguration1_FWD_DEFINED__ -#define __ID3D12DeviceConfiguration1_FWD_DEFINED__ -typedef interface ID3D12DeviceConfiguration1 ID3D12DeviceConfiguration1; - -#endif /* __ID3D12DeviceConfiguration1_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList5_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5; - -#endif /* __ID3D12GraphicsCommandList5_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList6_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6; - -#endif /* __ID3D12GraphicsCommandList6_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList7_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7; - -#endif /* __ID3D12GraphicsCommandList7_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList8_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList8_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList8 ID3D12GraphicsCommandList8; - -#endif /* __ID3D12GraphicsCommandList8_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList9_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList9_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList9 ID3D12GraphicsCommandList9; - -#endif /* __ID3D12GraphicsCommandList9_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList10_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList10_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList10 ID3D12GraphicsCommandList10; - -#endif /* __ID3D12GraphicsCommandList10_FWD_DEFINED__ */ - - -#ifndef __ID3D12GBVDiagnostics_FWD_DEFINED__ -#define __ID3D12GBVDiagnostics_FWD_DEFINED__ -typedef interface ID3D12GBVDiagnostics ID3D12GBVDiagnostics; - -#endif /* __ID3D12GBVDiagnostics_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgicommon.h" -#include "dxgiformat.h" -#include "d3dcommon.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d12_0000_0000 */ -/* [local] */ - -#include -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) -#ifndef _D3D12_CONSTANTS -#define _D3D12_CONSTANTS -#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff ) - -#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff ) - -#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff ) - -#define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff ) - -#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 ) - -#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 ) - -#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 ) - -#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 ) - -#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 ) - -#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 ) - -#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 ) - -#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 ) - -#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 ) - -#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 ) - -#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 ) - -#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 ) - -#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 ) - -#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 ) - -#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 ) - -#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 ) - -#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 ) - -#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 ) - -#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 ) - -#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 ) - -#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 ) - -#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 ) - -#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 ) - -#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 ) - -#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 ) - -#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 ) - -#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 ) - -#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 ) - -#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 ) - -#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 ) - -#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 ) - -#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 ) - -#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 ) - -#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 ) - -#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 ) - -#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 ) - -#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 ) - -#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 ) - -#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 ) - -#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 ) - -#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 ) - -#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 ) - -#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 ) - -#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 ) - -#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 ) - -#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 ) - -#define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 ) - -#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 ) - -#define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 ) - -#define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 ) - -#define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 ) - -#define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 ) - -#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 ) - -#define D3D12_CS_THREADID_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 ) - -#define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 ) - -#define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 ) - -#define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 ) - -#define D3D12_CS_THREAD_GROUP_MIN_X ( 1 ) - -#define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 ) - -#define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 ) - -#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 ) - -#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f ) -#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f ) -#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f ) -#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f ) -#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f ) -#define D3D12_DEFAULT_DEPTH_BIAS ( 0 ) - -#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f ) -#define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 ) - -#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f ) -#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 ) - -#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 ) - -#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) - -#define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff ) - -#define D3D12_DEFAULT_SCISSOR_ENDX ( 0 ) - -#define D3D12_DEFAULT_SCISSOR_ENDY ( 0 ) - -#define D3D12_DEFAULT_SCISSOR_STARTX ( 0 ) - -#define D3D12_DEFAULT_SCISSOR_STARTY ( 0 ) - -#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f ) -#define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff ) - -#define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 ) - -#define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff ) - -#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 ) - -#define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 ) - -#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f ) -#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f ) -#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 ) - -#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 ) - -#define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 ) - -#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff ) - -#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 ) - -#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) - -#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 ) -#define D3D12_FLOAT32_MAX ( 3.402823466e+38f ) -#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f ) -#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f ) -#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f ) -#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f ) -#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f ) -#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f ) -#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f ) -#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f ) -#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f ) -#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f ) -#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f ) -#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 ) - -#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 ) - -#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_GS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 ) - -#define D3D12_GS_MAX_INSTANCE_COUNT ( 32 ) - -#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 ) - -#define D3D12_GS_OUTPUT_ELEMENTS ( 32 ) - -#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) - -#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f ) -#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f ) -#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 ) - -#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 ) - -#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 ) - -#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 ) - -#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 ) - -#define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 ) - -#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 ) - -#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 ) - -#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 ) - -#define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 ) - -#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 ) - -#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 ) - -#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 ) - -#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff ) - -#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff ) - -#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff ) - -#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff ) - -#define D3D12_LINEAR_GAMMA ( 1.0f ) -#define D3D12_MAJOR_VERSION ( 12 ) - -#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f ) -#define D3D12_MAX_DEPTH ( 1.0f ) -#define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 ) - -#define D3D12_MAX_MAXANISOTROPY ( 16 ) - -#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 ) - -#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f ) -#define D3D12_MAX_ROOT_COST ( 64 ) - -#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 ) - -#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 ) - -#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 ) - -#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 ) - -#define D3D12_MAX_VIEW_INSTANCE_COUNT ( 4 ) - -#define D3D12_MINOR_VERSION ( 0 ) - -#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f ) -#define D3D12_MIN_DEPTH ( 0.0f ) -#define D3D12_MIN_MAXANISOTROPY ( 0 ) - -#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f ) -#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f ) -#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 ) - -#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f ) -#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 ) - -#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) - -#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 ) - -#define D3D12_PACKED_TILE ( 0xffffffff ) - -#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) - -#define D3D12_PREVIEW_SDK_VERSION ( 714 ) - -#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) - -#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 ) - -#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff ) - -#define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 ) - -#define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff ) - -#define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_PS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f ) -#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 ) - -#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 ) - -#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 ) - -#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f ) -#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 ) - -#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 ) - -#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 ) - -#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 ) - -#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 ) - -#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 ) - -#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 ) - -#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 ) - -#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 ) - -#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 ) - -#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 ) - -#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 ) - -#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 ) - -#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 ) - -#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 ) - -#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) - -#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 ) - -#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 ) - -#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 ) - -#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 ) - -#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) - -#define D3D12_REQ_MAXANISOTROPY ( 16 ) - -#define D3D12_REQ_MIP_LEVELS ( 15 ) - -#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 ) - -#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 ) - -#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 ) - -#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f ) -#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 ) - -#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 ) - -#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D12_REQ_SUBRESOURCES ( 30720 ) - -#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 ) - -#define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 ) - -#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 ) - -#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 ) - -#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 ) - -#define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 ) - -#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 ) - -#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff ) - -#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 ) - -#define D3D12_SDK_VERSION ( 614 ) - -#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 ) - -#define D3D12_SHADER_MAJOR_VERSION ( 5 ) - -#define D3D12_SHADER_MAX_INSTANCES ( 65535 ) - -#define D3D12_SHADER_MAX_INTERFACES ( 253 ) - -#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 ) - -#define D3D12_SHADER_MAX_TYPES ( 65535 ) - -#define D3D12_SHADER_MINOR_VERSION ( 1 ) - -#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 ) - -#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 ) - -#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 ) - -#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) - -#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 ) - -#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 ) - -#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 ) - -#define D3D12_SO_BUFFER_SLOT_COUNT ( 4 ) - -#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff ) - -#define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff ) - -#define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 ) - -#define D3D12_SO_STREAM_COUNT ( 4 ) - -#define D3D12_SPEC_DATE_DAY ( 14 ) - -#define D3D12_SPEC_DATE_MONTH ( 11 ) - -#define D3D12_SPEC_DATE_YEAR ( 2014 ) - -#define D3D12_SPEC_VERSION ( 1.16 ) -#define D3D12_SRGB_GAMMA ( 2.2f ) -#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f ) -#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f ) -#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f ) -#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f ) -#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f ) -#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f ) -#define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 ) - -#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 ) - -#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 ) - -#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 ) - -#define D3D12_STANDARD_VECTOR_SIZE ( 4 ) - -#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 ) - -#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 ) - -#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) - -#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) - -#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 ) - -#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 ) - -#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 ) - -#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 ) - -#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 ) - -#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 ) - -#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 ) - -#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) - -#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 ) - -#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 ) - -#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) - -#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 ) - -#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 ) - -#define D3D12_UAV_SLOT_COUNT ( 64 ) - -#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 ) - -#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 ) - -#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 ) - -#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 ) - -#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 ) - -#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff ) - -#define D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX ( 0xff ) - -#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS ( 64 ) - -#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS ( 64 ) - -#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN ( 9 ) - -#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM ( 8 ) - -#define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 ) - -#define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 ) - -#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 ) - -#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 ) - -#define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 ) - -#define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 ) - -#define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_VS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 ) - -#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 ) - -#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 ) - -#define D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES ( 8 ) - -#define D3D12_WORK_GRAPHS_MAX_NODE_DEPTH ( 32 ) - -#endif - -typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; - -typedef -enum D3D12_COMMAND_LIST_TYPE - { - D3D12_COMMAND_LIST_TYPE_DIRECT = 0, - D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, - D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, - D3D12_COMMAND_LIST_TYPE_COPY = 3, - D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4, - D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5, - D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6, - D3D12_COMMAND_LIST_TYPE_NONE = -1 - } D3D12_COMMAND_LIST_TYPE; - -typedef -enum D3D12_COMMAND_QUEUE_FLAGS - { - D3D12_COMMAND_QUEUE_FLAG_NONE = 0, - D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1 - } D3D12_COMMAND_QUEUE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS ) -typedef -enum D3D12_COMMAND_QUEUE_PRIORITY - { - D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, - D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100, - D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000 - } D3D12_COMMAND_QUEUE_PRIORITY; - -typedef struct D3D12_COMMAND_QUEUE_DESC - { - D3D12_COMMAND_LIST_TYPE Type; - INT Priority; - D3D12_COMMAND_QUEUE_FLAGS Flags; - UINT NodeMask; - } D3D12_COMMAND_QUEUE_DESC; - -typedef -enum D3D12_PRIMITIVE_TOPOLOGY_TYPE - { - D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 - } D3D12_PRIMITIVE_TOPOLOGY_TYPE; - -typedef -enum D3D12_INPUT_CLASSIFICATION - { - D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, - D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 - } D3D12_INPUT_CLASSIFICATION; - -typedef struct D3D12_INPUT_ELEMENT_DESC - { - LPCSTR SemanticName; - UINT SemanticIndex; - DXGI_FORMAT Format; - UINT InputSlot; - UINT AlignedByteOffset; - D3D12_INPUT_CLASSIFICATION InputSlotClass; - UINT InstanceDataStepRate; - } D3D12_INPUT_ELEMENT_DESC; - -typedef -enum D3D12_FILL_MODE - { - D3D12_FILL_MODE_WIREFRAME = 2, - D3D12_FILL_MODE_SOLID = 3 - } D3D12_FILL_MODE; - -typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; - -typedef D3D_PRIMITIVE D3D12_PRIMITIVE; - -typedef -enum D3D12_CULL_MODE - { - D3D12_CULL_MODE_NONE = 1, - D3D12_CULL_MODE_FRONT = 2, - D3D12_CULL_MODE_BACK = 3 - } D3D12_CULL_MODE; - -typedef struct D3D12_SO_DECLARATION_ENTRY - { - UINT Stream; - LPCSTR SemanticName; - UINT SemanticIndex; - BYTE StartComponent; - BYTE ComponentCount; - BYTE OutputSlot; - } D3D12_SO_DECLARATION_ENTRY; - -typedef struct D3D12_VIEWPORT - { - FLOAT TopLeftX; - FLOAT TopLeftY; - FLOAT Width; - FLOAT Height; - FLOAT MinDepth; - FLOAT MaxDepth; - } D3D12_VIEWPORT; - -typedef RECT D3D12_RECT; - -typedef struct D3D12_BOX - { - UINT left; - UINT top; - UINT front; - UINT right; - UINT bottom; - UINT back; - } D3D12_BOX; - -typedef -enum D3D12_COMPARISON_FUNC - { - D3D12_COMPARISON_FUNC_NONE = 0, - D3D12_COMPARISON_FUNC_NEVER = 1, - D3D12_COMPARISON_FUNC_LESS = 2, - D3D12_COMPARISON_FUNC_EQUAL = 3, - D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, - D3D12_COMPARISON_FUNC_GREATER = 5, - D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, - D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, - D3D12_COMPARISON_FUNC_ALWAYS = 8 - } D3D12_COMPARISON_FUNC; - -typedef -enum D3D12_DEPTH_WRITE_MASK - { - D3D12_DEPTH_WRITE_MASK_ZERO = 0, - D3D12_DEPTH_WRITE_MASK_ALL = 1 - } D3D12_DEPTH_WRITE_MASK; - -typedef -enum D3D12_STENCIL_OP - { - D3D12_STENCIL_OP_KEEP = 1, - D3D12_STENCIL_OP_ZERO = 2, - D3D12_STENCIL_OP_REPLACE = 3, - D3D12_STENCIL_OP_INCR_SAT = 4, - D3D12_STENCIL_OP_DECR_SAT = 5, - D3D12_STENCIL_OP_INVERT = 6, - D3D12_STENCIL_OP_INCR = 7, - D3D12_STENCIL_OP_DECR = 8 - } D3D12_STENCIL_OP; - -typedef struct D3D12_DEPTH_STENCILOP_DESC - { - D3D12_STENCIL_OP StencilFailOp; - D3D12_STENCIL_OP StencilDepthFailOp; - D3D12_STENCIL_OP StencilPassOp; - D3D12_COMPARISON_FUNC StencilFunc; - } D3D12_DEPTH_STENCILOP_DESC; - -typedef struct D3D12_DEPTH_STENCIL_DESC - { - BOOL DepthEnable; - D3D12_DEPTH_WRITE_MASK DepthWriteMask; - D3D12_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; - D3D12_DEPTH_STENCILOP_DESC FrontFace; - D3D12_DEPTH_STENCILOP_DESC BackFace; - } D3D12_DEPTH_STENCIL_DESC; - -typedef struct D3D12_DEPTH_STENCIL_DESC1 - { - BOOL DepthEnable; - D3D12_DEPTH_WRITE_MASK DepthWriteMask; - D3D12_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; - D3D12_DEPTH_STENCILOP_DESC FrontFace; - D3D12_DEPTH_STENCILOP_DESC BackFace; - BOOL DepthBoundsTestEnable; - } D3D12_DEPTH_STENCIL_DESC1; - -typedef struct D3D12_DEPTH_STENCILOP_DESC1 - { - D3D12_STENCIL_OP StencilFailOp; - D3D12_STENCIL_OP StencilDepthFailOp; - D3D12_STENCIL_OP StencilPassOp; - D3D12_COMPARISON_FUNC StencilFunc; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; - } D3D12_DEPTH_STENCILOP_DESC1; - -typedef struct D3D12_DEPTH_STENCIL_DESC2 - { - BOOL DepthEnable; - D3D12_DEPTH_WRITE_MASK DepthWriteMask; - D3D12_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - D3D12_DEPTH_STENCILOP_DESC1 FrontFace; - D3D12_DEPTH_STENCILOP_DESC1 BackFace; - BOOL DepthBoundsTestEnable; - } D3D12_DEPTH_STENCIL_DESC2; - -typedef -enum D3D12_BLEND - { - D3D12_BLEND_ZERO = 1, - D3D12_BLEND_ONE = 2, - D3D12_BLEND_SRC_COLOR = 3, - D3D12_BLEND_INV_SRC_COLOR = 4, - D3D12_BLEND_SRC_ALPHA = 5, - D3D12_BLEND_INV_SRC_ALPHA = 6, - D3D12_BLEND_DEST_ALPHA = 7, - D3D12_BLEND_INV_DEST_ALPHA = 8, - D3D12_BLEND_DEST_COLOR = 9, - D3D12_BLEND_INV_DEST_COLOR = 10, - D3D12_BLEND_SRC_ALPHA_SAT = 11, - D3D12_BLEND_BLEND_FACTOR = 14, - D3D12_BLEND_INV_BLEND_FACTOR = 15, - D3D12_BLEND_SRC1_COLOR = 16, - D3D12_BLEND_INV_SRC1_COLOR = 17, - D3D12_BLEND_SRC1_ALPHA = 18, - D3D12_BLEND_INV_SRC1_ALPHA = 19, - D3D12_BLEND_ALPHA_FACTOR = 20, - D3D12_BLEND_INV_ALPHA_FACTOR = 21 - } D3D12_BLEND; - -typedef -enum D3D12_BLEND_OP - { - D3D12_BLEND_OP_ADD = 1, - D3D12_BLEND_OP_SUBTRACT = 2, - D3D12_BLEND_OP_REV_SUBTRACT = 3, - D3D12_BLEND_OP_MIN = 4, - D3D12_BLEND_OP_MAX = 5 - } D3D12_BLEND_OP; - -typedef -enum D3D12_COLOR_WRITE_ENABLE - { - D3D12_COLOR_WRITE_ENABLE_RED = 1, - D3D12_COLOR_WRITE_ENABLE_GREEN = 2, - D3D12_COLOR_WRITE_ENABLE_BLUE = 4, - D3D12_COLOR_WRITE_ENABLE_ALPHA = 8, - D3D12_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D12_COLOR_WRITE_ENABLE_RED | D3D12_COLOR_WRITE_ENABLE_GREEN ) | D3D12_COLOR_WRITE_ENABLE_BLUE ) | D3D12_COLOR_WRITE_ENABLE_ALPHA ) - } D3D12_COLOR_WRITE_ENABLE; - -typedef -enum D3D12_LOGIC_OP - { - D3D12_LOGIC_OP_CLEAR = 0, - D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) , - D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) , - D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) , - D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) , - D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) , - D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) , - D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) , - D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) , - D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) , - D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) , - D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) , - D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) , - D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) , - D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) , - D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 ) - } D3D12_LOGIC_OP; - -typedef struct D3D12_RENDER_TARGET_BLEND_DESC - { - BOOL BlendEnable; - BOOL LogicOpEnable; - D3D12_BLEND SrcBlend; - D3D12_BLEND DestBlend; - D3D12_BLEND_OP BlendOp; - D3D12_BLEND SrcBlendAlpha; - D3D12_BLEND DestBlendAlpha; - D3D12_BLEND_OP BlendOpAlpha; - D3D12_LOGIC_OP LogicOp; - UINT8 RenderTargetWriteMask; - } D3D12_RENDER_TARGET_BLEND_DESC; - -typedef struct D3D12_BLEND_DESC - { - BOOL AlphaToCoverageEnable; - BOOL IndependentBlendEnable; - D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ]; - } D3D12_BLEND_DESC; - -/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT. - IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */ -typedef -enum D3D12_CONSERVATIVE_RASTERIZATION_MODE - { - D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, - D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1 - } D3D12_CONSERVATIVE_RASTERIZATION_MODE; - -typedef struct D3D12_RASTERIZER_DESC - { - D3D12_FILL_MODE FillMode; - D3D12_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - INT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - UINT ForcedSampleCount; - D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; - } D3D12_RASTERIZER_DESC; - -typedef struct D3D12_RASTERIZER_DESC1 - { - D3D12_FILL_MODE FillMode; - D3D12_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - FLOAT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - UINT ForcedSampleCount; - D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; - } D3D12_RASTERIZER_DESC1; - -typedef -enum D3D12_LINE_RASTERIZATION_MODE - { - D3D12_LINE_RASTERIZATION_MODE_ALIASED = 0, - D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED = ( D3D12_LINE_RASTERIZATION_MODE_ALIASED + 1 ) , - D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE = ( D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED + 1 ) , - D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW = ( D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE + 1 ) - } D3D12_LINE_RASTERIZATION_MODE; - -typedef struct D3D12_RASTERIZER_DESC2 - { - D3D12_FILL_MODE FillMode; - D3D12_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - FLOAT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode; - UINT ForcedSampleCount; - D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; - } D3D12_RASTERIZER_DESC2; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D12Object_INTERFACE_DEFINED__ -#define __ID3D12Object_INTERFACE_DEFINED__ - -/* interface ID3D12Object */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Object; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8") - ID3D12Object : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetPrivateData( - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateData( - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetName( - _In_z_ LPCWSTR Name) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ObjectVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Object * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Object * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Object * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Object * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Object * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Object * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Object * This, - _In_z_ LPCWSTR Name); - - END_INTERFACE - } ID3D12ObjectVtbl; - - interface ID3D12Object - { - CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Object_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Object_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Object_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Object_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Object_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__ -#define __ID3D12DeviceChild_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceChild */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceChild; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357") - ID3D12DeviceChild : public ID3D12Object - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDevice( - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceChildVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceChild * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceChild * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceChild * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12DeviceChild * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12DeviceChild * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12DeviceChild * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12DeviceChild * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12DeviceChild * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12DeviceChildVtbl; - - interface ID3D12DeviceChild - { - CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceChild_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceChild_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12DeviceChild_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__ -#define __ID3D12RootSignature_INTERFACE_DEFINED__ - -/* interface ID3D12RootSignature */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12RootSignature; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214") - ID3D12RootSignature : public ID3D12DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12RootSignatureVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12RootSignature * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12RootSignature * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12RootSignature * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12RootSignature * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12RootSignature * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12RootSignature * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12RootSignature * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12RootSignature * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12RootSignatureVtbl; - - interface ID3D12RootSignature - { - CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12RootSignature_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12RootSignature_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12RootSignature_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0001 */ -/* [local] */ - -typedef struct D3D12_SHADER_BYTECODE - { - _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode; - SIZE_T BytecodeLength; - } D3D12_SHADER_BYTECODE; - -typedef struct D3D12_STREAM_OUTPUT_DESC - { - _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration; - UINT NumEntries; - _Field_size_full_(NumStrides) const UINT *pBufferStrides; - UINT NumStrides; - UINT RasterizedStream; - } D3D12_STREAM_OUTPUT_DESC; - -typedef struct D3D12_INPUT_LAYOUT_DESC - { - _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; - UINT NumElements; - } D3D12_INPUT_LAYOUT_DESC; - -typedef -enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE - { - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 - } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; - -typedef -enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS - { - D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, - D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe - } D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS; - -typedef struct D3D12_CACHED_PIPELINE_STATE - { - _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob; - SIZE_T CachedBlobSizeInBytes; - } D3D12_CACHED_PIPELINE_STATE; - -typedef -enum D3D12_PIPELINE_STATE_FLAGS - { - D3D12_PIPELINE_STATE_FLAG_NONE = 0, - D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1, - D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4, - D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8 - } D3D12_PIPELINE_STATE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS ) -typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC - { - ID3D12RootSignature *pRootSignature; - D3D12_SHADER_BYTECODE VS; - D3D12_SHADER_BYTECODE PS; - D3D12_SHADER_BYTECODE DS; - D3D12_SHADER_BYTECODE HS; - D3D12_SHADER_BYTECODE GS; - D3D12_STREAM_OUTPUT_DESC StreamOutput; - D3D12_BLEND_DESC BlendState; - UINT SampleMask; - D3D12_RASTERIZER_DESC RasterizerState; - D3D12_DEPTH_STENCIL_DESC DepthStencilState; - D3D12_INPUT_LAYOUT_DESC InputLayout; - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; - D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; - UINT NumRenderTargets; - DXGI_FORMAT RTVFormats[ 8 ]; - DXGI_FORMAT DSVFormat; - DXGI_SAMPLE_DESC SampleDesc; - UINT NodeMask; - D3D12_CACHED_PIPELINE_STATE CachedPSO; - D3D12_PIPELINE_STATE_FLAGS Flags; - } D3D12_GRAPHICS_PIPELINE_STATE_DESC; - -typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC - { - ID3D12RootSignature *pRootSignature; - D3D12_SHADER_BYTECODE CS; - UINT NodeMask; - D3D12_CACHED_PIPELINE_STATE CachedPSO; - D3D12_PIPELINE_STATE_FLAGS Flags; - } D3D12_COMPUTE_PIPELINE_STATE_DESC; - -struct D3D12_RT_FORMAT_ARRAY - { - DXGI_FORMAT RTFormats[ 8 ]; - UINT NumRenderTargets; - } ; -typedef struct D3D12_PIPELINE_STATE_STREAM_DESC - { - _In_ SIZE_T SizeInBytes; - _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream; - } D3D12_PIPELINE_STATE_STREAM_DESC; - -typedef -enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE - { - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0, - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) , - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24, - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25, - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26, - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27, - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28, - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 + 1 ) - } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; - -typedef -enum D3D12_FEATURE - { - D3D12_FEATURE_D3D12_OPTIONS = 0, - D3D12_FEATURE_ARCHITECTURE = 1, - D3D12_FEATURE_FEATURE_LEVELS = 2, - D3D12_FEATURE_FORMAT_SUPPORT = 3, - D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4, - D3D12_FEATURE_FORMAT_INFO = 5, - D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6, - D3D12_FEATURE_SHADER_MODEL = 7, - D3D12_FEATURE_D3D12_OPTIONS1 = 8, - D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10, - D3D12_FEATURE_ROOT_SIGNATURE = 12, - D3D12_FEATURE_ARCHITECTURE1 = 16, - D3D12_FEATURE_D3D12_OPTIONS2 = 18, - D3D12_FEATURE_SHADER_CACHE = 19, - D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20, - D3D12_FEATURE_D3D12_OPTIONS3 = 21, - D3D12_FEATURE_EXISTING_HEAPS = 22, - D3D12_FEATURE_D3D12_OPTIONS4 = 23, - D3D12_FEATURE_SERIALIZATION = 24, - D3D12_FEATURE_CROSS_NODE = 25, - D3D12_FEATURE_D3D12_OPTIONS5 = 27, - D3D12_FEATURE_DISPLAYABLE = 28, - D3D12_FEATURE_D3D12_OPTIONS6 = 30, - D3D12_FEATURE_QUERY_META_COMMAND = 31, - D3D12_FEATURE_D3D12_OPTIONS7 = 32, - D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33, - D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34, - D3D12_FEATURE_D3D12_OPTIONS8 = 36, - D3D12_FEATURE_D3D12_OPTIONS9 = 37, - D3D12_FEATURE_D3D12_OPTIONS10 = 39, - D3D12_FEATURE_D3D12_OPTIONS11 = 40, - D3D12_FEATURE_D3D12_OPTIONS12 = 41, - D3D12_FEATURE_D3D12_OPTIONS13 = 42, - D3D12_FEATURE_D3D12_OPTIONS14 = 43, - D3D12_FEATURE_D3D12_OPTIONS15 = 44, - D3D12_FEATURE_D3D12_OPTIONS16 = 45, - D3D12_FEATURE_D3D12_OPTIONS17 = 46, - D3D12_FEATURE_D3D12_OPTIONS18 = 47, - D3D12_FEATURE_D3D12_OPTIONS19 = 48, - D3D12_FEATURE_D3D12_OPTIONS20 = 49, - D3D12_FEATURE_PREDICATION = 50, - D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, - D3D12_FEATURE_HARDWARE_COPY = 52, - D3D12_FEATURE_D3D12_OPTIONS21 = 53 - } D3D12_FEATURE; - -typedef -enum D3D12_SHADER_MIN_PRECISION_SUPPORT - { - D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0, - D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, - D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 - } D3D12_SHADER_MIN_PRECISION_SUPPORT; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT ) -typedef -enum D3D12_TILED_RESOURCES_TIER - { - D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, - D3D12_TILED_RESOURCES_TIER_1 = 1, - D3D12_TILED_RESOURCES_TIER_2 = 2, - D3D12_TILED_RESOURCES_TIER_3 = 3, - D3D12_TILED_RESOURCES_TIER_4 = 4 - } D3D12_TILED_RESOURCES_TIER; - -typedef -enum D3D12_RESOURCE_BINDING_TIER - { - D3D12_RESOURCE_BINDING_TIER_1 = 1, - D3D12_RESOURCE_BINDING_TIER_2 = 2, - D3D12_RESOURCE_BINDING_TIER_3 = 3 - } D3D12_RESOURCE_BINDING_TIER; - -typedef -enum D3D12_CONSERVATIVE_RASTERIZATION_TIER - { - D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 - } D3D12_CONSERVATIVE_RASTERIZATION_TIER; - -typedef -enum D3D12_FORMAT_SUPPORT1 - { - D3D12_FORMAT_SUPPORT1_NONE = 0, - D3D12_FORMAT_SUPPORT1_BUFFER = 0x1, - D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2, - D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4, - D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8, - D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10, - D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20, - D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40, - D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80, - D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800, - D3D12_FORMAT_SUPPORT1_MIP = 0x1000, - D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000, - D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000, - D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000, - D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000, - D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000, - D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000, - D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000, - D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, - D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000, - D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000, - D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, - D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, - D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000 - } D3D12_FORMAT_SUPPORT1; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 ) -typedef -enum D3D12_FORMAT_SUPPORT2 - { - D3D12_FORMAT_SUPPORT2_NONE = 0, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, - D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, - D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, - D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, - D3D12_FORMAT_SUPPORT2_TILED = 0x200, - D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000, - D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000 - } D3D12_FORMAT_SUPPORT2; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 ) -typedef -enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS - { - D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0, - D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1 - } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS ) -typedef -enum D3D12_CROSS_NODE_SHARING_TIER - { - D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, - D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, - D3D12_CROSS_NODE_SHARING_TIER_1 = 2, - D3D12_CROSS_NODE_SHARING_TIER_2 = 3, - D3D12_CROSS_NODE_SHARING_TIER_3 = 4 - } D3D12_CROSS_NODE_SHARING_TIER; - -typedef -enum D3D12_RESOURCE_HEAP_TIER - { - D3D12_RESOURCE_HEAP_TIER_1 = 1, - D3D12_RESOURCE_HEAP_TIER_2 = 2 - } D3D12_RESOURCE_HEAP_TIER; - -typedef -enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER - { - D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0, - D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1, - D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2 - } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER; - -typedef -enum D3D12_VIEW_INSTANCING_TIER - { - D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0, - D3D12_VIEW_INSTANCING_TIER_1 = 1, - D3D12_VIEW_INSTANCING_TIER_2 = 2, - D3D12_VIEW_INSTANCING_TIER_3 = 3 - } D3D12_VIEW_INSTANCING_TIER; - -typedef -enum D3D12_WORK_GRAPHS_TIER - { - D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0, - D3D12_WORK_GRAPHS_TIER_1_0 = 10 - } D3D12_WORK_GRAPHS_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS - { - _Out_ BOOL DoublePrecisionFloatShaderOps; - _Out_ BOOL OutputMergerLogicOp; - _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; - _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier; - _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; - _Out_ BOOL PSSpecifiedStencilRefSupported; - _Out_ BOOL TypedUAVLoadAdditionalFormats; - _Out_ BOOL ROVsSupported; - _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; - _Out_ UINT MaxGPUVirtualAddressBitsPerResource; - _Out_ BOOL StandardSwizzle64KBSupported; - _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; - _Out_ BOOL CrossAdapterRowMajorTextureSupported; - _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; - _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; - } D3D12_FEATURE_DATA_D3D12_OPTIONS; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 - { - _Out_ BOOL WaveOps; - _Out_ UINT WaveLaneCountMin; - _Out_ UINT WaveLaneCountMax; - _Out_ UINT TotalLaneCount; - _Out_ BOOL ExpandedComputeResourceStates; - _Out_ BOOL Int64ShaderOps; - } D3D12_FEATURE_DATA_D3D12_OPTIONS1; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 - { - _Out_ BOOL DepthBoundsTestSupported; - _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; - } D3D12_FEATURE_DATA_D3D12_OPTIONS2; - -typedef -enum D3D_ROOT_SIGNATURE_VERSION - { - D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, - D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, - D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, - D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3 - } D3D_ROOT_SIGNATURE_VERSION; - -typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE - { - _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion; - } D3D12_FEATURE_DATA_ROOT_SIGNATURE; - -typedef struct D3D12_FEATURE_DATA_ARCHITECTURE - { - _In_ UINT NodeIndex; - _Out_ BOOL TileBasedRenderer; - _Out_ BOOL UMA; - _Out_ BOOL CacheCoherentUMA; - } D3D12_FEATURE_DATA_ARCHITECTURE; - -typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 - { - _In_ UINT NodeIndex; - _Out_ BOOL TileBasedRenderer; - _Out_ BOOL UMA; - _Out_ BOOL CacheCoherentUMA; - _Out_ BOOL IsolatedMMU; - } D3D12_FEATURE_DATA_ARCHITECTURE1; - -typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS - { - _In_ UINT NumFeatureLevels; - _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested; - _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; - } D3D12_FEATURE_DATA_FEATURE_LEVELS; - -typedef -enum D3D_SHADER_MODEL - { - D3D_SHADER_MODEL_NONE = 0, - D3D_SHADER_MODEL_5_1 = 0x51, - D3D_SHADER_MODEL_6_0 = 0x60, - D3D_SHADER_MODEL_6_1 = 0x61, - D3D_SHADER_MODEL_6_2 = 0x62, - D3D_SHADER_MODEL_6_3 = 0x63, - D3D_SHADER_MODEL_6_4 = 0x64, - D3D_SHADER_MODEL_6_5 = 0x65, - D3D_SHADER_MODEL_6_6 = 0x66, - D3D_SHADER_MODEL_6_7 = 0x67, - D3D_SHADER_MODEL_6_8 = 0x68, - D3D_SHADER_MODEL_6_9 = 0x69, - D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9 - } D3D_SHADER_MODEL; - -typedef struct D3D12_FEATURE_DATA_SHADER_MODEL - { - _Inout_ D3D_SHADER_MODEL HighestShaderModel; - } D3D12_FEATURE_DATA_SHADER_MODEL; - -typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT - { - _In_ DXGI_FORMAT Format; - _Out_ D3D12_FORMAT_SUPPORT1 Support1; - _Out_ D3D12_FORMAT_SUPPORT2 Support2; - } D3D12_FEATURE_DATA_FORMAT_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS - { - _In_ DXGI_FORMAT Format; - _In_ UINT SampleCount; - _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; - _Out_ UINT NumQualityLevels; - } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; - -typedef struct D3D12_FEATURE_DATA_FORMAT_INFO - { - DXGI_FORMAT Format; - UINT8 PlaneCount; - } D3D12_FEATURE_DATA_FORMAT_INFO; - -typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT - { - UINT MaxGPUVirtualAddressBitsPerResource; - UINT MaxGPUVirtualAddressBitsPerProcess; - } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; - -typedef -enum D3D12_SHADER_CACHE_SUPPORT_FLAGS - { - D3D12_SHADER_CACHE_SUPPORT_NONE = 0, - D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, - D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2, - D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4, - D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8, - D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10, - D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20, - D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40 - } D3D12_SHADER_CACHE_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS ) -typedef struct D3D12_FEATURE_DATA_SHADER_CACHE - { - _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags; - } D3D12_FEATURE_DATA_SHADER_CACHE; - -typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY - { - _In_ D3D12_COMMAND_LIST_TYPE CommandListType; - _In_ UINT Priority; - _Out_ BOOL PriorityForTypeIsSupported; - } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY; - -typedef -enum D3D12_COMMAND_LIST_SUPPORT_FLAGS - { - D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0, - D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) , - D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) , - D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) , - D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) , - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) , - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) , - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE ) - } D3D12_COMMAND_LIST_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS ) -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 - { - _Out_ BOOL CopyQueueTimestampQueriesSupported; - _Out_ BOOL CastingFullyTypedFormatSupported; - _Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags; - _Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier; - _Out_ BOOL BarycentricsSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS3; - -typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS - { - _Out_ BOOL Supported; - } D3D12_FEATURE_DATA_EXISTING_HEAPS; - -typedef -enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER - { - D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0, - D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 ) , - D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 + 1 ) - } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER; - -typedef struct D3D12_FEATURE_DATA_DISPLAYABLE - { - _Out_ BOOL DisplayableTexture; - _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; - } D3D12_FEATURE_DATA_DISPLAYABLE; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 - { - _Out_ BOOL MSAA64KBAlignedTextureSupported; - _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; - _Out_ BOOL Native16BitShaderOpsSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS4; - -typedef -enum D3D12_HEAP_SERIALIZATION_TIER - { - D3D12_HEAP_SERIALIZATION_TIER_0 = 0, - D3D12_HEAP_SERIALIZATION_TIER_10 = 10 - } D3D12_HEAP_SERIALIZATION_TIER; - -typedef struct D3D12_FEATURE_DATA_SERIALIZATION - { - _In_ UINT NodeIndex; - _Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier; - } D3D12_FEATURE_DATA_SERIALIZATION; - -typedef struct D3D12_FEATURE_DATA_CROSS_NODE - { - D3D12_CROSS_NODE_SHARING_TIER SharingTier; - BOOL AtomicShaderInstructions; - } D3D12_FEATURE_DATA_CROSS_NODE; - -typedef -enum D3D12_RENDER_PASS_TIER - { - D3D12_RENDER_PASS_TIER_0 = 0, - D3D12_RENDER_PASS_TIER_1 = 1, - D3D12_RENDER_PASS_TIER_2 = 2 - } D3D12_RENDER_PASS_TIER; - -typedef -enum D3D12_RAYTRACING_TIER - { - D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0, - D3D12_RAYTRACING_TIER_1_0 = 10, - D3D12_RAYTRACING_TIER_1_1 = 11 - } D3D12_RAYTRACING_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 - { - _Out_ BOOL SRVOnlyTiledResourceTier3; - _Out_ D3D12_RENDER_PASS_TIER RenderPassesTier; - _Out_ D3D12_RAYTRACING_TIER RaytracingTier; - } D3D12_FEATURE_DATA_D3D12_OPTIONS5; - -typedef -enum D3D12_VARIABLE_SHADING_RATE_TIER - { - D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0, - D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1, - D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2 - } D3D12_VARIABLE_SHADING_RATE_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 - { - _Out_ BOOL AdditionalShadingRatesSupported; - _Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing; - _Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier; - _Out_ UINT ShadingRateImageTileSize; - _Out_ BOOL BackgroundProcessingSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS6; - -typedef -enum D3D12_MESH_SHADER_TIER - { - D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0, - D3D12_MESH_SHADER_TIER_1 = 10 - } D3D12_MESH_SHADER_TIER; - -typedef -enum D3D12_SAMPLER_FEEDBACK_TIER - { - D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0, - D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90, - D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100 - } D3D12_SAMPLER_FEEDBACK_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 - { - _Out_ D3D12_MESH_SHADER_TIER MeshShaderTier; - _Out_ D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier; - } D3D12_FEATURE_DATA_D3D12_OPTIONS7; - -typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND - { - _In_ GUID CommandId; - _In_ UINT NodeMask; - _Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData; - _In_ SIZE_T QueryInputDataSizeInBytes; - _Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData; - _In_ SIZE_T QueryOutputDataSizeInBytes; - } D3D12_FEATURE_DATA_QUERY_META_COMMAND; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 - { - _Out_ BOOL UnalignedBlockTexturesSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS8; - -typedef -enum D3D12_WAVE_MMA_TIER - { - D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0, - D3D12_WAVE_MMA_TIER_1_0 = 10 - } D3D12_WAVE_MMA_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 - { - _Out_ BOOL MeshShaderPipelineStatsSupported; - _Out_ BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex; - _Out_ BOOL AtomicInt64OnTypedResourceSupported; - _Out_ BOOL AtomicInt64OnGroupSharedSupported; - _Out_ BOOL DerivativesInMeshAndAmplificationShadersSupported; - _Out_ D3D12_WAVE_MMA_TIER WaveMMATier; - } D3D12_FEATURE_DATA_D3D12_OPTIONS9; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 - { - _Out_ BOOL VariableRateShadingSumCombinerSupported; - _Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS10; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 - { - _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS11; - -typedef -enum D3D12_TRI_STATE - { - D3D12_TRI_STATE_UNKNOWN = -1, - D3D12_TRI_STATE_FALSE = 0, - D3D12_TRI_STATE_TRUE = 1 - } D3D12_TRI_STATE; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 - { - _Out_ D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives; - _Out_ BOOL EnhancedBarriersSupported; - _Out_ BOOL RelaxedFormatCastingSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS12; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 - { - _Out_ BOOL UnrestrictedBufferTextureCopyPitchSupported; - _Out_ BOOL UnrestrictedVertexElementAlignmentSupported; - _Out_ BOOL InvertedViewportHeightFlipsYSupported; - _Out_ BOOL InvertedViewportDepthFlipsZSupported; - _Out_ BOOL TextureCopyBetweenDimensionsSupported; - _Out_ BOOL AlphaBlendFactorSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS13; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 - { - _Out_ BOOL AdvancedTextureOpsSupported; - _Out_ BOOL WriteableMSAATexturesSupported; - _Out_ BOOL IndependentFrontAndBackStencilRefMaskSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS14; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 - { - _Out_ BOOL TriangleFanSupported; - _Out_ BOOL DynamicIndexBufferStripCutSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS15; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 - { - _Out_ BOOL DynamicDepthBiasSupported; - _Out_ BOOL GPUUploadHeapSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS16; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17 - { - _Out_ BOOL NonNormalizedCoordinateSamplersSupported; - _Out_ BOOL ManualWriteTrackingResourceSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS17; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18 - { - _Out_ BOOL RenderPassesValid; - } D3D12_FEATURE_DATA_D3D12_OPTIONS18; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19 - { - BOOL MismatchingOutputDimensionsSupported; - UINT SupportedSampleCountsWithNoOutputs; - BOOL PointSamplingAddressesNeverRoundUp; - BOOL RasterizerDesc2Supported; - BOOL NarrowQuadrilateralLinesSupported; - BOOL AnisoFilterWithPointMipSupported; - UINT MaxSamplerDescriptorHeapSize; - UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers; - UINT MaxViewDescriptorHeapSize; - _Out_ BOOL ComputeOnlyCustomHeapSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS19; - -typedef -enum D3D12_RECREATE_AT_TIER - { - D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0, - D3D12_RECREATE_AT_TIER_1 = 1 - } D3D12_RECREATE_AT_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20 - { - _Out_ BOOL ComputeOnlyWriteWatchSupported; - D3D12_RECREATE_AT_TIER RecreateAtTier; - } D3D12_FEATURE_DATA_D3D12_OPTIONS20; - -typedef -enum D3D12_EXECUTE_INDIRECT_TIER - { - D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10, - D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11 - } D3D12_EXECUTE_INDIRECT_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 - { - _Out_ D3D12_WORK_GRAPHS_TIER WorkGraphsTier; - _Out_ D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier; - _Out_ BOOL SampleCmpGradientAndBiasSupported; - _Out_ BOOL ExtendedCommandInfoSupported; - } D3D12_FEATURE_DATA_D3D12_OPTIONS21; - -typedef struct D3D12_FEATURE_DATA_PREDICATION - { - _Out_ BOOL Supported; - } D3D12_FEATURE_DATA_PREDICATION; - -typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY - { - _Out_ BOOL Supported; - } D3D12_FEATURE_DATA_HARDWARE_COPY; - -typedef struct D3D12_RESOURCE_ALLOCATION_INFO - { - UINT64 SizeInBytes; - UINT64 Alignment; - } D3D12_RESOURCE_ALLOCATION_INFO; - -typedef struct D3D12_RESOURCE_ALLOCATION_INFO1 - { - UINT64 Offset; - UINT64 Alignment; - UINT64 SizeInBytes; - } D3D12_RESOURCE_ALLOCATION_INFO1; - -typedef -enum D3D12_HEAP_TYPE - { - D3D12_HEAP_TYPE_DEFAULT = 1, - D3D12_HEAP_TYPE_UPLOAD = 2, - D3D12_HEAP_TYPE_READBACK = 3, - D3D12_HEAP_TYPE_CUSTOM = 4, - D3D12_HEAP_TYPE_GPU_UPLOAD = 5 - } D3D12_HEAP_TYPE; - -typedef -enum D3D12_CPU_PAGE_PROPERTY - { - D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, - D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, - D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, - D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3 - } D3D12_CPU_PAGE_PROPERTY; - -typedef -enum D3D12_MEMORY_POOL - { - D3D12_MEMORY_POOL_UNKNOWN = 0, - D3D12_MEMORY_POOL_L0 = 1, - D3D12_MEMORY_POOL_L1 = 2 - } D3D12_MEMORY_POOL; - -typedef struct D3D12_HEAP_PROPERTIES - { - D3D12_HEAP_TYPE Type; - D3D12_CPU_PAGE_PROPERTY CPUPageProperty; - D3D12_MEMORY_POOL MemoryPoolPreference; - UINT CreationNodeMask; - UINT VisibleNodeMask; - } D3D12_HEAP_PROPERTIES; - -typedef -enum D3D12_HEAP_FLAGS - { - D3D12_HEAP_FLAG_NONE = 0, - D3D12_HEAP_FLAG_SHARED = 0x1, - D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, - D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, - D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20, - D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40, - D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80, - D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100, - D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200, - D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400, - D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800, - D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000, - D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000, - D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0, - D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0, - D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, - D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84 - } D3D12_HEAP_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS ) -typedef struct D3D12_HEAP_DESC - { - UINT64 SizeInBytes; - D3D12_HEAP_PROPERTIES Properties; - UINT64 Alignment; - D3D12_HEAP_FLAGS Flags; - } D3D12_HEAP_DESC; - -typedef -enum D3D12_RESOURCE_DIMENSION - { - D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, - D3D12_RESOURCE_DIMENSION_BUFFER = 1, - D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, - D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, - D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4 - } D3D12_RESOURCE_DIMENSION; - -typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO - { - _In_ DXGI_FORMAT Format; - _In_ D3D12_RESOURCE_DIMENSION Dimension; - _In_ D3D12_HEAP_PROPERTIES DestHeapProperties; - _Out_ BOOL Supported; - } D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO; - -typedef -enum D3D12_TEXTURE_LAYOUT - { - D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, - D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, - D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, - D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3 - } D3D12_TEXTURE_LAYOUT; - -typedef -enum D3D12_RESOURCE_FLAGS - { - D3D12_RESOURCE_FLAG_NONE = 0, - D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, - D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, - D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, - D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, - D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, - D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, - D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, - D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, - D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100 - } D3D12_RESOURCE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS ) -typedef struct D3D12_MIP_REGION - { - UINT Width; - UINT Height; - UINT Depth; - } D3D12_MIP_REGION; - -typedef struct D3D12_RESOURCE_DESC - { - D3D12_RESOURCE_DIMENSION Dimension; - UINT64 Alignment; - UINT64 Width; - UINT Height; - UINT16 DepthOrArraySize; - UINT16 MipLevels; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D12_TEXTURE_LAYOUT Layout; - D3D12_RESOURCE_FLAGS Flags; - } D3D12_RESOURCE_DESC; - -typedef struct D3D12_RESOURCE_DESC1 - { - D3D12_RESOURCE_DIMENSION Dimension; - UINT64 Alignment; - UINT64 Width; - UINT Height; - UINT16 DepthOrArraySize; - UINT16 MipLevels; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D12_TEXTURE_LAYOUT Layout; - D3D12_RESOURCE_FLAGS Flags; - D3D12_MIP_REGION SamplerFeedbackMipRegion; - } D3D12_RESOURCE_DESC1; - -typedef struct D3D12_DEPTH_STENCIL_VALUE - { - FLOAT Depth; - UINT8 Stencil; - } D3D12_DEPTH_STENCIL_VALUE; - -typedef struct D3D12_CLEAR_VALUE - { - DXGI_FORMAT Format; - union - { - FLOAT Color[ 4 ]; - D3D12_DEPTH_STENCIL_VALUE DepthStencil; - } ; - } D3D12_CLEAR_VALUE; - -typedef struct D3D12_RANGE - { - SIZE_T Begin; - SIZE_T End; - } D3D12_RANGE; - -typedef struct D3D12_RANGE_UINT64 - { - UINT64 Begin; - UINT64 End; - } D3D12_RANGE_UINT64; - -typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 - { - UINT Subresource; - D3D12_RANGE_UINT64 Range; - } D3D12_SUBRESOURCE_RANGE_UINT64; - -typedef struct D3D12_SUBRESOURCE_INFO - { - UINT64 Offset; - UINT RowPitch; - UINT DepthPitch; - } D3D12_SUBRESOURCE_INFO; - -typedef struct D3D12_TILED_RESOURCE_COORDINATE - { - UINT X; - UINT Y; - UINT Z; - UINT Subresource; - } D3D12_TILED_RESOURCE_COORDINATE; - -typedef struct D3D12_TILE_REGION_SIZE - { - UINT NumTiles; - BOOL UseBox; - UINT Width; - UINT16 Height; - UINT16 Depth; - } D3D12_TILE_REGION_SIZE; - -typedef -enum D3D12_TILE_RANGE_FLAGS - { - D3D12_TILE_RANGE_FLAG_NONE = 0, - D3D12_TILE_RANGE_FLAG_NULL = 1, - D3D12_TILE_RANGE_FLAG_SKIP = 2, - D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4 - } D3D12_TILE_RANGE_FLAGS; - -typedef struct D3D12_SUBRESOURCE_TILING - { - UINT WidthInTiles; - UINT16 HeightInTiles; - UINT16 DepthInTiles; - UINT StartTileIndexInOverallResource; - } D3D12_SUBRESOURCE_TILING; - -typedef struct D3D12_TILE_SHAPE - { - UINT WidthInTexels; - UINT HeightInTexels; - UINT DepthInTexels; - } D3D12_TILE_SHAPE; - -typedef struct D3D12_PACKED_MIP_INFO - { - UINT8 NumStandardMips; - UINT8 NumPackedMips; - UINT NumTilesForPackedMips; - UINT StartTileIndexInOverallResource; - } D3D12_PACKED_MIP_INFO; - -typedef -enum D3D12_TILE_MAPPING_FLAGS - { - D3D12_TILE_MAPPING_FLAG_NONE = 0, - D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1 - } D3D12_TILE_MAPPING_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS ) -typedef -enum D3D12_TILE_COPY_FLAGS - { - D3D12_TILE_COPY_FLAG_NONE = 0, - D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, - D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, - D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 - } D3D12_TILE_COPY_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS ) -typedef -enum D3D12_RESOURCE_STATES - { - D3D12_RESOURCE_STATE_COMMON = 0, - D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1, - D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2, - D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4, - D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8, - D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10, - D3D12_RESOURCE_STATE_DEPTH_READ = 0x20, - D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40, - D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80, - D3D12_RESOURCE_STATE_STREAM_OUT = 0x100, - D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200, - D3D12_RESOURCE_STATE_COPY_DEST = 0x400, - D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800, - D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000, - D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000, - D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000, - D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000, - D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) , - D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = ( 0x40 | 0x80 ) , - D3D12_RESOURCE_STATE_PRESENT = 0, - D3D12_RESOURCE_STATE_PREDICATION = 0x200, - D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000, - D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000, - D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000, - D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000, - D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000, - D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000 - } D3D12_RESOURCE_STATES; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES ) -typedef -enum D3D12_RESOURCE_BARRIER_TYPE - { - D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0, - D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) , - D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 ) - } D3D12_RESOURCE_BARRIER_TYPE; - - -typedef struct D3D12_RESOURCE_TRANSITION_BARRIER - { - ID3D12Resource *pResource; - UINT Subresource; - D3D12_RESOURCE_STATES StateBefore; - D3D12_RESOURCE_STATES StateAfter; - } D3D12_RESOURCE_TRANSITION_BARRIER; - -typedef struct D3D12_RESOURCE_ALIASING_BARRIER - { - ID3D12Resource *pResourceBefore; - ID3D12Resource *pResourceAfter; - } D3D12_RESOURCE_ALIASING_BARRIER; - -typedef struct D3D12_RESOURCE_UAV_BARRIER - { - ID3D12Resource *pResource; - } D3D12_RESOURCE_UAV_BARRIER; - -typedef -enum D3D12_RESOURCE_BARRIER_FLAGS - { - D3D12_RESOURCE_BARRIER_FLAG_NONE = 0, - D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, - D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2 - } D3D12_RESOURCE_BARRIER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS ) -typedef struct D3D12_RESOURCE_BARRIER - { - D3D12_RESOURCE_BARRIER_TYPE Type; - D3D12_RESOURCE_BARRIER_FLAGS Flags; - union - { - D3D12_RESOURCE_TRANSITION_BARRIER Transition; - D3D12_RESOURCE_ALIASING_BARRIER Aliasing; - D3D12_RESOURCE_UAV_BARRIER UAV; - } ; - } D3D12_RESOURCE_BARRIER; - -typedef struct D3D12_SUBRESOURCE_FOOTPRINT - { - DXGI_FORMAT Format; - UINT Width; - UINT Height; - UINT Depth; - UINT RowPitch; - } D3D12_SUBRESOURCE_FOOTPRINT; - -typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT - { - UINT64 Offset; - D3D12_SUBRESOURCE_FOOTPRINT Footprint; - } D3D12_PLACED_SUBRESOURCE_FOOTPRINT; - -typedef -enum D3D12_TEXTURE_COPY_TYPE - { - D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, - D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1 - } D3D12_TEXTURE_COPY_TYPE; - -typedef struct D3D12_TEXTURE_COPY_LOCATION - { - ID3D12Resource *pResource; - D3D12_TEXTURE_COPY_TYPE Type; - union - { - D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; - UINT SubresourceIndex; - } ; - } D3D12_TEXTURE_COPY_LOCATION; - -typedef -enum D3D12_RESOLVE_MODE - { - D3D12_RESOLVE_MODE_DECOMPRESS = 0, - D3D12_RESOLVE_MODE_MIN = 1, - D3D12_RESOLVE_MODE_MAX = 2, - D3D12_RESOLVE_MODE_AVERAGE = 3, - D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4, - D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5 - } D3D12_RESOLVE_MODE; - -typedef struct D3D12_SAMPLE_POSITION - { - INT8 X; - INT8 Y; - } D3D12_SAMPLE_POSITION; - -typedef struct D3D12_VIEW_INSTANCE_LOCATION - { - UINT ViewportArrayIndex; - UINT RenderTargetArrayIndex; - } D3D12_VIEW_INSTANCE_LOCATION; - -typedef -enum D3D12_VIEW_INSTANCING_FLAGS - { - D3D12_VIEW_INSTANCING_FLAG_NONE = 0, - D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1 - } D3D12_VIEW_INSTANCING_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS ) -typedef struct D3D12_VIEW_INSTANCING_DESC - { - UINT ViewInstanceCount; - _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations; - D3D12_VIEW_INSTANCING_FLAGS Flags; - } D3D12_VIEW_INSTANCING_DESC; - -typedef -enum D3D12_SHADER_COMPONENT_MAPPING - { - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5 - } D3D12_SHADER_COMPONENT_MAPPING; - -#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7 -#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3 -#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) -#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \ - (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK)) -#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) -typedef -enum D3D12_BUFFER_SRV_FLAGS - { - D3D12_BUFFER_SRV_FLAG_NONE = 0, - D3D12_BUFFER_SRV_FLAG_RAW = 0x1 - } D3D12_BUFFER_SRV_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS ) -typedef struct D3D12_BUFFER_SRV - { - UINT64 FirstElement; - UINT NumElements; - UINT StructureByteStride; - D3D12_BUFFER_SRV_FLAGS Flags; - } D3D12_BUFFER_SRV; - -typedef struct D3D12_TEX1D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; - } D3D12_TEX1D_SRV; - -typedef struct D3D12_TEX1D_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - FLOAT ResourceMinLODClamp; - } D3D12_TEX1D_ARRAY_SRV; - -typedef struct D3D12_TEX2D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT PlaneSlice; - FLOAT ResourceMinLODClamp; - } D3D12_TEX2D_SRV; - -typedef struct D3D12_TEX2D_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - FLOAT ResourceMinLODClamp; - } D3D12_TEX2D_ARRAY_SRV; - -typedef struct D3D12_TEX3D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; - } D3D12_TEX3D_SRV; - -typedef struct D3D12_TEXCUBE_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; - } D3D12_TEXCUBE_SRV; - -typedef struct D3D12_TEXCUBE_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT First2DArrayFace; - UINT NumCubes; - FLOAT ResourceMinLODClamp; - } D3D12_TEXCUBE_ARRAY_SRV; - -typedef struct D3D12_TEX2DMS_SRV - { - UINT UnusedField_NothingToDefine; - } D3D12_TEX2DMS_SRV; - -typedef struct D3D12_TEX2DMS_ARRAY_SRV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2DMS_ARRAY_SRV; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV - { - D3D12_GPU_VIRTUAL_ADDRESS Location; - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV; - -typedef -enum D3D12_SRV_DIMENSION - { - D3D12_SRV_DIMENSION_UNKNOWN = 0, - D3D12_SRV_DIMENSION_BUFFER = 1, - D3D12_SRV_DIMENSION_TEXTURE1D = 2, - D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_SRV_DIMENSION_TEXTURE2D = 4, - D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, - D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D12_SRV_DIMENSION_TEXTURE3D = 8, - D3D12_SRV_DIMENSION_TEXTURECUBE = 9, - D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10, - D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11 - } D3D12_SRV_DIMENSION; - -typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC - { - DXGI_FORMAT Format; - D3D12_SRV_DIMENSION ViewDimension; - UINT Shader4ComponentMapping; - union - { - D3D12_BUFFER_SRV Buffer; - D3D12_TEX1D_SRV Texture1D; - D3D12_TEX1D_ARRAY_SRV Texture1DArray; - D3D12_TEX2D_SRV Texture2D; - D3D12_TEX2D_ARRAY_SRV Texture2DArray; - D3D12_TEX2DMS_SRV Texture2DMS; - D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; - D3D12_TEX3D_SRV Texture3D; - D3D12_TEXCUBE_SRV TextureCube; - D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure; - } ; - } D3D12_SHADER_RESOURCE_VIEW_DESC; - -typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC - { - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; - } D3D12_CONSTANT_BUFFER_VIEW_DESC; - -typedef -enum D3D12_FILTER - { - D3D12_FILTER_MIN_MAG_MIP_POINT = 0, - D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, - D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, - D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, - D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, - D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, - D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, - D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15, - D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x54, - D3D12_FILTER_ANISOTROPIC = 0x55, - D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, - D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, - D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, - D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, - D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, - D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, - D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, - D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, - D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0xd4, - D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5, - D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, - D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, - D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, - D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, - D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, - D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, - D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, - D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, - D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x154, - D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155, - D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, - D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, - D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, - D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, - D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, - D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, - D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, - D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, - D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x1d4, - D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 - } D3D12_FILTER; - -typedef -enum D3D12_FILTER_TYPE - { - D3D12_FILTER_TYPE_POINT = 0, - D3D12_FILTER_TYPE_LINEAR = 1 - } D3D12_FILTER_TYPE; - -typedef -enum D3D12_FILTER_REDUCTION_TYPE - { - D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, - D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, - D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, - D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3 - } D3D12_FILTER_REDUCTION_TYPE; - -#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 ) - -#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 ) - -#define D3D12_FILTER_TYPE_MASK ( 0x3 ) - -#define D3D12_MIN_FILTER_SHIFT ( 4 ) - -#define D3D12_MAG_FILTER_SHIFT ( 2 ) - -#define D3D12_MIP_FILTER_SHIFT ( 0 ) - -#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 ) - -#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \ - ( ( D3D12_FILTER ) ( \ - ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \ - ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \ - ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \ - ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) -#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \ - ( ( D3D12_FILTER ) ( \ - D3D12_ANISOTROPIC_FILTERING_BIT | \ - D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ - D3D12_FILTER_TYPE_LINEAR, \ - D3D12_FILTER_TYPE_LINEAR, \ - reduction ) ) ) -#define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \ - ( ( D3D12_FILTER ) ( \ - D3D12_ANISOTROPIC_FILTERING_BIT | \ - D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ - D3D12_FILTER_TYPE_LINEAR, \ - D3D12_FILTER_TYPE_POINT, \ - reduction ) ) ) -#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \ - ( ( D3D12_FILTER_TYPE ) \ - ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) -#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \ - ( ( D3D12_FILTER_TYPE ) \ - ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) -#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \ - ( ( D3D12_FILTER_TYPE ) \ - ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) -#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \ - ( ( D3D12_FILTER_REDUCTION_TYPE ) \ - ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) -#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \ - ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) -#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \ - ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \ - ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \ - ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) ) -typedef -enum D3D12_TEXTURE_ADDRESS_MODE - { - D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, - D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, - D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, - D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, - D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 - } D3D12_TEXTURE_ADDRESS_MODE; - -typedef struct D3D12_SAMPLER_DESC - { - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - FLOAT BorderColor[ 4 ]; - FLOAT MinLOD; - FLOAT MaxLOD; - } D3D12_SAMPLER_DESC; - -typedef -enum D3D12_SAMPLER_FLAGS - { - D3D12_SAMPLER_FLAG_NONE = 0, - D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x1, - D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x2 - } D3D12_SAMPLER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS ) -typedef struct D3D12_SAMPLER_DESC2 - { - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - union - { - FLOAT FloatBorderColor[ 4 ]; - UINT UintBorderColor[ 4 ]; - } ; - FLOAT MinLOD; - FLOAT MaxLOD; - D3D12_SAMPLER_FLAGS Flags; - } D3D12_SAMPLER_DESC2; - -typedef -enum D3D12_BUFFER_UAV_FLAGS - { - D3D12_BUFFER_UAV_FLAG_NONE = 0, - D3D12_BUFFER_UAV_FLAG_RAW = 0x1 - } D3D12_BUFFER_UAV_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS ) -typedef struct D3D12_BUFFER_UAV - { - UINT64 FirstElement; - UINT NumElements; - UINT StructureByteStride; - UINT64 CounterOffsetInBytes; - D3D12_BUFFER_UAV_FLAGS Flags; - } D3D12_BUFFER_UAV; - -typedef struct D3D12_TEX1D_UAV - { - UINT MipSlice; - } D3D12_TEX1D_UAV; - -typedef struct D3D12_TEX1D_ARRAY_UAV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX1D_ARRAY_UAV; - -typedef struct D3D12_TEX2D_UAV - { - UINT MipSlice; - UINT PlaneSlice; - } D3D12_TEX2D_UAV; - -typedef struct D3D12_TEX2D_ARRAY_UAV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - } D3D12_TEX2D_ARRAY_UAV; - -typedef struct D3D12_TEX2DMS_UAV - { - UINT UnusedField_NothingToDefine; - } D3D12_TEX2DMS_UAV; - -typedef struct D3D12_TEX2DMS_ARRAY_UAV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2DMS_ARRAY_UAV; - -typedef struct D3D12_TEX3D_UAV - { - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; - } D3D12_TEX3D_UAV; - -typedef -enum D3D12_UAV_DIMENSION - { - D3D12_UAV_DIMENSION_UNKNOWN = 0, - D3D12_UAV_DIMENSION_BUFFER = 1, - D3D12_UAV_DIMENSION_TEXTURE1D = 2, - D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_UAV_DIMENSION_TEXTURE2D = 4, - D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_UAV_DIMENSION_TEXTURE2DMS = 6, - D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D12_UAV_DIMENSION_TEXTURE3D = 8 - } D3D12_UAV_DIMENSION; - -typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC - { - DXGI_FORMAT Format; - D3D12_UAV_DIMENSION ViewDimension; - union - { - D3D12_BUFFER_UAV Buffer; - D3D12_TEX1D_UAV Texture1D; - D3D12_TEX1D_ARRAY_UAV Texture1DArray; - D3D12_TEX2D_UAV Texture2D; - D3D12_TEX2D_ARRAY_UAV Texture2DArray; - D3D12_TEX2DMS_UAV Texture2DMS; - D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray; - D3D12_TEX3D_UAV Texture3D; - } ; - } D3D12_UNORDERED_ACCESS_VIEW_DESC; - -typedef struct D3D12_BUFFER_RTV - { - UINT64 FirstElement; - UINT NumElements; - } D3D12_BUFFER_RTV; - -typedef struct D3D12_TEX1D_RTV - { - UINT MipSlice; - } D3D12_TEX1D_RTV; - -typedef struct D3D12_TEX1D_ARRAY_RTV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX1D_ARRAY_RTV; - -typedef struct D3D12_TEX2D_RTV - { - UINT MipSlice; - UINT PlaneSlice; - } D3D12_TEX2D_RTV; - -typedef struct D3D12_TEX2DMS_RTV - { - UINT UnusedField_NothingToDefine; - } D3D12_TEX2DMS_RTV; - -typedef struct D3D12_TEX2D_ARRAY_RTV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - } D3D12_TEX2D_ARRAY_RTV; - -typedef struct D3D12_TEX2DMS_ARRAY_RTV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2DMS_ARRAY_RTV; - -typedef struct D3D12_TEX3D_RTV - { - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; - } D3D12_TEX3D_RTV; - -typedef -enum D3D12_RTV_DIMENSION - { - D3D12_RTV_DIMENSION_UNKNOWN = 0, - D3D12_RTV_DIMENSION_BUFFER = 1, - D3D12_RTV_DIMENSION_TEXTURE1D = 2, - D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_RTV_DIMENSION_TEXTURE2D = 4, - D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, - D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D12_RTV_DIMENSION_TEXTURE3D = 8 - } D3D12_RTV_DIMENSION; - -typedef struct D3D12_RENDER_TARGET_VIEW_DESC - { - DXGI_FORMAT Format; - D3D12_RTV_DIMENSION ViewDimension; - union - { - D3D12_BUFFER_RTV Buffer; - D3D12_TEX1D_RTV Texture1D; - D3D12_TEX1D_ARRAY_RTV Texture1DArray; - D3D12_TEX2D_RTV Texture2D; - D3D12_TEX2D_ARRAY_RTV Texture2DArray; - D3D12_TEX2DMS_RTV Texture2DMS; - D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; - D3D12_TEX3D_RTV Texture3D; - } ; - } D3D12_RENDER_TARGET_VIEW_DESC; - -typedef struct D3D12_TEX1D_DSV - { - UINT MipSlice; - } D3D12_TEX1D_DSV; - -typedef struct D3D12_TEX1D_ARRAY_DSV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX1D_ARRAY_DSV; - -typedef struct D3D12_TEX2D_DSV - { - UINT MipSlice; - } D3D12_TEX2D_DSV; - -typedef struct D3D12_TEX2D_ARRAY_DSV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2D_ARRAY_DSV; - -typedef struct D3D12_TEX2DMS_DSV - { - UINT UnusedField_NothingToDefine; - } D3D12_TEX2DMS_DSV; - -typedef struct D3D12_TEX2DMS_ARRAY_DSV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2DMS_ARRAY_DSV; - -typedef -enum D3D12_DSV_FLAGS - { - D3D12_DSV_FLAG_NONE = 0, - D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, - D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2 - } D3D12_DSV_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS ) -typedef -enum D3D12_DSV_DIMENSION - { - D3D12_DSV_DIMENSION_UNKNOWN = 0, - D3D12_DSV_DIMENSION_TEXTURE1D = 1, - D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, - D3D12_DSV_DIMENSION_TEXTURE2D = 3, - D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, - D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, - D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 - } D3D12_DSV_DIMENSION; - -typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC - { - DXGI_FORMAT Format; - D3D12_DSV_DIMENSION ViewDimension; - D3D12_DSV_FLAGS Flags; - union - { - D3D12_TEX1D_DSV Texture1D; - D3D12_TEX1D_ARRAY_DSV Texture1DArray; - D3D12_TEX2D_DSV Texture2D; - D3D12_TEX2D_ARRAY_DSV Texture2DArray; - D3D12_TEX2DMS_DSV Texture2DMS; - D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; - } ; - } D3D12_DEPTH_STENCIL_VIEW_DESC; - -typedef -enum D3D12_CLEAR_FLAGS - { - D3D12_CLEAR_FLAG_DEPTH = 0x1, - D3D12_CLEAR_FLAG_STENCIL = 0x2 - } D3D12_CLEAR_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS ) -typedef -enum D3D12_FENCE_FLAGS - { - D3D12_FENCE_FLAG_NONE = 0, - D3D12_FENCE_FLAG_SHARED = 0x1, - D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2, - D3D12_FENCE_FLAG_NON_MONITORED = 0x4 - } D3D12_FENCE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS ) -typedef -enum D3D12_DESCRIPTOR_HEAP_TYPE - { - D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0, - D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) , - D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) , - D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) , - D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 ) - } D3D12_DESCRIPTOR_HEAP_TYPE; - -typedef -enum D3D12_DESCRIPTOR_HEAP_FLAGS - { - D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0, - D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1 - } D3D12_DESCRIPTOR_HEAP_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS ) -typedef struct D3D12_DESCRIPTOR_HEAP_DESC - { - D3D12_DESCRIPTOR_HEAP_TYPE Type; - UINT NumDescriptors; - D3D12_DESCRIPTOR_HEAP_FLAGS Flags; - UINT NodeMask; - } D3D12_DESCRIPTOR_HEAP_DESC; - -typedef -enum D3D12_DESCRIPTOR_RANGE_TYPE - { - D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0, - D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) , - D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) , - D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 ) - } D3D12_DESCRIPTOR_RANGE_TYPE; - -typedef struct D3D12_DESCRIPTOR_RANGE - { - D3D12_DESCRIPTOR_RANGE_TYPE RangeType; - UINT NumDescriptors; - UINT BaseShaderRegister; - UINT RegisterSpace; - UINT OffsetInDescriptorsFromTableStart; - } D3D12_DESCRIPTOR_RANGE; - -typedef struct D3D12_ROOT_DESCRIPTOR_TABLE - { - UINT NumDescriptorRanges; - _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges; - } D3D12_ROOT_DESCRIPTOR_TABLE; - -typedef struct D3D12_ROOT_CONSTANTS - { - UINT ShaderRegister; - UINT RegisterSpace; - UINT Num32BitValues; - } D3D12_ROOT_CONSTANTS; - -typedef struct D3D12_ROOT_DESCRIPTOR - { - UINT ShaderRegister; - UINT RegisterSpace; - } D3D12_ROOT_DESCRIPTOR; - -typedef -enum D3D12_SHADER_VISIBILITY - { - D3D12_SHADER_VISIBILITY_ALL = 0, - D3D12_SHADER_VISIBILITY_VERTEX = 1, - D3D12_SHADER_VISIBILITY_HULL = 2, - D3D12_SHADER_VISIBILITY_DOMAIN = 3, - D3D12_SHADER_VISIBILITY_GEOMETRY = 4, - D3D12_SHADER_VISIBILITY_PIXEL = 5, - D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6, - D3D12_SHADER_VISIBILITY_MESH = 7 - } D3D12_SHADER_VISIBILITY; - -typedef -enum D3D12_ROOT_PARAMETER_TYPE - { - D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0, - D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) , - D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) , - D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) , - D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 ) - } D3D12_ROOT_PARAMETER_TYPE; - -typedef struct D3D12_ROOT_PARAMETER - { - D3D12_ROOT_PARAMETER_TYPE ParameterType; - union - { - D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; - D3D12_ROOT_CONSTANTS Constants; - D3D12_ROOT_DESCRIPTOR Descriptor; - } ; - D3D12_SHADER_VISIBILITY ShaderVisibility; - } D3D12_ROOT_PARAMETER; - -typedef -enum D3D12_ROOT_SIGNATURE_FLAGS - { - D3D12_ROOT_SIGNATURE_FLAG_NONE = 0, - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, - D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, - D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, - D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, - D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, - D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40, - D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80, - D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100, - D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200, - D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400, - D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800 - } D3D12_ROOT_SIGNATURE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS ) -typedef -enum D3D12_STATIC_BORDER_COLOR - { - D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0, - D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) , - D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) , - D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE + 1 ) , - D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT + 1 ) - } D3D12_STATIC_BORDER_COLOR; - -typedef struct D3D12_STATIC_SAMPLER_DESC - { - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - D3D12_STATIC_BORDER_COLOR BorderColor; - FLOAT MinLOD; - FLOAT MaxLOD; - UINT ShaderRegister; - UINT RegisterSpace; - D3D12_SHADER_VISIBILITY ShaderVisibility; - } D3D12_STATIC_SAMPLER_DESC; - -typedef struct D3D12_STATIC_SAMPLER_DESC1 - { - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - D3D12_STATIC_BORDER_COLOR BorderColor; - FLOAT MinLOD; - FLOAT MaxLOD; - UINT ShaderRegister; - UINT RegisterSpace; - D3D12_SHADER_VISIBILITY ShaderVisibility; - D3D12_SAMPLER_FLAGS Flags; - } D3D12_STATIC_SAMPLER_DESC1; - -typedef struct D3D12_ROOT_SIGNATURE_DESC - { - UINT NumParameters; - _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters; - UINT NumStaticSamplers; - _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; - D3D12_ROOT_SIGNATURE_FLAGS Flags; - } D3D12_ROOT_SIGNATURE_DESC; - -typedef -enum D3D12_DESCRIPTOR_RANGE_FLAGS - { - D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0, - D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1, - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2, - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8, - D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000 - } D3D12_DESCRIPTOR_RANGE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS ) -typedef struct D3D12_DESCRIPTOR_RANGE1 - { - D3D12_DESCRIPTOR_RANGE_TYPE RangeType; - UINT NumDescriptors; - UINT BaseShaderRegister; - UINT RegisterSpace; - D3D12_DESCRIPTOR_RANGE_FLAGS Flags; - UINT OffsetInDescriptorsFromTableStart; - } D3D12_DESCRIPTOR_RANGE1; - -typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 - { - UINT NumDescriptorRanges; - _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges; - } D3D12_ROOT_DESCRIPTOR_TABLE1; - -typedef -enum D3D12_ROOT_DESCRIPTOR_FLAGS - { - D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0, - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2, - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8 - } D3D12_ROOT_DESCRIPTOR_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS ) -typedef struct D3D12_ROOT_DESCRIPTOR1 - { - UINT ShaderRegister; - UINT RegisterSpace; - D3D12_ROOT_DESCRIPTOR_FLAGS Flags; - } D3D12_ROOT_DESCRIPTOR1; - -typedef struct D3D12_ROOT_PARAMETER1 - { - D3D12_ROOT_PARAMETER_TYPE ParameterType; - union - { - D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable; - D3D12_ROOT_CONSTANTS Constants; - D3D12_ROOT_DESCRIPTOR1 Descriptor; - } ; - D3D12_SHADER_VISIBILITY ShaderVisibility; - } D3D12_ROOT_PARAMETER1; - -typedef struct D3D12_ROOT_SIGNATURE_DESC1 - { - UINT NumParameters; - _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters; - UINT NumStaticSamplers; - _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; - D3D12_ROOT_SIGNATURE_FLAGS Flags; - } D3D12_ROOT_SIGNATURE_DESC1; - -typedef struct D3D12_ROOT_SIGNATURE_DESC2 - { - UINT NumParameters; - _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters; - UINT NumStaticSamplers; - _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1 *pStaticSamplers; - D3D12_ROOT_SIGNATURE_FLAGS Flags; - } D3D12_ROOT_SIGNATURE_DESC2; - -typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC - { - D3D_ROOT_SIGNATURE_VERSION Version; - union - { - D3D12_ROOT_SIGNATURE_DESC Desc_1_0; - D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1; - D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2; - } ; - } D3D12_VERSIONED_ROOT_SIGNATURE_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ -#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ - -/* interface ID3D12RootSignatureDeserializer */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12RootSignatureDeserializer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046") - ID3D12RootSignatureDeserializer : public IUnknown - { - public: - virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12RootSignatureDeserializerVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12RootSignatureDeserializer * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12RootSignatureDeserializer * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12RootSignatureDeserializer * This); - - DECLSPEC_XFGVIRT(ID3D12RootSignatureDeserializer, GetRootSignatureDesc) - const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )( - ID3D12RootSignatureDeserializer * This); - - END_INTERFACE - } ID3D12RootSignatureDeserializerVtbl; - - interface ID3D12RootSignatureDeserializer - { - CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12RootSignatureDeserializer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12RootSignatureDeserializer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \ - ( (This)->lpVtbl -> GetRootSignatureDesc(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ -#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ - -/* interface ID3D12VersionedRootSignatureDeserializer */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0") - ID3D12VersionedRootSignatureDeserializer : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion( - D3D_ROOT_SIGNATURE_VERSION convertToVersion, - _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0; - - virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VersionedRootSignatureDeserializerVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VersionedRootSignatureDeserializer * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VersionedRootSignatureDeserializer * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VersionedRootSignatureDeserializer * This); - - DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetRootSignatureDescAtVersion) - HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )( - ID3D12VersionedRootSignatureDeserializer * This, - D3D_ROOT_SIGNATURE_VERSION convertToVersion, - _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc); - - DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetUnconvertedRootSignatureDesc) - const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )( - ID3D12VersionedRootSignatureDeserializer * This); - - END_INTERFACE - } ID3D12VersionedRootSignatureDeserializerVtbl; - - interface ID3D12VersionedRootSignatureDeserializer - { - CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VersionedRootSignatureDeserializer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \ - ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) ) - -#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \ - ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0003 */ -/* [local] */ - -typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)( - _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, - _In_ D3D_ROOT_SIGNATURE_VERSION Version, - _Out_ ID3DBlob** ppBlob, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); - -HRESULT WINAPI D3D12SerializeRootSignature( - _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, - _In_ D3D_ROOT_SIGNATURE_VERSION Version, - _Out_ ID3DBlob** ppBlob, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); - -typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)( - _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, - _In_ SIZE_T SrcDataSizeInBytes, - _In_ REFIID pRootSignatureDeserializerInterface, - _Out_ void** ppRootSignatureDeserializer); - -HRESULT WINAPI D3D12CreateRootSignatureDeserializer( - _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, - _In_ SIZE_T SrcDataSizeInBytes, - _In_ REFIID pRootSignatureDeserializerInterface, - _Out_ void** ppRootSignatureDeserializer); - -typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)( - _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, - _Out_ ID3DBlob** ppBlob, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); - -HRESULT WINAPI D3D12SerializeVersionedRootSignature( - _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, - _Out_ ID3DBlob** ppBlob, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); - -typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)( - _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, - _In_ SIZE_T SrcDataSizeInBytes, - _In_ REFIID pRootSignatureDeserializerInterface, - _Out_ void** ppRootSignatureDeserializer); - -HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer( - _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, - _In_ SIZE_T SrcDataSizeInBytes, - _In_ REFIID pRootSignatureDeserializerInterface, - _Out_ void** ppRootSignatureDeserializer); - -typedef struct D3D12_CPU_DESCRIPTOR_HANDLE - { - SIZE_T ptr; - } D3D12_CPU_DESCRIPTOR_HANDLE; - -typedef struct D3D12_GPU_DESCRIPTOR_HANDLE - { - UINT64 ptr; - } D3D12_GPU_DESCRIPTOR_HANDLE; - -// If rects are supplied in D3D12_DISCARD_REGION, below, the resource -// must have 2D subresources with all specified subresources the same dimension. -typedef struct D3D12_DISCARD_REGION - { - UINT NumRects; - _In_reads_(NumRects) const D3D12_RECT *pRects; - UINT FirstSubresource; - UINT NumSubresources; - } D3D12_DISCARD_REGION; - -typedef -enum D3D12_QUERY_HEAP_TYPE - { - D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, - D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, - D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, - D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3, - D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4, - D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5, - D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7 - } D3D12_QUERY_HEAP_TYPE; - -typedef struct D3D12_QUERY_HEAP_DESC - { - D3D12_QUERY_HEAP_TYPE Type; - UINT Count; - UINT NodeMask; - } D3D12_QUERY_HEAP_DESC; - -typedef -enum D3D12_QUERY_TYPE - { - D3D12_QUERY_TYPE_OCCLUSION = 0, - D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, - D3D12_QUERY_TYPE_TIMESTAMP = 2, - D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7, - D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8, - D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10 - } D3D12_QUERY_TYPE; - -typedef -enum D3D12_PREDICATION_OP - { - D3D12_PREDICATION_OP_EQUAL_ZERO = 0, - D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1 - } D3D12_PREDICATION_OP; - -typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS - { - UINT64 IAVertices; - UINT64 IAPrimitives; - UINT64 VSInvocations; - UINT64 GSInvocations; - UINT64 GSPrimitives; - UINT64 CInvocations; - UINT64 CPrimitives; - UINT64 PSInvocations; - UINT64 HSInvocations; - UINT64 DSInvocations; - UINT64 CSInvocations; - } D3D12_QUERY_DATA_PIPELINE_STATISTICS; - -typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 - { - UINT64 IAVertices; - UINT64 IAPrimitives; - UINT64 VSInvocations; - UINT64 GSInvocations; - UINT64 GSPrimitives; - UINT64 CInvocations; - UINT64 CPrimitives; - UINT64 PSInvocations; - UINT64 HSInvocations; - UINT64 DSInvocations; - UINT64 CSInvocations; - UINT64 ASInvocations; - UINT64 MSInvocations; - UINT64 MSPrimitives; - } D3D12_QUERY_DATA_PIPELINE_STATISTICS1; - -typedef struct D3D12_QUERY_DATA_SO_STATISTICS - { - UINT64 NumPrimitivesWritten; - UINT64 PrimitivesStorageNeeded; - } D3D12_QUERY_DATA_SO_STATISTICS; - -typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW - { - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT64 SizeInBytes; - D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; - } D3D12_STREAM_OUTPUT_BUFFER_VIEW; - -typedef struct D3D12_DRAW_ARGUMENTS - { - UINT VertexCountPerInstance; - UINT InstanceCount; - UINT StartVertexLocation; - UINT StartInstanceLocation; - } D3D12_DRAW_ARGUMENTS; - -typedef struct D3D12_DRAW_INDEXED_ARGUMENTS - { - UINT IndexCountPerInstance; - UINT InstanceCount; - UINT StartIndexLocation; - INT BaseVertexLocation; - UINT StartInstanceLocation; - } D3D12_DRAW_INDEXED_ARGUMENTS; - -typedef struct D3D12_DISPATCH_ARGUMENTS - { - UINT ThreadGroupCountX; - UINT ThreadGroupCountY; - UINT ThreadGroupCountZ; - } D3D12_DISPATCH_ARGUMENTS; - -typedef struct D3D12_VERTEX_BUFFER_VIEW - { - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; - UINT StrideInBytes; - } D3D12_VERTEX_BUFFER_VIEW; - -typedef struct D3D12_INDEX_BUFFER_VIEW - { - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; - DXGI_FORMAT Format; - } D3D12_INDEX_BUFFER_VIEW; - -typedef -enum D3D12_INDIRECT_ARGUMENT_TYPE - { - D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0, - D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = ( D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH + 1 ) - } D3D12_INDIRECT_ARGUMENT_TYPE; - -typedef struct D3D12_INDIRECT_ARGUMENT_DESC - { - D3D12_INDIRECT_ARGUMENT_TYPE Type; - union - { - struct - { - UINT Slot; - } VertexBuffer; - struct - { - UINT RootParameterIndex; - UINT DestOffsetIn32BitValues; - UINT Num32BitValuesToSet; - } Constant; - struct - { - UINT RootParameterIndex; - } ConstantBufferView; - struct - { - UINT RootParameterIndex; - } ShaderResourceView; - struct - { - UINT RootParameterIndex; - } UnorderedAccessView; - struct - { - UINT RootParameterIndex; - UINT DestOffsetIn32BitValues; - } IncrementingConstant; - } ; - } D3D12_INDIRECT_ARGUMENT_DESC; - -typedef struct D3D12_COMMAND_SIGNATURE_DESC - { - UINT ByteStride; - UINT NumArgumentDescs; - _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; - UINT NodeMask; - } D3D12_COMMAND_SIGNATURE_DESC; - - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec; - -#ifndef __ID3D12Pageable_INTERFACE_DEFINED__ -#define __ID3D12Pageable_INTERFACE_DEFINED__ - -/* interface ID3D12Pageable */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Pageable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6") - ID3D12Pageable : public ID3D12DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12PageableVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Pageable * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Pageable * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Pageable * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Pageable * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Pageable * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Pageable * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Pageable * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Pageable * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12PageableVtbl; - - interface ID3D12Pageable - { - CONST_VTBL struct ID3D12PageableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Pageable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Pageable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Pageable_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Heap_INTERFACE_DEFINED__ -#define __ID3D12Heap_INTERFACE_DEFINED__ - -/* interface ID3D12Heap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Heap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3") - ID3D12Heap : public ID3D12Pageable - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_HEAP_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_HEAP_DESC * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12HeapVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Heap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Heap * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Heap * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Heap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Heap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Heap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Heap * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Heap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc) -#if !defined(_WIN32) - D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12Heap * This); - -#else - D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12Heap * This, - D3D12_HEAP_DESC * RetVal); - -#endif - - END_INTERFACE - } ID3D12HeapVtbl; - - interface ID3D12Heap - { - CONST_VTBL struct ID3D12HeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Heap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Heap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Heap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Heap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Heap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12Heap_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12Heap_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Resource_INTERFACE_DEFINED__ -#define __ID3D12Resource_INTERFACE_DEFINED__ - -/* interface ID3D12Resource */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Resource; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad") - ID3D12Resource : public ID3D12Pageable - { - public: - virtual HRESULT STDMETHODCALLTYPE Map( - UINT Subresource, - _In_opt_ const D3D12_RANGE *pReadRange, - _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0; - - virtual void STDMETHODCALLTYPE Unmap( - UINT Subresource, - _In_opt_ const D3D12_RANGE *pWrittenRange) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_RESOURCE_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_RESOURCE_DESC * RetVal) = 0; -#endif - - virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteToSubresource( - UINT DstSubresource, - _In_opt_ const D3D12_BOX *pDstBox, - _In_ const void *pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource( - _Out_ void *pDstData, - UINT DstRowPitch, - UINT DstDepthPitch, - UINT SrcSubresource, - _In_opt_ const D3D12_BOX *pSrcBox) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHeapProperties( - _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, - _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ResourceVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Resource * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Resource * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Resource * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Resource * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Resource * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Resource * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Resource * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Resource * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12Resource, Map) - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D12Resource * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pReadRange, - _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); - - DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) - void ( STDMETHODCALLTYPE *Unmap )( - ID3D12Resource * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pWrittenRange); - - DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) -#if !defined(_WIN32) - D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12Resource * This); - -#else - D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12Resource * This, - D3D12_RESOURCE_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) - D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( - ID3D12Resource * This); - - DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) - HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( - ID3D12Resource * This, - UINT DstSubresource, - _In_opt_ const D3D12_BOX *pDstBox, - _In_ const void *pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch); - - DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) - HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( - ID3D12Resource * This, - _Out_ void *pDstData, - UINT DstRowPitch, - UINT DstDepthPitch, - UINT SrcSubresource, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) - HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( - ID3D12Resource * This, - _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, - _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); - - END_INTERFACE - } ID3D12ResourceVtbl; - - interface ID3D12Resource - { - CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Resource_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Resource_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Resource_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Resource_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Resource_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \ - ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) - -#define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \ - ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) -#if !defined(_WIN32) - -#define ID3D12Resource_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12Resource_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#define ID3D12Resource_GetGPUVirtualAddress(This) \ - ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) - -#define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) - -#define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ - ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__ -#define __ID3D12CommandAllocator_INTERFACE_DEFINED__ - -/* interface ID3D12CommandAllocator */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CommandAllocator; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24") - ID3D12CommandAllocator : public ID3D12Pageable - { - public: - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12CommandAllocatorVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CommandAllocator * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CommandAllocator * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CommandAllocator * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12CommandAllocator * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12CommandAllocator * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12CommandAllocator * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12CommandAllocator * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12CommandAllocator * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandAllocator, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12CommandAllocator * This); - - END_INTERFACE - } ID3D12CommandAllocatorVtbl; - - interface ID3D12CommandAllocator - { - CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CommandAllocator_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CommandAllocator_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12CommandAllocator_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12CommandAllocator_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Fence_INTERFACE_DEFINED__ -#define __ID3D12Fence_INTERFACE_DEFINED__ - -/* interface ID3D12Fence */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Fence; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76") - ID3D12Fence : public ID3D12Pageable - { - public: - virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion( - UINT64 Value, - HANDLE hEvent) = 0; - - virtual HRESULT STDMETHODCALLTYPE Signal( - UINT64 Value) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12FenceVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Fence * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Fence * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Fence * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Fence * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Fence * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Fence * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Fence * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Fence * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue) - UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( - ID3D12Fence * This); - - DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( - ID3D12Fence * This, - UINT64 Value, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Fence, Signal) - HRESULT ( STDMETHODCALLTYPE *Signal )( - ID3D12Fence * This, - UINT64 Value); - - END_INTERFACE - } ID3D12FenceVtbl; - - interface ID3D12Fence - { - CONST_VTBL struct ID3D12FenceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Fence_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Fence_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Fence_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Fence_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Fence_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12Fence_GetCompletedValue(This) \ - ( (This)->lpVtbl -> GetCompletedValue(This) ) - -#define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \ - ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) - -#define ID3D12Fence_Signal(This,Value) \ - ( (This)->lpVtbl -> Signal(This,Value) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Fence1_INTERFACE_DEFINED__ -#define __ID3D12Fence1_INTERFACE_DEFINED__ - -/* interface ID3D12Fence1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Fence1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a") - ID3D12Fence1 : public ID3D12Fence - { - public: - virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Fence1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Fence1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Fence1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Fence1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Fence1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Fence1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Fence1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Fence1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Fence1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue) - UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( - ID3D12Fence1 * This); - - DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( - ID3D12Fence1 * This, - UINT64 Value, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Fence, Signal) - HRESULT ( STDMETHODCALLTYPE *Signal )( - ID3D12Fence1 * This, - UINT64 Value); - - DECLSPEC_XFGVIRT(ID3D12Fence1, GetCreationFlags) - D3D12_FENCE_FLAGS ( STDMETHODCALLTYPE *GetCreationFlags )( - ID3D12Fence1 * This); - - END_INTERFACE - } ID3D12Fence1Vtbl; - - interface ID3D12Fence1 - { - CONST_VTBL struct ID3D12Fence1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Fence1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Fence1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Fence1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Fence1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Fence1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Fence1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Fence1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Fence1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12Fence1_GetCompletedValue(This) \ - ( (This)->lpVtbl -> GetCompletedValue(This) ) - -#define ID3D12Fence1_SetEventOnCompletion(This,Value,hEvent) \ - ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) - -#define ID3D12Fence1_Signal(This,Value) \ - ( (This)->lpVtbl -> Signal(This,Value) ) - - -#define ID3D12Fence1_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__ -#define __ID3D12PipelineState_INTERFACE_DEFINED__ - -/* interface ID3D12PipelineState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12PipelineState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445") - ID3D12PipelineState : public ID3D12Pageable - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCachedBlob( - _COM_Outptr_ ID3DBlob **ppBlob) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12PipelineStateVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12PipelineState * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12PipelineState * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12PipelineState * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12PipelineState * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12PipelineState * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12PipelineState * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12PipelineState * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12PipelineState * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob) - HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )( - ID3D12PipelineState * This, - _COM_Outptr_ ID3DBlob **ppBlob); - - END_INTERFACE - } ID3D12PipelineStateVtbl; - - interface ID3D12PipelineState - { - CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12PipelineState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12PipelineState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12PipelineState_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \ - ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__ -#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__ - -/* interface ID3D12DescriptorHeap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DescriptorHeap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51") - ID3D12DescriptorHeap : public ID3D12Pageable - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_DESCRIPTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_DESCRIPTOR_HEAP_DESC * RetVal) = 0; -#endif - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0; -#else - virtual D3D12_CPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( - D3D12_CPU_DESCRIPTOR_HANDLE * RetVal) = 0; -#endif - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0; -#else - virtual D3D12_GPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( - D3D12_GPU_DESCRIPTOR_HANDLE * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DescriptorHeapVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DescriptorHeap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DescriptorHeap * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DescriptorHeap * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12DescriptorHeap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12DescriptorHeap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12DescriptorHeap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12DescriptorHeap * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12DescriptorHeap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetDesc) -#if !defined(_WIN32) - D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12DescriptorHeap * This); - -#else - D3D12_DESCRIPTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12DescriptorHeap * This, - D3D12_DESCRIPTOR_HEAP_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetCPUDescriptorHandleForHeapStart) -#if !defined(_WIN32) - D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )( - ID3D12DescriptorHeap * This); - -#else - D3D12_CPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )( - ID3D12DescriptorHeap * This, - D3D12_CPU_DESCRIPTOR_HANDLE * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetGPUDescriptorHandleForHeapStart) -#if !defined(_WIN32) - D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )( - ID3D12DescriptorHeap * This); - -#else - D3D12_GPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )( - ID3D12DescriptorHeap * This, - D3D12_GPU_DESCRIPTOR_HANDLE * RetVal); - -#endif - - END_INTERFACE - } ID3D12DescriptorHeapVtbl; - - interface ID3D12DescriptorHeap - { - CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DescriptorHeap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DescriptorHeap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12DescriptorHeap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12DescriptorHeap_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12DescriptorHeap_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif -#if !defined(_WIN32) - -#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \ - ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) ) -#else -#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This,RetVal) \ - ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This,RetVal) ) -#endif -#if !defined(_WIN32) - -#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \ - ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) ) -#else -#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This,RetVal) \ - ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__ -#define __ID3D12QueryHeap_INTERFACE_DEFINED__ - -/* interface ID3D12QueryHeap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12QueryHeap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4") - ID3D12QueryHeap : public ID3D12Pageable - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12QueryHeapVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12QueryHeap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12QueryHeap * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12QueryHeap * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12QueryHeap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12QueryHeap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12QueryHeap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12QueryHeap * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12QueryHeap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12QueryHeapVtbl; - - interface ID3D12QueryHeap - { - CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12QueryHeap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12QueryHeap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12QueryHeap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__ -#define __ID3D12CommandSignature_INTERFACE_DEFINED__ - -/* interface ID3D12CommandSignature */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CommandSignature; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1") - ID3D12CommandSignature : public ID3D12Pageable - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12CommandSignatureVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CommandSignature * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CommandSignature * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CommandSignature * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12CommandSignature * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12CommandSignature * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12CommandSignature * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12CommandSignature * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12CommandSignature * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12CommandSignatureVtbl; - - interface ID3D12CommandSignature - { - CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CommandSignature_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CommandSignature_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12CommandSignature_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12CommandList_INTERFACE_DEFINED__ -#define __ID3D12CommandList_INTERFACE_DEFINED__ - -/* interface ID3D12CommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5") - ID3D12CommandList : public ID3D12DeviceChild - { - public: - virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12CommandListVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CommandList * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CommandList * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12CommandList * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12CommandList * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12CommandList * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12CommandList * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12CommandList * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12CommandList * This); - - END_INTERFACE - } ID3D12CommandListVtbl; - - interface ID3D12CommandList - { - CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12CommandList_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12CommandList_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455") - ID3D12GraphicsCommandList : public ID3D12CommandList - { - public: - virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState) = 0; - - virtual void STDMETHODCALLTYPE ClearState( - _In_opt_ ID3D12PipelineState *pPipelineState) = 0; - - virtual void STDMETHODCALLTYPE DrawInstanced( - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation) = 0; - - virtual void STDMETHODCALLTYPE DrawIndexedInstanced( - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation) = 0; - - virtual void STDMETHODCALLTYPE Dispatch( - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ) = 0; - - virtual void STDMETHODCALLTYPE CopyBufferRegion( - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes) = 0; - - virtual void STDMETHODCALLTYPE CopyTextureRegion( - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox) = 0; - - virtual void STDMETHODCALLTYPE CopyResource( - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource) = 0; - - virtual void STDMETHODCALLTYPE CopyTiles( - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags) = 0; - - virtual void STDMETHODCALLTYPE ResolveSubresource( - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format) = 0; - - virtual void STDMETHODCALLTYPE IASetPrimitiveTopology( - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0; - - virtual void STDMETHODCALLTYPE RSSetViewports( - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0; - - virtual void STDMETHODCALLTYPE RSSetScissorRects( - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE OMSetBlendFactor( - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]) = 0; - - virtual void STDMETHODCALLTYPE OMSetStencilRef( - _In_ UINT StencilRef) = 0; - - virtual void STDMETHODCALLTYPE SetPipelineState( - _In_ ID3D12PipelineState *pPipelineState) = 0; - - virtual void STDMETHODCALLTYPE ResourceBarrier( - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; - - virtual void STDMETHODCALLTYPE ExecuteBundle( - _In_ ID3D12GraphicsCommandList *pCommandList) = 0; - - virtual void STDMETHODCALLTYPE SetDescriptorHeaps( - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootSignature( - _In_opt_ ID3D12RootSignature *pRootSignature) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootSignature( - _In_opt_ ID3D12RootSignature *pRootSignature) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant( - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant( - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants( - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants( - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE IASetIndexBuffer( - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0; - - virtual void STDMETHODCALLTYPE IASetVertexBuffers( - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0; - - virtual void STDMETHODCALLTYPE SOSetTargets( - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0; - - virtual void STDMETHODCALLTYPE OMSetRenderTargets( - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0; - - virtual void STDMETHODCALLTYPE ClearDepthStencilView( - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE ClearRenderTargetView( - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint( - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat( - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE DiscardResource( - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; - - virtual void STDMETHODCALLTYPE BeginQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE EndQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE ResolveQueryData( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset) = 0; - - virtual void STDMETHODCALLTYPE SetPredication( - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation) = 0; - - virtual void STDMETHODCALLTYPE SetMarker( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE BeginEvent( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE EndEvent( void) = 0; - - virtual void STDMETHODCALLTYPE ExecuteIndirect( - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandListVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - END_INTERFACE - } ID3D12GraphicsCommandListVtbl; - - interface ID3D12GraphicsCommandList - { - CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7") - ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList - { - public: - virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT( - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0; - - virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64( - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0; - - virtual void STDMETHODCALLTYPE OMSetDepthBounds( - _In_ FLOAT Min, - _In_ FLOAT Max) = 0; - - virtual void STDMETHODCALLTYPE SetSamplePositions( - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0; - - virtual void STDMETHODCALLTYPE ResolveSubresourceRegion( - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode) = 0; - - virtual void STDMETHODCALLTYPE SetViewInstanceMask( - _In_ UINT Mask) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList1 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList1 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList1 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList1 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList1 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList1 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList1 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList1 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList1 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList1 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList1 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList1 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList1 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList1 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList1 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList1 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList1 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList1 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList1 * This, - _In_ UINT Mask); - - END_INTERFACE - } ID3D12GraphicsCommandList1Vtbl; - - interface ID3D12GraphicsCommandList1 - { - CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList1_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList1_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList1_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0018 */ -/* [local] */ - -typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER - { - D3D12_GPU_VIRTUAL_ADDRESS Dest; - UINT32 Value; - } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER; - -typedef -enum D3D12_WRITEBUFFERIMMEDIATE_MODE - { - D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0, - D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, - D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2 - } D3D12_WRITEBUFFERIMMEDIATE_MODE; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_s_ifspec; - -#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("38C3E585-FF17-412C-9150-4FC6F9D72A28") - ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1 - { - public: - virtual void STDMETHODCALLTYPE WriteBufferImmediate( - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList2 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList2 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList2 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList2 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList2 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList2 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList2 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList2 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList2 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList2 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList2 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList2 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList2 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList2 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList2 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList2 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList2 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList2 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList2 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList2 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList2 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList2 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList2 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList2 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList2 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - END_INTERFACE - } ID3D12GraphicsCommandList2Vtbl; - - interface ID3D12GraphicsCommandList2 - { - CONST_VTBL struct ID3D12GraphicsCommandList2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList2_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList2_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList2_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList2_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList2_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList2_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList2_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList2_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList2_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList2_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList2_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList2_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList2_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList2_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList2_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList2_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__ -#define __ID3D12CommandQueue_INTERFACE_DEFINED__ - -/* interface ID3D12CommandQueue */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CommandQueue; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed") - ID3D12CommandQueue : public ID3D12Pageable - { - public: - virtual void STDMETHODCALLTYPE UpdateTileMappings( - _In_ ID3D12Resource *pResource, - UINT NumResourceRegions, - _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, - _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, - _In_opt_ ID3D12Heap *pHeap, - UINT NumRanges, - _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, - _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, - _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, - D3D12_TILE_MAPPING_FLAGS Flags) = 0; - - virtual void STDMETHODCALLTYPE CopyTileMappings( - _In_ ID3D12Resource *pDstResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, - _In_ ID3D12Resource *pSrcResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, - D3D12_TILE_MAPPING_FLAGS Flags) = 0; - - virtual void STDMETHODCALLTYPE ExecuteCommandLists( - _In_ UINT NumCommandLists, - _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0; - - virtual void STDMETHODCALLTYPE SetMarker( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE BeginEvent( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE EndEvent( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Signal( - ID3D12Fence *pFence, - UINT64 Value) = 0; - - virtual HRESULT STDMETHODCALLTYPE Wait( - ID3D12Fence *pFence, - UINT64 Value) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency( - _Out_ UINT64 *pFrequency) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClockCalibration( - _Out_ UINT64 *pGpuTimestamp, - _Out_ UINT64 *pCpuTimestamp) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_COMMAND_QUEUE_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_COMMAND_QUEUE_DESC * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12CommandQueueVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CommandQueue * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CommandQueue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CommandQueue * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12CommandQueue * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12CommandQueue * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12CommandQueue * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12CommandQueue * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12CommandQueue * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings) - void ( STDMETHODCALLTYPE *UpdateTileMappings )( - ID3D12CommandQueue * This, - _In_ ID3D12Resource *pResource, - UINT NumResourceRegions, - _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, - _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, - _In_opt_ ID3D12Heap *pHeap, - UINT NumRanges, - _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, - _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, - _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, - D3D12_TILE_MAPPING_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings) - void ( STDMETHODCALLTYPE *CopyTileMappings )( - ID3D12CommandQueue * This, - _In_ ID3D12Resource *pDstResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, - _In_ ID3D12Resource *pSrcResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, - D3D12_TILE_MAPPING_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists) - void ( STDMETHODCALLTYPE *ExecuteCommandLists )( - ID3D12CommandQueue * This, - _In_ UINT NumCommandLists, - _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12CommandQueue * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12CommandQueue * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12CommandQueue * This); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal) - HRESULT ( STDMETHODCALLTYPE *Signal )( - ID3D12CommandQueue * This, - ID3D12Fence *pFence, - UINT64 Value); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait) - HRESULT ( STDMETHODCALLTYPE *Wait )( - ID3D12CommandQueue * This, - ID3D12Fence *pFence, - UINT64 Value); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency) - HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )( - ID3D12CommandQueue * This, - _Out_ UINT64 *pFrequency); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration) - HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )( - ID3D12CommandQueue * This, - _Out_ UINT64 *pGpuTimestamp, - _Out_ UINT64 *pCpuTimestamp); - - DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc) -#if !defined(_WIN32) - D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12CommandQueue * This); - -#else - D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12CommandQueue * This, - D3D12_COMMAND_QUEUE_DESC * RetVal); - -#endif - - END_INTERFACE - } ID3D12CommandQueueVtbl; - - interface ID3D12CommandQueue - { - CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CommandQueue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CommandQueue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12CommandQueue_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \ - ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) ) - -#define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \ - ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) ) - -#define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \ - ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) ) - -#define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12CommandQueue_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12CommandQueue_Signal(This,pFence,Value) \ - ( (This)->lpVtbl -> Signal(This,pFence,Value) ) - -#define ID3D12CommandQueue_Wait(This,pFence,Value) \ - ( (This)->lpVtbl -> Wait(This,pFence,Value) ) - -#define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \ - ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) ) - -#define ID3D12CommandQueue_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \ - ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) ) -#if !defined(_WIN32) - -#define ID3D12CommandQueue_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12CommandQueue_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#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__ - -/* interface ID3D12Device */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7") - ID3D12Device : public ID3D12Object - { - public: - virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue( - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator( - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState( - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState( - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandList( - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap( - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap) = 0; - - virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize( - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRootSignature( - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature) = 0; - - virtual void STDMETHODCALLTYPE CreateConstantBufferView( - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateShaderResourceView( - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateUnorderedAccessView( - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateRenderTargetView( - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateDepthStencilView( - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateSampler( - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CopyDescriptors( - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; - - virtual void STDMETHODCALLTYPE CopyDescriptorsSimple( - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo( - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0; -#else - virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo( - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0; -#endif - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties( - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType) = 0; -#else - virtual D3D12_HEAP_PROPERTIES *STDMETHODCALLTYPE GetCustomHeapProperties( - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType) = 0; -#endif - - virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource( - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateHeap( - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource( - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateReservedResource( - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle( - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle( - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName( - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE MakeResident( - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE Evict( - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFence( - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0; - - virtual void STDMETHODCALLTYPE GetCopyableFootprints( - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap( - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetStablePowerState( - BOOL Enable) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature( - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature) = 0; - - virtual void STDMETHODCALLTYPE GetResourceTiling( - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0; -#else - virtual LUID *STDMETHODCALLTYPE GetAdapterLuid( - LUID * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device * This, - LUID * RetVal); - -#endif - - END_INTERFACE - } ID3D12DeviceVtbl; - - interface ID3D12Device - { - CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__ -#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__ - -/* interface ID3D12PipelineLibrary */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12PipelineLibrary; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f") - ID3D12PipelineLibrary : public ID3D12DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE StorePipeline( - _In_opt_ LPCWSTR pName, - _In_ ID3D12PipelineState *pPipeline) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline( - _In_ LPCWSTR pName, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline( - _In_ LPCWSTR pName, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState) = 0; - - virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Serialize( - _Out_writes_(DataSizeInBytes) void *pData, - SIZE_T DataSizeInBytes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12PipelineLibraryVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12PipelineLibrary * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12PipelineLibrary * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12PipelineLibrary * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12PipelineLibrary * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12PipelineLibrary * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12PipelineLibrary * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12PipelineLibrary * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12PipelineLibrary * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline) - HRESULT ( STDMETHODCALLTYPE *StorePipeline )( - ID3D12PipelineLibrary * This, - _In_opt_ LPCWSTR pName, - _In_ ID3D12PipelineState *pPipeline); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline) - HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )( - ID3D12PipelineLibrary * This, - _In_ LPCWSTR pName, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline) - HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )( - ID3D12PipelineLibrary * This, - _In_ LPCWSTR pName, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize) - SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )( - ID3D12PipelineLibrary * This); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize) - HRESULT ( STDMETHODCALLTYPE *Serialize )( - ID3D12PipelineLibrary * This, - _Out_writes_(DataSizeInBytes) void *pData, - SIZE_T DataSizeInBytes); - - END_INTERFACE - } ID3D12PipelineLibraryVtbl; - - interface ID3D12PipelineLibrary - { - CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12PipelineLibrary_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12PipelineLibrary_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12PipelineLibrary_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \ - ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) ) - -#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) ) - -#define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) ) - -#define ID3D12PipelineLibrary_GetSerializedSize(This) \ - ( (This)->lpVtbl -> GetSerializedSize(This) ) - -#define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \ - ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ -#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ - -/* interface ID3D12PipelineLibrary1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12PipelineLibrary1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3") - ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary - { - public: - virtual HRESULT STDMETHODCALLTYPE LoadPipeline( - _In_ LPCWSTR pName, - _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12PipelineLibrary1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12PipelineLibrary1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12PipelineLibrary1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12PipelineLibrary1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12PipelineLibrary1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12PipelineLibrary1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12PipelineLibrary1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12PipelineLibrary1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12PipelineLibrary1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline) - HRESULT ( STDMETHODCALLTYPE *StorePipeline )( - ID3D12PipelineLibrary1 * This, - _In_opt_ LPCWSTR pName, - _In_ ID3D12PipelineState *pPipeline); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline) - HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )( - ID3D12PipelineLibrary1 * This, - _In_ LPCWSTR pName, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline) - HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )( - ID3D12PipelineLibrary1 * This, - _In_ LPCWSTR pName, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize) - SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )( - ID3D12PipelineLibrary1 * This); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize) - HRESULT ( STDMETHODCALLTYPE *Serialize )( - ID3D12PipelineLibrary1 * This, - _Out_writes_(DataSizeInBytes) void *pData, - SIZE_T DataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12PipelineLibrary1, LoadPipeline) - HRESULT ( STDMETHODCALLTYPE *LoadPipeline )( - ID3D12PipelineLibrary1 * This, - _In_ LPCWSTR pName, - _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - END_INTERFACE - } ID3D12PipelineLibrary1Vtbl; - - interface ID3D12PipelineLibrary1 - { - CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12PipelineLibrary1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12PipelineLibrary1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12PipelineLibrary1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \ - ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) ) - -#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) ) - -#define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) ) - -#define ID3D12PipelineLibrary1_GetSerializedSize(This) \ - ( (This)->lpVtbl -> GetSerializedSize(This) ) - -#define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \ - ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) ) - - -#define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0023 */ -/* [local] */ - -typedef -enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS - { - D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0, - D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1, - D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0 - } D3D12_MULTIPLE_FENCE_WAIT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS ) -typedef -enum D3D12_RESIDENCY_PRIORITY - { - D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000, - D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000, - D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000, - D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000, - D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000 - } D3D12_RESIDENCY_PRIORITY; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_s_ifspec; - -#ifndef __ID3D12Device1_INTERFACE_DEFINED__ -#define __ID3D12Device1_INTERFACE_DEFINED__ - -/* interface ID3D12Device1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e") - ID3D12Device1 : public ID3D12Device - { - public: - virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary( - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion( - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority( - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device1 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device1 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device1 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device1 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device1 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device1 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device1 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device1 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device1 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device1 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device1 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device1 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device1 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device1 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device1 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device1 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device1 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device1 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device1 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device1 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device1 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device1 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device1 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device1 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device1 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device1 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device1 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device1 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device1 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device1 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device1 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device1 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device1 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device1 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device1 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device1 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device1 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device1 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device1 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device1 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device1 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device1 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device1 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - END_INTERFACE - } ID3D12Device1Vtbl; - - interface ID3D12Device1 - { - CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device1_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device1_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device1_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device1_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device1_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device1_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device1_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device1_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device1_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device1_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device2_INTERFACE_DEFINED__ -#define __ID3D12Device2_INTERFACE_DEFINED__ - -/* interface ID3D12Device2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328") - ID3D12Device2 : public ID3D12Device1 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreatePipelineState( - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device2 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device2 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device2 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device2 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device2 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device2 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device2 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device2 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device2 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device2 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device2 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device2 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device2 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device2 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device2 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device2 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device2 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device2 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device2 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device2 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device2 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device2 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device2 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device2 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device2 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device2 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device2 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device2 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device2 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device2 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device2 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device2 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device2 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device2 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device2 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device2 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device2 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device2 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device2 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device2 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device2 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device2 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device2 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device2 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device2 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device2 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device2 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device2 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device2 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - END_INTERFACE - } ID3D12Device2Vtbl; - - interface ID3D12Device2 - { - CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device2_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device2_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device2_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device2_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device2_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device2_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device2_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device2_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device2_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device2_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device2_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0025 */ -/* [local] */ - -typedef -enum D3D12_RESIDENCY_FLAGS - { - D3D12_RESIDENCY_FLAG_NONE = 0, - D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1 - } D3D12_RESIDENCY_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS ) - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec; - -#ifndef __ID3D12Device3_INTERFACE_DEFINED__ -#define __ID3D12Device3_INTERFACE_DEFINED__ - -/* interface ID3D12Device3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98") - ID3D12Device3 : public ID3D12Device2 - { - public: - virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress( - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping( - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident( - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device3Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device3 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device3 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device3 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device3 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device3 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device3 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device3 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device3 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device3 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device3 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device3 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device3 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device3 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device3 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device3 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device3 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device3 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device3 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device3 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device3 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device3 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device3 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device3 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device3 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device3 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device3 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device3 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device3 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device3 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device3 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device3 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device3 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device3 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device3 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device3 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device3 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device3 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device3 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device3 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device3 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device3 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device3 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device3 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device3 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device3 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device3 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device3 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device3 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device3 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device3 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device3 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device3 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device3 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - END_INTERFACE - } ID3D12Device3Vtbl; - - interface ID3D12Device3 - { - CONST_VTBL struct ID3D12Device3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device3_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device3_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device3_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device3_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device3_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device3_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device3_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device3_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device3_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device3_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device3_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device3_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device3_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device3_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device3_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device3_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device3_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device3_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device3_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device3_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device3_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device3_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device3_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device3_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device3_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device3_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device3_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device3_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device3_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device3_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device3_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device3_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device3_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device3_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device3_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device3_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device3_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device3_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device3_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device3_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device3_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device3_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device3_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device3_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device3_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device3_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device3_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device3_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0026 */ -/* [local] */ - -typedef -enum D3D12_COMMAND_LIST_FLAGS - { - D3D12_COMMAND_LIST_FLAG_NONE = 0 - } D3D12_COMMAND_LIST_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS ) -typedef -enum D3D12_COMMAND_POOL_FLAGS - { - D3D12_COMMAND_POOL_FLAG_NONE = 0 - } D3D12_COMMAND_POOL_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS ) -typedef -enum D3D12_COMMAND_RECORDER_FLAGS - { - D3D12_COMMAND_RECORDER_FLAG_NONE = 0 - } D3D12_COMMAND_RECORDER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS ) -typedef -enum D3D12_PROTECTED_SESSION_STATUS - { - D3D12_PROTECTED_SESSION_STATUS_OK = 0, - D3D12_PROTECTED_SESSION_STATUS_INVALID = 1 - } D3D12_PROTECTED_SESSION_STATUS; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_s_ifspec; - -#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__ -#define __ID3D12ProtectedSession_INTERFACE_DEFINED__ - -/* interface ID3D12ProtectedSession */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12ProtectedSession; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B") - ID3D12ProtectedSession : public ID3D12DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE GetStatusFence( - REFIID riid, - _COM_Outptr_opt_ void **ppFence) = 0; - - virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ProtectedSessionVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12ProtectedSession * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12ProtectedSession * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12ProtectedSession * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12ProtectedSession * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12ProtectedSession * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12ProtectedSession * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12ProtectedSession * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12ProtectedSession * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) - HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( - ID3D12ProtectedSession * This, - REFIID riid, - _COM_Outptr_opt_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) - D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( - ID3D12ProtectedSession * This); - - END_INTERFACE - } ID3D12ProtectedSessionVtbl; - - interface ID3D12ProtectedSession - { - CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12ProtectedSession_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12ProtectedSession_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12ProtectedSession_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \ - ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) - -#define ID3D12ProtectedSession_GetSessionStatus(This) \ - ( (This)->lpVtbl -> GetSessionStatus(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0027 */ -/* [local] */ - -typedef -enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS - { - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0, - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1 - } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS ) -typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT - { - UINT NodeIndex; - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support; - } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT; - -typedef -enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS - { - D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0 - } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS ) -typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC - { - UINT NodeMask; - D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; - } D3D12_PROTECTED_RESOURCE_SESSION_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec; - -#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ -#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ - -/* interface ID3D12ProtectedResourceSession */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12ProtectedResourceSession; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D") - ID3D12ProtectedResourceSession : public ID3D12ProtectedSession - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ProtectedResourceSessionVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12ProtectedResourceSession * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12ProtectedResourceSession * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12ProtectedResourceSession * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12ProtectedResourceSession * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12ProtectedResourceSession * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12ProtectedResourceSession * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12ProtectedResourceSession * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12ProtectedResourceSession * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) - HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( - ID3D12ProtectedResourceSession * This, - REFIID riid, - _COM_Outptr_opt_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) - D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( - ID3D12ProtectedResourceSession * This); - - DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc) -#if !defined(_WIN32) - D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12ProtectedResourceSession * This); - -#else - D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12ProtectedResourceSession * This, - D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal); - -#endif - - END_INTERFACE - } ID3D12ProtectedResourceSessionVtbl; - - interface ID3D12ProtectedResourceSession - { - CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12ProtectedResourceSession_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12ProtectedResourceSession_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12ProtectedResourceSession_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \ - ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) - -#define ID3D12ProtectedResourceSession_GetSessionStatus(This) \ - ( (This)->lpVtbl -> GetSessionStatus(This) ) - -#if !defined(_WIN32) - -#define ID3D12ProtectedResourceSession_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12ProtectedResourceSession_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device4_INTERFACE_DEFINED__ -#define __ID3D12Device4_INTERFACE_DEFINED__ - -/* interface ID3D12Device4 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5") - ID3D12Device4 : public ID3D12Device3 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateCommandList1( - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession( - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1( - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateHeap1( - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1( - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1( - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; -#else - virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo1( - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device4Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device4 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device4 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device4 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device4 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device4 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device4 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device4 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device4 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device4 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device4 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device4 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device4 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device4 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device4 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device4 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device4 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device4 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device4 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device4 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device4 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device4 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device4 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device4 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device4 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device4 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device4 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device4 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device4 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device4 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device4 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device4 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device4 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device4 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device4 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device4 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device4 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device4 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device4 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device4 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device4 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device4 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device4 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device4 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device4 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device4 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device4 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device4 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device4 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device4 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device4 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device4 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device4 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device4 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device4 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device4 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device4 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device4 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device4 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device4 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device4 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - END_INTERFACE - } ID3D12Device4Vtbl; - - interface ID3D12Device4 - { - CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device4_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device4_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device4_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device4_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device4_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device4_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device4_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device4_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device4_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device4_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device4_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device4_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device4_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0029 */ -/* [local] */ - -typedef -enum D3D12_LIFETIME_STATE - { - D3D12_LIFETIME_STATE_IN_USE = 0, - D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 ) - } D3D12_LIFETIME_STATE; - - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec; - -#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__ -#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__ - -/* interface ID3D12LifetimeOwner */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12LifetimeOwner; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8") - ID3D12LifetimeOwner : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE LifetimeStateUpdated( - D3D12_LIFETIME_STATE NewState) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12LifetimeOwnerVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12LifetimeOwner * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12LifetimeOwner * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12LifetimeOwner * This); - - DECLSPEC_XFGVIRT(ID3D12LifetimeOwner, LifetimeStateUpdated) - void ( STDMETHODCALLTYPE *LifetimeStateUpdated )( - ID3D12LifetimeOwner * This, - D3D12_LIFETIME_STATE NewState); - - END_INTERFACE - } ID3D12LifetimeOwnerVtbl; - - interface ID3D12LifetimeOwner - { - CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12LifetimeOwner_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12LifetimeOwner_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \ - ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ -#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ - -/* interface ID3D12SwapChainAssistant */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12SwapChainAssistant; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f") - ID3D12SwapChainAssistant : public IUnknown - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0; -#else - virtual LUID *STDMETHODCALLTYPE GetLUID( - LUID * RetVal) = 0; -#endif - - virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject( - REFIID riid, - _COM_Outptr_ void **ppv) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue( - REFIID riidResource, - _COM_Outptr_ void **ppvResource, - REFIID riidQueue, - _COM_Outptr_ void **ppvQueue) = 0; - - virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12SwapChainAssistantVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12SwapChainAssistant * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12SwapChainAssistant * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12SwapChainAssistant * This); - - DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetLUID) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetLUID )( - ID3D12SwapChainAssistant * This); - -#else - LUID *( STDMETHODCALLTYPE *GetLUID )( - ID3D12SwapChainAssistant * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetSwapChainObject) - HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )( - ID3D12SwapChainAssistant * This, - REFIID riid, - _COM_Outptr_ void **ppv); - - DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetCurrentResourceAndCommandQueue) - HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )( - ID3D12SwapChainAssistant * This, - REFIID riidResource, - _COM_Outptr_ void **ppvResource, - REFIID riidQueue, - _COM_Outptr_ void **ppvQueue); - - DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, InsertImplicitSync) - HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )( - ID3D12SwapChainAssistant * This); - - END_INTERFACE - } ID3D12SwapChainAssistantVtbl; - - interface ID3D12SwapChainAssistant - { - CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12SwapChainAssistant_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12SwapChainAssistant_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - -#if !defined(_WIN32) - -#define ID3D12SwapChainAssistant_GetLUID(This) \ - ( (This)->lpVtbl -> GetLUID(This) ) -#else -#define ID3D12SwapChainAssistant_GetLUID(This,RetVal) \ - ( (This)->lpVtbl -> GetLUID(This,RetVal) ) -#endif - -#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \ - ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) ) - -#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \ - ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) ) - -#define ID3D12SwapChainAssistant_InsertImplicitSync(This) \ - ( (This)->lpVtbl -> InsertImplicitSync(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__ -#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__ - -/* interface ID3D12LifetimeTracker */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12LifetimeTracker; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813") - ID3D12LifetimeTracker : public ID3D12DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject( - _In_ ID3D12DeviceChild *pObject) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12LifetimeTrackerVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12LifetimeTracker * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12LifetimeTracker * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12LifetimeTracker * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12LifetimeTracker * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12LifetimeTracker * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12LifetimeTracker * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12LifetimeTracker * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12LifetimeTracker * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12LifetimeTracker, DestroyOwnedObject) - HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )( - ID3D12LifetimeTracker * This, - _In_ ID3D12DeviceChild *pObject); - - END_INTERFACE - } ID3D12LifetimeTrackerVtbl; - - interface ID3D12LifetimeTracker - { - CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12LifetimeTracker_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12LifetimeTracker_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12LifetimeTracker_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \ - ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0032 */ -/* [local] */ - -typedef -enum D3D12_META_COMMAND_PARAMETER_TYPE - { - D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0, - D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1, - D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2, - D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3, - D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4 - } D3D12_META_COMMAND_PARAMETER_TYPE; - -typedef -enum D3D12_META_COMMAND_PARAMETER_FLAGS - { - D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1, - D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2 - } D3D12_META_COMMAND_PARAMETER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS ) -typedef -enum D3D12_META_COMMAND_PARAMETER_STAGE - { - D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0, - D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, - D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2 - } D3D12_META_COMMAND_PARAMETER_STAGE; - -typedef struct D3D12_META_COMMAND_PARAMETER_DESC - { - LPCWSTR Name; - D3D12_META_COMMAND_PARAMETER_TYPE Type; - D3D12_META_COMMAND_PARAMETER_FLAGS Flags; - D3D12_RESOURCE_STATES RequiredResourceState; - UINT StructureOffset; - } D3D12_META_COMMAND_PARAMETER_DESC; - -typedef -enum D3D12_GRAPHICS_STATES - { - D3D12_GRAPHICS_STATE_NONE = 0, - D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) , - D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) , - D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) , - D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) , - D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) , - D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) , - D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) , - D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) , - D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) , - D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) , - D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) , - D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) , - D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) , - D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) , - D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) , - D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) , - D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 ) - } D3D12_GRAPHICS_STATES; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES ) -typedef struct D3D12_META_COMMAND_DESC - { - GUID Id; - LPCWSTR Name; - D3D12_GRAPHICS_STATES InitializationDirtyState; - D3D12_GRAPHICS_STATES ExecutionDirtyState; - } D3D12_META_COMMAND_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_s_ifspec; - -#ifndef __ID3D12StateObject_INTERFACE_DEFINED__ -#define __ID3D12StateObject_INTERFACE_DEFINED__ - -/* interface ID3D12StateObject */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12StateObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d") - ID3D12StateObject : public ID3D12Pageable - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12StateObjectVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12StateObject * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12StateObject * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12StateObject * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12StateObject * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12StateObject * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12StateObject * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12StateObject * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12StateObject * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12StateObjectVtbl; - - interface ID3D12StateObject - { - CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12StateObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12StateObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12StateObject_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__ -#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__ - -/* interface ID3D12StateObjectProperties */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12StateObjectProperties; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860") - ID3D12StateObjectProperties : public IUnknown - { - public: - virtual void *STDMETHODCALLTYPE GetShaderIdentifier( - _In_ LPCWSTR pExportName) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize( - _In_ LPCWSTR pExportName) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0; - - virtual void STDMETHODCALLTYPE SetPipelineStackSize( - UINT64 PipelineStackSizeInBytes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12StateObjectPropertiesVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12StateObjectProperties * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12StateObjectProperties * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12StateObjectProperties * This); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) - void *( STDMETHODCALLTYPE *GetShaderIdentifier )( - ID3D12StateObjectProperties * This, - _In_ LPCWSTR pExportName); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) - UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( - ID3D12StateObjectProperties * This, - _In_ LPCWSTR pExportName); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) - UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( - ID3D12StateObjectProperties * This); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) - void ( STDMETHODCALLTYPE *SetPipelineStackSize )( - ID3D12StateObjectProperties * This, - UINT64 PipelineStackSizeInBytes); - - END_INTERFACE - } ID3D12StateObjectPropertiesVtbl; - - interface ID3D12StateObjectProperties - { - CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12StateObjectProperties_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12StateObjectProperties_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \ - ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) - -#define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \ - ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) - -#define ID3D12StateObjectProperties_GetPipelineStackSize(This) \ - ( (This)->lpVtbl -> GetPipelineStackSize(This) ) - -#define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ - ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0034 */ -/* [local] */ - -typedef struct D3D12_PROGRAM_IDENTIFIER - { - UINT64 OpaqueData[ 4 ]; - } D3D12_PROGRAM_IDENTIFIER; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec; - -#ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ -#define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ - -/* interface ID3D12StateObjectProperties1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12StateObjectProperties1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("460caac7-1d24-446a-a184-ca67db494138") - ID3D12StateObjectProperties1 : public ID3D12StateObjectProperties - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_PROGRAM_IDENTIFIER STDMETHODCALLTYPE GetProgramIdentifier( - LPCWSTR pProgramName) = 0; -#else - virtual D3D12_PROGRAM_IDENTIFIER *STDMETHODCALLTYPE GetProgramIdentifier( - D3D12_PROGRAM_IDENTIFIER * RetVal, - LPCWSTR pProgramName) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12StateObjectProperties1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12StateObjectProperties1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12StateObjectProperties1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12StateObjectProperties1 * This); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) - void *( STDMETHODCALLTYPE *GetShaderIdentifier )( - ID3D12StateObjectProperties1 * This, - _In_ LPCWSTR pExportName); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) - UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( - ID3D12StateObjectProperties1 * This, - _In_ LPCWSTR pExportName); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) - UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( - ID3D12StateObjectProperties1 * This); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) - void ( STDMETHODCALLTYPE *SetPipelineStackSize )( - ID3D12StateObjectProperties1 * This, - UINT64 PipelineStackSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier) -#if !defined(_WIN32) - D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )( - ID3D12StateObjectProperties1 * This, - LPCWSTR pProgramName); - -#else - D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )( - ID3D12StateObjectProperties1 * This, - D3D12_PROGRAM_IDENTIFIER * RetVal, - LPCWSTR pProgramName); - -#endif - - END_INTERFACE - } ID3D12StateObjectProperties1Vtbl; - - interface ID3D12StateObjectProperties1 - { - CONST_VTBL struct ID3D12StateObjectProperties1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12StateObjectProperties1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12StateObjectProperties1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12StateObjectProperties1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12StateObjectProperties1_GetShaderIdentifier(This,pExportName) \ - ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) - -#define ID3D12StateObjectProperties1_GetShaderStackSize(This,pExportName) \ - ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) - -#define ID3D12StateObjectProperties1_GetPipelineStackSize(This) \ - ( (This)->lpVtbl -> GetPipelineStackSize(This) ) - -#define ID3D12StateObjectProperties1_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ - ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) - -#if !defined(_WIN32) - -#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,pProgramName) \ - ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) ) -#else -#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,RetVal,pProgramName) \ - ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0035 */ -/* [local] */ - -typedef struct D3D12_NODE_ID - { - LPCWSTR Name; - UINT ArrayIndex; - } D3D12_NODE_ID; - -typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS - { - UINT64 MinSizeInBytes; - UINT64 MaxSizeInBytes; - UINT SizeGranularityInBytes; - } D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_s_ifspec; - -#ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ -#define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ - -/* interface ID3D12WorkGraphProperties */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12WorkGraphProperties; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("065acf71-f863-4b89-82f4-02e4d5886757") - ID3D12WorkGraphProperties : public IUnknown - { - public: - virtual UINT STDMETHODCALLTYPE GetNumWorkGraphs( void) = 0; - - virtual LPCWSTR STDMETHODCALLTYPE GetProgramName( - UINT WorkGraphIndex) = 0; - - virtual UINT STDMETHODCALLTYPE GetWorkGraphIndex( - LPCWSTR pProgramName) = 0; - - virtual UINT STDMETHODCALLTYPE GetNumNodes( - UINT WorkGraphIndex) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_NODE_ID STDMETHODCALLTYPE GetNodeID( - UINT WorkGraphIndex, - UINT NodeIndex) = 0; -#else - virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetNodeID( - D3D12_NODE_ID * RetVal, - UINT WorkGraphIndex, - UINT NodeIndex) = 0; -#endif - - virtual UINT STDMETHODCALLTYPE GetNodeIndex( - UINT WorkGraphIndex, - D3D12_NODE_ID NodeID) = 0; - - virtual UINT STDMETHODCALLTYPE GetNodeLocalRootArgumentsTableIndex( - UINT WorkGraphIndex, - UINT NodeIndex) = 0; - - virtual UINT STDMETHODCALLTYPE GetNumEntrypoints( - UINT WorkGraphIndex) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_NODE_ID STDMETHODCALLTYPE GetEntrypointID( - UINT WorkGraphIndex, - UINT EntrypointIndex) = 0; -#else - virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetEntrypointID( - D3D12_NODE_ID * RetVal, - UINT WorkGraphIndex, - UINT EntrypointIndex) = 0; -#endif - - virtual UINT STDMETHODCALLTYPE GetEntrypointIndex( - UINT WorkGraphIndex, - D3D12_NODE_ID NodeID) = 0; - - virtual UINT STDMETHODCALLTYPE GetEntrypointRecordSizeInBytes( - UINT WorkGraphIndex, - UINT EntrypointIndex) = 0; - - virtual void STDMETHODCALLTYPE GetWorkGraphMemoryRequirements( - UINT WorkGraphIndex, - _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements) = 0; - - virtual UINT STDMETHODCALLTYPE GetEntrypointRecordAlignmentInBytes( - UINT WorkGraphIndex, - UINT EntrypointIndex) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12WorkGraphPropertiesVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12WorkGraphProperties * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12WorkGraphProperties * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12WorkGraphProperties * This); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumWorkGraphs) - UINT ( STDMETHODCALLTYPE *GetNumWorkGraphs )( - ID3D12WorkGraphProperties * This); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetProgramName) - LPCWSTR ( STDMETHODCALLTYPE *GetProgramName )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphIndex) - UINT ( STDMETHODCALLTYPE *GetWorkGraphIndex )( - ID3D12WorkGraphProperties * This, - LPCWSTR pProgramName); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumNodes) - UINT ( STDMETHODCALLTYPE *GetNumNodes )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeID) -#if !defined(_WIN32) - D3D12_NODE_ID ( STDMETHODCALLTYPE *GetNodeID )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex, - UINT NodeIndex); - -#else - D3D12_NODE_ID *( STDMETHODCALLTYPE *GetNodeID )( - ID3D12WorkGraphProperties * This, - D3D12_NODE_ID * RetVal, - UINT WorkGraphIndex, - UINT NodeIndex); - -#endif - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeIndex) - UINT ( STDMETHODCALLTYPE *GetNodeIndex )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex, - D3D12_NODE_ID NodeID); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeLocalRootArgumentsTableIndex) - UINT ( STDMETHODCALLTYPE *GetNodeLocalRootArgumentsTableIndex )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex, - UINT NodeIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumEntrypoints) - UINT ( STDMETHODCALLTYPE *GetNumEntrypoints )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointID) -#if !defined(_WIN32) - D3D12_NODE_ID ( STDMETHODCALLTYPE *GetEntrypointID )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex, - UINT EntrypointIndex); - -#else - D3D12_NODE_ID *( STDMETHODCALLTYPE *GetEntrypointID )( - ID3D12WorkGraphProperties * This, - D3D12_NODE_ID * RetVal, - UINT WorkGraphIndex, - UINT EntrypointIndex); - -#endif - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointIndex) - UINT ( STDMETHODCALLTYPE *GetEntrypointIndex )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex, - D3D12_NODE_ID NodeID); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordSizeInBytes) - UINT ( STDMETHODCALLTYPE *GetEntrypointRecordSizeInBytes )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex, - UINT EntrypointIndex); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphMemoryRequirements) - void ( STDMETHODCALLTYPE *GetWorkGraphMemoryRequirements )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex, - _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements); - - DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordAlignmentInBytes) - UINT ( STDMETHODCALLTYPE *GetEntrypointRecordAlignmentInBytes )( - ID3D12WorkGraphProperties * This, - UINT WorkGraphIndex, - UINT EntrypointIndex); - - END_INTERFACE - } ID3D12WorkGraphPropertiesVtbl; - - interface ID3D12WorkGraphProperties - { - CONST_VTBL struct ID3D12WorkGraphPropertiesVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12WorkGraphProperties_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12WorkGraphProperties_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12WorkGraphProperties_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12WorkGraphProperties_GetNumWorkGraphs(This) \ - ( (This)->lpVtbl -> GetNumWorkGraphs(This) ) - -#define ID3D12WorkGraphProperties_GetProgramName(This,WorkGraphIndex) \ - ( (This)->lpVtbl -> GetProgramName(This,WorkGraphIndex) ) - -#define ID3D12WorkGraphProperties_GetWorkGraphIndex(This,pProgramName) \ - ( (This)->lpVtbl -> GetWorkGraphIndex(This,pProgramName) ) - -#define ID3D12WorkGraphProperties_GetNumNodes(This,WorkGraphIndex) \ - ( (This)->lpVtbl -> GetNumNodes(This,WorkGraphIndex) ) -#if !defined(_WIN32) - -#define ID3D12WorkGraphProperties_GetNodeID(This,WorkGraphIndex,NodeIndex) \ - ( (This)->lpVtbl -> GetNodeID(This,WorkGraphIndex,NodeIndex) ) -#else -#define ID3D12WorkGraphProperties_GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) \ - ( (This)->lpVtbl -> GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) ) -#endif - -#define ID3D12WorkGraphProperties_GetNodeIndex(This,WorkGraphIndex,NodeID) \ - ( (This)->lpVtbl -> GetNodeIndex(This,WorkGraphIndex,NodeID) ) - -#define ID3D12WorkGraphProperties_GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) \ - ( (This)->lpVtbl -> GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) ) - -#define ID3D12WorkGraphProperties_GetNumEntrypoints(This,WorkGraphIndex) \ - ( (This)->lpVtbl -> GetNumEntrypoints(This,WorkGraphIndex) ) -#if !defined(_WIN32) - -#define ID3D12WorkGraphProperties_GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) \ - ( (This)->lpVtbl -> GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) ) -#else -#define ID3D12WorkGraphProperties_GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) \ - ( (This)->lpVtbl -> GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) ) -#endif - -#define ID3D12WorkGraphProperties_GetEntrypointIndex(This,WorkGraphIndex,NodeID) \ - ( (This)->lpVtbl -> GetEntrypointIndex(This,WorkGraphIndex,NodeID) ) - -#define ID3D12WorkGraphProperties_GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) \ - ( (This)->lpVtbl -> GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) ) - -#define ID3D12WorkGraphProperties_GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) \ - ( (This)->lpVtbl -> GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) ) - -#define ID3D12WorkGraphProperties_GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) \ - ( (This)->lpVtbl -> GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0036 */ -/* [local] */ - -typedef -enum D3D12_STATE_SUBOBJECT_TYPE - { - D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0, - D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1, - D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2, - D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3, - D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5, - D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6, - D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7, - D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8, - D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9, - D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10, - D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11, - D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12, - D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13, - D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14, - D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15, - D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16, - D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17, - D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18, - D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19, - D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20, - D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21, - D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22, - D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23, - D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24, - D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26, - D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27, - D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28, - D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29, - D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30, - D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 + 1 ) - } D3D12_STATE_SUBOBJECT_TYPE; - -typedef struct D3D12_STATE_SUBOBJECT - { - D3D12_STATE_SUBOBJECT_TYPE Type; - const void *pDesc; - } D3D12_STATE_SUBOBJECT; - -typedef -enum D3D12_STATE_OBJECT_FLAGS - { - D3D12_STATE_OBJECT_FLAG_NONE = 0, - D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1, - D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2, - D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4 - } D3D12_STATE_OBJECT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS ) -typedef struct D3D12_STATE_OBJECT_CONFIG - { - D3D12_STATE_OBJECT_FLAGS Flags; - } D3D12_STATE_OBJECT_CONFIG; - -typedef struct D3D12_GLOBAL_ROOT_SIGNATURE - { - ID3D12RootSignature *pGlobalRootSignature; - } D3D12_GLOBAL_ROOT_SIGNATURE; - -typedef struct D3D12_LOCAL_ROOT_SIGNATURE - { - ID3D12RootSignature *pLocalRootSignature; - } D3D12_LOCAL_ROOT_SIGNATURE; - -typedef struct D3D12_NODE_MASK - { - UINT NodeMask; - } D3D12_NODE_MASK; - -typedef struct D3D12_SAMPLE_MASK - { - UINT SampleMask; - } D3D12_SAMPLE_MASK; - -typedef struct D3D12_IB_STRIP_CUT_VALUE - { - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue; - } D3D12_IB_STRIP_CUT_VALUE; - -typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC - { - D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology; - } D3D12_PRIMITIVE_TOPOLOGY_DESC; - -typedef struct D3D12_DEPTH_STENCIL_FORMAT - { - DXGI_FORMAT DepthStencilFormat; - } D3D12_DEPTH_STENCIL_FORMAT; - -typedef -enum D3D12_EXPORT_FLAGS - { - D3D12_EXPORT_FLAG_NONE = 0 - } D3D12_EXPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS ) -typedef struct D3D12_EXPORT_DESC - { - LPCWSTR Name; - _In_opt_ LPCWSTR ExportToRename; - D3D12_EXPORT_FLAGS Flags; - } D3D12_EXPORT_DESC; - -typedef struct D3D12_DXIL_LIBRARY_DESC - { - D3D12_SHADER_BYTECODE DXILLibrary; - UINT NumExports; - _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; - } D3D12_DXIL_LIBRARY_DESC; - -typedef struct D3D12_EXISTING_COLLECTION_DESC - { - ID3D12StateObject *pExistingCollection; - UINT NumExports; - _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; - } D3D12_EXISTING_COLLECTION_DESC; - -typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION - { - const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate; - UINT NumExports; - _In_reads_(NumExports) LPCWSTR *pExports; - } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION; - -typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION - { - LPCWSTR SubobjectToAssociate; - UINT NumExports; - _In_reads_(NumExports) LPCWSTR *pExports; - } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; - -typedef -enum D3D12_HIT_GROUP_TYPE - { - D3D12_HIT_GROUP_TYPE_TRIANGLES = 0, - D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1 - } D3D12_HIT_GROUP_TYPE; - -typedef struct D3D12_HIT_GROUP_DESC - { - LPCWSTR HitGroupExport; - D3D12_HIT_GROUP_TYPE Type; - _In_opt_ LPCWSTR AnyHitShaderImport; - _In_opt_ LPCWSTR ClosestHitShaderImport; - _In_opt_ LPCWSTR IntersectionShaderImport; - } D3D12_HIT_GROUP_DESC; - -typedef struct D3D12_RAYTRACING_SHADER_CONFIG - { - UINT MaxPayloadSizeInBytes; - UINT MaxAttributeSizeInBytes; - } D3D12_RAYTRACING_SHADER_CONFIG; - -typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG - { - UINT MaxTraceRecursionDepth; - } D3D12_RAYTRACING_PIPELINE_CONFIG; - -typedef -enum D3D12_RAYTRACING_PIPELINE_FLAGS - { - D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0, - D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100, - D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200 - } D3D12_RAYTRACING_PIPELINE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS ) -typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 - { - UINT MaxTraceRecursionDepth; - D3D12_RAYTRACING_PIPELINE_FLAGS Flags; - } D3D12_RAYTRACING_PIPELINE_CONFIG1; - -typedef struct D3D12_NODE_OUTPUT_OVERRIDES - { - UINT OutputIndex; - _In_opt_ const D3D12_NODE_ID *pNewName; - _In_opt_ const BOOL *pAllowSparseNodes; - _In_opt_ const UINT *pMaxRecords; - _In_opt_ const UINT *pMaxRecordsSharedWithOutputIndex; - } D3D12_NODE_OUTPUT_OVERRIDES; - -typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES - { - _In_opt_ const UINT *pLocalRootArgumentsTableIndex; - _In_opt_ const BOOL *pProgramEntry; - _In_opt_ const D3D12_NODE_ID *pNewName; - _In_opt_ const D3D12_NODE_ID *pShareInputOf; - _In_reads_opt_(3) const UINT *pDispatchGrid; - _In_reads_opt_(3) const UINT *pMaxDispatchGrid; - UINT NumOutputOverrides; - _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; - } D3D12_BROADCASTING_LAUNCH_OVERRIDES; - -typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES - { - _In_opt_ const UINT *pLocalRootArgumentsTableIndex; - _In_opt_ const BOOL *pProgramEntry; - _In_opt_ const D3D12_NODE_ID *pNewName; - _In_opt_ const D3D12_NODE_ID *pShareInputOf; - UINT NumOutputOverrides; - _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; - } D3D12_COALESCING_LAUNCH_OVERRIDES; - -typedef struct D3D12_THREAD_LAUNCH_OVERRIDES - { - _In_opt_ const UINT *pLocalRootArgumentsTableIndex; - _In_opt_ const BOOL *pProgramEntry; - _In_opt_ const D3D12_NODE_ID *pNewName; - _In_opt_ const D3D12_NODE_ID *pShareInputOf; - UINT NumOutputOverrides; - _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; - } D3D12_THREAD_LAUNCH_OVERRIDES; - -typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES - { - _In_opt_ const UINT *pLocalRootArgumentsTableIndex; - _In_opt_ const BOOL *pProgramEntry; - _In_opt_ const D3D12_NODE_ID *pNewName; - _In_opt_ const D3D12_NODE_ID *pShareInputOf; - UINT NumOutputOverrides; - _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; - } D3D12_COMMON_COMPUTE_NODE_OVERRIDES; - -typedef -enum D3D12_NODE_OVERRIDES_TYPE - { - D3D12_NODE_OVERRIDES_TYPE_NONE = 0, - D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1, - D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2, - D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3, - D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4 - } D3D12_NODE_OVERRIDES_TYPE; - -typedef struct D3D12_SHADER_NODE - { - LPCWSTR Shader; - D3D12_NODE_OVERRIDES_TYPE OverridesType; - union - { - const D3D12_BROADCASTING_LAUNCH_OVERRIDES *pBroadcastingLaunchOverrides; - const D3D12_COALESCING_LAUNCH_OVERRIDES *pCoalescingLaunchOverrides; - const D3D12_THREAD_LAUNCH_OVERRIDES *pThreadLaunchOverrides; - const D3D12_COMMON_COMPUTE_NODE_OVERRIDES *pCommonComputeNodeOverrides; - } ; - } D3D12_SHADER_NODE; - -typedef -enum D3D12_NODE_TYPE - { - D3D12_NODE_TYPE_SHADER = 0 - } D3D12_NODE_TYPE; - -typedef struct D3D12_NODE - { - D3D12_NODE_TYPE NodeType; - union - { - D3D12_SHADER_NODE Shader; - } ; - } D3D12_NODE; - -typedef -enum D3D12_WORK_GRAPH_FLAGS - { - D3D12_WORK_GRAPH_FLAG_NONE = 0, - D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1 - } D3D12_WORK_GRAPH_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS ) -typedef struct D3D12_WORK_GRAPH_DESC - { - LPCWSTR ProgramName; - D3D12_WORK_GRAPH_FLAGS Flags; - UINT NumEntrypoints; - _In_reads_opt_(NumEntrypoints) const D3D12_NODE_ID *pEntrypoints; - UINT NumExplicitlyDefinedNodes; - _In_reads_opt_(NumExplicitlyDefinedNodes) const D3D12_NODE *pExplicitlyDefinedNodes; - } D3D12_WORK_GRAPH_DESC; - -typedef struct D3D12_GENERIC_PROGRAM_DESC - { - LPCWSTR ProgramName; - UINT NumExports; - _In_reads_(NumExports) LPCWSTR *pExports; - UINT NumSubobjects; - _In_reads_opt_(NumSubobjects) const D3D12_STATE_SUBOBJECT *const *ppSubobjects; - } D3D12_GENERIC_PROGRAM_DESC; - -typedef -enum D3D12_STATE_OBJECT_TYPE - { - D3D12_STATE_OBJECT_TYPE_COLLECTION = 0, - D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3, - D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4 - } D3D12_STATE_OBJECT_TYPE; - -typedef struct D3D12_STATE_OBJECT_DESC - { - D3D12_STATE_OBJECT_TYPE Type; - UINT NumSubobjects; - _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects; - } D3D12_STATE_OBJECT_DESC; - -typedef -enum D3D12_RAYTRACING_GEOMETRY_FLAGS - { - D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0, - D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1, - D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2 - } D3D12_RAYTRACING_GEOMETRY_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS ) -typedef -enum D3D12_RAYTRACING_GEOMETRY_TYPE - { - D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0, - D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 ) - } D3D12_RAYTRACING_GEOMETRY_TYPE; - -typedef -enum D3D12_RAYTRACING_INSTANCE_FLAGS - { - D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0, - D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1, - D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2, - D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4, - D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8 - } D3D12_RAYTRACING_INSTANCE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS ) -typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE - { - D3D12_GPU_VIRTUAL_ADDRESS StartAddress; - UINT64 StrideInBytes; - } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE; - -typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE - { - D3D12_GPU_VIRTUAL_ADDRESS StartAddress; - UINT64 SizeInBytes; - } D3D12_GPU_VIRTUAL_ADDRESS_RANGE; - -typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE - { - D3D12_GPU_VIRTUAL_ADDRESS StartAddress; - UINT64 SizeInBytes; - UINT64 StrideInBytes; - } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE; - -typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC - { - D3D12_GPU_VIRTUAL_ADDRESS Transform3x4; - DXGI_FORMAT IndexFormat; - DXGI_FORMAT VertexFormat; - UINT IndexCount; - UINT VertexCount; - D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer; - D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer; - } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC; - -typedef struct D3D12_RAYTRACING_AABB - { - FLOAT MinX; - FLOAT MinY; - FLOAT MinZ; - FLOAT MaxX; - FLOAT MaxY; - FLOAT MaxZ; - } D3D12_RAYTRACING_AABB; - -typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC - { - UINT64 AABBCount; - D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs; - } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC; - -typedef -enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS - { - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20 - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS ) -typedef -enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE - { - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4 - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE; - -typedef -enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE - { - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1 - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE; - -typedef -enum D3D12_ELEMENTS_LAYOUT - { - D3D12_ELEMENTS_LAYOUT_ARRAY = 0, - D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1 - } D3D12_ELEMENTS_LAYOUT; - -typedef -enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE - { - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3 - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC - { - D3D12_GPU_VIRTUAL_ADDRESS DestBuffer; - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType; - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC - { - UINT64 CompactedSizeInBytes; - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC - { - UINT64 DecodedSizeInBytes; - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC; - -typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER - { - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; - UINT NumDescs; - } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER; - -// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above, -// depending on Type field, NumDescs above is followed by either: -// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs] -// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs]. -// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU. - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC - { - UINT64 SerializedSizeInBytes; - UINT64 NumBottomLevelAccelerationStructurePointers; - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC; - -typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER - { - GUID DriverOpaqueGUID; - BYTE DriverOpaqueVersioningData[ 16 ]; - } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER; - -typedef -enum D3D12_SERIALIZED_DATA_TYPE - { - D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0 - } D3D12_SERIALIZED_DATA_TYPE; - -typedef -enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS - { - D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0, - D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1, - D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2, - D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3, - D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4 - } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS; - -typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER - { - D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier; - UINT64 SerializedSizeInBytesIncludingHeader; - UINT64 DeserializedSizeInBytes; - UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader; - } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC - { - UINT64 CurrentSizeInBytes; - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC; - -typedef struct D3D12_RAYTRACING_INSTANCE_DESC - { - FLOAT Transform[ 3 ][ 4 ]; - UINT InstanceID : 24; - UINT InstanceMask : 8; - UINT InstanceContributionToHitGroupIndex : 24; - UINT Flags : 8; - D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure; - } D3D12_RAYTRACING_INSTANCE_DESC; - -typedef struct D3D12_RAYTRACING_GEOMETRY_DESC - { - D3D12_RAYTRACING_GEOMETRY_TYPE Type; - D3D12_RAYTRACING_GEOMETRY_FLAGS Flags; - union - { - D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles; - D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs; - } ; - } D3D12_RAYTRACING_GEOMETRY_DESC; - -typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS - { - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags; - UINT NumDescs; - D3D12_ELEMENTS_LAYOUT DescsLayout; - union - { - D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs; - const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs; - const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs; - } ; - } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS; - -typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC - { - D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData; - D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs; - _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData; - D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData; - } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO - { - UINT64 ResultDataMaxSizeInBytes; - UINT64 ScratchDataSizeInBytes; - UINT64 UpdateScratchDataSizeInBytes; - } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO; - -typedef -enum D3D12_RAY_FLAGS - { - D3D12_RAY_FLAG_NONE = 0, - D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1, - D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2, - D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4, - D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8, - D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10, - D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20, - D3D12_RAY_FLAG_CULL_OPAQUE = 0x40, - D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80, - D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100, - D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200 - } D3D12_RAY_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS ) -typedef -enum D3D12_HIT_KIND - { - D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe, - D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff - } D3D12_HIT_KIND; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_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__ - -/* interface ID3D12Device5 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device5; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d") - ID3D12Device5 : public ID3D12Device4 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker( - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker) = 0; - - virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands( - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters( - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand( - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStateObject( - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject) = 0; - - virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo( - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0; - - virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier( - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device5Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device5 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device5 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device5 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device5 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device5 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device5 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device5 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device5 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device5 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device5 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device5 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device5 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device5 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device5 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device5 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device5 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device5 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device5 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device5 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device5 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device5 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device5 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device5 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device5 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device5 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device5 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device5 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device5 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device5 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device5 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device5 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device5 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device5 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device5 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device5 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device5 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device5 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device5 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device5 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device5 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device5 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device5 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device5 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device5 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device5 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device5 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device5 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device5 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device5 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device5 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device5 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device5 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device5 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device5 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device5 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device5 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device5 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device5 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device5 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device5 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device5 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device5 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device5 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device5 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device5 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device5 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device5 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device5 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device5 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - END_INTERFACE - } ID3D12Device5Vtbl; - - interface ID3D12Device5 - { - CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device5_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device5_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device5_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device5_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device5_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device5_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device5_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device5_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device5_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device5_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device5_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device5_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device5_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device5_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0037 */ -/* [local] */ - -typedef -enum D3D12_AUTO_BREADCRUMB_OP - { - D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0, - D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1, - D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2, - D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3, - D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5, - D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6, - D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7, - D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8, - D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9, - D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10, - D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11, - D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12, - D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13, - D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14, - D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16, - D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18, - D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19, - D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22, - D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23, - D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24, - D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25, - D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27, - D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30, - D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, - D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, - D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34, - D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36, - D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38, - D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39, - D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 40, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 41, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 42, - D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 43, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 44, - 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; - -typedef struct D3D12_AUTO_BREADCRUMB_NODE - { - const char *pCommandListDebugNameA; - const wchar_t *pCommandListDebugNameW; - const char *pCommandQueueDebugNameA; - const wchar_t *pCommandQueueDebugNameW; - ID3D12GraphicsCommandList *pCommandList; - ID3D12CommandQueue *pCommandQueue; - UINT32 BreadcrumbCount; - const UINT32 *pLastBreadcrumbValue; - const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; - const struct D3D12_AUTO_BREADCRUMB_NODE *pNext; - } D3D12_AUTO_BREADCRUMB_NODE; - -typedef struct D3D12_DRED_BREADCRUMB_CONTEXT - { - UINT BreadcrumbIndex; - const wchar_t *pContextString; - } D3D12_DRED_BREADCRUMB_CONTEXT; - -typedef struct D3D12_AUTO_BREADCRUMB_NODE1 - { - const char *pCommandListDebugNameA; - const wchar_t *pCommandListDebugNameW; - const char *pCommandQueueDebugNameA; - const wchar_t *pCommandQueueDebugNameW; - ID3D12GraphicsCommandList *pCommandList; - ID3D12CommandQueue *pCommandQueue; - UINT BreadcrumbCount; - const UINT *pLastBreadcrumbValue; - const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; - const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext; - UINT BreadcrumbContextsCount; - D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts; - } D3D12_AUTO_BREADCRUMB_NODE1; - -typedef -enum D3D12_DRED_VERSION - { - D3D12_DRED_VERSION_1_0 = 0x1, - D3D12_DRED_VERSION_1_1 = 0x2, - D3D12_DRED_VERSION_1_2 = 0x3, - D3D12_DRED_VERSION_1_3 = 0x4 - } D3D12_DRED_VERSION; - -typedef -enum D3D12_DRED_FLAGS - { - D3D12_DRED_FLAG_NONE = 0, - D3D12_DRED_FLAG_FORCE_ENABLE = 1, - D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2 - } D3D12_DRED_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS ) -typedef -enum D3D12_DRED_ENABLEMENT - { - D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0, - D3D12_DRED_ENABLEMENT_FORCED_OFF = 1, - D3D12_DRED_ENABLEMENT_FORCED_ON = 2 - } D3D12_DRED_ENABLEMENT; - -typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA - { - _In_ D3D12_DRED_FLAGS Flags; - _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; - } D3D12_DEVICE_REMOVED_EXTENDED_DATA; - -typedef -enum D3D12_DRED_ALLOCATION_TYPE - { - D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20, - D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22, - D3D12_DRED_ALLOCATION_TYPE_FENCE = 23, - D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24, - D3D12_DRED_ALLOCATION_TYPE_HEAP = 25, - D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28, - D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32, - D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34, - D3D12_DRED_ALLOCATION_TYPE_PASS = 35, - D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36, - D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37, - D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41, - D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42, - D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43, - D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49, - D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff - } D3D12_DRED_ALLOCATION_TYPE; - -typedef struct D3D12_DRED_ALLOCATION_NODE - { - const char *ObjectNameA; - const wchar_t *ObjectNameW; - D3D12_DRED_ALLOCATION_TYPE AllocationType; - const struct D3D12_DRED_ALLOCATION_NODE *pNext; - } D3D12_DRED_ALLOCATION_NODE; - -typedef struct D3D12_DRED_ALLOCATION_NODE1 - { - const char *ObjectNameA; - const wchar_t *ObjectNameW; - D3D12_DRED_ALLOCATION_TYPE AllocationType; - const struct D3D12_DRED_ALLOCATION_NODE1 *pNext; - const IUnknown *pObject; - } D3D12_DRED_ALLOCATION_NODE1; - -typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT - { - _Out_ const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; - } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT; - -typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 - { - _Out_ const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode; - } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1; - -typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT - { - D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; - _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode; - _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode; - } D3D12_DRED_PAGE_FAULT_OUTPUT; - -typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1 - { - D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; - _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; - _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; - } D3D12_DRED_PAGE_FAULT_OUTPUT1; - -typedef -enum D3D12_DRED_PAGE_FAULT_FLAGS - { - D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0 - } D3D12_DRED_PAGE_FAULT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS ) -typedef -enum D3D12_DRED_DEVICE_STATE - { - D3D12_DRED_DEVICE_STATE_UNKNOWN = 0, - D3D12_DRED_DEVICE_STATE_HUNG = 3, - D3D12_DRED_DEVICE_STATE_FAULT = 6, - D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7 - } D3D12_DRED_DEVICE_STATE; - -typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2 - { - D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; - _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; - _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; - D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags; - } D3D12_DRED_PAGE_FAULT_OUTPUT2; - -typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 - { - HRESULT DeviceRemovedReason; - D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput; - D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput; - } D3D12_DEVICE_REMOVED_EXTENDED_DATA1; - -typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 - { - HRESULT DeviceRemovedReason; - D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; - D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput; - } D3D12_DEVICE_REMOVED_EXTENDED_DATA2; - -typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 - { - HRESULT DeviceRemovedReason; - D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; - D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput; - D3D12_DRED_DEVICE_STATE DeviceState; - } D3D12_DEVICE_REMOVED_EXTENDED_DATA3; - -typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA - { - D3D12_DRED_VERSION Version; - union - { - D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0; - D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1; - D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2; - D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3; - } ; - } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA; - - - -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__ - -/* interface ID3D12DeviceRemovedExtendedDataSettings */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63") - ID3D12DeviceRemovedExtendedDataSettings : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement( - D3D12_DRED_ENABLEMENT Enablement) = 0; - - virtual void STDMETHODCALLTYPE SetPageFaultEnablement( - D3D12_DRED_ENABLEMENT Enablement) = 0; - - virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement( - D3D12_DRED_ENABLEMENT Enablement) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceRemovedExtendedDataSettings * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceRemovedExtendedDataSettings * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceRemovedExtendedDataSettings * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) - void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( - ID3D12DeviceRemovedExtendedDataSettings * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) - void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( - ID3D12DeviceRemovedExtendedDataSettings * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) - void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( - ID3D12DeviceRemovedExtendedDataSettings * This, - D3D12_DRED_ENABLEMENT Enablement); - - END_INTERFACE - } ID3D12DeviceRemovedExtendedDataSettingsVtbl; - - interface ID3D12DeviceRemovedExtendedDataSettings - { - CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceRemovedExtendedDataSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) - -#define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) - -#define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ -#define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceRemovedExtendedDataSettings1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B") - ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings - { - public: - virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement( - D3D12_DRED_ENABLEMENT Enablement) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceRemovedExtendedDataSettings1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceRemovedExtendedDataSettings1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceRemovedExtendedDataSettings1 * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) - void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( - ID3D12DeviceRemovedExtendedDataSettings1 * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) - void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( - ID3D12DeviceRemovedExtendedDataSettings1 * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) - void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( - ID3D12DeviceRemovedExtendedDataSettings1 * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement) - void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )( - ID3D12DeviceRemovedExtendedDataSettings1 * This, - D3D12_DRED_ENABLEMENT Enablement); - - END_INTERFACE - } ID3D12DeviceRemovedExtendedDataSettings1Vtbl; - - interface ID3D12DeviceRemovedExtendedDataSettings1 - { - CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) - -#define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) - -#define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) - - -#define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ -#define __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceRemovedExtendedDataSettings2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("61552388-01ab-4008-a436-83db189566ea") - ID3D12DeviceRemovedExtendedDataSettings2 : public ID3D12DeviceRemovedExtendedDataSettings1 - { - public: - virtual void STDMETHODCALLTYPE UseMarkersOnlyAutoBreadcrumbs( - BOOL MarkersOnly) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceRemovedExtendedDataSettings2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceRemovedExtendedDataSettings2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceRemovedExtendedDataSettings2 * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) - void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( - ID3D12DeviceRemovedExtendedDataSettings2 * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) - void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( - ID3D12DeviceRemovedExtendedDataSettings2 * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) - void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( - ID3D12DeviceRemovedExtendedDataSettings2 * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement) - void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )( - ID3D12DeviceRemovedExtendedDataSettings2 * This, - D3D12_DRED_ENABLEMENT Enablement); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings2, UseMarkersOnlyAutoBreadcrumbs) - void ( STDMETHODCALLTYPE *UseMarkersOnlyAutoBreadcrumbs )( - ID3D12DeviceRemovedExtendedDataSettings2 * This, - BOOL MarkersOnly); - - END_INTERFACE - } ID3D12DeviceRemovedExtendedDataSettings2Vtbl; - - interface ID3D12DeviceRemovedExtendedDataSettings2 - { - CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceRemovedExtendedDataSettings2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceRemovedExtendedDataSettings2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceRemovedExtendedDataSettings2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceRemovedExtendedDataSettings2_SetAutoBreadcrumbsEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) - -#define ID3D12DeviceRemovedExtendedDataSettings2_SetPageFaultEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) - -#define ID3D12DeviceRemovedExtendedDataSettings2_SetWatsonDumpEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) - - -#define ID3D12DeviceRemovedExtendedDataSettings2_SetBreadcrumbContextEnablement(This,Enablement) \ - ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) ) - - -#define ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) \ - ( (This)->lpVtbl -> UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ -#define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceRemovedExtendedData */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("98931D33-5AE8-4791-AA3C-1A73A2934E71") - ID3D12DeviceRemovedExtendedData : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput( - _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput( - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceRemovedExtendedDataVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceRemovedExtendedData * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceRemovedExtendedData * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceRemovedExtendedData * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) - HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( - ID3D12DeviceRemovedExtendedData * This, - _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) - HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( - ID3D12DeviceRemovedExtendedData * This, - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); - - END_INTERFACE - } ID3D12DeviceRemovedExtendedDataVtbl; - - interface ID3D12DeviceRemovedExtendedData - { - CONST_VTBL struct ID3D12DeviceRemovedExtendedDataVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceRemovedExtendedData_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceRemovedExtendedData_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,pOutput) \ - ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) - -#define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,pOutput) \ - ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ -#define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceRemovedExtendedData1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9727A022-CF1D-4DDA-9EBA-EFFA653FC506") - ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData - { - public: - virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1( - _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1( - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceRemovedExtendedData1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceRemovedExtendedData1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceRemovedExtendedData1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceRemovedExtendedData1 * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) - HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( - ID3D12DeviceRemovedExtendedData1 * This, - _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) - HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( - ID3D12DeviceRemovedExtendedData1 * This, - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1) - HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )( - ID3D12DeviceRemovedExtendedData1 * This, - _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1) - HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )( - ID3D12DeviceRemovedExtendedData1 * This, - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput); - - END_INTERFACE - } ID3D12DeviceRemovedExtendedData1Vtbl; - - interface ID3D12DeviceRemovedExtendedData1 - { - CONST_VTBL struct ID3D12DeviceRemovedExtendedData1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceRemovedExtendedData1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceRemovedExtendedData1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,pOutput) \ - ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) - -#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,pOutput) \ - ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) - - -#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,pOutput) \ - ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) ) - -#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,pOutput) \ - ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ -#define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceRemovedExtendedData2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("67FC5816-E4CA-4915-BF18-42541272DA54") - ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1 - { - public: - virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2( - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput) = 0; - - virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceRemovedExtendedData2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceRemovedExtendedData2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceRemovedExtendedData2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceRemovedExtendedData2 * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) - HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( - ID3D12DeviceRemovedExtendedData2 * This, - _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) - HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( - ID3D12DeviceRemovedExtendedData2 * This, - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1) - HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )( - ID3D12DeviceRemovedExtendedData2 * This, - _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1) - HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )( - ID3D12DeviceRemovedExtendedData2 * This, - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetPageFaultAllocationOutput2) - HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput2 )( - ID3D12DeviceRemovedExtendedData2 * This, - _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput); - - DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetDeviceState) - D3D12_DRED_DEVICE_STATE ( STDMETHODCALLTYPE *GetDeviceState )( - ID3D12DeviceRemovedExtendedData2 * This); - - END_INTERFACE - } ID3D12DeviceRemovedExtendedData2Vtbl; - - interface ID3D12DeviceRemovedExtendedData2 - { - CONST_VTBL struct ID3D12DeviceRemovedExtendedData2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceRemovedExtendedData2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceRemovedExtendedData2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,pOutput) \ - ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) - -#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,pOutput) \ - ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) - - -#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,pOutput) \ - ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) ) - -#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,pOutput) \ - ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) ) - - -#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,pOutput) \ - ( (This)->lpVtbl -> GetPageFaultAllocationOutput2(This,pOutput) ) - -#define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) \ - ( (This)->lpVtbl -> GetDeviceState(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0043 */ -/* [local] */ - -typedef -enum D3D12_BACKGROUND_PROCESSING_MODE - { - D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0, - D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED + 1 ) , - D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS + 1 ) , - D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = ( D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK + 1 ) - } D3D12_BACKGROUND_PROCESSING_MODE; - -typedef -enum D3D12_MEASUREMENTS_ACTION - { - D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0, - D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = ( D3D12_MEASUREMENTS_ACTION_KEEP_ALL + 1 ) , - D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS + 1 ) , - D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY + 1 ) - } D3D12_MEASUREMENTS_ACTION; - - - -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__ - -/* interface ID3D12Device6 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device6; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc") - ID3D12Device6 : public ID3D12Device5 - { - public: - virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode( - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device6Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device6 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device6 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device6 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device6 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device6 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device6 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device6 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device6 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device6 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device6 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device6 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device6 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device6 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device6 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device6 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device6 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device6 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device6 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device6 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device6 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device6 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device6 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device6 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device6 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device6 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device6 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device6 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device6 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device6 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device6 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device6 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device6 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device6 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device6 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device6 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device6 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device6 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device6 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device6 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device6 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device6 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device6 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device6 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device6 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device6 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device6 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device6 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device6 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device6 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device6 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device6 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device6 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device6 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device6 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device6 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device6 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device6 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device6 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device6 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device6 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device6 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device6 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device6 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device6 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device6 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device6 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device6 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device6 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device6 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device6 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - END_INTERFACE - } ID3D12Device6Vtbl; - - interface ID3D12Device6 - { - CONST_VTBL struct ID3D12Device6Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device6_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device6_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device6_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device6_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device6_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device6_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device6_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device6_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device6_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device6_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device6_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device6_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device6_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device6_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device6_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device6_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device6_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device6_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device6_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device6_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device6_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device6_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device6_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device6_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device6_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device6_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device6_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device6_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device6_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device6_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device6_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device6_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device6_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device6_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device6_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device6_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device6_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device6_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device6_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device6_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device6_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device6_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device6_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device6_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device6_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device6_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device6_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device6_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device6_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device6_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device6_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device6_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device6_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device6_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device6_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device6_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device6_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device6_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device6_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device6_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device6_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device6_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device6_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device6_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device6_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device6_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device6_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device6_INTERFACE_DEFINED__ */ - - -/* 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); -typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT - { - UINT NodeIndex; - UINT Count; - } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT; - -typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES - { - UINT NodeIndex; - UINT Count; - GUID *pTypes; - } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES; - -typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 - { - UINT NodeMask; - D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; - GUID ProtectionType; - } D3D12_PROTECTED_RESOURCE_SESSION_DESC1; - - - -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__ - -/* interface ID3D12ProtectedResourceSession1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12ProtectedResourceSession1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D6F12DD6-76FB-406E-8961-4296EEFC0409") - ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0; -#else - virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *STDMETHODCALLTYPE GetDesc1( - D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ProtectedResourceSession1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12ProtectedResourceSession1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12ProtectedResourceSession1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12ProtectedResourceSession1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12ProtectedResourceSession1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12ProtectedResourceSession1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12ProtectedResourceSession1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12ProtectedResourceSession1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12ProtectedResourceSession1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) - HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( - ID3D12ProtectedResourceSession1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) - D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( - ID3D12ProtectedResourceSession1 * This); - - DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc) -#if !defined(_WIN32) - D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12ProtectedResourceSession1 * This); - -#else - D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12ProtectedResourceSession1 * This, - D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession1, GetDesc1) -#if !defined(_WIN32) - D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D12ProtectedResourceSession1 * This); - -#else - D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )( - ID3D12ProtectedResourceSession1 * This, - D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal); - -#endif - - END_INTERFACE - } ID3D12ProtectedResourceSession1Vtbl; - - interface ID3D12ProtectedResourceSession1 - { - CONST_VTBL struct ID3D12ProtectedResourceSession1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12ProtectedResourceSession1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12ProtectedResourceSession1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12ProtectedResourceSession1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12ProtectedResourceSession1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,ppFence) \ - ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) - -#define ID3D12ProtectedResourceSession1_GetSessionStatus(This) \ - ( (This)->lpVtbl -> GetSessionStatus(This) ) - -#if !defined(_WIN32) - -#define ID3D12ProtectedResourceSession1_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12ProtectedResourceSession1_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#if !defined(_WIN32) - -#define ID3D12ProtectedResourceSession1_GetDesc1(This) \ - ( (This)->lpVtbl -> GetDesc1(This) ) -#else -#define ID3D12ProtectedResourceSession1_GetDesc1(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc1(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device7_INTERFACE_DEFINED__ -#define __ID3D12Device7_INTERFACE_DEFINED__ - -/* interface ID3D12Device7 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device7; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b") - ID3D12Device7 : public ID3D12Device6 - { - public: - virtual HRESULT STDMETHODCALLTYPE AddToStateObject( - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1( - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device7Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device7 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device7 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device7 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device7 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device7 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device7 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device7 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device7 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device7 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device7 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device7 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device7 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device7 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device7 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device7 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device7 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device7 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device7 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device7 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device7 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device7 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device7 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device7 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device7 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device7 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device7 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device7 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device7 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device7 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device7 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device7 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device7 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device7 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device7 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device7 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device7 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device7 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device7 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device7 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device7 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device7 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device7 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device7 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device7 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device7 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device7 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device7 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device7 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device7 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device7 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device7 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device7 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device7 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device7 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device7 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device7 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device7 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device7 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device7 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device7 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device7 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device7 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device7 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device7 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device7 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device7 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device7 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device7 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device7 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device7 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) - HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( - ID3D12Device7 * This, - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( - ID3D12Device7 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - END_INTERFACE - } ID3D12Device7Vtbl; - - interface ID3D12Device7 - { - CONST_VTBL struct ID3D12Device7Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device7_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device7_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device7_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device7_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device7_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device7_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device7_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device7_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device7_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device7_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device7_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device7_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device7_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device7_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device7_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device7_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device7_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device7_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device7_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device7_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device7_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device7_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device7_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device7_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device7_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device7_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device7_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device7_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device7_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device7_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device7_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device7_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device7_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device7_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device7_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device7_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device7_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device7_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device7_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device7_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device7_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device7_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device7_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device7_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device7_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device7_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device7_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device7_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device7_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device7_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device7_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device7_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device7_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device7_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device7_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device7_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device7_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device7_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device7_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device7_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device7_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device7_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device7_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device7_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device7_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device7_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device7_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - - -#define ID3D12Device7_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ - ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) - -#define ID3D12Device7_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device7_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device8_INTERFACE_DEFINED__ -#define __ID3D12Device8_INTERFACE_DEFINED__ - -/* interface ID3D12Device8 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device8; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9218E6BB-F944-4F7E-A75C-B1B2C7B701F3") - ID3D12Device8 : public ID3D12Device7 - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2( - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; -#else - virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo2( - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; -#endif - - virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2( - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1( - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView( - _In_opt_ ID3D12Resource *pTargetedResource, - _In_opt_ ID3D12Resource *pFeedbackResource, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE GetCopyableFootprints1( - _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device8Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device8 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device8 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device8 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device8 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device8 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device8 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device8 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device8 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device8 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device8 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device8 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device8 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device8 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device8 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device8 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device8 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device8 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device8 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device8 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device8 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device8 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device8 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device8 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device8 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device8 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device8 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device8 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device8 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device8 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device8 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device8 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device8 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device8 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device8 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device8 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device8 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device8 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device8 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device8 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device8 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device8 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device8 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device8 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device8 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device8 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device8 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device8 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device8 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device8 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device8 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device8 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device8 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device8 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device8 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device8 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device8 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device8 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device8 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device8 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device8 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device8 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device8 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device8 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device8 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device8 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device8 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device8 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device8 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device8 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device8 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) - HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( - ID3D12Device8 * This, - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( - ID3D12Device8 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device8 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device8 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( - ID3D12Device8 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( - ID3D12Device8 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( - ID3D12Device8 * This, - _In_opt_ ID3D12Resource *pTargetedResource, - _In_opt_ ID3D12Resource *pFeedbackResource, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) - void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( - ID3D12Device8 * This, - _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - END_INTERFACE - } ID3D12Device8Vtbl; - - interface ID3D12Device8 - { - CONST_VTBL struct ID3D12Device8Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device8_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device8_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device8_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device8_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device8_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device8_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device8_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device8_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device8_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device8_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device8_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device8_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device8_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device8_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device8_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device8_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device8_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device8_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device8_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device8_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device8_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device8_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device8_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device8_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device8_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device8_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device8_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device8_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device8_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device8_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device8_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device8_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device8_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device8_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device8_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device8_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device8_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device8_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device8_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device8_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device8_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device8_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device8_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device8_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device8_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device8_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device8_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device8_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device8_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device8_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device8_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device8_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device8_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device8_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device8_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device8_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device8_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device8_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device8_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device8_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device8_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device8_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device8_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device8_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device8_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device8_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device8_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device8_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - - -#define ID3D12Device8_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ - ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) - -#define ID3D12Device8_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) - -#if !defined(_WIN32) - -#define ID3D12Device8_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device8_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - -#define ID3D12Device8_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device8_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) - -#define ID3D12Device8_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Resource1_INTERFACE_DEFINED__ -#define __ID3D12Resource1_INTERFACE_DEFINED__ - -/* interface ID3D12Resource1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Resource1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19") - ID3D12Resource1 : public ID3D12Resource - { - public: - virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Resource1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Resource1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Resource1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Resource1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Resource1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Resource1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Resource1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Resource1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Resource1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12Resource, Map) - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D12Resource1 * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pReadRange, - _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); - - DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) - void ( STDMETHODCALLTYPE *Unmap )( - ID3D12Resource1 * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pWrittenRange); - - DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) -#if !defined(_WIN32) - D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12Resource1 * This); - -#else - D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12Resource1 * This, - D3D12_RESOURCE_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) - D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( - ID3D12Resource1 * This); - - DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) - HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( - ID3D12Resource1 * This, - UINT DstSubresource, - _In_opt_ const D3D12_BOX *pDstBox, - _In_ const void *pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch); - - DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) - HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( - ID3D12Resource1 * This, - _Out_ void *pDstData, - UINT DstRowPitch, - UINT DstDepthPitch, - UINT SrcSubresource, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) - HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( - ID3D12Resource1 * This, - _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, - _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); - - DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12Resource1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - END_INTERFACE - } ID3D12Resource1Vtbl; - - interface ID3D12Resource1 - { - CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Resource1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Resource1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Resource1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \ - ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) - -#define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \ - ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) -#if !defined(_WIN32) - -#define ID3D12Resource1_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12Resource1_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#define ID3D12Resource1_GetGPUVirtualAddress(This) \ - ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) - -#define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) - -#define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ - ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) - - -#define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Resource2_INTERFACE_DEFINED__ -#define __ID3D12Resource2_INTERFACE_DEFINED__ - -/* interface ID3D12Resource2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Resource2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("BE36EC3B-EA85-4AEB-A45A-E9D76404A495") - ID3D12Resource2 : public ID3D12Resource1 - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0; -#else - virtual D3D12_RESOURCE_DESC1 *STDMETHODCALLTYPE GetDesc1( - D3D12_RESOURCE_DESC1 * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Resource2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Resource2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Resource2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Resource2 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Resource2 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Resource2 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Resource2 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Resource2 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Resource2 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12Resource, Map) - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D12Resource2 * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pReadRange, - _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); - - DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) - void ( STDMETHODCALLTYPE *Unmap )( - ID3D12Resource2 * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pWrittenRange); - - DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) -#if !defined(_WIN32) - D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12Resource2 * This); - -#else - D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12Resource2 * This, - D3D12_RESOURCE_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) - D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( - ID3D12Resource2 * This); - - DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) - HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( - ID3D12Resource2 * This, - UINT DstSubresource, - _In_opt_ const D3D12_BOX *pDstBox, - _In_ const void *pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch); - - DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) - HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( - ID3D12Resource2 * This, - _Out_ void *pDstData, - UINT DstRowPitch, - UINT DstDepthPitch, - UINT SrcSubresource, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) - HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( - ID3D12Resource2 * This, - _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, - _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); - - DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12Resource2 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - DECLSPEC_XFGVIRT(ID3D12Resource2, GetDesc1) -#if !defined(_WIN32) - D3D12_RESOURCE_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D12Resource2 * This); - -#else - D3D12_RESOURCE_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )( - ID3D12Resource2 * This, - D3D12_RESOURCE_DESC1 * RetVal); - -#endif - - END_INTERFACE - } ID3D12Resource2Vtbl; - - interface ID3D12Resource2 - { - CONST_VTBL struct ID3D12Resource2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Resource2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Resource2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Resource2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Resource2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Resource2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Resource2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Resource2_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Resource2_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12Resource2_Map(This,Subresource,pReadRange,ppData) \ - ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) - -#define ID3D12Resource2_Unmap(This,Subresource,pWrittenRange) \ - ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) -#if !defined(_WIN32) - -#define ID3D12Resource2_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12Resource2_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#define ID3D12Resource2_GetGPUVirtualAddress(This) \ - ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) - -#define ID3D12Resource2_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D12Resource2_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) - -#define ID3D12Resource2_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ - ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) - - -#define ID3D12Resource2_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#if !defined(_WIN32) - -#define ID3D12Resource2_GetDesc1(This) \ - ( (This)->lpVtbl -> GetDesc1(This) ) -#else -#define ID3D12Resource2_GetDesc1(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc1(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Heap1_INTERFACE_DEFINED__ -#define __ID3D12Heap1_INTERFACE_DEFINED__ - -/* interface ID3D12Heap1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Heap1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D") - ID3D12Heap1 : public ID3D12Heap - { - public: - virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Heap1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Heap1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Heap1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Heap1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Heap1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Heap1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Heap1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Heap1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Heap1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc) -#if !defined(_WIN32) - D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12Heap1 * This); - -#else - D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12Heap1 * This, - D3D12_HEAP_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Heap1, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12Heap1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - END_INTERFACE - } ID3D12Heap1Vtbl; - - interface ID3D12Heap1 - { - CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Heap1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Heap1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Heap1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12Heap1_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12Heap1_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - - -#define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D") - ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2 - { - public: - virtual void STDMETHODCALLTYPE SetProtectedResourceSession( - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList3Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList3 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList3 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList3 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList3 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList3 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList3 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList3 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList3 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList3 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList3 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList3 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList3 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList3 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList3 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList3 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList3 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList3 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList3 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList3 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList3 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList3 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList3 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList3 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList3 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList3 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList3 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12GraphicsCommandList3 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - END_INTERFACE - } ID3D12GraphicsCommandList3Vtbl; - - interface ID3D12GraphicsCommandList3 - { - CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList3_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList3_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList3_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList3_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0051 */ -/* [local] */ - -typedef -enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE - { - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0, - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) , - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) , - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 ) , - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS + 1 ) , - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) , - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 ) - } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE; - -typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS - { - D3D12_CLEAR_VALUE ClearValue; - } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS - { - UINT AdditionalWidth; - UINT AdditionalHeight; - } D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS - { - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type; - union - { - D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear; - D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; - } ; - } D3D12_RENDER_PASS_BEGINNING_ACCESS; - -typedef -enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE - { - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0, - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) , - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) , - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 ) , - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS + 1 ) , - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) , - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 ) - } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE; - -typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS - { - UINT SrcSubresource; - UINT DstSubresource; - UINT DstX; - UINT DstY; - D3D12_RECT SrcRect; - } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS - { - ID3D12Resource *pSrcResource; - ID3D12Resource *pDstResource; - UINT SubresourceCount; - _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters; - DXGI_FORMAT Format; - D3D12_RESOLVE_MODE ResolveMode; - BOOL PreserveResolveSource; - } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS - { - UINT AdditionalWidth; - UINT AdditionalHeight; - } D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_ENDING_ACCESS - { - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type; - union - { - D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve; - D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; - } ; - } D3D12_RENDER_PASS_ENDING_ACCESS; - -typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC - { - D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; - D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess; - D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess; - } D3D12_RENDER_PASS_RENDER_TARGET_DESC; - -typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC - { - D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; - D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess; - D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess; - D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess; - D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess; - } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC; - -typedef -enum D3D12_RENDER_PASS_FLAGS - { - D3D12_RENDER_PASS_FLAG_NONE = 0, - D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1, - D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2, - D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4, - D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8, - D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10 - } D3D12_RENDER_PASS_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS ) - - -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__ - -/* interface ID3D12MetaCommand */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12MetaCommand; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570") - ID3D12MetaCommand : public ID3D12Pageable - { - public: - virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize( - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _In_ UINT ParameterIndex) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12MetaCommandVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12MetaCommand * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12MetaCommand * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12MetaCommand * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12MetaCommand * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12MetaCommand * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12MetaCommand * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12MetaCommand * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12MetaCommand * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12MetaCommand, GetRequiredParameterResourceSize) - UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )( - ID3D12MetaCommand * This, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _In_ UINT ParameterIndex); - - END_INTERFACE - } ID3D12MetaCommandVtbl; - - interface ID3D12MetaCommand - { - CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12MetaCommand_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12MetaCommand_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12MetaCommand_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \ - ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0052 */ -/* [local] */ - -typedef struct D3D12_DISPATCH_RAYS_DESC - { - D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable; - UINT Width; - UINT Height; - UINT Depth; - } D3D12_DISPATCH_RAYS_DESC; - -typedef -enum D3D12_SET_WORK_GRAPH_FLAGS - { - D3D12_SET_WORK_GRAPH_FLAG_NONE = 0, - D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1 - } D3D12_SET_WORK_GRAPH_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS ) -typedef struct D3D12_SET_WORK_GRAPH_DESC - { - D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; - D3D12_SET_WORK_GRAPH_FLAGS Flags; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable; - } D3D12_SET_WORK_GRAPH_DESC; - -typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC - { - D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; - } D3D12_SET_RAYTRACING_PIPELINE_DESC; - -typedef struct D3D12_SET_GENERIC_PIPELINE_DESC - { - D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; - } D3D12_SET_GENERIC_PIPELINE_DESC; - -typedef -enum D3D12_PROGRAM_TYPE - { - D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1, - D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4, - D3D12_PROGRAM_TYPE_WORK_GRAPH = 5 - } D3D12_PROGRAM_TYPE; - -typedef struct D3D12_SET_PROGRAM_DESC - { - D3D12_PROGRAM_TYPE Type; - union - { - D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline; - D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline; - D3D12_SET_WORK_GRAPH_DESC WorkGraph; - } ; - } D3D12_SET_PROGRAM_DESC; - -typedef -enum D3D12_DISPATCH_MODE - { - D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0, - D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1, - D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2, - D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3 - } D3D12_DISPATCH_MODE; - -typedef struct D3D12_NODE_CPU_INPUT - { - UINT EntrypointIndex; - UINT NumRecords; - const void *pRecords; - UINT64 RecordStrideInBytes; - } D3D12_NODE_CPU_INPUT; - -typedef struct D3D12_NODE_GPU_INPUT - { - UINT EntrypointIndex; - UINT NumRecords; - D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records; - } D3D12_NODE_GPU_INPUT; - -typedef struct D3D12_MULTI_NODE_CPU_INPUT - { - UINT NumNodeInputs; - const D3D12_NODE_CPU_INPUT *pNodeInputs; - UINT64 NodeInputStrideInBytes; - } D3D12_MULTI_NODE_CPU_INPUT; - -typedef struct D3D12_MULTI_NODE_GPU_INPUT - { - UINT NumNodeInputs; - D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs; - } D3D12_MULTI_NODE_GPU_INPUT; - -typedef struct D3D12_DISPATCH_GRAPH_DESC - { - D3D12_DISPATCH_MODE Mode; - union - { - D3D12_NODE_CPU_INPUT NodeCPUInput; - D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput; - D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput; - D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput; - } ; - } D3D12_DISPATCH_GRAPH_DESC; - - - -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__ - -/* interface ID3D12GraphicsCommandList4 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874") - ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3 - { - public: - virtual void STDMETHODCALLTYPE BeginRenderPass( - _In_ UINT NumRenderTargets, - _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, - _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags) = 0; - - virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0; - - virtual void STDMETHODCALLTYPE InitializeMetaCommand( - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, - _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0; - - virtual void STDMETHODCALLTYPE ExecuteMetaCommand( - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, - _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0; - - virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure( - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, - _In_ UINT NumPostbuildInfoDescs, - _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0; - - virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo( - _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, - _In_ UINT NumSourceAccelerationStructures, - _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0; - - virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure( - _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0; - - virtual void STDMETHODCALLTYPE SetPipelineState1( - _In_ ID3D12StateObject *pStateObject) = 0; - - virtual void STDMETHODCALLTYPE DispatchRays( - _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList4Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList4 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList4 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList4 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList4 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList4 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList4 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList4 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList4 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList4 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList4 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList4 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList4 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList4 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList4 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList4 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList4 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList4 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList4 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList4 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList4 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList4 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList4 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList4 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList4 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList4 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList4 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList4 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList4 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12GraphicsCommandList4 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) - void ( STDMETHODCALLTYPE *BeginRenderPass )( - ID3D12GraphicsCommandList4 * This, - _In_ UINT NumRenderTargets, - _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, - _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) - void ( STDMETHODCALLTYPE *EndRenderPass )( - ID3D12GraphicsCommandList4 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) - void ( STDMETHODCALLTYPE *InitializeMetaCommand )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, - _In_ SIZE_T InitializationParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) - void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, - _In_ SIZE_T ExecutionParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList4 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, - _In_ UINT NumPostbuildInfoDescs, - _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) - void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( - ID3D12GraphicsCommandList4 * This, - _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, - _In_ UINT NumSourceAccelerationStructures, - _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList4 * This, - _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) - void ( STDMETHODCALLTYPE *SetPipelineState1 )( - ID3D12GraphicsCommandList4 * This, - _In_ ID3D12StateObject *pStateObject); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) - void ( STDMETHODCALLTYPE *DispatchRays )( - ID3D12GraphicsCommandList4 * This, - _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); - - END_INTERFACE - } ID3D12GraphicsCommandList4Vtbl; - - interface ID3D12GraphicsCommandList4 - { - CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList4_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList4_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList4_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList4_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ - ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) - -#define ID3D12GraphicsCommandList4_EndRenderPass(This) \ - ( (This)->lpVtbl -> EndRenderPass(This) ) - -#define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ - ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) - -#define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ - ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) - -#define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ - ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) - -#define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \ - ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) - -#define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \ - ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0053 */ -/* [local] */ - -typedef -enum D3D12_SHADER_CACHE_MODE - { - D3D12_SHADER_CACHE_MODE_MEMORY = 0, - D3D12_SHADER_CACHE_MODE_DISK = ( D3D12_SHADER_CACHE_MODE_MEMORY + 1 ) - } D3D12_SHADER_CACHE_MODE; - -typedef -enum D3D12_SHADER_CACHE_FLAGS - { - D3D12_SHADER_CACHE_FLAG_NONE = 0, - D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1, - D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2 - } D3D12_SHADER_CACHE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS ) -typedef struct D3D12_SHADER_CACHE_SESSION_DESC - { - GUID Identifier; - D3D12_SHADER_CACHE_MODE Mode; - D3D12_SHADER_CACHE_FLAGS Flags; - UINT MaximumInMemoryCacheSizeBytes; - UINT MaximumInMemoryCacheEntries; - UINT MaximumValueFileSizeBytes; - UINT64 Version; - } D3D12_SHADER_CACHE_SESSION_DESC; - -typedef -enum D3D12_BARRIER_LAYOUT - { - D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff, - D3D12_BARRIER_LAYOUT_COMMON = 0, - D3D12_BARRIER_LAYOUT_PRESENT = 0, - D3D12_BARRIER_LAYOUT_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_PRESENT + 1 ) , - D3D12_BARRIER_LAYOUT_RENDER_TARGET = ( D3D12_BARRIER_LAYOUT_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_RENDER_TARGET + 1 ) , - D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = ( D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ + 1 ) , - D3D12_BARRIER_LAYOUT_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = ( D3D12_BARRIER_LAYOUT_COPY_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_RESOLVE_DEST = ( D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = ( D3D12_BARRIER_LAYOUT_RESOLVE_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = ( D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST + 1 ) - } D3D12_BARRIER_LAYOUT; - -typedef -enum D3D12_BARRIER_SYNC - { - D3D12_BARRIER_SYNC_NONE = 0, - D3D12_BARRIER_SYNC_ALL = 0x1, - D3D12_BARRIER_SYNC_DRAW = 0x2, - D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4, - D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8, - D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10, - D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20, - D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40, - D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80, - D3D12_BARRIER_SYNC_RAYTRACING = 0x100, - D3D12_BARRIER_SYNC_COPY = 0x200, - D3D12_BARRIER_SYNC_RESOLVE = 0x400, - D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800, - D3D12_BARRIER_SYNC_PREDICATION = 0x800, - D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000, - D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000, - D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000, - D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000, - D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000, - D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000, - D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000, - D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000, - D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000, - D3D12_BARRIER_SYNC_SPLIT = 0x80000000 - } D3D12_BARRIER_SYNC; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC ) -typedef -enum D3D12_BARRIER_ACCESS - { - D3D12_BARRIER_ACCESS_COMMON = 0, - D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1, - D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2, - D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4, - D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8, - D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10, - D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20, - D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40, - D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80, - D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100, - D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200, - D3D12_BARRIER_ACCESS_PREDICATION = 0x200, - D3D12_BARRIER_ACCESS_COPY_DEST = 0x400, - D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800, - D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000, - D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000, - D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000, - D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000, - D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000, - D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000, - D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000, - D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000, - D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000, - D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000, - D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000, - D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000 - } D3D12_BARRIER_ACCESS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS ) -typedef -enum D3D12_BARRIER_TYPE - { - D3D12_BARRIER_TYPE_GLOBAL = 0, - D3D12_BARRIER_TYPE_TEXTURE = ( D3D12_BARRIER_TYPE_GLOBAL + 1 ) , - D3D12_BARRIER_TYPE_BUFFER = ( D3D12_BARRIER_TYPE_TEXTURE + 1 ) - } D3D12_BARRIER_TYPE; - -typedef -enum D3D12_TEXTURE_BARRIER_FLAGS - { - D3D12_TEXTURE_BARRIER_FLAG_NONE = 0, - D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1 - } D3D12_TEXTURE_BARRIER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS ) -typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE - { - UINT IndexOrFirstMipLevel; - UINT NumMipLevels; - UINT FirstArraySlice; - UINT NumArraySlices; - UINT FirstPlane; - UINT NumPlanes; - } D3D12_BARRIER_SUBRESOURCE_RANGE; - -typedef struct D3D12_GLOBAL_BARRIER - { - D3D12_BARRIER_SYNC SyncBefore; - D3D12_BARRIER_SYNC SyncAfter; - D3D12_BARRIER_ACCESS AccessBefore; - D3D12_BARRIER_ACCESS AccessAfter; - } D3D12_GLOBAL_BARRIER; - -typedef struct D3D12_TEXTURE_BARRIER - { - D3D12_BARRIER_SYNC SyncBefore; - D3D12_BARRIER_SYNC SyncAfter; - D3D12_BARRIER_ACCESS AccessBefore; - D3D12_BARRIER_ACCESS AccessAfter; - D3D12_BARRIER_LAYOUT LayoutBefore; - D3D12_BARRIER_LAYOUT LayoutAfter; - _In_ ID3D12Resource *pResource; - D3D12_BARRIER_SUBRESOURCE_RANGE Subresources; - D3D12_TEXTURE_BARRIER_FLAGS Flags; - } D3D12_TEXTURE_BARRIER; - -typedef struct D3D12_BUFFER_BARRIER - { - D3D12_BARRIER_SYNC SyncBefore; - D3D12_BARRIER_SYNC SyncAfter; - D3D12_BARRIER_ACCESS AccessBefore; - D3D12_BARRIER_ACCESS AccessAfter; - _In_ ID3D12Resource *pResource; - UINT64 Offset; - UINT64 Size; - } D3D12_BUFFER_BARRIER; - -typedef struct D3D12_BARRIER_GROUP - { - D3D12_BARRIER_TYPE Type; - UINT32 NumBarriers; - union - { - _In_reads_(NumBarriers) const D3D12_GLOBAL_BARRIER *pGlobalBarriers; - _In_reads_(NumBarriers) const D3D12_TEXTURE_BARRIER *pTextureBarriers; - _In_reads_(NumBarriers) const D3D12_BUFFER_BARRIER *pBufferBarriers; - } ; - } D3D12_BARRIER_GROUP; - - - -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__ - -/* interface ID3D12ShaderCacheSession */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12ShaderCacheSession; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8") - ID3D12ShaderCacheSession : public ID3D12DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE FindValue( - /* [annotation][in] */ - _In_reads_bytes_(KeySize) const void *pKey, - UINT KeySize, - /* [annotation][out] */ - _Out_writes_bytes_(*pValueSize) void *pValue, - _Inout_ UINT *pValueSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE StoreValue( - /* [annotation][in] */ - _In_reads_bytes_(KeySize) const void *pKey, - UINT KeySize, - /* [annotation][in] */ - _In_reads_bytes_(ValueSize) const void *pValue, - UINT ValueSize) = 0; - - virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( void) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_SHADER_CACHE_SESSION_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_SHADER_CACHE_SESSION_DESC * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ShaderCacheSessionVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12ShaderCacheSession * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12ShaderCacheSession * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12ShaderCacheSession * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12ShaderCacheSession * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12ShaderCacheSession * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12ShaderCacheSession * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12ShaderCacheSession * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12ShaderCacheSession * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, FindValue) - HRESULT ( STDMETHODCALLTYPE *FindValue )( - ID3D12ShaderCacheSession * This, - /* [annotation][in] */ - _In_reads_bytes_(KeySize) const void *pKey, - UINT KeySize, - /* [annotation][out] */ - _Out_writes_bytes_(*pValueSize) void *pValue, - _Inout_ UINT *pValueSize); - - DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, StoreValue) - HRESULT ( STDMETHODCALLTYPE *StoreValue )( - ID3D12ShaderCacheSession * This, - /* [annotation][in] */ - _In_reads_bytes_(KeySize) const void *pKey, - UINT KeySize, - /* [annotation][in] */ - _In_reads_bytes_(ValueSize) const void *pValue, - UINT ValueSize); - - DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, SetDeleteOnDestroy) - void ( STDMETHODCALLTYPE *SetDeleteOnDestroy )( - ID3D12ShaderCacheSession * This); - - DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, GetDesc) -#if !defined(_WIN32) - D3D12_SHADER_CACHE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12ShaderCacheSession * This); - -#else - D3D12_SHADER_CACHE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12ShaderCacheSession * This, - D3D12_SHADER_CACHE_SESSION_DESC * RetVal); - -#endif - - END_INTERFACE - } ID3D12ShaderCacheSessionVtbl; - - interface ID3D12ShaderCacheSession - { - CONST_VTBL struct ID3D12ShaderCacheSessionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12ShaderCacheSession_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12ShaderCacheSession_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12ShaderCacheSession_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12ShaderCacheSession_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12ShaderCacheSession_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12ShaderCacheSession_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12ShaderCacheSession_FindValue(This,pKey,KeySize,pValue,pValueSize) \ - ( (This)->lpVtbl -> FindValue(This,pKey,KeySize,pValue,pValueSize) ) - -#define ID3D12ShaderCacheSession_StoreValue(This,pKey,KeySize,pValue,ValueSize) \ - ( (This)->lpVtbl -> StoreValue(This,pKey,KeySize,pValue,ValueSize) ) - -#define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) \ - ( (This)->lpVtbl -> SetDeleteOnDestroy(This) ) -#if !defined(_WIN32) - -#define ID3D12ShaderCacheSession_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12ShaderCacheSession_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0054 */ -/* [local] */ - -typedef -enum D3D12_SHADER_CACHE_KIND_FLAGS - { - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1, - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2, - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4, - D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8 - } D3D12_SHADER_CACHE_KIND_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS ) -typedef -enum D3D12_SHADER_CACHE_CONTROL_FLAGS - { - D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1, - D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2, - D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4 - } D3D12_SHADER_CACHE_CONTROL_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS ) - - -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__ - -/* interface ID3D12Device9 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device9; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c") - ID3D12Device9 : public ID3D12Device8 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession( - _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvSession) = 0; - - virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl( - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1( - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID CreatorID, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device9Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device9 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device9 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device9 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device9 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device9 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device9 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device9 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device9 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device9 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device9 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device9 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device9 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device9 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device9 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device9 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device9 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device9 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device9 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device9 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device9 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device9 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device9 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device9 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device9 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device9 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device9 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device9 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device9 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device9 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device9 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device9 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device9 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device9 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device9 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device9 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device9 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device9 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device9 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device9 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device9 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device9 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device9 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device9 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device9 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device9 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device9 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device9 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device9 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device9 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device9 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device9 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device9 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device9 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device9 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device9 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device9 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device9 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device9 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device9 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device9 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device9 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device9 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device9 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device9 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device9 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device9 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device9 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device9 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device9 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device9 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) - HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( - ID3D12Device9 * This, - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( - ID3D12Device9 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device9 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device9 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( - ID3D12Device9 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( - ID3D12Device9 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( - ID3D12Device9 * This, - _In_opt_ ID3D12Resource *pTargetedResource, - _In_opt_ ID3D12Resource *pFeedbackResource, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) - void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( - ID3D12Device9 * This, - _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) - HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( - ID3D12Device9 * This, - _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvSession); - - DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) - HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( - ID3D12Device9 * This, - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( - ID3D12Device9 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID CreatorID, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - END_INTERFACE - } ID3D12Device9Vtbl; - - interface ID3D12Device9 - { - CONST_VTBL struct ID3D12Device9Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device9_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device9_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device9_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device9_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device9_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device9_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device9_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device9_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device9_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device9_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device9_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device9_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device9_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device9_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device9_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device9_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device9_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device9_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device9_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device9_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device9_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device9_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device9_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device9_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device9_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device9_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device9_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device9_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device9_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device9_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device9_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device9_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device9_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device9_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device9_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device9_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device9_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device9_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device9_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device9_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device9_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device9_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device9_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device9_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device9_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device9_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device9_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device9_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device9_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device9_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device9_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device9_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device9_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device9_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device9_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device9_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device9_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device9_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device9_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device9_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device9_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device9_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device9_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device9_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device9_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device9_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device9_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device9_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - - -#define ID3D12Device9_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ - ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) - -#define ID3D12Device9_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) - -#if !defined(_WIN32) - -#define ID3D12Device9_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device9_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - -#define ID3D12Device9_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device9_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) - -#define ID3D12Device9_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - - -#define ID3D12Device9_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ - ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) - -#define ID3D12Device9_ShaderCacheControl(This,Kinds,Control) \ - ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) - -#define ID3D12Device9_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device9_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device10_INTERFACE_DEFINED__ -#define __ID3D12Device10_INTERFACE_DEFINED__ - -/* interface ID3D12Device10 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device10; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031") - ID3D12Device10 : public ID3D12Device9 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3( - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2( - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2( - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device10Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device10 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device10 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device10 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device10 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device10 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device10 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device10 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device10 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device10 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device10 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device10 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device10 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device10 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device10 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device10 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device10 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device10 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device10 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device10 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device10 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device10 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device10 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device10 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device10 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device10 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device10 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device10 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device10 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device10 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device10 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device10 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device10 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device10 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device10 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device10 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device10 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device10 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device10 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device10 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device10 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device10 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device10 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device10 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device10 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device10 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device10 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device10 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device10 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device10 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device10 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device10 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device10 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device10 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device10 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device10 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device10 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device10 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device10 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device10 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device10 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device10 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device10 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device10 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device10 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device10 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device10 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device10 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device10 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device10 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device10 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) - HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( - ID3D12Device10 * This, - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( - ID3D12Device10 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device10 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device10 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( - ID3D12Device10 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( - ID3D12Device10 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( - ID3D12Device10 * This, - _In_opt_ ID3D12Resource *pTargetedResource, - _In_opt_ ID3D12Resource *pFeedbackResource, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) - void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( - ID3D12Device10 * This, - _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) - HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( - ID3D12Device10 * This, - _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvSession); - - DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) - HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( - ID3D12Device10 * This, - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( - ID3D12Device10 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID CreatorID, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( - ID3D12Device10 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( - ID3D12Device10 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( - ID3D12Device10 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - END_INTERFACE - } ID3D12Device10Vtbl; - - interface ID3D12Device10 - { - CONST_VTBL struct ID3D12Device10Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device10_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device10_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device10_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device10_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device10_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device10_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device10_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device10_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device10_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device10_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device10_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device10_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device10_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device10_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device10_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device10_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device10_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device10_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device10_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device10_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device10_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device10_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device10_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device10_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device10_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device10_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device10_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device10_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device10_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device10_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device10_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device10_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device10_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device10_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device10_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device10_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device10_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device10_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device10_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device10_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device10_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device10_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device10_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device10_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device10_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device10_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device10_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device10_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device10_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device10_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device10_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device10_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device10_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device10_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device10_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device10_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device10_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device10_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device10_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device10_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device10_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device10_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device10_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device10_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device10_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device10_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device10_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device10_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - - -#define ID3D12Device10_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ - ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) - -#define ID3D12Device10_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) - -#if !defined(_WIN32) - -#define ID3D12Device10_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device10_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - -#define ID3D12Device10_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device10_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) - -#define ID3D12Device10_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - - -#define ID3D12Device10_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ - ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) - -#define ID3D12Device10_ShaderCacheControl(This,Kinds,Control) \ - ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) - -#define ID3D12Device10_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) - - -#define ID3D12Device10_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) - -#define ID3D12Device10_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - -#define ID3D12Device10_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device10_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device11_INTERFACE_DEFINED__ -#define __ID3D12Device11_INTERFACE_DEFINED__ - -/* interface ID3D12Device11 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device11; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5405c344-d457-444e-b4dd-2366e45aee39") - ID3D12Device11 : public ID3D12Device10 - { - public: - virtual void STDMETHODCALLTYPE CreateSampler2( - _In_ const D3D12_SAMPLER_DESC2 *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device11Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device11 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device11 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device11 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device11 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device11 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device11 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device11 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device11 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device11 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device11 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device11 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device11 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device11 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device11 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device11 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device11 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device11 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device11 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device11 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device11 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device11 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device11 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device11 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device11 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device11 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device11 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device11 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device11 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device11 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device11 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device11 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device11 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device11 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device11 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device11 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device11 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device11 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device11 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device11 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device11 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device11 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device11 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device11 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device11 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device11 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device11 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device11 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device11 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device11 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device11 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device11 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device11 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device11 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device11 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device11 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device11 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device11 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device11 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device11 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device11 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device11 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device11 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device11 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device11 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device11 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device11 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device11 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device11 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device11 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device11 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) - HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( - ID3D12Device11 * This, - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( - ID3D12Device11 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device11 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device11 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( - ID3D12Device11 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( - ID3D12Device11 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( - ID3D12Device11 * This, - _In_opt_ ID3D12Resource *pTargetedResource, - _In_opt_ ID3D12Resource *pFeedbackResource, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) - void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( - ID3D12Device11 * This, - _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) - HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( - ID3D12Device11 * This, - _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvSession); - - DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) - HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( - ID3D12Device11 * This, - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( - ID3D12Device11 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID CreatorID, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( - ID3D12Device11 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( - ID3D12Device11 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( - ID3D12Device11 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) - void ( STDMETHODCALLTYPE *CreateSampler2 )( - ID3D12Device11 * This, - _In_ const D3D12_SAMPLER_DESC2 *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - END_INTERFACE - } ID3D12Device11Vtbl; - - interface ID3D12Device11 - { - CONST_VTBL struct ID3D12Device11Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device11_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device11_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device11_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device11_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device11_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device11_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device11_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device11_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device11_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device11_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device11_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device11_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device11_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device11_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device11_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device11_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device11_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device11_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device11_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device11_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device11_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device11_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device11_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device11_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device11_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device11_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device11_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device11_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device11_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device11_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device11_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device11_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device11_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device11_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device11_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device11_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device11_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device11_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device11_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device11_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device11_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device11_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device11_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device11_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device11_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device11_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device11_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device11_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device11_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device11_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device11_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device11_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device11_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device11_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device11_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device11_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device11_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device11_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device11_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device11_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device11_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device11_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device11_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device11_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device11_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device11_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device11_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device11_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device11_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device11_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - - -#define ID3D12Device11_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ - ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) - -#define ID3D12Device11_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) - -#if !defined(_WIN32) - -#define ID3D12Device11_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device11_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - -#define ID3D12Device11_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device11_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device11_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) - -#define ID3D12Device11_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - - -#define ID3D12Device11_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ - ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) - -#define ID3D12Device11_ShaderCacheControl(This,Kinds,Control) \ - ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) - -#define ID3D12Device11_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) - - -#define ID3D12Device11_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) - -#define ID3D12Device11_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - -#define ID3D12Device11_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - - -#define ID3D12Device11_CreateSampler2(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device11_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device12_INTERFACE_DEFINED__ -#define __ID3D12Device12_INTERFACE_DEFINED__ - -/* interface ID3D12Device12 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device12; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5af5c532-4c91-4cd0-b541-15a405395fc5") - ID3D12Device12 : public ID3D12Device11 - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo3( - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, - _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; -#else - virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo3( - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, - _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device12Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device12 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device12 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device12 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device12 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device12 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device12 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device12 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device12 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device12 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device12 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device12 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device12 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device12 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device12 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device12 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device12 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device12 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device12 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device12 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device12 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device12 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device12 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device12 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device12 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device12 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device12 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device12 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device12 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device12 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device12 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device12 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device12 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device12 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device12 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device12 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device12 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device12 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device12 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device12 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device12 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device12 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device12 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device12 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device12 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device12 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device12 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device12 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device12 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device12 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device12 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device12 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device12 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device12 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device12 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device12 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device12 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device12 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device12 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device12 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device12 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device12 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device12 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device12 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device12 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device12 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device12 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device12 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device12 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device12 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device12 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) - HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( - ID3D12Device12 * This, - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( - ID3D12Device12 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device12 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device12 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( - ID3D12Device12 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( - ID3D12Device12 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( - ID3D12Device12 * This, - _In_opt_ ID3D12Resource *pTargetedResource, - _In_opt_ ID3D12Resource *pFeedbackResource, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) - void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( - ID3D12Device12 * This, - _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) - HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( - ID3D12Device12 * This, - _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvSession); - - DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) - HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( - ID3D12Device12 * This, - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( - ID3D12Device12 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID CreatorID, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( - ID3D12Device12 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( - ID3D12Device12 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( - ID3D12Device12 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) - void ( STDMETHODCALLTYPE *CreateSampler2 )( - ID3D12Device12 * This, - _In_ const D3D12_SAMPLER_DESC2 *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( - ID3D12Device12 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, - _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( - ID3D12Device12 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, - _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - END_INTERFACE - } ID3D12Device12Vtbl; - - interface ID3D12Device12 - { - CONST_VTBL struct ID3D12Device12Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device12_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device12_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device12_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device12_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device12_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device12_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device12_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device12_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device12_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device12_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device12_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device12_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device12_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device12_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device12_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device12_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device12_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device12_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device12_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device12_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device12_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device12_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device12_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device12_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device12_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device12_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device12_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device12_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device12_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device12_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device12_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device12_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device12_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device12_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device12_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device12_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device12_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device12_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device12_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device12_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device12_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device12_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device12_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device12_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device12_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device12_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device12_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device12_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device12_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device12_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device12_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device12_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device12_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device12_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device12_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device12_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device12_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device12_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device12_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device12_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device12_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device12_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device12_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device12_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device12_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device12_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device12_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device12_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device12_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device12_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - - -#define ID3D12Device12_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ - ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) - -#define ID3D12Device12_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) - -#if !defined(_WIN32) - -#define ID3D12Device12_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device12_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - -#define ID3D12Device12_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device12_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device12_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) - -#define ID3D12Device12_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - - -#define ID3D12Device12_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ - ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) - -#define ID3D12Device12_ShaderCacheControl(This,Kinds,Control) \ - ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) - -#define ID3D12Device12_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) - - -#define ID3D12Device12_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) - -#define ID3D12Device12_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - -#define ID3D12Device12_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - - -#define ID3D12Device12_CreateSampler2(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) - -#if !defined(_WIN32) - -#define ID3D12Device12_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) -#else -#define ID3D12Device12_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device12_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device13_INTERFACE_DEFINED__ -#define __ID3D12Device13_INTERFACE_DEFINED__ - -/* interface ID3D12Device13 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device13; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("14eecffc-4df8-40f7-a118-5c816f45695e") - ID3D12Device13 : public ID3D12Device12 - { - public: - virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress1( - _In_ const void *pAddress, - SIZE_T size, - REFIID riid, - _COM_Outptr_ void **ppvHeap) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device13Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device13 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device13 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device13 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device13 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device13 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device13 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device13 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device13 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device13 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device13 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device13 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device13 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device13 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device13 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device13 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device13 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device13 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device13 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device13 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device13 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device13 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device13 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device13 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device13 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device13 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device13 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device13 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device13 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device13 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device13 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device13 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device13 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device13 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device13 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device13 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device13 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device13 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device13 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device13 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device13 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device13 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device13 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device13 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device13 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device13 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device13 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device13 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device13 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device13 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device13 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device13 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device13 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device13 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device13 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device13 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device13 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device13 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device13 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device13 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device13 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device13 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device13 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device13 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device13 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device13 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device13 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device13 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device13 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device13 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device13 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) - HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( - ID3D12Device13 * This, - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( - ID3D12Device13 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device13 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device13 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( - ID3D12Device13 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( - ID3D12Device13 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( - ID3D12Device13 * This, - _In_opt_ ID3D12Resource *pTargetedResource, - _In_opt_ ID3D12Resource *pFeedbackResource, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) - void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( - ID3D12Device13 * This, - _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) - HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( - ID3D12Device13 * This, - _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvSession); - - DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) - HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( - ID3D12Device13 * This, - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( - ID3D12Device13 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID CreatorID, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( - ID3D12Device13 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( - ID3D12Device13 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( - ID3D12Device13 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) - void ( STDMETHODCALLTYPE *CreateSampler2 )( - ID3D12Device13 * This, - _In_ const D3D12_SAMPLER_DESC2 *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( - ID3D12Device13 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, - _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( - ID3D12Device13 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, - _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )( - ID3D12Device13 * This, - _In_ const void *pAddress, - SIZE_T size, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - END_INTERFACE - } ID3D12Device13Vtbl; - - interface ID3D12Device13 - { - CONST_VTBL struct ID3D12Device13Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device13_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device13_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device13_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device13_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device13_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device13_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device13_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device13_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device13_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device13_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device13_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device13_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device13_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device13_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device13_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device13_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device13_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device13_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device13_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device13_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device13_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device13_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device13_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device13_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device13_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device13_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device13_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device13_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device13_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device13_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device13_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device13_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device13_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device13_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device13_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device13_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device13_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device13_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device13_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device13_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device13_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device13_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device13_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device13_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device13_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device13_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device13_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device13_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device13_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device13_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device13_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device13_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device13_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device13_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device13_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device13_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device13_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device13_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device13_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device13_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device13_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device13_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device13_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device13_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device13_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device13_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device13_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device13_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device13_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device13_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - - -#define ID3D12Device13_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ - ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) - -#define ID3D12Device13_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) - -#if !defined(_WIN32) - -#define ID3D12Device13_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device13_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - -#define ID3D12Device13_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device13_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device13_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) - -#define ID3D12Device13_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - - -#define ID3D12Device13_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ - ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) - -#define ID3D12Device13_ShaderCacheControl(This,Kinds,Control) \ - ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) - -#define ID3D12Device13_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) - - -#define ID3D12Device13_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) - -#define ID3D12Device13_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - -#define ID3D12Device13_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - - -#define ID3D12Device13_CreateSampler2(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) - -#if !defined(_WIN32) - -#define ID3D12Device13_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) -#else -#define ID3D12Device13_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device13_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device13_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device14_INTERFACE_DEFINED__ -#define __ID3D12Device14_INTERFACE_DEFINED__ - -/* interface ID3D12Device14 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device14; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5f6e592d-d895-44c2-8e4a-88ad4926d323") - ID3D12Device14 : public ID3D12Device13 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateRootSignatureFromSubobjectInLibrary( - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pLibraryBlob, - _In_ SIZE_T blobLengthInBytes, - _In_opt_ LPCWSTR subobjectName, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Device14Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device14 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device14 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device14 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device14 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device14 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device14 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device14 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device14 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device14 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device14 * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device14 * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device14 * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device14 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12Device14 * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device14 * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device14 * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device14 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device14 * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device14 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device14 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) - void ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D12Device14 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device14 * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device14 * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device14 * This, - _In_ UINT NumDestDescriptorRanges, - _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, - _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, - _In_ UINT NumSrcDescriptorRanges, - _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, - _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) - void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( - ID3D12Device14 * This, - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device14 * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( - ID3D12Device14 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) -#if !defined(_WIN32) - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device14 * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#else - D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device14 * This, - D3D12_HEAP_PROPERTIES * RetVal, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device14 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device14 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device14 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( - ID3D12Device14 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - ID3D12Device14 * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device14 * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device14 * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device14 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, Evict) - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device14 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device14 * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device14 * This); - - DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device14 * This, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) - HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( - ID3D12Device14 * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device14 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device14 * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device14 * This, - _In_ ID3D12Resource *pTiledResource, - _Out_opt_ UINT *pNumTilesForEntireResource, - _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, - _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, - _Inout_opt_ UINT *pNumSubresourceTilings, - _In_ UINT FirstSubresourceTilingToGet, - _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); - - DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) -#if !defined(_WIN32) - LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device14 * This); - -#else - LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( - ID3D12Device14 * This, - LUID * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( - ID3D12Device14 * This, - _In_reads_(BlobLength) const void *pLibraryBlob, - SIZE_T BlobLength, - REFIID riid, - _COM_Outptr_ void **ppPipelineLibrary); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) - HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( - ID3D12Device14 * This, - _In_reads_(NumFences) ID3D12Fence *const *ppFences, - _In_reads_(NumFences) const UINT64 *pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent); - - DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) - HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( - ID3D12Device14 * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); - - DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) - HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( - ID3D12Device14 * This, - const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( - ID3D12Device14 * This, - _In_ const void *pAddress, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( - ID3D12Device14 * This, - _In_ HANDLE hFileMapping, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) - HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( - ID3D12Device14 * This, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, - _In_ ID3D12Fence *pFenceToSignal, - UINT64 FenceValueToSignal); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( - ID3D12Device14 * This, - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ D3D12_COMMAND_LIST_FLAGS flags, - REFIID riid, - _COM_Outptr_ void **ppCommandList); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( - ID3D12Device14 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( - ID3D12Device14 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( - ID3D12Device14 * This, - _In_ const D3D12_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( - ID3D12Device14 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device14 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( - ID3D12Device14 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) - HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( - ID3D12Device14 * This, - _In_ ID3D12LifetimeOwner *pOwner, - REFIID riid, - _COM_Outptr_ void **ppvTracker); - - DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) - void ( STDMETHODCALLTYPE *RemoveDevice )( - ID3D12Device14 * This); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( - ID3D12Device14 * This, - _Inout_ UINT *pNumMetaCommands, - _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( - ID3D12Device14 * This, - _In_ REFGUID CommandId, - _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, - _Out_opt_ UINT *pTotalStructureSizeInBytes, - _Inout_ UINT *pParameterCount, - _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) - HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( - ID3D12Device14 * This, - _In_ REFGUID CommandId, - _In_ UINT NodeMask, - _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, - _In_ SIZE_T CreationParametersDataSizeInBytes, - REFIID riid, - _COM_Outptr_ void **ppMetaCommand); - - DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) - HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( - ID3D12Device14 * This, - const D3D12_STATE_OBJECT_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) - void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( - ID3D12Device14 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, - _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); - - DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( - ID3D12Device14 * This, - _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); - - DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) - HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( - ID3D12Device14 * This, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - _In_opt_ HANDLE hEventToSignalUponCompletion, - _Out_opt_ BOOL *pbFurtherMeasurementsDesired); - - DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) - HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( - ID3D12Device14 * This, - const D3D12_STATE_OBJECT_DESC *pAddition, - ID3D12StateObject *pStateObjectToGrowFrom, - REFIID riid, - _COM_Outptr_ void **ppNewStateObject); - - DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) - HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( - ID3D12Device14 * This, - _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppSession); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device14 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( - ID3D12Device14 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( - ID3D12Device14 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( - ID3D12Device14 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) - void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( - ID3D12Device14 * This, - _In_opt_ ID3D12Resource *pTargetedResource, - _In_opt_ ID3D12Resource *pFeedbackResource, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) - void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( - ID3D12Device14 * This, - _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, - _Out_writes_opt_(NumSubresources) UINT *pNumRows, - _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, - _Out_opt_ UINT64 *pTotalBytes); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) - HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( - ID3D12Device14 * This, - _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvSession); - - DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) - HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( - ID3D12Device14 * This, - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control); - - DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( - ID3D12Device14 * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID CreatorID, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( - ID3D12Device14 * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( - ID3D12Device14 * This, - _In_ ID3D12Heap *pHeap, - UINT64 HeapOffset, - _In_ const D3D12_RESOURCE_DESC1 *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) - HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( - ID3D12Device14 * This, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource); - - DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) - void ( STDMETHODCALLTYPE *CreateSampler2 )( - ID3D12Device14 * This, - _In_ const D3D12_SAMPLER_DESC2 *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) -#if !defined(_WIN32) - D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( - ID3D12Device14 * This, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, - _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#else - D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( - ID3D12Device14 * This, - D3D12_RESOURCE_ALLOCATION_INFO * RetVal, - UINT visibleMask, - UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, - _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, - _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, - _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); - -#endif - - DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1) - HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )( - ID3D12Device14 * This, - _In_ const void *pAddress, - SIZE_T size, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - DECLSPEC_XFGVIRT(ID3D12Device14, CreateRootSignatureFromSubobjectInLibrary) - HRESULT ( STDMETHODCALLTYPE *CreateRootSignatureFromSubobjectInLibrary )( - ID3D12Device14 * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pLibraryBlob, - _In_ SIZE_T blobLengthInBytes, - _In_opt_ LPCWSTR subobjectName, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - END_INTERFACE - } ID3D12Device14Vtbl; - - interface ID3D12Device14 - { - CONST_VTBL struct ID3D12Device14Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device14_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device14_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device14_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device14_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device14_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device14_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device14_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device14_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device14_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device14_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device14_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device14_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device14_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device14_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device14_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device14_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device14_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device14_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device14_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device14_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device14_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device14_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device14_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device14_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device14_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) -#if !defined(_WIN32) - -#define ID3D12Device14_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) -#else -#define ID3D12Device14_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) -#endif -#if !defined(_WIN32) - -#define ID3D12Device14_GetCustomHeapProperties(This,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) -#else -#define ID3D12Device14_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ - ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) -#endif - -#define ID3D12Device14_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) - -#define ID3D12Device14_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device14_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device14_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device14_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device14_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device14_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device14_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device14_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device14_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device14_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device14_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device14_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device14_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device14_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device14_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) -#if !defined(_WIN32) - -#define ID3D12Device14_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) -#else -#define ID3D12Device14_GetAdapterLuid(This,RetVal) \ - ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) -#endif - - -#define ID3D12Device14_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ - ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) - -#define ID3D12Device14_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ - ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) - -#define ID3D12Device14_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ - ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) - - -#define ID3D12Device14_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) - - -#define ID3D12Device14_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) - -#define ID3D12Device14_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) - -#define ID3D12Device14_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ - ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) - - -#define ID3D12Device14_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) - -#define ID3D12Device14_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) - -#define ID3D12Device14_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device14_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) - -#define ID3D12Device14_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) -#if !defined(_WIN32) - -#define ID3D12Device14_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device14_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device14_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ - ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) - -#define ID3D12Device14_RemoveDevice(This) \ - ( (This)->lpVtbl -> RemoveDevice(This) ) - -#define ID3D12Device14_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) - -#define ID3D12Device14_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ - ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) - -#define ID3D12Device14_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ - ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) - -#define ID3D12Device14_CreateStateObject(This,pDesc,riid,ppStateObject) \ - ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) - -#define ID3D12Device14_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ - ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) - -#define ID3D12Device14_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ - ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) - - -#define ID3D12Device14_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ - ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) - - -#define ID3D12Device14_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ - ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) - -#define ID3D12Device14_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ - ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) - -#if !defined(_WIN32) - -#define ID3D12Device14_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#else -#define ID3D12Device14_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) -#endif - -#define ID3D12Device14_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) - -#define ID3D12Device14_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device14_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) - -#define ID3D12Device14_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - - -#define ID3D12Device14_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ - ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) - -#define ID3D12Device14_ShaderCacheControl(This,Kinds,Control) \ - ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) - -#define ID3D12Device14_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) - - -#define ID3D12Device14_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ - ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) - -#define ID3D12Device14_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - -#define ID3D12Device14_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) - - -#define ID3D12Device14_CreateSampler2(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) - -#if !defined(_WIN32) - -#define ID3D12Device14_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) -#else -#define ID3D12Device14_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) -#endif - - -#define ID3D12Device14_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \ - ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) ) - - -#define ID3D12Device14_CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Device14_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ -#define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ - -/* interface ID3D12VirtualizationGuestDevice */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VirtualizationGuestDevice; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476") - ID3D12VirtualizationGuestDevice : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ShareWithHost( - _In_ ID3D12DeviceChild *pObject, - _Out_ HANDLE *pHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFenceFd( - _In_ ID3D12Fence *pFence, - UINT64 FenceValue, - _Out_ int *pFenceFd) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VirtualizationGuestDeviceVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VirtualizationGuestDevice * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VirtualizationGuestDevice * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VirtualizationGuestDevice * This); - - DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, ShareWithHost) - HRESULT ( STDMETHODCALLTYPE *ShareWithHost )( - ID3D12VirtualizationGuestDevice * This, - _In_ ID3D12DeviceChild *pObject, - _Out_ HANDLE *pHandle); - - DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, CreateFenceFd) - HRESULT ( STDMETHODCALLTYPE *CreateFenceFd )( - ID3D12VirtualizationGuestDevice * This, - _In_ ID3D12Fence *pFence, - UINT64 FenceValue, - _Out_ int *pFenceFd); - - END_INTERFACE - } ID3D12VirtualizationGuestDeviceVtbl; - - interface ID3D12VirtualizationGuestDevice - { - CONST_VTBL struct ID3D12VirtualizationGuestDeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VirtualizationGuestDevice_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VirtualizationGuestDevice_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VirtualizationGuestDevice_ShareWithHost(This,pObject,pHandle) \ - ( (This)->lpVtbl -> ShareWithHost(This,pObject,pHandle) ) - -#define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,pFence,FenceValue,pFenceFd) \ - ( (This)->lpVtbl -> CreateFenceFd(This,pFence,FenceValue,pFenceFd) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Tools_INTERFACE_DEFINED__ -#define __ID3D12Tools_INTERFACE_DEFINED__ - -/* interface ID3D12Tools */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Tools; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5") - ID3D12Tools : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE EnableShaderInstrumentation( - BOOL bEnable) = 0; - - virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ToolsVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Tools * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Tools * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Tools * This); - - DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation) - void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )( - ID3D12Tools * This, - BOOL bEnable); - - DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled) - BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )( - ID3D12Tools * This); - - END_INTERFACE - } ID3D12ToolsVtbl; - - interface ID3D12Tools - { - CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Tools_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Tools_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Tools_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \ - ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) ) - -#define ID3D12Tools_ShaderInstrumentationEnabled(This) \ - ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0062 */ -/* [local] */ - -typedef struct D3D12_SUBRESOURCE_DATA - { - const void *pData; - LONG_PTR RowPitch; - LONG_PTR SlicePitch; - } D3D12_SUBRESOURCE_DATA; - -typedef struct D3D12_MEMCPY_DEST - { - void *pData; - SIZE_T RowPitch; - SIZE_T SlicePitch; - } D3D12_MEMCPY_DEST; - -#if !defined( D3D12_IGNORE_SDK_LAYERS ) -#include "d3d12sdklayers.h" -#endif - -/////////////////////////////////////////////////////////////////////////// -// D3D12CreateDevice -// ------------------ -// -// pAdapter -// If NULL, D3D12CreateDevice will choose the primary adapter. -// If non-NULL, D3D12CreateDevice will use the provided adapter. -// MinimumFeatureLevel -// The minimum feature level required for successful device creation. -// riid -// The interface IID of the device to be returned. Expected: ID3D12Device. -// ppDevice -// Pointer to returned interface. May be NULL. -// -// Return Values -// Any of those documented for -// CreateDXGIFactory1 -// IDXGIFactory::EnumAdapters -// D3D12CreateDevice -// -/////////////////////////////////////////////////////////////////////////// -typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*, - D3D_FEATURE_LEVEL, - _In_ REFIID, _COM_Outptr_opt_ void** ); - -HRESULT WINAPI D3D12CreateDevice( - _In_opt_ IUnknown* pAdapter, - D3D_FEATURE_LEVEL MinimumFeatureLevel, - _In_ REFIID riid, // Expected: ID3D12Device - _COM_Outptr_opt_ void** ppDevice ); - - -typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** ); - -HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); - -// -------------------------------------------------------------------------------------------------------------------------------- -// D3D12EnableExperimentalFeatures -// -// Pass in a list of feature GUIDs to be enabled together. -// -// If a particular feature requires some configuration information on enablement, it will have -// a configuration struct that can be passed alongside the GUID. -// -// Some features might use an interface IID as the GUID. For these, once the feature is enabled via -// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface -// for manipulating the feature. This allows for control that might not cleanly be expressed by just -// the configuration struct that D3D12EnableExperimentalFeatures provides. -// -// If this method is called and a change to existing feature enablement is made, -// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one -// singleton device for a process. Removing the devices when configuration changes prevents -// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view. -// -// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on. -// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed -// in are known to be incompatible with each other, or other errors. -// Returns S_OK otherwise. -// -// -------------------------------------------------------------------------------------------------------------------------------- -HRESULT WINAPI D3D12EnableExperimentalFeatures( - UINT NumFeatures, - _In_count_(NumFeatures) const IID* pIIDs, - _In_opt_count_(NumFeatures) void* pConfigurationStructs, - _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes); - -// -------------------------------------------------------------------------------------------------------------------------------- -// Experimental Feature: D3D12ExperimentalShaderModels -// -// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support, -// meaning shader models that haven't been finalized for use in retail. -// -// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array. -// -// -------------------------------------------------------------------------------------------------------------------------------- -static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */ - 0x76f5573e, - 0xf13a, - 0x40f5, - { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f } -}; -// -------------------------------------------------------------------------------------------------------------------------------- -// Experimental Feature: D3D12TiledResourceTier4 -// -// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support, -// meaning texture tile data-inheritance is allowed. -// -// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array. -// -// -------------------------------------------------------------------------------------------------------------------------------- -static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */ - 0xc9c4725f, - 0xa81a, - 0x4f56, - { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb } -}; -// -------------------------------------------------------------------------------------------------------------------------------- -// D3D12GetInterface -// -// Retrieve Global D3D12 Interface. -// - -DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f); -DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8); -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); - -typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** ); - -HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); - - - -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; - -#ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__ -#define __ID3D12SDKConfiguration_INTERFACE_DEFINED__ - -/* interface ID3D12SDKConfiguration */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12SDKConfiguration; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7") - ID3D12SDKConfiguration : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetSDKVersion( - UINT SDKVersion, - _In_z_ LPCSTR SDKPath) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12SDKConfigurationVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12SDKConfiguration * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12SDKConfiguration * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12SDKConfiguration * This); - - DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion) - HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )( - ID3D12SDKConfiguration * This, - UINT SDKVersion, - _In_z_ LPCSTR SDKPath); - - END_INTERFACE - } ID3D12SDKConfigurationVtbl; - - interface ID3D12SDKConfiguration - { - CONST_VTBL struct ID3D12SDKConfigurationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12SDKConfiguration_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12SDKConfiguration_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12SDKConfiguration_SetSDKVersion(This,SDKVersion,SDKPath) \ - ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ -#define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ - -/* interface ID3D12SDKConfiguration1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12SDKConfiguration1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f") - ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory( - UINT SDKVersion, - _In_ LPCSTR SDKPath, - REFIID riid, - _COM_Outptr_ void **ppvFactory) = 0; - - virtual void STDMETHODCALLTYPE FreeUnusedSDKs( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12SDKConfiguration1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12SDKConfiguration1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12SDKConfiguration1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12SDKConfiguration1 * This); - - DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion) - HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )( - ID3D12SDKConfiguration1 * This, - UINT SDKVersion, - _In_z_ LPCSTR SDKPath); - - DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, CreateDeviceFactory) - HRESULT ( STDMETHODCALLTYPE *CreateDeviceFactory )( - ID3D12SDKConfiguration1 * This, - UINT SDKVersion, - _In_ LPCSTR SDKPath, - REFIID riid, - _COM_Outptr_ void **ppvFactory); - - DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, FreeUnusedSDKs) - void ( STDMETHODCALLTYPE *FreeUnusedSDKs )( - ID3D12SDKConfiguration1 * This); - - END_INTERFACE - } ID3D12SDKConfiguration1Vtbl; - - interface ID3D12SDKConfiguration1 - { - CONST_VTBL struct ID3D12SDKConfiguration1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12SDKConfiguration1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12SDKConfiguration1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12SDKConfiguration1_SetSDKVersion(This,SDKVersion,SDKPath) \ - ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) ) - - -#define ID3D12SDKConfiguration1_CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) \ - ( (This)->lpVtbl -> CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) ) - -#define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) \ - ( (This)->lpVtbl -> FreeUnusedSDKs(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0064 */ -/* [local] */ - -typedef -enum D3D12_DEVICE_FACTORY_FLAGS - { - D3D12_DEVICE_FACTORY_FLAG_NONE = 0, - D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1, - D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2, - D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4 - } 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; - -#ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__ -#define __ID3D12DeviceFactory_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceFactory */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb") - ID3D12DeviceFactory : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFlags( - D3D12_DEVICE_FACTORY_FLAGS flags) = 0; - - virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface( - REFCLSID clsid, - REFIID iid, - _COM_Outptr_ void **ppv) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures( - UINT NumFeatures, - _In_reads_(NumFeatures) const IID *pIIDs, - _In_reads_opt_(NumFeatures) void *pConfigurationStructs, - _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDevice( - _In_opt_ IUnknown *adapter, - D3D_FEATURE_LEVEL FeatureLevel, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceFactoryVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceFactory * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceFactory * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceFactory * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceFactory, InitializeFromGlobalState) - HRESULT ( STDMETHODCALLTYPE *InitializeFromGlobalState )( - ID3D12DeviceFactory * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceFactory, ApplyToGlobalState) - HRESULT ( STDMETHODCALLTYPE *ApplyToGlobalState )( - ID3D12DeviceFactory * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceFactory, SetFlags) - HRESULT ( STDMETHODCALLTYPE *SetFlags )( - ID3D12DeviceFactory * This, - D3D12_DEVICE_FACTORY_FLAGS flags); - - DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetFlags) - D3D12_DEVICE_FACTORY_FLAGS ( STDMETHODCALLTYPE *GetFlags )( - ID3D12DeviceFactory * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetConfigurationInterface) - HRESULT ( STDMETHODCALLTYPE *GetConfigurationInterface )( - ID3D12DeviceFactory * This, - REFCLSID clsid, - REFIID iid, - _COM_Outptr_ void **ppv); - - DECLSPEC_XFGVIRT(ID3D12DeviceFactory, EnableExperimentalFeatures) - HRESULT ( STDMETHODCALLTYPE *EnableExperimentalFeatures )( - ID3D12DeviceFactory * This, - UINT NumFeatures, - _In_reads_(NumFeatures) const IID *pIIDs, - _In_reads_opt_(NumFeatures) void *pConfigurationStructs, - _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes); - - DECLSPEC_XFGVIRT(ID3D12DeviceFactory, CreateDevice) - HRESULT ( STDMETHODCALLTYPE *CreateDevice )( - ID3D12DeviceFactory * This, - _In_opt_ IUnknown *adapter, - D3D_FEATURE_LEVEL FeatureLevel, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12DeviceFactoryVtbl; - - interface ID3D12DeviceFactory - { - CONST_VTBL struct ID3D12DeviceFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceFactory_InitializeFromGlobalState(This) \ - ( (This)->lpVtbl -> InitializeFromGlobalState(This) ) - -#define ID3D12DeviceFactory_ApplyToGlobalState(This) \ - ( (This)->lpVtbl -> ApplyToGlobalState(This) ) - -#define ID3D12DeviceFactory_SetFlags(This,flags) \ - ( (This)->lpVtbl -> SetFlags(This,flags) ) - -#define ID3D12DeviceFactory_GetFlags(This) \ - ( (This)->lpVtbl -> GetFlags(This) ) - -#define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) \ - ( (This)->lpVtbl -> GetConfigurationInterface(This,clsid,iid,ppv) ) - -#define ID3D12DeviceFactory_EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) \ - ( (This)->lpVtbl -> EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) ) - -#define ID3D12DeviceFactory_CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) \ - ( (This)->lpVtbl -> CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0065 */ -/* [local] */ - -typedef -enum D3D12_DEVICE_FLAGS - { - D3D12_DEVICE_FLAG_NONE = 0, - D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1, - D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2, - D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4, - D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8, - D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10, - D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20, - D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40, - D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80, - D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100, - D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200, - D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400 - } D3D12_DEVICE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS ) -typedef struct D3D12_DEVICE_CONFIGURATION_DESC - { - D3D12_DEVICE_FLAGS Flags; - UINT GpuBasedValidationFlags; - UINT SDKVersion; - UINT NumEnabledExperimentalFeatures; - } 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; - -#ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ -#define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceConfiguration */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceConfiguration; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad") - ID3D12DeviceConfiguration : public IUnknown - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_DEVICE_CONFIGURATION_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_DEVICE_CONFIGURATION_DESC * RetVal) = 0; -#endif - - virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures( - _Out_writes_(NumGuids) GUID *pGuids, - UINT NumGuids) = 0; - - virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature( - _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, - _COM_Outptr_ ID3DBlob **ppResult, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer( - _In_reads_bytes_(Size) const void *pBlob, - SIZE_T Size, - REFIID riid, - _COM_Outptr_ void **ppvDeserializer) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceConfigurationVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceConfiguration * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceConfiguration * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceConfiguration * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc) -#if !defined(_WIN32) - D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12DeviceConfiguration * This); - -#else - D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12DeviceConfiguration * This, - D3D12_DEVICE_CONFIGURATION_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures) - HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )( - ID3D12DeviceConfiguration * This, - _Out_writes_(NumGuids) GUID *pGuids, - UINT NumGuids); - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature) - HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )( - ID3D12DeviceConfiguration * This, - _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, - _COM_Outptr_ ID3DBlob **ppResult, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError); - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer) - HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )( - ID3D12DeviceConfiguration * This, - _In_reads_bytes_(Size) const void *pBlob, - SIZE_T Size, - REFIID riid, - _COM_Outptr_ void **ppvDeserializer); - - END_INTERFACE - } ID3D12DeviceConfigurationVtbl; - - interface ID3D12DeviceConfiguration - { - CONST_VTBL struct ID3D12DeviceConfigurationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceConfiguration_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceConfiguration_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - -#if !defined(_WIN32) - -#define ID3D12DeviceConfiguration_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12DeviceConfiguration_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \ - ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) ) - -#define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \ - ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) ) - -#define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \ - ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ -#define __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceConfiguration1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceConfiguration1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ed342442-6343-4e16-bb82-a3a577874e56") - ID3D12DeviceConfiguration1 : public ID3D12DeviceConfiguration - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary( - _In_reads_bytes_(Size) const void *pLibraryBlob, - SIZE_T Size, - LPCWSTR RootSignatureSubobjectName, - REFIID riid, - _COM_Outptr_ void **ppvDeserializer) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceConfiguration1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceConfiguration1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceConfiguration1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceConfiguration1 * This); - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc) -#if !defined(_WIN32) - D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12DeviceConfiguration1 * This); - -#else - D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12DeviceConfiguration1 * This, - D3D12_DEVICE_CONFIGURATION_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures) - HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )( - ID3D12DeviceConfiguration1 * This, - _Out_writes_(NumGuids) GUID *pGuids, - UINT NumGuids); - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature) - HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )( - ID3D12DeviceConfiguration1 * This, - _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, - _COM_Outptr_ ID3DBlob **ppResult, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError); - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer) - HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )( - ID3D12DeviceConfiguration1 * This, - _In_reads_bytes_(Size) const void *pBlob, - SIZE_T Size, - REFIID riid, - _COM_Outptr_ void **ppvDeserializer); - - DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration1, CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary) - HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary )( - ID3D12DeviceConfiguration1 * This, - _In_reads_bytes_(Size) const void *pLibraryBlob, - SIZE_T Size, - LPCWSTR RootSignatureSubobjectName, - REFIID riid, - _COM_Outptr_ void **ppvDeserializer); - - END_INTERFACE - } ID3D12DeviceConfiguration1Vtbl; - - interface ID3D12DeviceConfiguration1 - { - CONST_VTBL struct ID3D12DeviceConfiguration1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceConfiguration1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceConfiguration1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceConfiguration1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - -#if !defined(_WIN32) - -#define ID3D12DeviceConfiguration1_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12DeviceConfiguration1_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#define ID3D12DeviceConfiguration1_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \ - ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) ) - -#define ID3D12DeviceConfiguration1_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \ - ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) ) - -#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \ - ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) ) - - -#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) \ - ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0067 */ -/* [local] */ - -typedef -enum D3D12_AXIS_SHADING_RATE - { - D3D12_AXIS_SHADING_RATE_1X = 0, - D3D12_AXIS_SHADING_RATE_2X = 0x1, - D3D12_AXIS_SHADING_RATE_4X = 0x2 - } D3D12_AXIS_SHADING_RATE; - -#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2 -#define D3D12_SHADING_RATE_VALID_MASK 3 -#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y)) -#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK) -#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK) -typedef -enum D3D12_SHADING_RATE - { - D3D12_SHADING_RATE_1X1 = 0, - D3D12_SHADING_RATE_1X2 = 0x1, - D3D12_SHADING_RATE_2X1 = 0x4, - D3D12_SHADING_RATE_2X2 = 0x5, - D3D12_SHADING_RATE_2X4 = 0x6, - D3D12_SHADING_RATE_4X2 = 0x9, - D3D12_SHADING_RATE_4X4 = 0xa - } D3D12_SHADING_RATE; - -typedef -enum D3D12_SHADING_RATE_COMBINER - { - D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0, - D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1, - D3D12_SHADING_RATE_COMBINER_MIN = 2, - D3D12_SHADING_RATE_COMBINER_MAX = 3, - D3D12_SHADING_RATE_COMBINER_SUM = 4 - } 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; - -#ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList5 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList5; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea") - ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4 - { - public: - virtual void STDMETHODCALLTYPE RSSetShadingRate( - _In_ D3D12_SHADING_RATE baseShadingRate, - _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners) = 0; - - virtual void STDMETHODCALLTYPE RSSetShadingRateImage( - _In_opt_ ID3D12Resource *shadingRateImage) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList5Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList5 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList5 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList5 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList5 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList5 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList5 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList5 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList5 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList5 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList5 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList5 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList5 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList5 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList5 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList5 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList5 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList5 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList5 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList5 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList5 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList5 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList5 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList5 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList5 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList5 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList5 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList5 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList5 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList5 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12GraphicsCommandList5 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) - void ( STDMETHODCALLTYPE *BeginRenderPass )( - ID3D12GraphicsCommandList5 * This, - _In_ UINT NumRenderTargets, - _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, - _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) - void ( STDMETHODCALLTYPE *EndRenderPass )( - ID3D12GraphicsCommandList5 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) - void ( STDMETHODCALLTYPE *InitializeMetaCommand )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, - _In_ SIZE_T InitializationParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) - void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, - _In_ SIZE_T ExecutionParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList5 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, - _In_ UINT NumPostbuildInfoDescs, - _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) - void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( - ID3D12GraphicsCommandList5 * This, - _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, - _In_ UINT NumSourceAccelerationStructures, - _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList5 * This, - _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) - void ( STDMETHODCALLTYPE *SetPipelineState1 )( - ID3D12GraphicsCommandList5 * This, - _In_ ID3D12StateObject *pStateObject); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) - void ( STDMETHODCALLTYPE *DispatchRays )( - ID3D12GraphicsCommandList5 * This, - _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) - void ( STDMETHODCALLTYPE *RSSetShadingRate )( - ID3D12GraphicsCommandList5 * This, - _In_ D3D12_SHADING_RATE baseShadingRate, - _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) - void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( - ID3D12GraphicsCommandList5 * This, - _In_opt_ ID3D12Resource *shadingRateImage); - - END_INTERFACE - } ID3D12GraphicsCommandList5Vtbl; - - interface ID3D12GraphicsCommandList5 - { - CONST_VTBL struct ID3D12GraphicsCommandList5Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList5_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList5_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList5_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList5_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList5_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList5_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList5_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList5_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList5_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList5_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList5_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList5_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList5_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList5_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList5_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList5_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList5_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList5_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList5_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList5_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList5_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList5_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList5_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList5_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList5_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList5_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList5_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList5_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList5_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList5_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12GraphicsCommandList5_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ - ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) - -#define ID3D12GraphicsCommandList5_EndRenderPass(This) \ - ( (This)->lpVtbl -> EndRenderPass(This) ) - -#define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ - ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) - -#define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ - ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) - -#define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ - ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) - -#define ID3D12GraphicsCommandList5_SetPipelineState1(This,pStateObject) \ - ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) - -#define ID3D12GraphicsCommandList5_DispatchRays(This,pDesc) \ - ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) - - -#define ID3D12GraphicsCommandList5_RSSetShadingRate(This,baseShadingRate,combiners) \ - ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) - -#define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shadingRateImage) \ - ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0068 */ -/* [local] */ - -typedef struct D3D12_DISPATCH_MESH_ARGUMENTS - { - UINT ThreadGroupCountX; - UINT ThreadGroupCountY; - UINT ThreadGroupCountZ; - } 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; - -#ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList6 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList6; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80") - ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5 - { - public: - virtual void STDMETHODCALLTYPE DispatchMesh( - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList6Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList6 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList6 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList6 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList6 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList6 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList6 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList6 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList6 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList6 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList6 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList6 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList6 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList6 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList6 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList6 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList6 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList6 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList6 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList6 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList6 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList6 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList6 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList6 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList6 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList6 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList6 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList6 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList6 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList6 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12GraphicsCommandList6 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) - void ( STDMETHODCALLTYPE *BeginRenderPass )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT NumRenderTargets, - _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, - _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) - void ( STDMETHODCALLTYPE *EndRenderPass )( - ID3D12GraphicsCommandList6 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) - void ( STDMETHODCALLTYPE *InitializeMetaCommand )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, - _In_ SIZE_T InitializationParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) - void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, - _In_ SIZE_T ExecutionParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList6 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, - _In_ UINT NumPostbuildInfoDescs, - _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) - void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( - ID3D12GraphicsCommandList6 * This, - _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, - _In_ UINT NumSourceAccelerationStructures, - _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList6 * This, - _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) - void ( STDMETHODCALLTYPE *SetPipelineState1 )( - ID3D12GraphicsCommandList6 * This, - _In_ ID3D12StateObject *pStateObject); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) - void ( STDMETHODCALLTYPE *DispatchRays )( - ID3D12GraphicsCommandList6 * This, - _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) - void ( STDMETHODCALLTYPE *RSSetShadingRate )( - ID3D12GraphicsCommandList6 * This, - _In_ D3D12_SHADING_RATE baseShadingRate, - _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) - void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( - ID3D12GraphicsCommandList6 * This, - _In_opt_ ID3D12Resource *shadingRateImage); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) - void ( STDMETHODCALLTYPE *DispatchMesh )( - ID3D12GraphicsCommandList6 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - END_INTERFACE - } ID3D12GraphicsCommandList6Vtbl; - - interface ID3D12GraphicsCommandList6 - { - CONST_VTBL struct ID3D12GraphicsCommandList6Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList6_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList6_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList6_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList6_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList6_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList6_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList6_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList6_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList6_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList6_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList6_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList6_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList6_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList6_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList6_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList6_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList6_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList6_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList6_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList6_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList6_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList6_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList6_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList6_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList6_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList6_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList6_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList6_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList6_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList6_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList6_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList6_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12GraphicsCommandList6_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ - ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) - -#define ID3D12GraphicsCommandList6_EndRenderPass(This) \ - ( (This)->lpVtbl -> EndRenderPass(This) ) - -#define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ - ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) - -#define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ - ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) - -#define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ - ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) - -#define ID3D12GraphicsCommandList6_SetPipelineState1(This,pStateObject) \ - ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) - -#define ID3D12GraphicsCommandList6_DispatchRays(This,pDesc) \ - ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) - - -#define ID3D12GraphicsCommandList6_RSSetShadingRate(This,baseShadingRate,combiners) \ - ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) - -#define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shadingRateImage) \ - ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) - - -#define ID3D12GraphicsCommandList6_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList7 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList7; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1") - ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6 - { - public: - virtual void STDMETHODCALLTYPE Barrier( - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList7Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList7 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList7 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList7 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList7 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList7 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList7 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList7 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList7 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList7 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList7 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList7 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList7 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList7 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList7 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList7 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList7 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList7 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList7 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList7 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList7 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList7 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList7 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList7 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList7 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList7 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList7 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList7 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList7 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList7 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12GraphicsCommandList7 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) - void ( STDMETHODCALLTYPE *BeginRenderPass )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT NumRenderTargets, - _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, - _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) - void ( STDMETHODCALLTYPE *EndRenderPass )( - ID3D12GraphicsCommandList7 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) - void ( STDMETHODCALLTYPE *InitializeMetaCommand )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, - _In_ SIZE_T InitializationParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) - void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, - _In_ SIZE_T ExecutionParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList7 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, - _In_ UINT NumPostbuildInfoDescs, - _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) - void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( - ID3D12GraphicsCommandList7 * This, - _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, - _In_ UINT NumSourceAccelerationStructures, - _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList7 * This, - _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) - void ( STDMETHODCALLTYPE *SetPipelineState1 )( - ID3D12GraphicsCommandList7 * This, - _In_ ID3D12StateObject *pStateObject); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) - void ( STDMETHODCALLTYPE *DispatchRays )( - ID3D12GraphicsCommandList7 * This, - _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) - void ( STDMETHODCALLTYPE *RSSetShadingRate )( - ID3D12GraphicsCommandList7 * This, - _In_ D3D12_SHADING_RATE baseShadingRate, - _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) - void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( - ID3D12GraphicsCommandList7 * This, - _In_opt_ ID3D12Resource *shadingRateImage); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) - void ( STDMETHODCALLTYPE *DispatchMesh )( - ID3D12GraphicsCommandList7 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) - void ( STDMETHODCALLTYPE *Barrier )( - ID3D12GraphicsCommandList7 * This, - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); - - END_INTERFACE - } ID3D12GraphicsCommandList7Vtbl; - - interface ID3D12GraphicsCommandList7 - { - CONST_VTBL struct ID3D12GraphicsCommandList7Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList7_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList7_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList7_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList7_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList7_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList7_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList7_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList7_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList7_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList7_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList7_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList7_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList7_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList7_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList7_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList7_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList7_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList7_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList7_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList7_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList7_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList7_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList7_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList7_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList7_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList7_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList7_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList7_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList7_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList7_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList7_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList7_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12GraphicsCommandList7_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ - ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) - -#define ID3D12GraphicsCommandList7_EndRenderPass(This) \ - ( (This)->lpVtbl -> EndRenderPass(This) ) - -#define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ - ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) - -#define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ - ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) - -#define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ - ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) - -#define ID3D12GraphicsCommandList7_SetPipelineState1(This,pStateObject) \ - ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) - -#define ID3D12GraphicsCommandList7_DispatchRays(This,pDesc) \ - ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) - - -#define ID3D12GraphicsCommandList7_RSSetShadingRate(This,baseShadingRate,combiners) \ - ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) - -#define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shadingRateImage) \ - ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) - - -#define ID3D12GraphicsCommandList7_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - - -#define ID3D12GraphicsCommandList7_Barrier(This,NumBarrierGroups,pBarrierGroups) \ - ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList8 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList8; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ee936ef9-599d-4d28-938e-23c4ad05ce51") - ID3D12GraphicsCommandList8 : public ID3D12GraphicsCommandList7 - { - public: - virtual void STDMETHODCALLTYPE OMSetFrontAndBackStencilRef( - _In_ UINT FrontStencilRef, - _In_ UINT BackStencilRef) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList8Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList8 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList8 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList8 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList8 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList8 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList8 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList8 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList8 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList8 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList8 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList8 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList8 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList8 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList8 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList8 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList8 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList8 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList8 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList8 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList8 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList8 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList8 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList8 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList8 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList8 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList8 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList8 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList8 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList8 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12GraphicsCommandList8 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) - void ( STDMETHODCALLTYPE *BeginRenderPass )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT NumRenderTargets, - _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, - _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) - void ( STDMETHODCALLTYPE *EndRenderPass )( - ID3D12GraphicsCommandList8 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) - void ( STDMETHODCALLTYPE *InitializeMetaCommand )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, - _In_ SIZE_T InitializationParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) - void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, - _In_ SIZE_T ExecutionParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList8 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, - _In_ UINT NumPostbuildInfoDescs, - _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) - void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( - ID3D12GraphicsCommandList8 * This, - _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, - _In_ UINT NumSourceAccelerationStructures, - _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList8 * This, - _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) - void ( STDMETHODCALLTYPE *SetPipelineState1 )( - ID3D12GraphicsCommandList8 * This, - _In_ ID3D12StateObject *pStateObject); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) - void ( STDMETHODCALLTYPE *DispatchRays )( - ID3D12GraphicsCommandList8 * This, - _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) - void ( STDMETHODCALLTYPE *RSSetShadingRate )( - ID3D12GraphicsCommandList8 * This, - _In_ D3D12_SHADING_RATE baseShadingRate, - _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) - void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( - ID3D12GraphicsCommandList8 * This, - _In_opt_ ID3D12Resource *shadingRateImage); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) - void ( STDMETHODCALLTYPE *DispatchMesh )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) - void ( STDMETHODCALLTYPE *Barrier )( - ID3D12GraphicsCommandList8 * This, - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) - void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( - ID3D12GraphicsCommandList8 * This, - _In_ UINT FrontStencilRef, - _In_ UINT BackStencilRef); - - END_INTERFACE - } ID3D12GraphicsCommandList8Vtbl; - - interface ID3D12GraphicsCommandList8 - { - CONST_VTBL struct ID3D12GraphicsCommandList8Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList8_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList8_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList8_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList8_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList8_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList8_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList8_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList8_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList8_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList8_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList8_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList8_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList8_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList8_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList8_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList8_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList8_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList8_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList8_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList8_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList8_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList8_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList8_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList8_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList8_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList8_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList8_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList8_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList8_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList8_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList8_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList8_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList8_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList8_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList8_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList8_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList8_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList8_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList8_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList8_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList8_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList8_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList8_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList8_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList8_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList8_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList8_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList8_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList8_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList8_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList8_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList8_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList8_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList8_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList8_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList8_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList8_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList8_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList8_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12GraphicsCommandList8_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12GraphicsCommandList8_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ - ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) - -#define ID3D12GraphicsCommandList8_EndRenderPass(This) \ - ( (This)->lpVtbl -> EndRenderPass(This) ) - -#define ID3D12GraphicsCommandList8_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList8_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList8_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ - ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) - -#define ID3D12GraphicsCommandList8_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ - ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) - -#define ID3D12GraphicsCommandList8_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ - ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) - -#define ID3D12GraphicsCommandList8_SetPipelineState1(This,pStateObject) \ - ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) - -#define ID3D12GraphicsCommandList8_DispatchRays(This,pDesc) \ - ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) - - -#define ID3D12GraphicsCommandList8_RSSetShadingRate(This,baseShadingRate,combiners) \ - ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) - -#define ID3D12GraphicsCommandList8_RSSetShadingRateImage(This,shadingRateImage) \ - ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) - - -#define ID3D12GraphicsCommandList8_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - - -#define ID3D12GraphicsCommandList8_Barrier(This,NumBarrierGroups,pBarrierGroups) \ - ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) - - -#define ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ - ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList9 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList9; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1") - ID3D12GraphicsCommandList9 : public ID3D12GraphicsCommandList8 - { - public: - virtual void STDMETHODCALLTYPE RSSetDepthBias( - _In_ FLOAT DepthBias, - _In_ FLOAT DepthBiasClamp, - _In_ FLOAT SlopeScaledDepthBias) = 0; - - virtual void STDMETHODCALLTYPE IASetIndexBufferStripCutValue( - _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList9Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList9 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList9 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList9 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList9 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList9 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList9 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList9 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList9 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList9 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList9 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList9 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList9 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList9 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList9 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList9 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList9 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList9 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList9 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList9 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList9 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList9 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList9 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList9 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList9 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList9 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList9 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList9 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList9 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList9 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12GraphicsCommandList9 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) - void ( STDMETHODCALLTYPE *BeginRenderPass )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT NumRenderTargets, - _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, - _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) - void ( STDMETHODCALLTYPE *EndRenderPass )( - ID3D12GraphicsCommandList9 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) - void ( STDMETHODCALLTYPE *InitializeMetaCommand )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, - _In_ SIZE_T InitializationParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) - void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, - _In_ SIZE_T ExecutionParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList9 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, - _In_ UINT NumPostbuildInfoDescs, - _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) - void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( - ID3D12GraphicsCommandList9 * This, - _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, - _In_ UINT NumSourceAccelerationStructures, - _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList9 * This, - _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) - void ( STDMETHODCALLTYPE *SetPipelineState1 )( - ID3D12GraphicsCommandList9 * This, - _In_ ID3D12StateObject *pStateObject); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) - void ( STDMETHODCALLTYPE *DispatchRays )( - ID3D12GraphicsCommandList9 * This, - _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) - void ( STDMETHODCALLTYPE *RSSetShadingRate )( - ID3D12GraphicsCommandList9 * This, - _In_ D3D12_SHADING_RATE baseShadingRate, - _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) - void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( - ID3D12GraphicsCommandList9 * This, - _In_opt_ ID3D12Resource *shadingRateImage); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) - void ( STDMETHODCALLTYPE *DispatchMesh )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) - void ( STDMETHODCALLTYPE *Barrier )( - ID3D12GraphicsCommandList9 * This, - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) - void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( - ID3D12GraphicsCommandList9 * This, - _In_ UINT FrontStencilRef, - _In_ UINT BackStencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias) - void ( STDMETHODCALLTYPE *RSSetDepthBias )( - ID3D12GraphicsCommandList9 * This, - _In_ FLOAT DepthBias, - _In_ FLOAT DepthBiasClamp, - _In_ FLOAT SlopeScaledDepthBias); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue) - void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )( - ID3D12GraphicsCommandList9 * This, - _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue); - - END_INTERFACE - } ID3D12GraphicsCommandList9Vtbl; - - interface ID3D12GraphicsCommandList9 - { - CONST_VTBL struct ID3D12GraphicsCommandList9Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList9_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList9_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList9_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList9_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList9_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList9_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList9_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList9_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList9_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList9_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList9_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList9_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList9_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList9_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList9_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList9_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList9_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList9_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList9_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList9_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList9_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList9_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList9_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList9_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList9_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList9_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList9_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList9_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList9_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList9_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList9_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList9_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList9_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList9_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList9_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList9_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList9_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList9_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList9_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList9_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList9_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList9_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList9_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList9_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList9_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList9_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList9_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList9_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList9_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList9_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList9_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList9_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList9_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList9_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList9_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList9_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList9_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList9_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList9_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12GraphicsCommandList9_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12GraphicsCommandList9_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ - ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) - -#define ID3D12GraphicsCommandList9_EndRenderPass(This) \ - ( (This)->lpVtbl -> EndRenderPass(This) ) - -#define ID3D12GraphicsCommandList9_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList9_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList9_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ - ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) - -#define ID3D12GraphicsCommandList9_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ - ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) - -#define ID3D12GraphicsCommandList9_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ - ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) - -#define ID3D12GraphicsCommandList9_SetPipelineState1(This,pStateObject) \ - ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) - -#define ID3D12GraphicsCommandList9_DispatchRays(This,pDesc) \ - ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) - - -#define ID3D12GraphicsCommandList9_RSSetShadingRate(This,baseShadingRate,combiners) \ - ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) - -#define ID3D12GraphicsCommandList9_RSSetShadingRateImage(This,shadingRateImage) \ - ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) - - -#define ID3D12GraphicsCommandList9_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - - -#define ID3D12GraphicsCommandList9_Barrier(This,NumBarrierGroups,pBarrierGroups) \ - ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) - - -#define ID3D12GraphicsCommandList9_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ - ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) - - -#define ID3D12GraphicsCommandList9_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \ - ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) ) - -#define ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue(This,IBStripCutValue) \ - ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList10 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList10; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7013c015-d161-4b63-a08c-238552dd8acc") - ID3D12GraphicsCommandList10 : public ID3D12GraphicsCommandList9 - { - public: - virtual void STDMETHODCALLTYPE SetProgram( - _In_ const D3D12_SET_PROGRAM_DESC *pDesc) = 0; - - virtual void STDMETHODCALLTYPE DispatchGraph( - _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandList10Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList10 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList10 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList10 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList10 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList10 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList10 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList10 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList10 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList10 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList10 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList10 * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList10 * This, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, - _In_opt_ const D3D12_BOX *pSrcBox); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12Resource *pTiledResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, - _In_ ID3D12Resource *pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList10 * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList10 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList10 * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList10 * This, - _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT StencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12PipelineState *pPipelineState); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList10 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList10 * This, - _In_opt_ ID3D12RootSignature *pRootSignature); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList10 * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT NumRenderTargetDescriptors, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList10 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - _In_ D3D12_CLEAR_FLAGS ClearFlags, - _In_ FLOAT Depth, - _In_ UINT8 Stencil, - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D12GraphicsCommandList10 * This, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D12GraphicsCommandList10 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const UINT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D12GraphicsCommandList10 * This, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - _In_ ID3D12Resource *pResource, - _In_ const FLOAT Values[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList10 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList10 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList10 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList10 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) - void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, - _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) - void ( STDMETHODCALLTYPE *OMSetDepthBounds )( - ID3D12GraphicsCommandList10 * This, - _In_ FLOAT Min, - _In_ FLOAT Max); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) - void ( STDMETHODCALLTYPE *SetSamplePositions )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT NumSamplesPerPixel, - _In_ UINT NumPixels, - _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) - void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ UINT DstX, - _In_ UINT DstY, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_opt_ D3D12_RECT *pSrcRect, - _In_ DXGI_FORMAT Format, - _In_ D3D12_RESOLVE_MODE ResolveMode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) - void ( STDMETHODCALLTYPE *SetViewInstanceMask )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT Mask); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12GraphicsCommandList10 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12GraphicsCommandList10 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) - void ( STDMETHODCALLTYPE *BeginRenderPass )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT NumRenderTargets, - _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, - _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) - void ( STDMETHODCALLTYPE *EndRenderPass )( - ID3D12GraphicsCommandList10 * This); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) - void ( STDMETHODCALLTYPE *InitializeMetaCommand )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, - _In_ SIZE_T InitializationParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) - void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12MetaCommand *pMetaCommand, - _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, - _In_ SIZE_T ExecutionParametersDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList10 * This, - _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, - _In_ UINT NumPostbuildInfoDescs, - _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) - void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( - ID3D12GraphicsCommandList10 * This, - _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, - _In_ UINT NumSourceAccelerationStructures, - _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) - void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( - ID3D12GraphicsCommandList10 * This, - _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) - void ( STDMETHODCALLTYPE *SetPipelineState1 )( - ID3D12GraphicsCommandList10 * This, - _In_ ID3D12StateObject *pStateObject); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) - void ( STDMETHODCALLTYPE *DispatchRays )( - ID3D12GraphicsCommandList10 * This, - _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) - void ( STDMETHODCALLTYPE *RSSetShadingRate )( - ID3D12GraphicsCommandList10 * This, - _In_ D3D12_SHADING_RATE baseShadingRate, - _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) - void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( - ID3D12GraphicsCommandList10 * This, - _In_opt_ ID3D12Resource *shadingRateImage); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) - void ( STDMETHODCALLTYPE *DispatchMesh )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) - void ( STDMETHODCALLTYPE *Barrier )( - ID3D12GraphicsCommandList10 * This, - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) - void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( - ID3D12GraphicsCommandList10 * This, - _In_ UINT FrontStencilRef, - _In_ UINT BackStencilRef); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias) - void ( STDMETHODCALLTYPE *RSSetDepthBias )( - ID3D12GraphicsCommandList10 * This, - _In_ FLOAT DepthBias, - _In_ FLOAT DepthBiasClamp, - _In_ FLOAT SlopeScaledDepthBias); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue) - void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )( - ID3D12GraphicsCommandList10 * This, - _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, SetProgram) - void ( STDMETHODCALLTYPE *SetProgram )( - ID3D12GraphicsCommandList10 * This, - _In_ const D3D12_SET_PROGRAM_DESC *pDesc); - - DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, DispatchGraph) - void ( STDMETHODCALLTYPE *DispatchGraph )( - ID3D12GraphicsCommandList10 * This, - _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc); - - END_INTERFACE - } ID3D12GraphicsCommandList10Vtbl; - - interface ID3D12GraphicsCommandList10 - { - CONST_VTBL struct ID3D12GraphicsCommandList10Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList10_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList10_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList10_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList10_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList10_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList10_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList10_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList10_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList10_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList10_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList10_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList10_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList10_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList10_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList10_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList10_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList10_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList10_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList10_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList10_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList10_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList10_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList10_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList10_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList10_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList10_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList10_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList10_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList10_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList10_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList10_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList10_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList10_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList10_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList10_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList10_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList10_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList10_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList10_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList10_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList10_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList10_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList10_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList10_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList10_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList10_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList10_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList10_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList10_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList10_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList10_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList10_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList10_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList10_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - - -#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ - ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) - -#define ID3D12GraphicsCommandList10_OMSetDepthBounds(This,Min,Max) \ - ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) - -#define ID3D12GraphicsCommandList10_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ - ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) - -#define ID3D12GraphicsCommandList10_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ - ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) - -#define ID3D12GraphicsCommandList10_SetViewInstanceMask(This,Mask) \ - ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) - - -#define ID3D12GraphicsCommandList10_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12GraphicsCommandList10_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12GraphicsCommandList10_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ - ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) - -#define ID3D12GraphicsCommandList10_EndRenderPass(This) \ - ( (This)->lpVtbl -> EndRenderPass(This) ) - -#define ID3D12GraphicsCommandList10_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList10_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) - -#define ID3D12GraphicsCommandList10_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ - ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) - -#define ID3D12GraphicsCommandList10_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ - ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) - -#define ID3D12GraphicsCommandList10_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ - ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) - -#define ID3D12GraphicsCommandList10_SetPipelineState1(This,pStateObject) \ - ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) - -#define ID3D12GraphicsCommandList10_DispatchRays(This,pDesc) \ - ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) - - -#define ID3D12GraphicsCommandList10_RSSetShadingRate(This,baseShadingRate,combiners) \ - ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) - -#define ID3D12GraphicsCommandList10_RSSetShadingRateImage(This,shadingRateImage) \ - ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) - - -#define ID3D12GraphicsCommandList10_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - - -#define ID3D12GraphicsCommandList10_Barrier(This,NumBarrierGroups,pBarrierGroups) \ - ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) - - -#define ID3D12GraphicsCommandList10_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ - ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) - - -#define ID3D12GraphicsCommandList10_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \ - ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) ) - -#define ID3D12GraphicsCommandList10_IASetIndexBufferStripCutValue(This,IBStripCutValue) \ - ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) ) - - -#define ID3D12GraphicsCommandList10_SetProgram(This,pDesc) \ - ( (This)->lpVtbl -> SetProgram(This,pDesc) ) - -#define ID3D12GraphicsCommandList10_DispatchGraph(This,pDesc) \ - ( (This)->lpVtbl -> DispatchGraph(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ -#define __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ - -/* interface ID3D12GBVDiagnostics */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GBVDiagnostics; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("597985ab-9b75-4dbb-be23-0761195bebee") - ID3D12GBVDiagnostics : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetGBVEntireSubresourceStatesData( - _In_ ID3D12Resource *pResource, - _Out_writes_bytes_(DataSize) int *pData, - UINT DataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGBVSubresourceState( - _In_ ID3D12Resource *pResource, - UINT Subresource, - _Out_ int *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGBVResourceUniformState( - _In_ ID3D12Resource *pResource, - _Out_ int *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGBVResourceInfo( - _In_ ID3D12Resource *pResource, - _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc, - _In_opt_ UINT32 *pResourceHash, - _In_opt_ UINT32 *pSubresourceStatesByteOffset) = 0; - - virtual void STDMETHODCALLTYPE GBVReserved0( void) = 0; - - virtual void STDMETHODCALLTYPE GBVReserved1( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GBVDiagnosticsVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GBVDiagnostics * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GBVDiagnostics * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GBVDiagnostics * This); - - DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVEntireSubresourceStatesData) - HRESULT ( STDMETHODCALLTYPE *GetGBVEntireSubresourceStatesData )( - ID3D12GBVDiagnostics * This, - _In_ ID3D12Resource *pResource, - _Out_writes_bytes_(DataSize) int *pData, - UINT DataSize); - - DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVSubresourceState) - HRESULT ( STDMETHODCALLTYPE *GetGBVSubresourceState )( - ID3D12GBVDiagnostics * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - _Out_ int *pData); - - DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceUniformState) - HRESULT ( STDMETHODCALLTYPE *GetGBVResourceUniformState )( - ID3D12GBVDiagnostics * This, - _In_ ID3D12Resource *pResource, - _Out_ int *pData); - - DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceInfo) - HRESULT ( STDMETHODCALLTYPE *GetGBVResourceInfo )( - ID3D12GBVDiagnostics * This, - _In_ ID3D12Resource *pResource, - _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc, - _In_opt_ UINT32 *pResourceHash, - _In_opt_ UINT32 *pSubresourceStatesByteOffset); - - DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved0) - void ( STDMETHODCALLTYPE *GBVReserved0 )( - ID3D12GBVDiagnostics * This); - - DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved1) - void ( STDMETHODCALLTYPE *GBVReserved1 )( - ID3D12GBVDiagnostics * This); - - END_INTERFACE - } ID3D12GBVDiagnosticsVtbl; - - interface ID3D12GBVDiagnostics - { - CONST_VTBL struct ID3D12GBVDiagnosticsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GBVDiagnostics_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GBVDiagnostics_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GBVDiagnostics_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GBVDiagnostics_GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) \ - ( (This)->lpVtbl -> GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) ) - -#define ID3D12GBVDiagnostics_GetGBVSubresourceState(This,pResource,Subresource,pData) \ - ( (This)->lpVtbl -> GetGBVSubresourceState(This,pResource,Subresource,pData) ) - -#define ID3D12GBVDiagnostics_GetGBVResourceUniformState(This,pResource,pData) \ - ( (This)->lpVtbl -> GetGBVResourceUniformState(This,pResource,pData) ) - -#define ID3D12GBVDiagnostics_GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) \ - ( (This)->lpVtbl -> GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) ) - -#define ID3D12GBVDiagnostics_GBVReserved0(This) \ - ( (This)->lpVtbl -> GBVReserved0(This) ) - -#define ID3D12GBVDiagnostics_GBVReserved1(This) \ - ( (This)->lpVtbl -> GBVReserved1(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0074 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ -#pragma endregion -DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8); -DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57); -DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14); -DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46); -DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0); -DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6); -DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3); -DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad); -DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24); -DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76); -DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a); -DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45); -DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51); -DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4); -DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1); -DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5); -DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55); -DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7); -DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28); -DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed); -DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7); -DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f); -DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3); -DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e); -DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28); -DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98); -DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B); -DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D); -DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5); -DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8); -DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f); -DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13); -DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d); -DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60); -DEFINE_GUID(IID_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_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); -DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea); -DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71); -DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06); -DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54); -DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc); -DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09); -DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b); -DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3); -DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19); -DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95); -DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D); -DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D); -DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70); -DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74); -DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8); -DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c); -DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31); -DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39); -DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5); -DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e); -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_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); -DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad); -DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56); -DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea); -DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80); -DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1); -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_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; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12.idl b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12.idl deleted file mode 100644 index cb9f456..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12.idl +++ /dev/null @@ -1,6558 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ -import "oaidl.idl"; -import "ocidl.idl"; - -import "dxgicommon.idl"; -import "dxgiformat.idl"; - -import "d3dcommon.idl"; - -cpp_quote("#include ") - -#pragma region App Family -cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") - -// NOTE: The following constants are generated from the D3D12 hardware spec. Do not edit these values directly. -cpp_quote( "#ifndef _D3D12_CONSTANTS" ) -cpp_quote( "#define _D3D12_CONSTANTS" ) -const UINT D3D12_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff; -const UINT D3D12_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff; -const UINT D3D12_8BIT_INDEX_STRIP_CUT_VALUE = 0xff; -const UINT D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff; -const UINT D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9; -const UINT D3D12_CLIP_OR_CULL_DISTANCE_COUNT = 8; -const UINT D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT = 16; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; -const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; -const UINT D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64; -const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; -const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1; -const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; -const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; -const UINT D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1; -const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128; -const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1; -const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1; -const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128; -const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1; -const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16; -const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1; -const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1; -const UINT D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT = 16; -const UINT D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32; -const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4; -const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COUNT = 4096; -const UINT D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3; -const UINT D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3; -const UINT D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10; -const INT D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10; -const INT D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8; -const UINT D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7; -const UINT D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256; -const UINT D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 256; -const UINT D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = 64; -const UINT D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 240; -const UINT D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = 68; -const UINT D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 224; -const UINT D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = 72; -const UINT D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 208; -const UINT D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = 76; -const UINT D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 192; -const UINT D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = 84; -const UINT D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 176; -const UINT D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = 92; -const UINT D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 160; -const UINT D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = 100; -const UINT D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 144; -const UINT D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = 112; -const UINT D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 128; -const UINT D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = 128; -const UINT D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 112; -const UINT D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = 144; -const UINT D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 96; -const UINT D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = 168; -const UINT D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 80; -const UINT D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = 204; -const UINT D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 64; -const UINT D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = 256; -const UINT D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 48; -const UINT D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = 340; -const UINT D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 32; -const UINT D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = 512; -const UINT D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 16; -const UINT D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = 768; -const UINT D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = 1; -const UINT D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = 256; -const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = 768; -const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_X = 768; -const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_Y = 768; -const UINT D3D12_CS_4_X_UAV_REGISTER_COUNT = 1; -const UINT D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = 65535; -const UINT D3D12_CS_TGSM_REGISTER_COUNT = 8192; -const UINT D3D12_CS_TGSM_REGISTER_READS_PER_INST = 1; -const UINT D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1; -const UINT D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1; -const UINT D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS = 3; -const UINT D3D12_CS_THREADGROUPID_REGISTER_COUNT = 1; -const UINT D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS = 1; -const UINT D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT = 1; -const UINT D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS = 3; -const UINT D3D12_CS_THREADIDINGROUP_REGISTER_COUNT = 1; -const UINT D3D12_CS_THREADID_REGISTER_COMPONENTS = 3; -const UINT D3D12_CS_THREADID_REGISTER_COUNT = 1; -const UINT D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024; -const UINT D3D12_CS_THREAD_GROUP_MAX_X = 1024; -const UINT D3D12_CS_THREAD_GROUP_MAX_Y = 1024; -const UINT D3D12_CS_THREAD_GROUP_MAX_Z = 64; -const UINT D3D12_CS_THREAD_GROUP_MIN_X = 1; -const UINT D3D12_CS_THREAD_GROUP_MIN_Y = 1; -const UINT D3D12_CS_THREAD_GROUP_MIN_Z = 1; -const UINT D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384; -cpp_quote( "#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f )" ) -cpp_quote( "#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f )" ) -cpp_quote( "#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f )" ) -cpp_quote( "#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f )" ) -cpp_quote( "#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f )" ) -const UINT D3D12_DEFAULT_DEPTH_BIAS = 0; -cpp_quote( "#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f )" ) -const UINT D3D12_DEFAULT_MAX_ANISOTROPY = 16; -cpp_quote( "#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f )" ) -const UINT D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 4194304; -const UINT D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0; -const UINT D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536; -const UINT D3D12_DEFAULT_SAMPLE_MASK = 0xffffffff; -const UINT D3D12_DEFAULT_SCISSOR_ENDX = 0; -const UINT D3D12_DEFAULT_SCISSOR_ENDY = 0; -const UINT D3D12_DEFAULT_SCISSOR_STARTX = 0; -const UINT D3D12_DEFAULT_SCISSOR_STARTY = 0; -cpp_quote( "#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f )" ) -const UINT D3D12_DEFAULT_STENCIL_READ_MASK = 0xff; -const UINT D3D12_DEFAULT_STENCIL_REFERENCE = 0; -const UINT D3D12_DEFAULT_STENCIL_WRITE_MASK = 0xff; -const UINT D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0; -const UINT D3D12_DEFAULT_VIEWPORT_HEIGHT = 0; -cpp_quote( "#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f )" ) -cpp_quote( "#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f )" ) -const UINT D3D12_DEFAULT_VIEWPORT_TOPLEFTX = 0; -const UINT D3D12_DEFAULT_VIEWPORT_TOPLEFTY = 0; -const UINT D3D12_DEFAULT_VIEWPORT_WIDTH = 0; -const UINT D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 0xffffffff; -const UINT D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END = 0xfffffff7; -const UINT D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff0; -const UINT D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968; -const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = 4; -const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = 32; -const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = 2; -const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = 1; -const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = 3; -const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = 1; -const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = 2; -const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = 1; -const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4; -const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = 32; -const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2; -const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1; -const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1; -const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1; -const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2; -const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1; -const UINT D3D12_DS_OUTPUT_REGISTER_COMPONENTS = 4; -const UINT D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_DS_OUTPUT_REGISTER_COUNT = 32; -cpp_quote( "#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )" ) -cpp_quote( "#define D3D12_FLOAT32_MAX ( 3.402823466e+38f )" ) -cpp_quote( "#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )" ) -cpp_quote( "#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f )" ) -cpp_quote( "#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f )" ) -cpp_quote( "#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f )" ) -cpp_quote( "#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f )" ) -cpp_quote( "#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f )" ) -cpp_quote( "#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f )" ) -cpp_quote( "#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f )" ) -cpp_quote( "#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f )" ) -cpp_quote( "#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f )" ) -cpp_quote( "#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f )" ) -const UINT D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST = 2; -const UINT D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS = 1; -const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = 1; -const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = 1; -const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1; -const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1; -const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2; -const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1; -const UINT D3D12_GS_INPUT_REGISTER_COMPONENTS = 4; -const UINT D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_GS_INPUT_REGISTER_COUNT = 32; -const UINT D3D12_GS_INPUT_REGISTER_READS_PER_INST = 2; -const UINT D3D12_GS_INPUT_REGISTER_READ_PORTS = 1; -const UINT D3D12_GS_INPUT_REGISTER_VERTICES = 32; -const UINT D3D12_GS_MAX_INSTANCE_COUNT = 32; -const UINT D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = 1024; -const UINT D3D12_GS_OUTPUT_ELEMENTS = 32; -const UINT D3D12_GS_OUTPUT_REGISTER_COMPONENTS = 4; -const UINT D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_GS_OUTPUT_REGISTER_COUNT = 32; -const UINT D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = 32; -const UINT D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = 32; -const UINT D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS = 4; -const UINT D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST = 2; -const UINT D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS = 1; -const UINT D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xFFFFFFFF; -const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = 1; -const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = 1; -const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = 2; -const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = 1; -const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = 1; -const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = 1; -const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = 2; -const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = 1; -const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1; -const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1; -const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2; -const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1; -const UINT D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xFFFFFFFF; -cpp_quote( "#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f )" ) -cpp_quote( "#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f )" ) -const UINT D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968; -const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = 1; -const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = 1; -const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = 2; -const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = 1; -const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4; -const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = 32; -const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2; -const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1; -const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS = 128; -const UINT D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0; -const UINT D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0; -const UINT D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0; -const UINT D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1; -const UINT D3D12_IA_INSTANCE_ID_BIT_COUNT = 32; -const UINT D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32; -const UINT D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32; -const UINT D3D12_IA_PRIMITIVE_ID_BIT_COUNT = 32; -const UINT D3D12_IA_VERTEX_ID_BIT_COUNT = 32; -const UINT D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; -const UINT D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128; -const UINT D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32; -const UINT D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff; -const UINT D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff; -const UINT D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = 0xffffffff; -const UINT D3D12_KEEP_UNORDERED_ACCESS_VIEWS = 0xffffffff; -cpp_quote( "#define D3D12_LINEAR_GAMMA ( 1.0f )" ) -const UINT D3D12_MAJOR_VERSION = 12; -cpp_quote( "#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f )" ) -cpp_quote( "#define D3D12_MAX_DEPTH ( 1.0f )" ) -const UINT D3D12_MAX_LIVE_STATIC_SAMPLERS = 2032; -const UINT D3D12_MAX_MAXANISOTROPY = 16; -const UINT D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT = 32; -cpp_quote( "#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f )" ) -const UINT D3D12_MAX_ROOT_COST = 64; -const UINT D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 = 1000000; -const UINT D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 = 1000000; -const UINT D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE = 2048; -const UINT D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17; -const UINT D3D12_MAX_VIEW_INSTANCE_COUNT = 4; -const UINT D3D12_MINOR_VERSION = 0; -cpp_quote( "#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f )" ) -cpp_quote( "#define D3D12_MIN_DEPTH ( 0.0f )" ) -const UINT D3D12_MIN_MAXANISOTROPY = 0; -cpp_quote( "#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f )" ) -cpp_quote( "#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f )" ) -const UINT D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT = 8; -const UINT D3D12_MIP_LOD_RANGE_BIT_COUNT = 8; -cpp_quote( "#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )" ) -const UINT D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0; -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_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; -const UINT D3D12_PS_CS_UAV_REGISTER_READS_PER_INST = 1; -const UINT D3D12_PS_CS_UAV_REGISTER_READ_PORTS = 1; -const UINT D3D12_PS_FRONTFACING_DEFAULT_VALUE = 0xFFFFFFFF; -const UINT D3D12_PS_FRONTFACING_FALSE_VALUE = 0x00000000; -const UINT D3D12_PS_FRONTFACING_TRUE_VALUE = 0xFFFFFFFF; -const UINT D3D12_PS_INPUT_REGISTER_COMPONENTS = 4; -const UINT D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_PS_INPUT_REGISTER_COUNT = 32; -const UINT D3D12_PS_INPUT_REGISTER_READS_PER_INST = 2; -const UINT D3D12_PS_INPUT_REGISTER_READ_PORTS = 1; -cpp_quote( "#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )" ) -const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1; -const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1; -const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1; -const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COUNT = 1; -const UINT D3D12_PS_OUTPUT_REGISTER_COMPONENTS = 4; -const UINT D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_PS_OUTPUT_REGISTER_COUNT = 8; -cpp_quote( "#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )" ) -const UINT D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT = 16; -const UINT D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT = 8; -const UINT D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT = 256; -const UINT D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT = 16; -const UINT D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES = 32; -const UINT D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH = 31; -const UINT D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE = 16777216; -const UINT D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE = 16777216; -const UINT D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE = 536870912; -const UINT D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS = 1073741824; -const UINT D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE = 4096; -const UINT D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT = 32; -const UINT D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT = 64; -const UINT D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT = 16; -const UINT D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = 4096; -const UINT D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27; -const UINT D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; -const UINT D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096; -const UINT D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32; -const UINT D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32; -const UINT D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384; -const UINT D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024; -const UINT D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; -const UINT D3D12_REQ_MAXANISOTROPY = 16; -const UINT D3D12_REQ_MIP_LEVELS = 15; -const UINT D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048; -const UINT D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096; -const UINT D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 16384; -const UINT D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128; -cpp_quote( "#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )" ) -const UINT D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM = 2048; -const UINT D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20; -const UINT D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = 4096; -const UINT D3D12_REQ_SUBRESOURCES = 30720; -const UINT D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048; -const UINT D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384; -const UINT D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048; -const UINT D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384; -const UINT D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048; -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_SHADER_IDENTIFIER_SIZE_IN_BYTES = 32; -const UINT D3D12_SHADER_MAJOR_VERSION = 5; -const UINT D3D12_SHADER_MAX_INSTANCES = 65535; -const UINT D3D12_SHADER_MAX_INTERFACES = 253; -const UINT D3D12_SHADER_MAX_INTERFACE_CALL_SITES = 4096; -const UINT D3D12_SHADER_MAX_TYPES = 65535; -const UINT D3D12_SHADER_MINOR_VERSION = 1; -const UINT D3D12_SHIFT_INSTRUCTION_PAD_VALUE = 0; -const UINT D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5; -const UINT D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; -const UINT D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 65536; -const UINT D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT = 4096; -const UINT D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048; -const UINT D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 512; -const UINT D3D12_SO_BUFFER_SLOT_COUNT = 4; -const UINT D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff; -const UINT D3D12_SO_NO_RASTERIZED_STREAM = 0xffffffff; -const UINT D3D12_SO_OUTPUT_COMPONENT_COUNT = 128; -const UINT D3D12_SO_STREAM_COUNT = 4; -const UINT D3D12_SPEC_DATE_DAY = 14; -const UINT D3D12_SPEC_DATE_MONTH = 11; -const UINT D3D12_SPEC_DATE_YEAR = 2014; -cpp_quote( "#define D3D12_SPEC_VERSION ( 1.16 )" ) -cpp_quote( "#define D3D12_SRGB_GAMMA ( 2.2f )" ) -cpp_quote( "#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )" ) -cpp_quote( "#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )" ) -cpp_quote( "#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )" ) -cpp_quote( "#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )" ) -cpp_quote( "#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )" ) -cpp_quote( "#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )" ) -const UINT D3D12_STANDARD_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64; -const UINT D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4; -const UINT D3D12_STANDARD_PIXEL_COMPONENT_COUNT = 128; -const UINT D3D12_STANDARD_PIXEL_ELEMENT_COUNT = 32; -const UINT D3D12_STANDARD_VECTOR_SIZE = 4; -const UINT D3D12_STANDARD_VERTEX_ELEMENT_COUNT = 32; -const UINT D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64; -const UINT D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8; -const UINT D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT = 8; -const UINT D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff; -const UINT D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff0; -const UINT D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = 64; -const UINT D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = 64; -const UINT D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = 63; -const UINT D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR = 64; -const UINT D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = 2; -const UINT D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = 1; -const UINT D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = 1; -const UINT D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT = 16; -const UINT D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256; -const UINT D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512; -const UINT D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES = 65536; -const UINT D3D12_TRACKED_WORKLOAD_MAX_INSTANCES = 32; -const UINT D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT = 4096; -const UINT D3D12_UAV_SLOT_COUNT = 64; -const UINT D3D12_UNBOUND_MEMORY_ACCESS_RESULT = 0; -const UINT D3D12_VIDEO_DECODE_MAX_ARGUMENTS = 10; -const UINT D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS = 4; -const UINT D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT = 256; -const UINT D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT = 256; -const UINT D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN = 0xffffffff; -const UINT D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX = 0xFF; -const UINT D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS = 64; -const UINT D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS = 64; -const UINT D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN = 9; -const UINT D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM = 8; -const UINT D3D12_VIDEO_PROCESS_MAX_FILTERS = 32; -const UINT D3D12_VIDEO_PROCESS_STEREO_VIEWS = 2; -const UINT D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15; -const UINT D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16; -const UINT D3D12_VIEWPORT_BOUNDS_MAX = 32767; -const INT D3D12_VIEWPORT_BOUNDS_MIN = -32768; -const UINT D3D12_VS_INPUT_REGISTER_COMPONENTS = 4; -const UINT D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_VS_INPUT_REGISTER_COUNT = 32; -const UINT D3D12_VS_INPUT_REGISTER_READS_PER_INST = 2; -const UINT D3D12_VS_INPUT_REGISTER_READ_PORTS = 1; -const UINT D3D12_VS_OUTPUT_REGISTER_COMPONENTS = 4; -const UINT D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const UINT D3D12_VS_OUTPUT_REGISTER_COUNT = 32; -const UINT D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10; -const UINT D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25; -const UINT D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25; -const UINT D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES = 8; -const UINT D3D12_WORK_GRAPHS_MAX_NODE_DEPTH = 32; -cpp_quote( "#endif" ) - - -// Forward declarations -interface ID3D12CommandQueue; - - -typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; - -typedef enum D3D12_COMMAND_LIST_TYPE -{ - D3D12_COMMAND_LIST_TYPE_DIRECT = 0, - D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, - D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, - D3D12_COMMAND_LIST_TYPE_COPY = 3, - D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4, - D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5, - D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6, - - D3D12_COMMAND_LIST_TYPE_NONE = -1, - -} D3D12_COMMAND_LIST_TYPE; - -typedef enum D3D12_COMMAND_QUEUE_FLAGS -{ - D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0, - D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1, -} D3D12_COMMAND_QUEUE_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS )" ) - -typedef enum D3D12_COMMAND_QUEUE_PRIORITY -{ - D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, - D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100, - D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000 -} D3D12_COMMAND_QUEUE_PRIORITY; - -typedef struct D3D12_COMMAND_QUEUE_DESC -{ - D3D12_COMMAND_LIST_TYPE Type; - INT Priority; - D3D12_COMMAND_QUEUE_FLAGS Flags; - UINT NodeMask; -} D3D12_COMMAND_QUEUE_DESC; - -typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE -{ - D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 -} D3D12_PRIMITIVE_TOPOLOGY_TYPE; - -typedef enum D3D12_INPUT_CLASSIFICATION -{ - D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, - D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 -} D3D12_INPUT_CLASSIFICATION; - -typedef struct D3D12_INPUT_ELEMENT_DESC -{ - LPCSTR SemanticName; - UINT SemanticIndex; - DXGI_FORMAT Format; - UINT InputSlot; - UINT AlignedByteOffset; - D3D12_INPUT_CLASSIFICATION InputSlotClass; - UINT InstanceDataStepRate; -} D3D12_INPUT_ELEMENT_DESC; - -// Keep FILL_MODE values in sync with earlier DX versions (HW consumes values directly). -typedef enum D3D12_FILL_MODE -{ - // 1 was POINT in D3D, unused in D3D12 - D3D12_FILL_MODE_WIREFRAME = 2, - D3D12_FILL_MODE_SOLID = 3 -} D3D12_FILL_MODE; - -typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; - -typedef D3D_PRIMITIVE D3D12_PRIMITIVE; - -// Keep CULL_MODE values in sync with earlier DX versions (HW consumes values directly). -typedef enum D3D12_CULL_MODE -{ - D3D12_CULL_MODE_NONE = 1, - D3D12_CULL_MODE_FRONT = 2, - D3D12_CULL_MODE_BACK = 3 -} D3D12_CULL_MODE; - -typedef struct D3D12_SO_DECLARATION_ENTRY -{ - UINT Stream; - LPCSTR SemanticName; - UINT SemanticIndex; - BYTE StartComponent; - BYTE ComponentCount; - BYTE OutputSlot; -} D3D12_SO_DECLARATION_ENTRY; - -typedef struct D3D12_VIEWPORT -{ - FLOAT TopLeftX; - FLOAT TopLeftY; - FLOAT Width; - FLOAT Height; - FLOAT MinDepth; - FLOAT MaxDepth; -} D3D12_VIEWPORT; - - -typedef RECT D3D12_RECT; - - -typedef struct D3D12_BOX -{ - UINT left; - UINT top; - UINT front; - UINT right; - UINT bottom; - UINT back; -} D3D12_BOX; - - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// -// Depth-Stencil State -// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -// Keep COMPARISON_FUNC values in sync with earlier DX versions (HW consumes values directly). -typedef enum D3D12_COMPARISON_FUNC -{ - D3D12_COMPARISON_FUNC_NONE = 0, - D3D12_COMPARISON_FUNC_NEVER = 1, - D3D12_COMPARISON_FUNC_LESS = 2, - D3D12_COMPARISON_FUNC_EQUAL = 3, - D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, - D3D12_COMPARISON_FUNC_GREATER = 5, - D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, - D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, - D3D12_COMPARISON_FUNC_ALWAYS = 8 -} D3D12_COMPARISON_FUNC; - -typedef enum D3D12_DEPTH_WRITE_MASK -{ - D3D12_DEPTH_WRITE_MASK_ZERO = 0, - D3D12_DEPTH_WRITE_MASK_ALL = 1 -} D3D12_DEPTH_WRITE_MASK; - -// Keep STENCILOP values in sync with earlier DX versions (HW consumes values directly). -typedef enum D3D12_STENCIL_OP -{ - D3D12_STENCIL_OP_KEEP = 1, - D3D12_STENCIL_OP_ZERO = 2, - D3D12_STENCIL_OP_REPLACE = 3, - D3D12_STENCIL_OP_INCR_SAT = 4, - D3D12_STENCIL_OP_DECR_SAT = 5, - D3D12_STENCIL_OP_INVERT = 6, - D3D12_STENCIL_OP_INCR = 7, - D3D12_STENCIL_OP_DECR = 8 -} D3D12_STENCIL_OP; - -typedef struct D3D12_DEPTH_STENCILOP_DESC -{ - D3D12_STENCIL_OP StencilFailOp; - D3D12_STENCIL_OP StencilDepthFailOp; - D3D12_STENCIL_OP StencilPassOp; - D3D12_COMPARISON_FUNC StencilFunc; -} D3D12_DEPTH_STENCILOP_DESC; - -typedef struct D3D12_DEPTH_STENCIL_DESC -{ - BOOL DepthEnable; - D3D12_DEPTH_WRITE_MASK DepthWriteMask; - D3D12_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; - D3D12_DEPTH_STENCILOP_DESC FrontFace; - D3D12_DEPTH_STENCILOP_DESC BackFace; -} D3D12_DEPTH_STENCIL_DESC; - -typedef struct D3D12_DEPTH_STENCIL_DESC1 -{ - BOOL DepthEnable; - D3D12_DEPTH_WRITE_MASK DepthWriteMask; - D3D12_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; - D3D12_DEPTH_STENCILOP_DESC FrontFace; - D3D12_DEPTH_STENCILOP_DESC BackFace; - BOOL DepthBoundsTestEnable; -} D3D12_DEPTH_STENCIL_DESC1; - -// Front/back face independent stencil masks -typedef struct D3D12_DEPTH_STENCILOP_DESC1 -{ - D3D12_STENCIL_OP StencilFailOp; - D3D12_STENCIL_OP StencilDepthFailOp; - D3D12_STENCIL_OP StencilPassOp; - D3D12_COMPARISON_FUNC StencilFunc; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; -} D3D12_DEPTH_STENCILOP_DESC1; - -typedef struct D3D12_DEPTH_STENCIL_DESC2 -{ - BOOL DepthEnable; - D3D12_DEPTH_WRITE_MASK DepthWriteMask; - D3D12_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - D3D12_DEPTH_STENCILOP_DESC1 FrontFace; - D3D12_DEPTH_STENCILOP_DESC1 BackFace; - BOOL DepthBoundsTestEnable; -} D3D12_DEPTH_STENCIL_DESC2; - - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// -// Blend State -// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -// Keep BLEND values in sync with earlier DX versions (HW consumes values directly). -typedef enum D3D12_BLEND -{ - D3D12_BLEND_ZERO = 1, - D3D12_BLEND_ONE = 2, - D3D12_BLEND_SRC_COLOR = 3, // PS output oN.rgb (N is current RT being blended) - D3D12_BLEND_INV_SRC_COLOR = 4, // 1.0f - PS output oN.rgb - D3D12_BLEND_SRC_ALPHA = 5, // PS output oN.a - D3D12_BLEND_INV_SRC_ALPHA = 6, // 1.0f - PS output oN.a - D3D12_BLEND_DEST_ALPHA = 7, // RT(N).a (N is current RT being blended) - D3D12_BLEND_INV_DEST_ALPHA = 8, // 1.0f - RT(N).a - D3D12_BLEND_DEST_COLOR = 9, // RT(N).rgb - D3D12_BLEND_INV_DEST_COLOR = 10,// 1.0f - RT(N).rgb - D3D12_BLEND_SRC_ALPHA_SAT = 11,// (f,f,f,1), f = min(1 - RT(N).a, oN.a) - // 12 reserved (was BOTHSRCALPHA) - // 13 reserved (was BOTHSRCALPHA) - D3D12_BLEND_BLEND_FACTOR = 14, - D3D12_BLEND_INV_BLEND_FACTOR = 15, - D3D12_BLEND_SRC1_COLOR = 16, // PS output o1.rgb - D3D12_BLEND_INV_SRC1_COLOR = 17, // 1.0f - PS output o1.rgb - D3D12_BLEND_SRC1_ALPHA = 18, // PS output o1.a - D3D12_BLEND_INV_SRC1_ALPHA = 19, // 1.0f - PS output o1.a - D3D12_BLEND_ALPHA_FACTOR = 20, - D3D12_BLEND_INV_ALPHA_FACTOR = 21 -} D3D12_BLEND; - -// Keep BLENDOP values in sync with earlier DX versions (HW consumes values directly). -typedef enum D3D12_BLEND_OP -{ - D3D12_BLEND_OP_ADD = 1, - D3D12_BLEND_OP_SUBTRACT = 2, - D3D12_BLEND_OP_REV_SUBTRACT = 3, - D3D12_BLEND_OP_MIN = 4, // min semantics are like min shader instruction - D3D12_BLEND_OP_MAX = 5, // max semantics are like max shader instruction -} D3D12_BLEND_OP; - -typedef enum D3D12_COLOR_WRITE_ENABLE -{ - D3D12_COLOR_WRITE_ENABLE_RED = 1, - D3D12_COLOR_WRITE_ENABLE_GREEN = 2, - D3D12_COLOR_WRITE_ENABLE_BLUE = 4, - D3D12_COLOR_WRITE_ENABLE_ALPHA = 8, - D3D12_COLOR_WRITE_ENABLE_ALL = (D3D12_COLOR_WRITE_ENABLE_RED|D3D12_COLOR_WRITE_ENABLE_GREEN| - D3D12_COLOR_WRITE_ENABLE_BLUE|D3D12_COLOR_WRITE_ENABLE_ALPHA), -} D3D12_COLOR_WRITE_ENABLE; - -typedef enum D3D12_LOGIC_OP -{ - // Operation: - // (s == PS output, d = RTV contents) - D3D12_LOGIC_OP_CLEAR = 0, // 0 - D3D12_LOGIC_OP_SET, // 1 - D3D12_LOGIC_OP_COPY, // s - D3D12_LOGIC_OP_COPY_INVERTED, // ~s - D3D12_LOGIC_OP_NOOP, // d - D3D12_LOGIC_OP_INVERT, // ~d - D3D12_LOGIC_OP_AND, // s & d - D3D12_LOGIC_OP_NAND, // ~(s & d) - D3D12_LOGIC_OP_OR, // s | d - D3D12_LOGIC_OP_NOR, // ~(s | d) - D3D12_LOGIC_OP_XOR, // s ^ d - D3D12_LOGIC_OP_EQUIV, // ~(s ^ d) - D3D12_LOGIC_OP_AND_REVERSE, // s & ~d - D3D12_LOGIC_OP_AND_INVERTED, // ~s & d - D3D12_LOGIC_OP_OR_REVERSE, // s | ~d - D3D12_LOGIC_OP_OR_INVERTED, // ~s | d -} D3D12_LOGIC_OP; - -typedef struct D3D12_RENDER_TARGET_BLEND_DESC -{ - BOOL BlendEnable; - BOOL LogicOpEnable; // LogicOpEnable and BlendEnable can't both be true - D3D12_BLEND SrcBlend; - D3D12_BLEND DestBlend; - D3D12_BLEND_OP BlendOp; - D3D12_BLEND SrcBlendAlpha; - D3D12_BLEND DestBlendAlpha; - D3D12_BLEND_OP BlendOpAlpha; - D3D12_LOGIC_OP LogicOp; // applies to RGBA - UINT8 RenderTargetWriteMask; // D3D12_COLOR_WRITE_ENABLE -} D3D12_RENDER_TARGET_BLEND_DESC; - -typedef struct D3D12_BLEND_DESC -{ - BOOL AlphaToCoverageEnable; // relevant to multisample antialiasing only - BOOL IndependentBlendEnable; // if FALSE, then replicate the first entry in RenderTarget array to other entries - D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT]; -} D3D12_BLEND_DESC; - -cpp_quote( "/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT. ") -cpp_quote( " IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */" ) - - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// -// Rasterizer State -// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE -{ - D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, // Default - D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1, -} D3D12_CONSERVATIVE_RASTERIZATION_MODE; - -typedef struct D3D12_RASTERIZER_DESC -{ - D3D12_FILL_MODE FillMode; - D3D12_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - INT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - UINT ForcedSampleCount; - D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; -} D3D12_RASTERIZER_DESC; - -typedef struct D3D12_RASTERIZER_DESC1 -{ - D3D12_FILL_MODE FillMode; - D3D12_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - FLOAT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - UINT ForcedSampleCount; - D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; -} D3D12_RASTERIZER_DESC1; - -typedef enum D3D12_LINE_RASTERIZATION_MODE -{ - D3D12_LINE_RASTERIZATION_MODE_ALIASED, - D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED, - D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE, - D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW, -} D3D12_LINE_RASTERIZATION_MODE; - -typedef struct D3D12_RASTERIZER_DESC2 -{ - D3D12_FILL_MODE FillMode; - D3D12_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - FLOAT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode; - UINT ForcedSampleCount; - D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; -} D3D12_RASTERIZER_DESC2; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// -// Pipeline State v1 -// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -[ uuid( c54a6b66-72df-4ee8-8be5-a946a1429214 ), object, local, pointer_default( unique ) ] -interface ID3D12RootSignature - : ID3D12DeviceChild -{ -} - -typedef struct D3D12_SHADER_BYTECODE -{ - [annotation("_Field_size_bytes_full_(BytecodeLength)")] const void* pShaderBytecode; - SIZE_T BytecodeLength; -} D3D12_SHADER_BYTECODE; - -typedef struct D3D12_STREAM_OUTPUT_DESC -{ - [annotation("_Field_size_full_(NumEntries)")] const D3D12_SO_DECLARATION_ENTRY* pSODeclaration; - UINT NumEntries; - [annotation("_Field_size_full_(NumStrides)")] const UINT* pBufferStrides; - UINT NumStrides; - UINT RasterizedStream; -} D3D12_STREAM_OUTPUT_DESC; - -typedef struct D3D12_INPUT_LAYOUT_DESC -{ - [annotation("_Field_size_full_(NumElements)")] const D3D12_INPUT_ELEMENT_DESC* pInputElementDescs; - UINT NumElements; -} D3D12_INPUT_LAYOUT_DESC; - -typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE -{ - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 -} D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; - -typedef enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS -{ - D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, - D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe -} D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS; - -typedef struct D3D12_CACHED_PIPELINE_STATE -{ - [annotation("_Field_size_bytes_full_(CachedBlobSizeInBytes)")] const void* pCachedBlob; - SIZE_T CachedBlobSizeInBytes; -} D3D12_CACHED_PIPELINE_STATE; - -typedef enum D3D12_PIPELINE_STATE_FLAGS -{ - D3D12_PIPELINE_STATE_FLAG_NONE = 0x0, - D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1, - D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4, - D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8, - -} D3D12_PIPELINE_STATE_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS )" ) - -typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC -{ - ID3D12RootSignature* pRootSignature; - D3D12_SHADER_BYTECODE VS; - D3D12_SHADER_BYTECODE PS; - D3D12_SHADER_BYTECODE DS; - D3D12_SHADER_BYTECODE HS; - D3D12_SHADER_BYTECODE GS; - D3D12_STREAM_OUTPUT_DESC StreamOutput; - D3D12_BLEND_DESC BlendState; - UINT SampleMask; - D3D12_RASTERIZER_DESC RasterizerState; - D3D12_DEPTH_STENCIL_DESC DepthStencilState; - D3D12_INPUT_LAYOUT_DESC InputLayout; - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; - D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; - UINT NumRenderTargets; - DXGI_FORMAT RTVFormats[ D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ]; - DXGI_FORMAT DSVFormat; - DXGI_SAMPLE_DESC SampleDesc; - UINT NodeMask; - D3D12_CACHED_PIPELINE_STATE CachedPSO; - D3D12_PIPELINE_STATE_FLAGS Flags; -} D3D12_GRAPHICS_PIPELINE_STATE_DESC; - -typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC -{ - ID3D12RootSignature* pRootSignature; - D3D12_SHADER_BYTECODE CS; - UINT NodeMask; - D3D12_CACHED_PIPELINE_STATE CachedPSO; - D3D12_PIPELINE_STATE_FLAGS Flags; -} D3D12_COMPUTE_PIPELINE_STATE_DESC; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// -// Pipeline State v2 -// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -struct D3D12_RT_FORMAT_ARRAY -{ - DXGI_FORMAT RTFormats[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT]; - UINT NumRenderTargets; -}; - -typedef struct D3D12_PIPELINE_STATE_STREAM_DESC -{ - [annotation("_In_")] SIZE_T SizeInBytes; - [annotation("_In_reads_(_Inexpressible_(\"Dependent on size of subobjects\"))")] void* pPipelineStateSubobjectStream; -} D3D12_PIPELINE_STATE_STREAM_DESC; - -typedef enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE -{ - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE, // ID3D12RootSignature* - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS, // D3D12_SHADER_BYTECODE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS, // D3D12_SHADER_BYTECODE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS, // D3D12_SHADER_BYTECODE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS, // D3D12_SHADER_BYTECODE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS, // D3D12_SHADER_BYTECODE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS, // D3D12_SHADER_BYTECODE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT, // D3D12_STREAM_OUTPUT_DESC - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND, // D3D12_BLEND_DESC - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK, // UINT - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER, // D3D12_RASTERIZER_DESC - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL, // D3D12_DEPTH_STENCIL_DESC - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT, // D3D12_INPUT_LAYOUT_DESC - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE, // D3D12_INDEX_BUFFER_STRIP_CUT_VALUE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY, // D3D12_PRIMITIVE_TOPOLOGY_TYPE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS, // D3D12_RT_FORMAT_ARRAY - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT, // DXGI_FORMAT - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC, // DXGI_SAMPLE_DESC - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK, // UINT - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO, // D3D12_CACHED_PIPELINE_STATE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS, // D3D12_PIPELINE_STATE_FLAGS - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1, // D3D12_DEPTH_STENCIL_DESC1 - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING, // D3D12_VIEW_INSTANCING_DESC - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24, // D3D12_SHADER_BYTECODE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25, // D3D12_SHADER_BYTECODE - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26, // D3D12_DEPTH_STENCIL_DESC2 - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27, // D3D12_RASTERIZER_DESC1 - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28, // D3D12_RASTERIZER_DESC2 - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID, -} D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// -// D3D12 Caps -// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -typedef enum D3D12_FEATURE -{ - D3D12_FEATURE_D3D12_OPTIONS = 0, - D3D12_FEATURE_ARCHITECTURE = 1, // Deprecated by D3D12_FEATURE_ARCHITECTURE1 - D3D12_FEATURE_FEATURE_LEVELS = 2, - D3D12_FEATURE_FORMAT_SUPPORT = 3, - D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4, - D3D12_FEATURE_FORMAT_INFO = 5, - D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6, - D3D12_FEATURE_SHADER_MODEL = 7, - D3D12_FEATURE_D3D12_OPTIONS1 = 8, - D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10, - D3D12_FEATURE_ROOT_SIGNATURE = 12, - D3D12_FEATURE_ARCHITECTURE1 = 16, - D3D12_FEATURE_D3D12_OPTIONS2 = 18, - D3D12_FEATURE_SHADER_CACHE = 19, - D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20, - D3D12_FEATURE_D3D12_OPTIONS3 = 21, - D3D12_FEATURE_EXISTING_HEAPS = 22, - D3D12_FEATURE_D3D12_OPTIONS4 = 23, - D3D12_FEATURE_SERIALIZATION = 24, - D3D12_FEATURE_CROSS_NODE = 25, - D3D12_FEATURE_D3D12_OPTIONS5 = 27, - D3D12_FEATURE_DISPLAYABLE = 28, - D3D12_FEATURE_D3D12_OPTIONS6 = 30, - D3D12_FEATURE_QUERY_META_COMMAND = 31, - D3D12_FEATURE_D3D12_OPTIONS7 = 32, - D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33, - D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34, - D3D12_FEATURE_D3D12_OPTIONS8 = 36, - D3D12_FEATURE_D3D12_OPTIONS9 = 37, - D3D12_FEATURE_D3D12_OPTIONS10 = 39, - D3D12_FEATURE_D3D12_OPTIONS11 = 40, - D3D12_FEATURE_D3D12_OPTIONS12 = 41, - D3D12_FEATURE_D3D12_OPTIONS13 = 42, - D3D12_FEATURE_D3D12_OPTIONS14 = 43, - D3D12_FEATURE_D3D12_OPTIONS15 = 44, - D3D12_FEATURE_D3D12_OPTIONS16 = 45, - D3D12_FEATURE_D3D12_OPTIONS17 = 46, - D3D12_FEATURE_D3D12_OPTIONS18 = 47, - D3D12_FEATURE_D3D12_OPTIONS19 = 48, - D3D12_FEATURE_D3D12_OPTIONS20 = 49, - D3D12_FEATURE_PREDICATION = 50, - D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, - D3D12_FEATURE_HARDWARE_COPY = 52, - D3D12_FEATURE_D3D12_OPTIONS21 = 53, -} D3D12_FEATURE; - -typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT -{ - D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0, - D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, - D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 -} D3D12_SHADER_MIN_PRECISION_SUPPORT; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT )" ) - -typedef enum D3D12_TILED_RESOURCES_TIER -{ - D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, - D3D12_TILED_RESOURCES_TIER_1 = 1, - D3D12_TILED_RESOURCES_TIER_2 = 2, - D3D12_TILED_RESOURCES_TIER_3 = 3, - D3D12_TILED_RESOURCES_TIER_4 = 4, -} D3D12_TILED_RESOURCES_TIER; - -typedef enum D3D12_RESOURCE_BINDING_TIER -{ - D3D12_RESOURCE_BINDING_TIER_1 = 1, - D3D12_RESOURCE_BINDING_TIER_2 = 2, - D3D12_RESOURCE_BINDING_TIER_3 = 3, -} D3D12_RESOURCE_BINDING_TIER; - -typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER { - D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3, -} D3D12_CONSERVATIVE_RASTERIZATION_TIER; - - -typedef enum D3D12_FORMAT_SUPPORT1 -{ - D3D12_FORMAT_SUPPORT1_NONE = 0, - D3D12_FORMAT_SUPPORT1_BUFFER = 0x00000001, - D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x00000002, - D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x00000004, - D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x00000008, - D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x00000010, - D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x00000020, - D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x00000040, - D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x00000080, - D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x00000100, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x00000200, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x00000400, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x00000800, - D3D12_FORMAT_SUPPORT1_MIP = 0x00001000, - D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x00004000, - D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x00008000, - D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x00010000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x00040000, - D3D12_FORMAT_SUPPORT1_DISPLAY = 0x00080000, - D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x00100000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x00200000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x00400000, - D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x00800000, - D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x01000000, - D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x02000000, - D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x04000000, - D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x08000000, - D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, - D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, - D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000, -} D3D12_FORMAT_SUPPORT1; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 )" ) - -typedef enum D3D12_FORMAT_SUPPORT2 -{ - D3D12_FORMAT_SUPPORT2_NONE = 0, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x00000001, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x00000002, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x00000004, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x00000008, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x00000010, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x00000020, - D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x00000040, - D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x00000080, - D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x00000100, - D3D12_FORMAT_SUPPORT2_TILED = 0x00000200, - D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x00004000, - D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x00008000, -} D3D12_FORMAT_SUPPORT2; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 )" ) - -typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS -{ - D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0, - D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x00000001, -} D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS )" ) - -typedef enum D3D12_CROSS_NODE_SHARING_TIER -{ - D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, - D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, - D3D12_CROSS_NODE_SHARING_TIER_1 = 2, - D3D12_CROSS_NODE_SHARING_TIER_2 = 3, - D3D12_CROSS_NODE_SHARING_TIER_3 = 4, -} D3D12_CROSS_NODE_SHARING_TIER; - -typedef enum D3D12_RESOURCE_HEAP_TIER -{ - D3D12_RESOURCE_HEAP_TIER_1 = 1, - D3D12_RESOURCE_HEAP_TIER_2 = 2, -} D3D12_RESOURCE_HEAP_TIER; - -typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER -{ - D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0, - D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1, - D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2, -} D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER; - -typedef enum D3D12_VIEW_INSTANCING_TIER -{ - D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0, - D3D12_VIEW_INSTANCING_TIER_1 = 1, - D3D12_VIEW_INSTANCING_TIER_2 = 2, - D3D12_VIEW_INSTANCING_TIER_3 = 3, -} D3D12_VIEW_INSTANCING_TIER; - -typedef 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 -{ - [annotation("_Out_")] BOOL DoublePrecisionFloatShaderOps; - [annotation("_Out_")] BOOL OutputMergerLogicOp; - [annotation("_Out_")] D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; - [annotation("_Out_")] D3D12_TILED_RESOURCES_TIER TiledResourcesTier; - [annotation("_Out_")] D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; - [annotation("_Out_")] BOOL PSSpecifiedStencilRefSupported; - [annotation("_Out_")] BOOL TypedUAVLoadAdditionalFormats; - [annotation("_Out_")] BOOL ROVsSupported; - [annotation("_Out_")] D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; - [annotation("_Out_")] UINT MaxGPUVirtualAddressBitsPerResource; - [annotation("_Out_")] BOOL StandardSwizzle64KBSupported; - [annotation("_Out_")] D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; - [annotation("_Out_")] BOOL CrossAdapterRowMajorTextureSupported; - [annotation("_Out_")] BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; - [annotation("_Out_")] D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; -} D3D12_FEATURE_DATA_D3D12_OPTIONS; - -// D3D12_FEATURE_D3D12_OPTIONS1 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 -{ - [annotation("_Out_")] BOOL WaveOps; - [annotation("_Out_")] UINT WaveLaneCountMin; - [annotation("_Out_")] UINT WaveLaneCountMax; - [annotation("_Out_")] UINT TotalLaneCount; - [annotation("_Out_")] BOOL ExpandedComputeResourceStates; - [annotation("_Out_")] BOOL Int64ShaderOps; -} D3D12_FEATURE_DATA_D3D12_OPTIONS1; - -// D3D12_FEATURE_D3D12_OPTIONS2 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 -{ - [annotation("_Out_")] BOOL DepthBoundsTestSupported; - [annotation("_Out_")] D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; -} D3D12_FEATURE_DATA_D3D12_OPTIONS2; - -// D3D12_FEATURE_ROOT_SIGNATURE -typedef enum D3D_ROOT_SIGNATURE_VERSION -{ - D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, - D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, - D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, - D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3, -} D3D_ROOT_SIGNATURE_VERSION; - -typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE -{ - [annotation("_Inout_")] D3D_ROOT_SIGNATURE_VERSION HighestVersion; -} D3D12_FEATURE_DATA_ROOT_SIGNATURE; - -// D3D12_FEATURE_ARCHITECTURE -typedef struct D3D12_FEATURE_DATA_ARCHITECTURE // Deprecated by D3D12_FEATURE_DATA_ARCHITECTURE1 -{ - [annotation("_In_")] UINT NodeIndex; - [annotation("_Out_")] BOOL TileBasedRenderer; - [annotation("_Out_")] BOOL UMA; // Needed for applications to understand WRITE_COMBINE - [annotation("_Out_")] BOOL CacheCoherentUMA; // Only TRUE when UMA is also TRUE -} D3D12_FEATURE_DATA_ARCHITECTURE; - -// D3D12_FEATURE_ARCHITECTURE1 -typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 -{ - [annotation("_In_")] UINT NodeIndex; - [annotation("_Out_")] BOOL TileBasedRenderer; - [annotation("_Out_")] BOOL UMA; // Needed for applications to understand WRITE_COMBINE - [annotation("_Out_")] BOOL CacheCoherentUMA; // Only TRUE when UMA is also TRUE - [annotation("_Out_")] BOOL IsolatedMMU; // GPU accesses don't honor the same MMU functionality as the CPU -} D3D12_FEATURE_DATA_ARCHITECTURE1; - -// D3D12_FEATURE_FEATURE_LEVELS -typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS -{ - [annotation("_In_")] UINT NumFeatureLevels; - [annotation("_In_reads_(NumFeatureLevels)")] const D3D_FEATURE_LEVEL* pFeatureLevelsRequested; - [annotation("_Out_")] D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; -} D3D12_FEATURE_DATA_FEATURE_LEVELS; - -// D3D_SHADER_MODEL -typedef enum D3D_SHADER_MODEL -{ - D3D_SHADER_MODEL_NONE = 0x0, // e.g MCDM Generic devices - D3D_SHADER_MODEL_5_1 = 0x51, - D3D_SHADER_MODEL_6_0 = 0x60, - D3D_SHADER_MODEL_6_1 = 0x61, - D3D_SHADER_MODEL_6_2 = 0x62, - D3D_SHADER_MODEL_6_3 = 0x63, - D3D_SHADER_MODEL_6_4 = 0x64, - D3D_SHADER_MODEL_6_5 = 0x65, - D3D_SHADER_MODEL_6_6 = 0x66, - D3D_SHADER_MODEL_6_7 = 0x67, - D3D_SHADER_MODEL_6_8 = 0x68, - D3D_SHADER_MODEL_6_9 = 0x69, - D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9 -} D3D_SHADER_MODEL; - -typedef struct D3D12_FEATURE_DATA_SHADER_MODEL -{ - [annotation("_Inout_")] D3D_SHADER_MODEL HighestShaderModel; -} D3D12_FEATURE_DATA_SHADER_MODEL; - -// D3D12_FEATURE_FORMAT_SUPPORT -typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT -{ - [annotation("_In_")] DXGI_FORMAT Format; - [annotation("_Out_")] D3D12_FORMAT_SUPPORT1 Support1; - [annotation("_Out_")] D3D12_FORMAT_SUPPORT2 Support2; -} D3D12_FEATURE_DATA_FORMAT_SUPPORT; - -// D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS -typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS -{ - [annotation("_In_")] DXGI_FORMAT Format; - [annotation("_In_")] UINT SampleCount; - [annotation("_In_")] D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; - [annotation("_Out_")] UINT NumQualityLevels; -} D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; - -// D3D12_FEATURE_FORMAT_INFO -typedef struct D3D12_FEATURE_DATA_FORMAT_INFO -{ - DXGI_FORMAT Format; - UINT8 PlaneCount; -} D3D12_FEATURE_DATA_FORMAT_INFO; - -// D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT -typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT -{ - UINT MaxGPUVirtualAddressBitsPerResource; - UINT MaxGPUVirtualAddressBitsPerProcess; -} D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; - - -typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS -{ - D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0, - D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, // Always supported - D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2, - D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4, - D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8, - D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10, - D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20, - D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40 -} D3D12_SHADER_CACHE_SUPPORT_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS )" ) - -// D3D12_FEATURE_SHADER_CACHE -typedef struct D3D12_FEATURE_DATA_SHADER_CACHE -{ - [annotation("_Out_")] D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags; -} D3D12_FEATURE_DATA_SHADER_CACHE; - -// D3D12_FEATURE_COMMAND_QUEUE_PRIORITY -typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY -{ - [annotation("_In_")] D3D12_COMMAND_LIST_TYPE CommandListType; - [annotation("_In_")] UINT Priority; - [annotation("_Out_")] BOOL PriorityForTypeIsSupported; -} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY; - -typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS -{ - D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x00000000, - D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 1 << D3D12_COMMAND_LIST_TYPE_DIRECT, - D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE, - D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE, - D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 1 << D3D12_COMMAND_LIST_TYPE_COPY, - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE, - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS, - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE, - -} D3D12_COMMAND_LIST_SUPPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS )") - -// D3D12_FEATURE_D3D12_OPTIONS3 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 -{ - [annotation("_Out_")] BOOL CopyQueueTimestampQueriesSupported; - [annotation("_Out_")] BOOL CastingFullyTypedFormatSupported; - [annotation("_Out_")] D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags; - [annotation("_Out_")] D3D12_VIEW_INSTANCING_TIER ViewInstancingTier; - [annotation("_Out_")] BOOL BarycentricsSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS3; - -// D3D12_FEATURE_EXISTING_HEAPS -typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS -{ - [annotation("_Out_")] BOOL Supported; -} D3D12_FEATURE_DATA_EXISTING_HEAPS; - -typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER -{ - D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0, - D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1, - D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2, -} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER; - -typedef struct D3D12_FEATURE_DATA_DISPLAYABLE -{ - [annotation("_Out_")] BOOL DisplayableTexture; - [annotation("_Out_")] D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; -} D3D12_FEATURE_DATA_DISPLAYABLE; - -// D3D12_FEATURE_D3D12_OPTIONS4 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 -{ - [annotation("_Out_")] BOOL MSAA64KBAlignedTextureSupported; - [annotation("_Out_")] D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; - [annotation("_Out_")] BOOL Native16BitShaderOpsSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS4; - -typedef enum D3D12_HEAP_SERIALIZATION_TIER -{ - D3D12_HEAP_SERIALIZATION_TIER_0 = 0, - D3D12_HEAP_SERIALIZATION_TIER_10 = 10, -} D3D12_HEAP_SERIALIZATION_TIER; - -// D3D12_FEATURE_SERIALIZATION -typedef struct D3D12_FEATURE_DATA_SERIALIZATION -{ - [annotation("_In_")] UINT NodeIndex; - [annotation("_Out_")] D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier; -} D3D12_FEATURE_DATA_SERIALIZATION; - -// D3D12_FEATURE_CROSS_NODE -typedef struct D3D12_FEATURE_DATA_CROSS_NODE -{ - D3D12_CROSS_NODE_SHARING_TIER SharingTier; - BOOL AtomicShaderInstructions; -} D3D12_FEATURE_DATA_CROSS_NODE; - - -typedef enum D3D12_RENDER_PASS_TIER -{ - D3D12_RENDER_PASS_TIER_0 = 0, - D3D12_RENDER_PASS_TIER_1 = 1, - D3D12_RENDER_PASS_TIER_2 = 2, - - -} D3D12_RENDER_PASS_TIER; - -typedef enum D3D12_RAYTRACING_TIER -{ - D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0, - D3D12_RAYTRACING_TIER_1_0 = 10, - D3D12_RAYTRACING_TIER_1_1 = 11, -} D3D12_RAYTRACING_TIER; - -// D3D12_FEATURE_D3D12_OPTIONS5 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 -{ - [annotation("_Out_")] BOOL SRVOnlyTiledResourceTier3; - [annotation("_Out_")] D3D12_RENDER_PASS_TIER RenderPassesTier; - [annotation("_Out_")] D3D12_RAYTRACING_TIER RaytracingTier; -} D3D12_FEATURE_DATA_D3D12_OPTIONS5; - -typedef enum D3D12_VARIABLE_SHADING_RATE_TIER -{ - D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0, - D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1, - D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2, -} D3D12_VARIABLE_SHADING_RATE_TIER; - -// D3D12_FEATURE_D3D12_OPTIONS6 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 -{ - [annotation("_Out_")] BOOL AdditionalShadingRatesSupported; - [annotation("_Out_")] BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing; - [annotation("_Out_")] D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier; - [annotation("_Out_")] UINT ShadingRateImageTileSize; - [annotation("_Out_")] BOOL BackgroundProcessingSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS6; - -typedef enum D3D12_MESH_SHADER_TIER -{ - D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0, - D3D12_MESH_SHADER_TIER_1 = 10, -} D3D12_MESH_SHADER_TIER; - -typedef enum D3D12_SAMPLER_FEEDBACK_TIER -{ - D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0, - D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90, - D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100 -} D3D12_SAMPLER_FEEDBACK_TIER; - -// D3D12_FEATURE_D3D12_OPTIONS7 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 -{ - [annotation("_Out_")] D3D12_MESH_SHADER_TIER MeshShaderTier; - [annotation("_Out_")] D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier; - -} D3D12_FEATURE_DATA_D3D12_OPTIONS7; - -typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND -{ - [annotation("_In_")] GUID CommandId; - [annotation("_In_")] UINT NodeMask; - [annotation("_Field_size_bytes_full_opt_( QueryInputDataSizeInBytes )")] const void* pQueryInputData; - [annotation("_In_")] SIZE_T QueryInputDataSizeInBytes; - [annotation("_Field_size_bytes_full_( QueryOutputDataSizeInBytes )")] void* pQueryOutputData; - [annotation("_In_")] SIZE_T QueryOutputDataSizeInBytes; -} D3D12_FEATURE_DATA_QUERY_META_COMMAND; - -// D3D12_FEATURE_D3D12_OPTIONS8 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 -{ - [annotation("_Out_")] BOOL UnalignedBlockTexturesSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS8; - -typedef enum D3D12_WAVE_MMA_TIER { - D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0, - D3D12_WAVE_MMA_TIER_1_0 = 10, -} D3D12_WAVE_MMA_TIER; - -// D3D12_FEATURE_D3D12_OPTIONS9 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 -{ - [annotation("_Out_")] BOOL MeshShaderPipelineStatsSupported; - [annotation("_Out_")] BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex; - [annotation("_Out_")] BOOL AtomicInt64OnTypedResourceSupported; - [annotation("_Out_")] BOOL AtomicInt64OnGroupSharedSupported; - [annotation("_Out_")] BOOL DerivativesInMeshAndAmplificationShadersSupported; - [annotation("_Out_")] D3D12_WAVE_MMA_TIER WaveMMATier; -} D3D12_FEATURE_DATA_D3D12_OPTIONS9; - -// D3D12_FEATURE_D3D12_OPTIONS10 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 -{ - [annotation("_Out_")] BOOL VariableRateShadingSumCombinerSupported; - [annotation("_Out_")] BOOL MeshShaderPerPrimitiveShadingRateSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS10; - -// D3D12_FEATURE_D3D12_OPTIONS11 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 -{ - [annotation("_Out_")] BOOL AtomicInt64OnDescriptorHeapResourceSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS11; - -typedef enum D3D12_TRI_STATE { - D3D12_TRI_STATE_UNKNOWN = -1, - D3D12_TRI_STATE_FALSE = 0, - D3D12_TRI_STATE_TRUE = 1, -} D3D12_TRI_STATE; - -// D3D12_FEATURE_D3D12_OPTIONS12 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 -{ - [annotation("_Out_")] D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives; - [annotation("_Out_")] BOOL EnhancedBarriersSupported; - [annotation("_Out_")] BOOL RelaxedFormatCastingSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS12; - -// D3D12_FEATURE_D3D12_OPTIONS13 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 -{ - [annotation("_Out_")] BOOL UnrestrictedBufferTextureCopyPitchSupported; - [annotation("_Out_")] BOOL UnrestrictedVertexElementAlignmentSupported; - [annotation("_Out_")] BOOL InvertedViewportHeightFlipsYSupported; - [annotation("_Out_")] BOOL InvertedViewportDepthFlipsZSupported; - [annotation("_Out_")] BOOL TextureCopyBetweenDimensionsSupported; - [annotation("_Out_")] BOOL AlphaBlendFactorSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS13; - -// D3D12_FEATURE_D3D12_OPTIONS14 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 -{ - [annotation("_Out_")] BOOL AdvancedTextureOpsSupported; - [annotation("_Out_")] BOOL WriteableMSAATexturesSupported; - [annotation("_Out_")] BOOL IndependentFrontAndBackStencilRefMaskSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS14; - -// D3D12_FEATURE_D3D12_OPTIONS15 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 -{ - [annotation("_Out_")] BOOL TriangleFanSupported; - [annotation("_Out_")] BOOL DynamicIndexBufferStripCutSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS15; - -// D3D12_FEATURE_D3D12_OPTIONS16 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 -{ - [annotation("_Out_")] BOOL DynamicDepthBiasSupported; - [annotation("_Out_")] BOOL GPUUploadHeapSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS16; - -// D3D12_FEATURE_D3D12_OPTIONS17 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17 -{ - [annotation("_Out_")] BOOL NonNormalizedCoordinateSamplersSupported; - [annotation("_Out_")] BOOL ManualWriteTrackingResourceSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS17; - -// D3D12_FEATURE_D3D12_OPTIONS18 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18 -{ - [annotation("_Out_")] BOOL RenderPassesValid; -} D3D12_FEATURE_DATA_D3D12_OPTIONS18; - -// D3D12_FEATURE_D3D12_OPTIONS19 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19 -{ - BOOL MismatchingOutputDimensionsSupported; - UINT SupportedSampleCountsWithNoOutputs; - BOOL PointSamplingAddressesNeverRoundUp; - BOOL RasterizerDesc2Supported; - BOOL NarrowQuadrilateralLinesSupported; - BOOL AnisoFilterWithPointMipSupported; - UINT MaxSamplerDescriptorHeapSize; - UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers; - UINT MaxViewDescriptorHeapSize; - [annotation("_Out_")] BOOL ComputeOnlyCustomHeapSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS19; - - -typedef enum D3D12_RECREATE_AT_TIER -{ - D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0, - - // * Supports retrieving resource and heap allocation information - // with ID3D12PageableTools::GetAllocationInfo - // * Supports setting resource and heap virtual addresses with - // ID3D12DeviceTools::SetNextAllocation - D3D12_RECREATE_AT_TIER_1 = 1, - -} D3D12_RECREATE_AT_TIER; - - -// D3D12_FEATURE_D3D12_OPTIONS20 -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20 -{ - [annotation("_Out_")] BOOL ComputeOnlyWriteWatchSupported; - D3D12_RECREATE_AT_TIER RecreateAtTier; -} D3D12_FEATURE_DATA_D3D12_OPTIONS20; - -typedef enum D3D12_EXECUTE_INDIRECT_TIER -{ - D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10, - D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11, -} D3D12_EXECUTE_INDIRECT_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 -{ - [annotation("_Out_")] D3D12_WORK_GRAPHS_TIER WorkGraphsTier; - [annotation("_Out_")] D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier; - [annotation("_Out_")] BOOL SampleCmpGradientAndBiasSupported; - [annotation("_Out_")] BOOL ExtendedCommandInfoSupported; -} D3D12_FEATURE_DATA_D3D12_OPTIONS21; - - -typedef struct D3D12_FEATURE_DATA_PREDICATION -{ - [annotation("_Out_")] BOOL Supported; -} D3D12_FEATURE_DATA_PREDICATION; - -typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY -{ - [annotation("_Out_")] BOOL Supported; -} D3D12_FEATURE_DATA_HARDWARE_COPY; - - -typedef struct D3D12_RESOURCE_ALLOCATION_INFO -{ - UINT64 SizeInBytes; - UINT64 Alignment; -} D3D12_RESOURCE_ALLOCATION_INFO; - -typedef struct D3D12_RESOURCE_ALLOCATION_INFO1 -{ - UINT64 Offset; - UINT64 Alignment; - UINT64 SizeInBytes; -} D3D12_RESOURCE_ALLOCATION_INFO1; - -typedef enum D3D12_HEAP_TYPE -{ - D3D12_HEAP_TYPE_DEFAULT = 1, - D3D12_HEAP_TYPE_UPLOAD = 2, - D3D12_HEAP_TYPE_READBACK = 3, - D3D12_HEAP_TYPE_CUSTOM = 4, - D3D12_HEAP_TYPE_GPU_UPLOAD = 5, -} D3D12_HEAP_TYPE; - -typedef enum D3D12_CPU_PAGE_PROPERTY -{ - D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, - D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, - D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, - D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3, -} D3D12_CPU_PAGE_PROPERTY; - -typedef enum D3D12_MEMORY_POOL -{ - D3D12_MEMORY_POOL_UNKNOWN = 0, - D3D12_MEMORY_POOL_L0 = 1, // Maximum bandwidth for CPU - D3D12_MEMORY_POOL_L1 = 2, // More bandwidth for GPU, less for CPU -} D3D12_MEMORY_POOL; - -typedef struct D3D12_HEAP_PROPERTIES -{ - D3D12_HEAP_TYPE Type; - D3D12_CPU_PAGE_PROPERTY CPUPageProperty; - D3D12_MEMORY_POOL MemoryPoolPreference; - UINT CreationNodeMask; - UINT VisibleNodeMask; -} D3D12_HEAP_PROPERTIES; - -typedef enum D3D12_HEAP_FLAGS -{ - D3D12_HEAP_FLAG_NONE = 0x0, - D3D12_HEAP_FLAG_SHARED = 0x1, - D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, - D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, - D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20, - D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40, - D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80, - D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100, - D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200, - D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400, - D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800, - D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000, - D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000, - - // These are convenience aliases to manage resource heap tier restrictions. They cannot be bitwise OR'ed together cleanly. - D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x0, - D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xC0, - D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, - D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84, - - -} D3D12_HEAP_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS )" ) - -typedef struct D3D12_HEAP_DESC -{ - UINT64 SizeInBytes; - D3D12_HEAP_PROPERTIES Properties; - UINT64 Alignment; - D3D12_HEAP_FLAGS Flags; -} D3D12_HEAP_DESC; - -typedef enum D3D12_RESOURCE_DIMENSION -{ - D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, - D3D12_RESOURCE_DIMENSION_BUFFER = 1, - D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, - D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, - D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4, -} D3D12_RESOURCE_DIMENSION; - -typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO -{ - [annotation("_In_")] DXGI_FORMAT Format; - [annotation("_In_")] D3D12_RESOURCE_DIMENSION Dimension; - [annotation("_In_")] D3D12_HEAP_PROPERTIES DestHeapProperties; - [annotation("_Out_")] BOOL Supported; -} D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO; - -typedef enum D3D12_TEXTURE_LAYOUT -{ - D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, - D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, // Must be used with buffers. Can be used with cross-adapter shared textures. - D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, - D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3, -} D3D12_TEXTURE_LAYOUT; - -typedef enum D3D12_RESOURCE_FLAGS -{ - D3D12_RESOURCE_FLAG_NONE = 0x0, - D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, - D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, - D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, - D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, - D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, - D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, - D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, - D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, - D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100, - -} D3D12_RESOURCE_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS )" ) - -typedef struct D3D12_MIP_REGION -{ - UINT Width; - UINT Height; - UINT Depth; -} D3D12_MIP_REGION; - -typedef struct D3D12_RESOURCE_DESC -{ - D3D12_RESOURCE_DIMENSION Dimension; - UINT64 Alignment; - UINT64 Width; - UINT Height; - UINT16 DepthOrArraySize; - UINT16 MipLevels; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D12_TEXTURE_LAYOUT Layout; - D3D12_RESOURCE_FLAGS Flags; -} D3D12_RESOURCE_DESC; - -typedef struct D3D12_RESOURCE_DESC1 -{ - D3D12_RESOURCE_DIMENSION Dimension; - UINT64 Alignment; - UINT64 Width; - UINT Height; - UINT16 DepthOrArraySize; - UINT16 MipLevels; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D12_TEXTURE_LAYOUT Layout; - D3D12_RESOURCE_FLAGS Flags; - D3D12_MIP_REGION SamplerFeedbackMipRegion; -} D3D12_RESOURCE_DESC1; - - - -typedef struct D3D12_DEPTH_STENCIL_VALUE -{ - FLOAT Depth; - UINT8 Stencil; -} D3D12_DEPTH_STENCIL_VALUE; - -typedef struct D3D12_CLEAR_VALUE -{ - DXGI_FORMAT Format; - union - { - FLOAT Color[4]; - D3D12_DEPTH_STENCIL_VALUE DepthStencil; - }; -} D3D12_CLEAR_VALUE; - -typedef struct D3D12_RANGE -{ - SIZE_T Begin; - SIZE_T End; // One past end, so (End - Begin) = Size -} D3D12_RANGE; - -typedef struct D3D12_RANGE_UINT64 -{ - UINT64 Begin; - UINT64 End; // One past end, so (End - Begin) = Size -} D3D12_RANGE_UINT64; - -typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 -{ - UINT Subresource; - D3D12_RANGE_UINT64 Range; -} D3D12_SUBRESOURCE_RANGE_UINT64; - -typedef struct D3D12_SUBRESOURCE_INFO -{ - UINT64 Offset; - UINT RowPitch; - UINT DepthPitch; -} D3D12_SUBRESOURCE_INFO; - -typedef struct D3D12_TILED_RESOURCE_COORDINATE -{ - UINT X; - UINT Y; - UINT Z; - UINT Subresource; -} D3D12_TILED_RESOURCE_COORDINATE; - -typedef struct D3D12_TILE_REGION_SIZE -{ - UINT NumTiles; - BOOL UseBox; - UINT Width; - UINT16 Height; - UINT16 Depth; -} D3D12_TILE_REGION_SIZE; - -typedef enum D3D12_TILE_RANGE_FLAGS -{ - D3D12_TILE_RANGE_FLAG_NONE = 0, - D3D12_TILE_RANGE_FLAG_NULL = 1, - D3D12_TILE_RANGE_FLAG_SKIP = 2, - D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4, - -} D3D12_TILE_RANGE_FLAGS; - -typedef struct D3D12_SUBRESOURCE_TILING -{ - UINT WidthInTiles; - UINT16 HeightInTiles; - UINT16 DepthInTiles; - UINT StartTileIndexInOverallResource; -} D3D12_SUBRESOURCE_TILING; - -typedef struct D3D12_TILE_SHAPE -{ - UINT WidthInTexels; - UINT HeightInTexels; - UINT DepthInTexels; -} D3D12_TILE_SHAPE; - -typedef struct D3D12_PACKED_MIP_INFO -{ - UINT8 NumStandardMips; - UINT8 NumPackedMips; - UINT NumTilesForPackedMips; - UINT StartTileIndexInOverallResource; -} D3D12_PACKED_MIP_INFO; - -typedef enum D3D12_TILE_MAPPING_FLAGS -{ - D3D12_TILE_MAPPING_FLAG_NONE = 0x0, - D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1, -} D3D12_TILE_MAPPING_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS )" ) - -typedef enum D3D12_TILE_COPY_FLAGS -{ - D3D12_TILE_COPY_FLAG_NONE = 0x0, - D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, - D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, - D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4, -} D3D12_TILE_COPY_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS )") - -// Resource Barrier -typedef enum D3D12_RESOURCE_STATES -{ - D3D12_RESOURCE_STATE_COMMON = 0, - - D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x00001, - D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x00002, - D3D12_RESOURCE_STATE_RENDER_TARGET = 0x00004, - D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x00008, - D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x00010, - D3D12_RESOURCE_STATE_DEPTH_READ = 0x00020, - D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x00040, - D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x00080, - D3D12_RESOURCE_STATE_STREAM_OUT = 0x00100, - D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x00200, - D3D12_RESOURCE_STATE_COPY_DEST = 0x00400, - D3D12_RESOURCE_STATE_COPY_SOURCE = 0x00800, - D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x01000, - D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x02000, - D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000, - D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000, - - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000, - D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000, - - D3D12_RESOURCE_STATE_GENERIC_READ = - /*D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER*/ 0x0001 | - /*D3D12_RESOURCE_STATE_INDEX_BUFFER*/ 0x0002 | - /*D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE*/ 0x0040 | - /*D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE*/ 0x0080 | - /*D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT*/ 0x0200 | - /*D3D12_RESOURCE_STATE_COPY_SOURCE*/ 0x0800, - - D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = - /*D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE*/ 0x40 | - /*D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE*/ 0x80, - - D3D12_RESOURCE_STATE_PRESENT = 0, - D3D12_RESOURCE_STATE_PREDICATION = /*D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT*/ 0x0200, - - D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x00010000, - D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x00020000, - D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x00040000, - D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x00080000, - D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x00200000, - D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x00800000, - -} D3D12_RESOURCE_STATES; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES )" ) - -typedef enum D3D12_RESOURCE_BARRIER_TYPE -{ - D3D12_RESOURCE_BARRIER_TYPE_TRANSITION, - D3D12_RESOURCE_BARRIER_TYPE_ALIASING, - D3D12_RESOURCE_BARRIER_TYPE_UAV, -} D3D12_RESOURCE_BARRIER_TYPE; - -interface ID3D12Resource; - -typedef struct D3D12_RESOURCE_TRANSITION_BARRIER -{ - ID3D12Resource* pResource; - UINT Subresource; - D3D12_RESOURCE_STATES StateBefore; - D3D12_RESOURCE_STATES StateAfter; -} D3D12_RESOURCE_TRANSITION_BARRIER; - -typedef struct D3D12_RESOURCE_ALIASING_BARRIER -{ - ID3D12Resource* pResourceBefore; - ID3D12Resource* pResourceAfter; -} D3D12_RESOURCE_ALIASING_BARRIER; - -typedef struct D3D12_RESOURCE_UAV_BARRIER -{ - ID3D12Resource* pResource; -} D3D12_RESOURCE_UAV_BARRIER; - -typedef enum D3D12_RESOURCE_BARRIER_FLAGS -{ - D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0, - D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, - D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2, -} D3D12_RESOURCE_BARRIER_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS )" ) - -typedef struct D3D12_RESOURCE_BARRIER -{ - D3D12_RESOURCE_BARRIER_TYPE Type; - D3D12_RESOURCE_BARRIER_FLAGS Flags; - - union - { - D3D12_RESOURCE_TRANSITION_BARRIER Transition; - D3D12_RESOURCE_ALIASING_BARRIER Aliasing; - D3D12_RESOURCE_UAV_BARRIER UAV; - }; -} D3D12_RESOURCE_BARRIER; - -typedef struct D3D12_SUBRESOURCE_FOOTPRINT -{ - DXGI_FORMAT Format; - UINT Width; - UINT Height; - UINT Depth; - UINT RowPitch; // Must be a multiple of D3D12_TEXTURE_DATA_PITCH_ALIGNMENT -} D3D12_SUBRESOURCE_FOOTPRINT; - -typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT -{ - UINT64 Offset; // Must be a multiple of D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT - D3D12_SUBRESOURCE_FOOTPRINT Footprint; -} D3D12_PLACED_SUBRESOURCE_FOOTPRINT; - -typedef enum D3D12_TEXTURE_COPY_TYPE -{ - D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, - D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1, -} D3D12_TEXTURE_COPY_TYPE; - -typedef struct D3D12_TEXTURE_COPY_LOCATION -{ - ID3D12Resource* pResource; - D3D12_TEXTURE_COPY_TYPE Type; - union - { - D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; - UINT SubresourceIndex; - }; -} D3D12_TEXTURE_COPY_LOCATION; - -typedef enum D3D12_RESOLVE_MODE -{ - D3D12_RESOLVE_MODE_DECOMPRESS = 0, - D3D12_RESOLVE_MODE_MIN = 1, - D3D12_RESOLVE_MODE_MAX = 2, - D3D12_RESOLVE_MODE_AVERAGE = 3, - D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4, - D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5 -} D3D12_RESOLVE_MODE; - -typedef struct D3D12_SAMPLE_POSITION -{ - INT8 X; - INT8 Y; -} D3D12_SAMPLE_POSITION; - -typedef struct D3D12_VIEW_INSTANCE_LOCATION -{ - UINT ViewportArrayIndex; - UINT RenderTargetArrayIndex; -} D3D12_VIEW_INSTANCE_LOCATION; - -typedef enum D3D12_VIEW_INSTANCING_FLAGS -{ - D3D12_VIEW_INSTANCING_FLAG_NONE = 0x0, - D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1, -} D3D12_VIEW_INSTANCING_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS )") - -typedef struct D3D12_VIEW_INSTANCING_DESC -{ - UINT ViewInstanceCount; - [annotation("_Field_size_full_(ViewInstanceCount)")] const D3D12_VIEW_INSTANCE_LOCATION* pViewInstanceLocations; - D3D12_VIEW_INSTANCING_FLAGS Flags; -} D3D12_VIEW_INSTANCING_DESC; - -// D3D12 view descriptions -typedef enum D3D12_SHADER_COMPONENT_MAPPING -{ - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5, -} D3D12_SHADER_COMPONENT_MAPPING; - -cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7 ") -cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3 ") -cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) ") -cpp_quote( "#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \\") -cpp_quote( " (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))") -cpp_quote( "#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) ") -typedef enum D3D12_BUFFER_SRV_FLAGS -{ - D3D12_BUFFER_SRV_FLAG_NONE = 0, - D3D12_BUFFER_SRV_FLAG_RAW = 0x00000001, // allow device multi-component reads with DWORD addressing -} D3D12_BUFFER_SRV_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS )" ) - -typedef struct D3D12_BUFFER_SRV -{ - UINT64 FirstElement; - UINT NumElements; - UINT StructureByteStride; // if nonzero, format must be DXGI_FORMAT_UNKNOWN - D3D12_BUFFER_SRV_FLAGS Flags; -} D3D12_BUFFER_SRV; - -typedef struct D3D12_TEX1D_SRV -{ - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; -} D3D12_TEX1D_SRV; - -typedef struct D3D12_TEX1D_ARRAY_SRV -{ - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - FLOAT ResourceMinLODClamp; -} D3D12_TEX1D_ARRAY_SRV; - -typedef struct D3D12_TEX2D_SRV -{ - UINT MostDetailedMip; - UINT MipLevels; - UINT PlaneSlice; - FLOAT ResourceMinLODClamp; -} D3D12_TEX2D_SRV; - -typedef struct D3D12_TEX2D_ARRAY_SRV -{ - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - FLOAT ResourceMinLODClamp; -} D3D12_TEX2D_ARRAY_SRV; - -typedef struct D3D12_TEX3D_SRV -{ - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; -} D3D12_TEX3D_SRV; - -typedef struct D3D12_TEXCUBE_SRV -{ - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; -} D3D12_TEXCUBE_SRV; - -typedef struct D3D12_TEXCUBE_ARRAY_SRV -{ - UINT MostDetailedMip; - UINT MipLevels; - UINT First2DArrayFace; - UINT NumCubes; - FLOAT ResourceMinLODClamp; -} D3D12_TEXCUBE_ARRAY_SRV; - -typedef struct D3D12_TEX2DMS_SRV -{ - // don't need to define anything specific for this view dimension - UINT UnusedField_NothingToDefine; -} D3D12_TEX2DMS_SRV; - -typedef struct D3D12_TEX2DMS_ARRAY_SRV -{ - UINT FirstArraySlice; - UINT ArraySize; -} D3D12_TEX2DMS_ARRAY_SRV; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV -{ - D3D12_GPU_VIRTUAL_ADDRESS Location; -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV; - -typedef enum D3D12_SRV_DIMENSION { - D3D12_SRV_DIMENSION_UNKNOWN = 0, - D3D12_SRV_DIMENSION_BUFFER = 1, - D3D12_SRV_DIMENSION_TEXTURE1D = 2, - D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_SRV_DIMENSION_TEXTURE2D = 4, - D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, - D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D12_SRV_DIMENSION_TEXTURE3D = 8, - D3D12_SRV_DIMENSION_TEXTURECUBE = 9, - D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10, - D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11, -} D3D12_SRV_DIMENSION; - -typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC -{ - DXGI_FORMAT Format; - D3D12_SRV_DIMENSION ViewDimension; - UINT Shader4ComponentMapping; - - union - { - D3D12_BUFFER_SRV Buffer; - D3D12_TEX1D_SRV Texture1D; - D3D12_TEX1D_ARRAY_SRV Texture1DArray; - D3D12_TEX2D_SRV Texture2D; - D3D12_TEX2D_ARRAY_SRV Texture2DArray; - D3D12_TEX2DMS_SRV Texture2DMS; - D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; - D3D12_TEX3D_SRV Texture3D; - D3D12_TEXCUBE_SRV TextureCube; - D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure; - }; -} D3D12_SHADER_RESOURCE_VIEW_DESC; - -typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC -{ - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; -} D3D12_CONSTANT_BUFFER_VIEW_DESC; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// -// Sampler -// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -typedef enum D3D12_FILTER -{ - // Bits used in defining enumeration of valid filters: - // bits [1:0] - mip: 0 == point, 1 == linear, 2,3 unused - // bits [3:2] - mag: 0 == point, 1 == linear, 2,3 unused - // bits [5:4] - min: 0 == point, 1 == linear, 2,3 unused - // bit [6] - aniso - // bits [8:7] - reduction type: - // 0 == standard filtering - // 1 == comparison - // 2 == min - // 3 == max - // bit [31] - mono 1-bit (narrow-purpose filter) [no longer supported in D3D12] - - D3D12_FILTER_MIN_MAG_MIP_POINT = 0x00000000, - D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x00000001, - D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000004, - D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x00000005, - D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x00000010, - D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000011, - D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x00000014, - D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x00000015, - D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x00000054, - D3D12_FILTER_ANISOTROPIC = 0x00000055, - D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x00000080, - D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x00000081, - D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000084, - D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x00000085, - D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x00000090, - D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000091, - D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x00000094, - D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x00000095, - D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x000000d4, - D3D12_FILTER_COMPARISON_ANISOTROPIC = 0x000000d5, - D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x00000100, - D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x00000101, - D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000104, - D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x00000105, - D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x00000110, - D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000111, - D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x00000114, - D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x00000115, - D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x00000154, - D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x00000155, - D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x00000180, - D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x00000181, - D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000184, - D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x00000185, - D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x00000190, - D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000191, - D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x00000194, - D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x00000195, - D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x000001d4, - D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x000001d5 -} D3D12_FILTER; - -typedef enum D3D12_FILTER_TYPE -{ - D3D12_FILTER_TYPE_POINT = 0, - D3D12_FILTER_TYPE_LINEAR = 1, -} D3D12_FILTER_TYPE; - -typedef enum D3D12_FILTER_REDUCTION_TYPE -{ - D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, - D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, - D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, - D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3, -} D3D12_FILTER_REDUCTION_TYPE; - -const UINT D3D12_FILTER_REDUCTION_TYPE_MASK = 0x00000003; -const UINT D3D12_FILTER_REDUCTION_TYPE_SHIFT = 7; - -const UINT D3D12_FILTER_TYPE_MASK = 0x00000003; -const UINT D3D12_MIN_FILTER_SHIFT = 4; -const UINT D3D12_MAG_FILTER_SHIFT = 2; -const UINT D3D12_MIP_FILTER_SHIFT = 0; - -const UINT D3D12_ANISOTROPIC_FILTERING_BIT = 0x00000040; - -// encode enum entry for most filters except anisotropic filtering -cpp_quote( "#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \\" ) -cpp_quote( " ( ( D3D12_FILTER ) ( \\" ) -cpp_quote( " ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \\" ) -cpp_quote( " ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \\" ) -cpp_quote( " ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \\" ) -cpp_quote( " ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) " ) - -// encode enum entry for anisotropic filtering (with or without comparison filtering) -cpp_quote( "#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \\" ) -cpp_quote( " ( ( D3D12_FILTER ) ( \\" ) -cpp_quote( " D3D12_ANISOTROPIC_FILTERING_BIT | \\" ) -cpp_quote( " D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \\" ) -cpp_quote( " D3D12_FILTER_TYPE_LINEAR, \\" ) -cpp_quote( " D3D12_FILTER_TYPE_LINEAR, \\" ) -cpp_quote( " reduction ) ) ) " ) -cpp_quote( "#define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \\" ) -cpp_quote( " ( ( D3D12_FILTER ) ( \\" ) -cpp_quote( " D3D12_ANISOTROPIC_FILTERING_BIT | \\" ) -cpp_quote( " D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \\" ) -cpp_quote( " D3D12_FILTER_TYPE_LINEAR, \\" ) -cpp_quote( " D3D12_FILTER_TYPE_POINT, \\" ) -cpp_quote( " reduction ) ) ) " ) - -cpp_quote( "#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \\" ) -cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" ) -cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " ) - -cpp_quote( "#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \\" ) -cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" ) -cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " ) - -cpp_quote( "#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \\" ) -cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" ) -cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " ) - -cpp_quote( "#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \\" ) -cpp_quote( " ( ( D3D12_FILTER_REDUCTION_TYPE ) \\" ) -cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) " ) - -cpp_quote( "#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \\" ) -cpp_quote( " ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) " ) - -cpp_quote( "#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \\" ) -cpp_quote( " ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \\" ) -cpp_quote( " ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \\" ) -cpp_quote( " ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) ) " ) - -typedef enum D3D12_TEXTURE_ADDRESS_MODE -{ - D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, - D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, - D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, - D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, - D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 -} D3D12_TEXTURE_ADDRESS_MODE; - - - -typedef struct D3D12_SAMPLER_DESC -{ - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - FLOAT BorderColor[4]; // RGBA - FLOAT MinLOD; - FLOAT MaxLOD; -} D3D12_SAMPLER_DESC; - - -typedef enum D3D12_SAMPLER_FLAGS -{ - D3D12_SAMPLER_FLAG_NONE = 0x0, - D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x01, - D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x02, -} D3D12_SAMPLER_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS )") - -typedef struct D3D12_SAMPLER_DESC2 -{ - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - union - { - FLOAT FloatBorderColor[4]; // RGBA - UINT UintBorderColor[4]; - }; - FLOAT MinLOD; - FLOAT MaxLOD; - D3D12_SAMPLER_FLAGS Flags; -} D3D12_SAMPLER_DESC2; - - - -typedef enum D3D12_BUFFER_UAV_FLAGS -{ - D3D12_BUFFER_UAV_FLAG_NONE = 0, - D3D12_BUFFER_UAV_FLAG_RAW = 0x00000001, -} D3D12_BUFFER_UAV_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS )" ) - -typedef struct D3D12_BUFFER_UAV -{ - UINT64 FirstElement; - UINT NumElements; - UINT StructureByteStride; // if nonzero, format must be DXGI_FORMAT_UNKNOWN - UINT64 CounterOffsetInBytes; - D3D12_BUFFER_UAV_FLAGS Flags; -} D3D12_BUFFER_UAV; - -typedef struct D3D12_TEX1D_UAV -{ - UINT MipSlice; -} D3D12_TEX1D_UAV; - -typedef struct D3D12_TEX1D_ARRAY_UAV -{ - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; -} D3D12_TEX1D_ARRAY_UAV; - -typedef struct D3D12_TEX2D_UAV -{ - UINT MipSlice; - UINT PlaneSlice; -} D3D12_TEX2D_UAV; - -typedef struct D3D12_TEX2D_ARRAY_UAV -{ - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; -} D3D12_TEX2D_ARRAY_UAV; - -typedef struct D3D12_TEX2DMS_UAV -{ - // don't need to define anything specific for this view dimension - UINT UnusedField_NothingToDefine; -} D3D12_TEX2DMS_UAV; - -typedef struct D3D12_TEX2DMS_ARRAY_UAV -{ - UINT FirstArraySlice; - UINT ArraySize; -} D3D12_TEX2DMS_ARRAY_UAV; - -typedef struct D3D12_TEX3D_UAV -{ - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; -} D3D12_TEX3D_UAV; - -typedef enum D3D12_UAV_DIMENSION -{ - D3D12_UAV_DIMENSION_UNKNOWN = 0, - D3D12_UAV_DIMENSION_BUFFER = 1, - D3D12_UAV_DIMENSION_TEXTURE1D = 2, - D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_UAV_DIMENSION_TEXTURE2D = 4, - D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_UAV_DIMENSION_TEXTURE2DMS = 6, - D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D12_UAV_DIMENSION_TEXTURE3D = 8, -} D3D12_UAV_DIMENSION; - -typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC -{ - DXGI_FORMAT Format; - D3D12_UAV_DIMENSION ViewDimension; - - union - { - D3D12_BUFFER_UAV Buffer; - D3D12_TEX1D_UAV Texture1D; - D3D12_TEX1D_ARRAY_UAV Texture1DArray; - D3D12_TEX2D_UAV Texture2D; - D3D12_TEX2D_ARRAY_UAV Texture2DArray; - D3D12_TEX2DMS_UAV Texture2DMS; - D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray; - D3D12_TEX3D_UAV Texture3D; - }; -} D3D12_UNORDERED_ACCESS_VIEW_DESC; - -typedef struct D3D12_BUFFER_RTV -{ - UINT64 FirstElement; - UINT NumElements; -} D3D12_BUFFER_RTV; - -typedef struct D3D12_TEX1D_RTV -{ - UINT MipSlice; -} D3D12_TEX1D_RTV; - -typedef struct D3D12_TEX1D_ARRAY_RTV -{ - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; -} D3D12_TEX1D_ARRAY_RTV; - -typedef struct D3D12_TEX2D_RTV -{ - UINT MipSlice; - UINT PlaneSlice; -} D3D12_TEX2D_RTV; - -typedef struct D3D12_TEX2DMS_RTV -{ - UINT UnusedField_NothingToDefine; -} D3D12_TEX2DMS_RTV; - -typedef struct D3D12_TEX2D_ARRAY_RTV -{ - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; -} D3D12_TEX2D_ARRAY_RTV; - -typedef struct D3D12_TEX2DMS_ARRAY_RTV -{ - UINT FirstArraySlice; - UINT ArraySize; -} D3D12_TEX2DMS_ARRAY_RTV; - -typedef struct D3D12_TEX3D_RTV -{ - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; -} D3D12_TEX3D_RTV; - -typedef enum D3D12_RTV_DIMENSION -{ - D3D12_RTV_DIMENSION_UNKNOWN = 0, - D3D12_RTV_DIMENSION_BUFFER = 1, - D3D12_RTV_DIMENSION_TEXTURE1D = 2, - D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_RTV_DIMENSION_TEXTURE2D = 4, - D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, - D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D12_RTV_DIMENSION_TEXTURE3D = 8, -} D3D12_RTV_DIMENSION; - -typedef struct D3D12_RENDER_TARGET_VIEW_DESC -{ - DXGI_FORMAT Format; - D3D12_RTV_DIMENSION ViewDimension; - - union - { - D3D12_BUFFER_RTV Buffer; - D3D12_TEX1D_RTV Texture1D; - D3D12_TEX1D_ARRAY_RTV Texture1DArray; - D3D12_TEX2D_RTV Texture2D; - D3D12_TEX2D_ARRAY_RTV Texture2DArray; - D3D12_TEX2DMS_RTV Texture2DMS; - D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; - D3D12_TEX3D_RTV Texture3D; - }; -} D3D12_RENDER_TARGET_VIEW_DESC; - -typedef struct D3D12_TEX1D_DSV -{ - UINT MipSlice; -} D3D12_TEX1D_DSV; - -typedef struct D3D12_TEX1D_ARRAY_DSV -{ - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; -} D3D12_TEX1D_ARRAY_DSV; - -typedef struct D3D12_TEX2D_DSV -{ - UINT MipSlice; -} D3D12_TEX2D_DSV; - -typedef struct D3D12_TEX2D_ARRAY_DSV -{ - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; -} D3D12_TEX2D_ARRAY_DSV; - -typedef struct D3D12_TEX2DMS_DSV -{ - UINT UnusedField_NothingToDefine; -} D3D12_TEX2DMS_DSV; - -typedef struct D3D12_TEX2DMS_ARRAY_DSV -{ - UINT FirstArraySlice; - UINT ArraySize; -} D3D12_TEX2DMS_ARRAY_DSV; - -typedef enum D3D12_DSV_FLAGS -{ - D3D12_DSV_FLAG_NONE = 0x0, - D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, - D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2, -} D3D12_DSV_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS )" ) - -typedef enum D3D12_DSV_DIMENSION -{ - D3D12_DSV_DIMENSION_UNKNOWN = 0, - D3D12_DSV_DIMENSION_TEXTURE1D = 1, - D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, - D3D12_DSV_DIMENSION_TEXTURE2D = 3, - D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, - D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, - D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6, -} D3D12_DSV_DIMENSION; - -typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC -{ - DXGI_FORMAT Format; - D3D12_DSV_DIMENSION ViewDimension; - D3D12_DSV_FLAGS Flags; - - union - { - D3D12_TEX1D_DSV Texture1D; - D3D12_TEX1D_ARRAY_DSV Texture1DArray; - D3D12_TEX2D_DSV Texture2D; - D3D12_TEX2D_ARRAY_DSV Texture2DArray; - D3D12_TEX2DMS_DSV Texture2DMS; - D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; - }; -} D3D12_DEPTH_STENCIL_VIEW_DESC; - -typedef enum D3D12_CLEAR_FLAGS -{ - // Intentionally no flag for NONE - D3D12_CLEAR_FLAG_DEPTH = 0x01, - D3D12_CLEAR_FLAG_STENCIL = 0x02, -} D3D12_CLEAR_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS )" ) - -typedef enum D3D12_FENCE_FLAGS -{ - D3D12_FENCE_FLAG_NONE = 0x0, - D3D12_FENCE_FLAG_SHARED = 0x1, - D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2, - D3D12_FENCE_FLAG_NON_MONITORED = 0x4, -} D3D12_FENCE_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS )" ) - -typedef enum D3D12_DESCRIPTOR_HEAP_TYPE -{ - D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV, - D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER, - D3D12_DESCRIPTOR_HEAP_TYPE_RTV, - D3D12_DESCRIPTOR_HEAP_TYPE_DSV, - D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES -} D3D12_DESCRIPTOR_HEAP_TYPE; - -typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS -{ - D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0, - D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1, -} D3D12_DESCRIPTOR_HEAP_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS )" ) - -typedef struct D3D12_DESCRIPTOR_HEAP_DESC -{ - D3D12_DESCRIPTOR_HEAP_TYPE Type; - UINT NumDescriptors; - D3D12_DESCRIPTOR_HEAP_FLAGS Flags; - UINT NodeMask; -} D3D12_DESCRIPTOR_HEAP_DESC; - -typedef enum D3D12_DESCRIPTOR_RANGE_TYPE -{ - D3D12_DESCRIPTOR_RANGE_TYPE_SRV, - D3D12_DESCRIPTOR_RANGE_TYPE_UAV, - D3D12_DESCRIPTOR_RANGE_TYPE_CBV, - D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER -} D3D12_DESCRIPTOR_RANGE_TYPE; - -typedef struct D3D12_DESCRIPTOR_RANGE -{ - D3D12_DESCRIPTOR_RANGE_TYPE RangeType; - UINT NumDescriptors; - UINT BaseShaderRegister; - UINT RegisterSpace; - UINT OffsetInDescriptorsFromTableStart; -} D3D12_DESCRIPTOR_RANGE; - - -typedef struct D3D12_ROOT_DESCRIPTOR_TABLE -{ - UINT NumDescriptorRanges; - [annotation("_Field_size_full_(NumDescriptorRanges)")] const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges; -} D3D12_ROOT_DESCRIPTOR_TABLE; - - -typedef struct D3D12_ROOT_CONSTANTS -{ - UINT ShaderRegister; - UINT RegisterSpace; - UINT Num32BitValues; -} D3D12_ROOT_CONSTANTS; - -typedef struct D3D12_ROOT_DESCRIPTOR -{ - UINT ShaderRegister; - UINT RegisterSpace; -} D3D12_ROOT_DESCRIPTOR; - -typedef enum D3D12_SHADER_VISIBILITY -{ - D3D12_SHADER_VISIBILITY_ALL = 0, - D3D12_SHADER_VISIBILITY_VERTEX = 1, - D3D12_SHADER_VISIBILITY_HULL = 2, - D3D12_SHADER_VISIBILITY_DOMAIN = 3, - D3D12_SHADER_VISIBILITY_GEOMETRY = 4, - D3D12_SHADER_VISIBILITY_PIXEL = 5, - D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6, - D3D12_SHADER_VISIBILITY_MESH = 7, -} D3D12_SHADER_VISIBILITY; - -typedef enum D3D12_ROOT_PARAMETER_TYPE -{ - D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, - D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS, - D3D12_ROOT_PARAMETER_TYPE_CBV, - D3D12_ROOT_PARAMETER_TYPE_SRV, - D3D12_ROOT_PARAMETER_TYPE_UAV -} D3D12_ROOT_PARAMETER_TYPE; - -typedef struct D3D12_ROOT_PARAMETER -{ - D3D12_ROOT_PARAMETER_TYPE ParameterType; - union - { - D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; - D3D12_ROOT_CONSTANTS Constants; - D3D12_ROOT_DESCRIPTOR Descriptor; - }; - D3D12_SHADER_VISIBILITY ShaderVisibility; -} D3D12_ROOT_PARAMETER; - -typedef enum D3D12_ROOT_SIGNATURE_FLAGS -{ - D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0, - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, - D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, - D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, - D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, - D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, - D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40, - D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80, - D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100, - D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200, - D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400, - D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800, -} D3D12_ROOT_SIGNATURE_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS )" ) - - -typedef enum D3D12_STATIC_BORDER_COLOR -{ - D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK, // 0.0f,0.0f,0.0f,0.0f - D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK, // 0.0f,0.0f,0.0f,1.0f - D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, // 1.0f,1.0f,1.0f,1.0f - D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT, // 0,0,0,1 - D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT, // 1,1,1,1 - -} D3D12_STATIC_BORDER_COLOR; - -typedef struct D3D12_STATIC_SAMPLER_DESC -{ - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - D3D12_STATIC_BORDER_COLOR BorderColor; - FLOAT MinLOD; - FLOAT MaxLOD; - UINT ShaderRegister; - UINT RegisterSpace; - D3D12_SHADER_VISIBILITY ShaderVisibility; -} D3D12_STATIC_SAMPLER_DESC; - -typedef struct D3D12_STATIC_SAMPLER_DESC1 -{ - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - D3D12_STATIC_BORDER_COLOR BorderColor; - FLOAT MinLOD; - FLOAT MaxLOD; - UINT ShaderRegister; - UINT RegisterSpace; - D3D12_SHADER_VISIBILITY ShaderVisibility; - D3D12_SAMPLER_FLAGS Flags; -} D3D12_STATIC_SAMPLER_DESC1; - -typedef struct D3D12_ROOT_SIGNATURE_DESC -{ - UINT NumParameters; - [annotation("_Field_size_full_(NumParameters)")] const D3D12_ROOT_PARAMETER* pParameters; - UINT NumStaticSamplers; - [annotation("_Field_size_full_(NumStaticSamplers)")] const D3D12_STATIC_SAMPLER_DESC* pStaticSamplers; - D3D12_ROOT_SIGNATURE_FLAGS Flags; -} D3D12_ROOT_SIGNATURE_DESC; - -typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS -{ - D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0, - D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1, - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2, - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8, - D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000, -} D3D12_DESCRIPTOR_RANGE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS )") - -typedef struct D3D12_DESCRIPTOR_RANGE1 -{ - D3D12_DESCRIPTOR_RANGE_TYPE RangeType; - UINT NumDescriptors; - UINT BaseShaderRegister; - UINT RegisterSpace; - D3D12_DESCRIPTOR_RANGE_FLAGS Flags; - UINT OffsetInDescriptorsFromTableStart; -} D3D12_DESCRIPTOR_RANGE1; - -typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 -{ - UINT NumDescriptorRanges; - [annotation("_Field_size_full_(NumDescriptorRanges)")] const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges; -} D3D12_ROOT_DESCRIPTOR_TABLE1; - -typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS -{ - D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0, - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2, - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8, -} D3D12_ROOT_DESCRIPTOR_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS )") - -typedef struct D3D12_ROOT_DESCRIPTOR1 -{ - UINT ShaderRegister; - UINT RegisterSpace; - D3D12_ROOT_DESCRIPTOR_FLAGS Flags; -} D3D12_ROOT_DESCRIPTOR1; - -typedef struct D3D12_ROOT_PARAMETER1 -{ - D3D12_ROOT_PARAMETER_TYPE ParameterType; - union - { - D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable; - D3D12_ROOT_CONSTANTS Constants; - D3D12_ROOT_DESCRIPTOR1 Descriptor; - }; - D3D12_SHADER_VISIBILITY ShaderVisibility; -} D3D12_ROOT_PARAMETER1; - -typedef struct D3D12_ROOT_SIGNATURE_DESC1 -{ - UINT NumParameters; - [annotation("_Field_size_full_(NumParameters)")] const D3D12_ROOT_PARAMETER1* pParameters; - UINT NumStaticSamplers; - [annotation("_Field_size_full_(NumStaticSamplers)")] const D3D12_STATIC_SAMPLER_DESC* pStaticSamplers; - D3D12_ROOT_SIGNATURE_FLAGS Flags; -} D3D12_ROOT_SIGNATURE_DESC1; - -typedef struct D3D12_ROOT_SIGNATURE_DESC2 -{ - UINT NumParameters; - [annotation("_Field_size_full_(NumParameters)")] const D3D12_ROOT_PARAMETER1* pParameters; - UINT NumStaticSamplers; - [annotation("_Field_size_full_(NumStaticSamplers)")] const D3D12_STATIC_SAMPLER_DESC1* pStaticSamplers; - D3D12_ROOT_SIGNATURE_FLAGS Flags; -} D3D12_ROOT_SIGNATURE_DESC2; - - -typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC -{ - D3D_ROOT_SIGNATURE_VERSION Version; - union - { - D3D12_ROOT_SIGNATURE_DESC Desc_1_0; - D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1; - D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2; - }; -} D3D12_VERSIONED_ROOT_SIGNATURE_DESC; - -[ uuid( 34AB647B-3CC8-46AC-841B-C0965645C046 ), object, local, pointer_default( unique ) ] -interface ID3D12RootSignatureDeserializer - : IUnknown -{ - const D3D12_ROOT_SIGNATURE_DESC * GetRootSignatureDesc(); -}; - -[ uuid( 7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0 ), object, local, pointer_default( unique ) ] -interface ID3D12VersionedRootSignatureDeserializer - : IUnknown -{ - HRESULT GetRootSignatureDescAtVersion(D3D_ROOT_SIGNATURE_VERSION convertToVersion, [annotation("_Out_")] const D3D12_VERSIONED_ROOT_SIGNATURE_DESC** ppDesc); - const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* GetUnconvertedRootSignatureDesc(); -}; - -cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(") -cpp_quote( " _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature," ) -cpp_quote( " _In_ D3D_ROOT_SIGNATURE_VERSION Version," ) -cpp_quote( " _Out_ ID3DBlob** ppBlob," ) -cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" ) -cpp_quote( "" ) -cpp_quote( "HRESULT WINAPI D3D12SerializeRootSignature(") -cpp_quote( " _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature," ) -cpp_quote( " _In_ D3D_ROOT_SIGNATURE_VERSION Version," ) -cpp_quote( " _Out_ ID3DBlob** ppBlob," ) -cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" ) -cpp_quote( "" ) -cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(") -cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," ) -cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," ) -cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) -cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) -cpp_quote( "" ) -cpp_quote( "HRESULT WINAPI D3D12CreateRootSignatureDeserializer(") -cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," ) -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_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(" ) -cpp_quote( " _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature," ) -cpp_quote( " _Out_ ID3DBlob** ppBlob," ) -cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" ) -cpp_quote( "" ) -cpp_quote( "HRESULT WINAPI D3D12SerializeVersionedRootSignature(" ) -cpp_quote( " _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature," ) -cpp_quote( " _Out_ ID3DBlob** ppBlob," ) -cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" ) -cpp_quote( "" ) -cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(" ) -cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," ) -cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," ) -cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) -cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) -cpp_quote( "" ) -cpp_quote( "HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(") -cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," ) -cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," ) -cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) -cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) -cpp_quote( "" ) - - - -typedef struct D3D12_CPU_DESCRIPTOR_HANDLE -{ - SIZE_T ptr; -} D3D12_CPU_DESCRIPTOR_HANDLE; - - -typedef struct D3D12_GPU_DESCRIPTOR_HANDLE -{ - UINT64 ptr; -} D3D12_GPU_DESCRIPTOR_HANDLE; - -cpp_quote( "// If rects are supplied in D3D12_DISCARD_REGION, below, the resource " ) -cpp_quote( "// must have 2D subresources with all specified subresources the same dimension." ) -typedef struct D3D12_DISCARD_REGION -{ - UINT NumRects; - [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects; - UINT FirstSubresource; - UINT NumSubresources; -} D3D12_DISCARD_REGION; - -typedef enum D3D12_QUERY_HEAP_TYPE -{ - D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, - D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, - D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, - D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3, - D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4, - D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5, - D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7, - -} D3D12_QUERY_HEAP_TYPE; - -typedef struct D3D12_QUERY_HEAP_DESC -{ - D3D12_QUERY_HEAP_TYPE Type; - UINT Count; - UINT NodeMask; -} D3D12_QUERY_HEAP_DESC; - -typedef enum D3D12_QUERY_TYPE -{ - D3D12_QUERY_TYPE_OCCLUSION = 0, - D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, - D3D12_QUERY_TYPE_TIMESTAMP = 2, - D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7, - D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8, - D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10, - -} D3D12_QUERY_TYPE; - -typedef enum D3D12_PREDICATION_OP -{ - D3D12_PREDICATION_OP_EQUAL_ZERO = 0, - D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1, -} D3D12_PREDICATION_OP; - -typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS -{ - UINT64 IAVertices; - UINT64 IAPrimitives; - UINT64 VSInvocations; - UINT64 GSInvocations; - UINT64 GSPrimitives; - UINT64 CInvocations; - UINT64 CPrimitives; - UINT64 PSInvocations; - UINT64 HSInvocations; - UINT64 DSInvocations; - UINT64 CSInvocations; -} D3D12_QUERY_DATA_PIPELINE_STATISTICS; - -typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 -{ - UINT64 IAVertices; - UINT64 IAPrimitives; - UINT64 VSInvocations; - UINT64 GSInvocations; - UINT64 GSPrimitives; - UINT64 CInvocations; - UINT64 CPrimitives; - UINT64 PSInvocations; - UINT64 HSInvocations; - UINT64 DSInvocations; - UINT64 CSInvocations; - UINT64 ASInvocations; - UINT64 MSInvocations; - UINT64 MSPrimitives; -} D3D12_QUERY_DATA_PIPELINE_STATISTICS1; - -typedef struct D3D12_QUERY_DATA_SO_STATISTICS -{ - UINT64 NumPrimitivesWritten; - UINT64 PrimitivesStorageNeeded; -} D3D12_QUERY_DATA_SO_STATISTICS; - -typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW -{ - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT64 SizeInBytes; - D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; -} D3D12_STREAM_OUTPUT_BUFFER_VIEW; - -typedef struct D3D12_DRAW_ARGUMENTS -{ - UINT VertexCountPerInstance; - UINT InstanceCount; - UINT StartVertexLocation; - UINT StartInstanceLocation; -} D3D12_DRAW_ARGUMENTS; - -typedef struct D3D12_DRAW_INDEXED_ARGUMENTS -{ - UINT IndexCountPerInstance; - UINT InstanceCount; - UINT StartIndexLocation; - INT BaseVertexLocation; - UINT StartInstanceLocation; -} D3D12_DRAW_INDEXED_ARGUMENTS; - -typedef struct D3D12_DISPATCH_ARGUMENTS -{ - UINT ThreadGroupCountX; - UINT ThreadGroupCountY; - UINT ThreadGroupCountZ; -} D3D12_DISPATCH_ARGUMENTS; - -typedef struct D3D12_VERTEX_BUFFER_VIEW -{ - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; - UINT StrideInBytes; -} D3D12_VERTEX_BUFFER_VIEW; - -typedef struct D3D12_INDEX_BUFFER_VIEW -{ - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; - DXGI_FORMAT Format; -} D3D12_INDEX_BUFFER_VIEW; - -typedef enum D3D12_INDIRECT_ARGUMENT_TYPE -{ - D3D12_INDIRECT_ARGUMENT_TYPE_DRAW, - D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED, - D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH, - D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, - D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW, - D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT, - D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW, - D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW, - D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW, - D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS, - D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH, - D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT, -} D3D12_INDIRECT_ARGUMENT_TYPE; - -typedef struct D3D12_INDIRECT_ARGUMENT_DESC -{ - D3D12_INDIRECT_ARGUMENT_TYPE Type; - - union - { - struct - { - UINT Slot; - } VertexBuffer; - - struct - { - UINT RootParameterIndex; - UINT DestOffsetIn32BitValues; - UINT Num32BitValuesToSet; - } Constant; - - struct - { - UINT RootParameterIndex; - } ConstantBufferView; - - struct - { - UINT RootParameterIndex; - } ShaderResourceView; - - struct - { - UINT RootParameterIndex; - } UnorderedAccessView; - - // Tier 1.1 support - struct - { - UINT RootParameterIndex; - UINT DestOffsetIn32BitValues; - } IncrementingConstant; - }; -} D3D12_INDIRECT_ARGUMENT_DESC; - -typedef struct D3D12_COMMAND_SIGNATURE_DESC -{ - // The number of bytes between each drawing structure - UINT ByteStride; - UINT NumArgumentDescs; - [annotation("_Field_size_full_(NumArgumentDescs)")] const D3D12_INDIRECT_ARGUMENT_DESC* pArgumentDescs; - UINT NodeMask; -} D3D12_COMMAND_SIGNATURE_DESC; - -interface ID3D12Device; - -[ uuid( c4fec28f-7966-4e95-9f94-f431cb56c3b8 ), object, local, pointer_default( unique ) ] -interface ID3D12Object - : IUnknown -{ - HRESULT GetPrivateData( - [annotation("_In_")] REFGUID guid, - [annotation("_Inout_")] UINT* pDataSize, - [annotation("_Out_writes_bytes_opt_( *pDataSize )")] void* pData ); - HRESULT SetPrivateData( - [annotation("_In_")] REFGUID guid, - [annotation("_In_")] UINT DataSize, - [annotation("_In_reads_bytes_opt_( DataSize )")] const void* pData ); - HRESULT SetPrivateDataInterface( - [annotation("_In_")] REFGUID guid, - [annotation("_In_opt_")] const IUnknown* pData ); - HRESULT SetName( - [annotation("_In_z_")] LPCWSTR Name ); -} - -[ uuid( 905db94b-a00c-4140-9df5-2b64ca9ea357 ), object, local, pointer_default( unique ) ] -interface ID3D12DeviceChild - : ID3D12Object -{ - HRESULT GetDevice( - [in] REFIID riid, - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvDevice - ); -} - -[ uuid( 63ee58fb-1268-4835-86da-f008ce62f0d6 ), object, local, pointer_default( unique ) ] -interface ID3D12Pageable - : ID3D12DeviceChild -{ -} - -[ uuid( 6b3b2502-6e51-45b3-90ee-9884265e8df3 ), object, local, pointer_default( unique ) ] -interface ID3D12Heap - : ID3D12Pageable -{ - D3D12_HEAP_DESC GetDesc(); -} - -[ uuid( 696442be-a72e-4059-bc79-5b5c98040fad ), object, local, pointer_default( unique ) ] -interface ID3D12Resource - : ID3D12Pageable -{ - HRESULT Map( - UINT Subresource, - [annotation("_In_opt_")] const D3D12_RANGE* pReadRange, - [annotation("_Outptr_opt_result_bytebuffer_(_Inexpressible_(\"Dependent on resource\"))")] void** ppData); - - void Unmap(UINT Subresource, [annotation("_In_opt_")] const D3D12_RANGE* pWrittenRange ); - - D3D12_RESOURCE_DESC GetDesc(); - - D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress(); - - HRESULT WriteToSubresource( - UINT DstSubresource, - [annotation("_In_opt_")] const D3D12_BOX* pDstBox, - [annotation("_In_")] const void* pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch ); - - HRESULT ReadFromSubresource( - [annotation("_Out_")] void* pDstData, - UINT DstRowPitch, - UINT DstDepthPitch, - UINT SrcSubresource, - [annotation("_In_opt_")] const D3D12_BOX* pSrcBox ); - - HRESULT GetHeapProperties( - [annotation("_Out_opt_")] D3D12_HEAP_PROPERTIES* pHeapProperties, - [annotation("_Out_opt_")] D3D12_HEAP_FLAGS* pHeapFlags - ); -} - -[ uuid( 6102dee4-af59-4b09-b999-b44d73f09b24 ), object, local, pointer_default( unique ) ] -interface ID3D12CommandAllocator - : ID3D12Pageable -{ - HRESULT Reset(); -} - -[ uuid( 0a753dcf-c4d8-4b91-adf6-be5a60d95a76 ), object, local, pointer_default( unique ) ] -interface ID3D12Fence - : ID3D12Pageable -{ - UINT64 GetCompletedValue(); - HRESULT SetEventOnCompletion(UINT64 Value, HANDLE hEvent); - HRESULT Signal(UINT64 Value); -}; - -[ uuid( 433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a ), object, local, pointer_default( unique ) ] -interface ID3D12Fence1 - : ID3D12Fence -{ - D3D12_FENCE_FLAGS GetCreationFlags(); -}; - -[ uuid( 765a30f3-f624-4c6f-a828-ace948622445 ), object, local, pointer_default( unique ) ] -interface ID3D12PipelineState - : ID3D12Pageable -{ - HRESULT GetCachedBlob([annotation("_COM_Outptr_")] ID3DBlob** ppBlob); -} - -[ uuid( 8efb471d-616c-4f49-90f7-127bb763fa51 ), object, local, pointer_default( unique ) ] -interface ID3D12DescriptorHeap - : ID3D12Pageable -{ - D3D12_DESCRIPTOR_HEAP_DESC GetDesc(); - - D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandleForHeapStart(); - D3D12_GPU_DESCRIPTOR_HANDLE GetGPUDescriptorHandleForHeapStart(); -} - -[ uuid( 0d9658ae-ed45-469e-a61d-970ec583cab4 ), object, local, pointer_default( unique ) ] -interface ID3D12QueryHeap - : ID3D12Pageable -{ -}; - -[ uuid( c36a797c-ec80-4f0a-8985-a7b2475082d1 ), object, local, pointer_default( unique ) ] -interface ID3D12CommandSignature - : ID3D12Pageable -{ -}; - -[ uuid( 7116d91c-e7e4-47ce-b8c6-ec8168f437e5 ), object, local, pointer_default( unique ) ] -interface ID3D12CommandList - : ID3D12DeviceChild -{ - D3D12_COMMAND_LIST_TYPE GetType(); -} - -// Superseded by ID3D12GraphicsCommandList1 -[ uuid( 5b160d0f-ac1b-4185-8ba8-b3ae42a5a455 ), object, local, pointer_default( unique ) ] -interface ID3D12GraphicsCommandList - : ID3D12CommandList -{ - HRESULT Close(); - - HRESULT Reset( - [annotation("_In_")] ID3D12CommandAllocator* pAllocator, - [annotation("_In_opt_")] ID3D12PipelineState* pInitialState - ); - - void ClearState( - [annotation("_In_opt_")] ID3D12PipelineState* pPipelineState - ); - - void DrawInstanced( - [annotation("_In_")] UINT VertexCountPerInstance, - [annotation("_In_")] UINT InstanceCount, - [annotation("_In_")] UINT StartVertexLocation, - [annotation("_In_")] UINT StartInstanceLocation - ); - - void DrawIndexedInstanced( - [annotation("_In_")] UINT IndexCountPerInstance, - [annotation("_In_")] UINT InstanceCount, - [annotation("_In_")] UINT StartIndexLocation, - [annotation("_In_")] INT BaseVertexLocation, - [annotation("_In_")] UINT StartInstanceLocation - ); - - void Dispatch( - [annotation("_In_")] UINT ThreadGroupCountX, - [annotation("_In_")] UINT ThreadGroupCountY, - [annotation("_In_")] UINT ThreadGroupCountZ - ); - - void CopyBufferRegion( - [annotation("_In_")] ID3D12Resource* pDstBuffer, - UINT64 DstOffset, - [annotation("_In_")] ID3D12Resource* pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes - ); - - void CopyTextureRegion( - [annotation("_In_")] const D3D12_TEXTURE_COPY_LOCATION* pDst, - UINT DstX, UINT DstY, UINT DstZ, - [annotation("_In_")] const D3D12_TEXTURE_COPY_LOCATION* pSrc, - [annotation("_In_opt_")] const D3D12_BOX* pSrcBox - ); - - void CopyResource( - [annotation("_In_")] ID3D12Resource* pDstResource, - [annotation("_In_")] ID3D12Resource* pSrcResource - ); - - void CopyTiles( - [annotation("_In_")] ID3D12Resource* pTiledResource, - [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pTileRegionStartCoordinate, - [annotation("_In_")] const D3D12_TILE_REGION_SIZE* pTileRegionSize, - [annotation("_In_")] ID3D12Resource* pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags - ); - - void ResolveSubresource( - [annotation("_In_")] ID3D12Resource* pDstResource, - [annotation("_In_")] UINT DstSubresource, - [annotation("_In_")] ID3D12Resource* pSrcResource, - [annotation("_In_")] UINT SrcSubresource, - [annotation("_In_")] DXGI_FORMAT Format - ); - - void IASetPrimitiveTopology( - [annotation("_In_")] D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology - ); - - void RSSetViewports( - [annotation("_In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)")] UINT NumViewports, - [annotation("_In_reads_( NumViewports)")] const D3D12_VIEWPORT* pViewports - ); - - void RSSetScissorRects( - [annotation("_In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)")] UINT NumRects, - [annotation("_In_reads_( NumRects)")] const D3D12_RECT* pRects - ); - - void OMSetBlendFactor( - [annotation("_In_reads_opt_(4)")] const FLOAT BlendFactor[ 4 ] - ); - - void OMSetStencilRef( - [annotation("_In_")] UINT StencilRef - ); - - void SetPipelineState( - [annotation("_In_")] ID3D12PipelineState* pPipelineState - ); - - void ResourceBarrier( - [annotation("_In_")] UINT NumBarriers, - [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers - ); - - void ExecuteBundle( - [annotation("_In_")] ID3D12GraphicsCommandList* pCommandList - ); - - void SetDescriptorHeaps( - [annotation("_In_")] UINT NumDescriptorHeaps, - [annotation("_In_reads_(NumDescriptorHeaps)")] ID3D12DescriptorHeap* const* ppDescriptorHeaps - ); - - void SetComputeRootSignature( - [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature - ); - - void SetGraphicsRootSignature( - [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature - ); - - void SetComputeRootDescriptorTable( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor - ); - - void SetGraphicsRootDescriptorTable( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor - ); - - // Single constant - void SetComputeRoot32BitConstant( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] UINT SrcData, - [annotation("_In_")] UINT DestOffsetIn32BitValues - ); - - void SetGraphicsRoot32BitConstant( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] UINT SrcData, - [annotation("_In_")] UINT DestOffsetIn32BitValues - ); - - // Group of constants - void SetComputeRoot32BitConstants( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] UINT Num32BitValuesToSet, - [annotation("_In_reads_(Num32BitValuesToSet*sizeof(UINT))")] const void* pSrcData, - [annotation("_In_")] UINT DestOffsetIn32BitValues - ); - - void SetGraphicsRoot32BitConstants( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] UINT Num32BitValuesToSet, - [annotation("_In_reads_(Num32BitValuesToSet*sizeof(UINT))")] const void* pSrcData, - [annotation("_In_")] UINT DestOffsetIn32BitValues - ); - - // CBV - void SetComputeRootConstantBufferView( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation - ); - - void SetGraphicsRootConstantBufferView( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation - ); - - // SRV - void SetComputeRootShaderResourceView( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation - ); - - void SetGraphicsRootShaderResourceView( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation - ); - - // UAV - void SetComputeRootUnorderedAccessView( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation - ); - - void SetGraphicsRootUnorderedAccessView( - [annotation("_In_")] UINT RootParameterIndex, - [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation - ); - - void IASetIndexBuffer( - [annotation("_In_opt_")] const D3D12_INDEX_BUFFER_VIEW* pView - ); - - void IASetVertexBuffers( - [annotation("_In_")] UINT StartSlot, - [annotation("_In_")] UINT NumViews, - [annotation("_In_reads_opt_(NumViews)")] const D3D12_VERTEX_BUFFER_VIEW* pViews - ); - - void SOSetTargets( - [annotation("_In_")] UINT StartSlot, - [annotation("_In_")] UINT NumViews, - [annotation("_In_reads_opt_(NumViews)")] const D3D12_STREAM_OUTPUT_BUFFER_VIEW* pViews - ); - - void OMSetRenderTargets( - [annotation("_In_")] UINT NumRenderTargetDescriptors, - [annotation("_In_opt_")] const D3D12_CPU_DESCRIPTOR_HANDLE* pRenderTargetDescriptors, - [annotation("_In_")] BOOL RTsSingleHandleToDescriptorRange, - [annotation("_In_opt_")] const D3D12_CPU_DESCRIPTOR_HANDLE* pDepthStencilDescriptor - ); - - void ClearDepthStencilView( - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - [annotation("_In_")] D3D12_CLEAR_FLAGS ClearFlags, - [annotation("_In_")] FLOAT Depth, - [annotation("_In_")] UINT8 Stencil, - [annotation("_In_")] UINT NumRects, - [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects - ); - - void ClearRenderTargetView( - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - [annotation("_In_")] const FLOAT ColorRGBA[4], - [annotation("_In_")] UINT NumRects, - [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects - ); - - void ClearUnorderedAccessViewUint( - [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - [annotation("_In_")] ID3D12Resource* pResource, - [annotation("_In_")] const UINT Values[4], - [annotation("_In_")] UINT NumRects, - [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects - ); - - void ClearUnorderedAccessViewFloat( - [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - [annotation("_In_")] ID3D12Resource* pResource, - [annotation("_In_")] const FLOAT Values[4], - [annotation("_In_")] UINT NumRects, - [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects - ); - - void DiscardResource( - [annotation("_In_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion - ); - - void BeginQuery( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT Index - ); - - void EndQuery( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT Index - ); - - void ResolveQueryData( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT StartIndex, - [annotation("_In_")] UINT NumQueries, - [annotation("_In_")] ID3D12Resource* pDestinationBuffer, - [annotation("_In_")] UINT64 AlignedDestinationBufferOffset - ); - - void SetPredication( - [annotation("_In_opt_")] ID3D12Resource* pBuffer, - [annotation("_In_")] UINT64 AlignedBufferOffset, - [annotation("_In_")] D3D12_PREDICATION_OP Operation - ); - - void SetMarker(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size); - void BeginEvent(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size); - void EndEvent(); - - void ExecuteIndirect( - [annotation("_In_")] ID3D12CommandSignature* pCommandSignature, - [annotation("_In_")] UINT MaxCommandCount, - [annotation("_In_")] ID3D12Resource* pArgumentBuffer, - [annotation("_In_")] UINT64 ArgumentBufferOffset, - [annotation("_In_opt_")] ID3D12Resource* pCountBuffer, - [annotation("_In_")] UINT64 CountBufferOffset - ); -} - -[ uuid( 553103fb-1fe7-4557-bb38-946d7d0e7ca7 ), object, local, pointer_default( unique ) ] -interface ID3D12GraphicsCommandList1 - : ID3D12GraphicsCommandList -{ - void AtomicCopyBufferUINT( - [annotation("_In_")] ID3D12Resource* pDstBuffer, - UINT64 DstOffset, - [annotation("_In_")] ID3D12Resource* pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, // 0 Dependencies means only the dst buffer offset is synchronized - [annotation("_In_reads_(Dependencies)")] ID3D12Resource*const* ppDependentResources, - [annotation("_In_reads_(Dependencies)")] const D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges - ); - - // UINT64 is only valid on UMA architectures - void AtomicCopyBufferUINT64( - [annotation("_In_")] ID3D12Resource* pDstBuffer, - UINT64 DstOffset, - [annotation("_In_")] ID3D12Resource* pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, // 0 Dependencies means only the dst buffer offset is synchronized - [annotation("_In_reads_(Dependencies)")] ID3D12Resource*const* ppDependentResources, - [annotation("_In_reads_(Dependencies)")] const D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges - ); - - void OMSetDepthBounds( - [annotation("_In_")] FLOAT Min, - [annotation("_In_")] FLOAT Max - ); - - void SetSamplePositions( - [annotation("_In_")] UINT NumSamplesPerPixel, - [annotation("_In_")] UINT NumPixels, - [annotation("_In_reads_(NumSamplesPerPixel*NumPixels)")] D3D12_SAMPLE_POSITION* pSamplePositions - ); - - void ResolveSubresourceRegion( - [annotation("_In_")] ID3D12Resource* pDstResource, - [annotation("_In_")] UINT DstSubresource, - [annotation("_In_")] UINT DstX, - [annotation("_In_")] UINT DstY, - [annotation("_In_")] ID3D12Resource* pSrcResource, - [annotation("_In_")] UINT SrcSubresource, - [annotation("_In_opt_")] D3D12_RECT* pSrcRect, - [annotation("_In_")] DXGI_FORMAT Format, - [annotation("_In_")] D3D12_RESOLVE_MODE ResolveMode - ); - - void SetViewInstanceMask( - [annotation("_In_")] UINT Mask - ); - -} - -typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER -{ - D3D12_GPU_VIRTUAL_ADDRESS Dest; - UINT32 Value; -} D3D12_WRITEBUFFERIMMEDIATE_PARAMETER; - -typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE -{ - D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0, - D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, - D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2, - -} D3D12_WRITEBUFFERIMMEDIATE_MODE; - -[uuid(38C3E585-FF17-412C-9150-4FC6F9D72A28), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList2 : ID3D12GraphicsCommandList1 -{ - void WriteBufferImmediate( - UINT Count, - [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes - ); -} - -[ uuid( 0ec870a6-5d7e-4c22-8cfc-5baae07616ed ), object, local, pointer_default( unique ) ] -interface ID3D12CommandQueue - : ID3D12Pageable -{ - void UpdateTileMappings( - [annotation("_In_")] ID3D12Resource* pResource, - UINT NumResourceRegions, - [annotation("_In_reads_opt_(NumResourceRegions)")] const D3D12_TILED_RESOURCE_COORDINATE* pResourceRegionStartCoordinates, - [annotation("_In_reads_opt_(NumResourceRegions)")] const D3D12_TILE_REGION_SIZE* pResourceRegionSizes, - [annotation("_In_opt_")] ID3D12Heap* pHeap, - UINT NumRanges, - [annotation("_In_reads_opt_(NumRanges)")] const D3D12_TILE_RANGE_FLAGS* pRangeFlags, - [annotation("_In_reads_opt_(NumRanges)")] const UINT* pHeapRangeStartOffsets, - [annotation("_In_reads_opt_(NumRanges)")] const UINT* pRangeTileCounts, - D3D12_TILE_MAPPING_FLAGS Flags ); - - void CopyTileMappings( - [annotation("_In_")] ID3D12Resource* pDstResource, - [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pDstRegionStartCoordinate, - [annotation("_In_")] ID3D12Resource* pSrcResource, - [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pSrcRegionStartCoordinate, - [annotation("_In_")] const D3D12_TILE_REGION_SIZE* pRegionSize, - D3D12_TILE_MAPPING_FLAGS Flags ); - - void ExecuteCommandLists( - [annotation("_In_")] UINT NumCommandLists, - [annotation("_In_reads_(NumCommandLists)")] ID3D12CommandList * const * ppCommandLists - ); - - void SetMarker(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size); - void BeginEvent(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size); - void EndEvent(); - - HRESULT Signal(ID3D12Fence* pFence, UINT64 Value); - HRESULT Wait(ID3D12Fence* pFence, UINT64 Value); - - HRESULT GetTimestampFrequency( - [annotation("_Out_")] UINT64* pFrequency - ); - - HRESULT GetClockCalibration( - [annotation("_Out_")] UINT64* pGpuTimestamp, - [annotation("_Out_")] UINT64* pCpuTimestamp - ); - - 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 -{ - UINT GetNodeCount(); - - HRESULT CreateCommandQueue( - [annotation("_In_")] const D3D12_COMMAND_QUEUE_DESC* pDesc, - [in] REFIID riid, // Expected: ID3D12CommandQueue - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandQueue - ); - - HRESULT CreateCommandAllocator( - [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type, - [in] REFIID riid, // Expected: ID3D12CommandAllocator - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandAllocator - ); - - HRESULT CreateGraphicsPipelineState( - [annotation("_In_")] const D3D12_GRAPHICS_PIPELINE_STATE_DESC* pDesc, - [in] REFIID riid, // Expected: ID3D12PipelineState - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState - ); - - HRESULT CreateComputePipelineState( - [annotation("_In_")] const D3D12_COMPUTE_PIPELINE_STATE_DESC* pDesc, - [in] REFIID riid, // Expected: ID3D12PipelineState - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState - ); - - HRESULT CreateCommandList( - [annotation("_In_")] UINT nodeMask, - [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type, - [annotation("_In_")] ID3D12CommandAllocator* pCommandAllocator, - [annotation("_In_opt_")] ID3D12PipelineState* pInitialState, - [in] REFIID riid, // Expected: ID3D12CommandList - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandList - ); - - HRESULT CheckFeatureSupport( - D3D12_FEATURE Feature, - [annotation("_Inout_updates_bytes_(FeatureSupportDataSize)")] void* pFeatureSupportData, - UINT FeatureSupportDataSize - ); - - HRESULT CreateDescriptorHeap( - [annotation("_In_")] const D3D12_DESCRIPTOR_HEAP_DESC* pDescriptorHeapDesc, - [in] REFIID riid, // Expected ID3D12DescriptorHeap - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap); - - UINT GetDescriptorHandleIncrementSize( - [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - HRESULT CreateRootSignature( - [annotation("_In_")] UINT nodeMask, - [annotation("_In_reads_(blobLengthInBytes)")] const void* pBlobWithRootSignature, - [annotation("_In_")] SIZE_T blobLengthInBytes, - [in] REFIID riid, // Expected ID3D12RootSignature - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvRootSignature); - - void CreateConstantBufferView( - [annotation("_In_opt_")] const D3D12_CONSTANT_BUFFER_VIEW_DESC* pDesc, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void CreateShaderResourceView( - [annotation("_In_opt_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] const D3D12_SHADER_RESOURCE_VIEW_DESC* pDesc, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void CreateUnorderedAccessView( - [annotation("_In_opt_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] ID3D12Resource* pCounterResource, - [annotation("_In_opt_")] const D3D12_UNORDERED_ACCESS_VIEW_DESC* pDesc, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void CreateRenderTargetView( - [annotation("_In_opt_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] const D3D12_RENDER_TARGET_VIEW_DESC* pDesc, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void CreateDepthStencilView( - [annotation("_In_opt_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] const D3D12_DEPTH_STENCIL_VIEW_DESC* pDesc, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void CreateSampler( - [annotation("_In_")] const D3D12_SAMPLER_DESC* pDesc, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void CopyDescriptors( - [annotation("_In_")] UINT NumDestDescriptorRanges, - [annotation("_In_reads_(NumDestDescriptorRanges)")] const D3D12_CPU_DESCRIPTOR_HANDLE* pDestDescriptorRangeStarts, - [annotation("_In_reads_opt_(NumDestDescriptorRanges)")] const UINT* pDestDescriptorRangeSizes, // NULL means all ranges 1 - [annotation("_In_")] UINT NumSrcDescriptorRanges, - [annotation("_In_reads_(NumSrcDescriptorRanges)")] const D3D12_CPU_DESCRIPTOR_HANDLE* pSrcDescriptorRangeStarts, - [annotation("_In_reads_opt_(NumSrcDescriptorRanges)")] const UINT* pSrcDescriptorRangeSizes, // NULL means all ranges 1 - [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - void CopyDescriptorsSimple( - [annotation("_In_")] UINT NumDescriptors, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); - - D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo( - [annotation("_In_")] UINT visibleMask, - [annotation("_In_")] UINT numResourceDescs, - [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC* pResourceDescs ); - - D3D12_HEAP_PROPERTIES GetCustomHeapProperties( - [annotation("_In_")] UINT nodeMask, - D3D12_HEAP_TYPE heapType - ); - - HRESULT CreateCommittedResource( - [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [in] REFIID riidResource, // Expected: ID3D12Resource* - [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource ); - - HRESULT CreateHeap( - [annotation("_In_")] const D3D12_HEAP_DESC* pDesc, - [in] REFIID riid, // Expected: ID3D12Heap* - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap ); - - HRESULT CreatePlacedResource( - [annotation("_In_")] ID3D12Heap* pHeap, - UINT64 HeapOffset, - [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, - D3D12_RESOURCE_STATES InitialState, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [in] REFIID riid, // Expected: ID3D12Resource* - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource ); - - HRESULT CreateReservedResource( - [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, - D3D12_RESOURCE_STATES InitialState, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [in] REFIID riid, // Expected: ID3D12Resource* - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource ); - - HRESULT CreateSharedHandle( - [annotation("_In_")] ID3D12DeviceChild* pObject, - [annotation("_In_opt_")] const SECURITY_ATTRIBUTES* pAttributes, - DWORD Access, - [annotation("_In_opt_")] LPCWSTR Name, - [annotation("_Out_")] HANDLE* pHandle ); - - HRESULT OpenSharedHandle( - [annotation("_In_")] HANDLE NTHandle, - [in] REFIID riid, // Expected: ID3D12Resource*, ID3D12Heap*, or ID3D12Fence - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvObj ); - - HRESULT OpenSharedHandleByName( - [annotation("_In_")] LPCWSTR Name, - DWORD Access, - [out, annotation("_Out_")] HANDLE* pNTHandle ); - - HRESULT MakeResident( - UINT NumObjects, - [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects ); - - HRESULT Evict( - UINT NumObjects, - [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects ); - - HRESULT CreateFence( - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - [in] REFIID riid, // Expected: ID3D12Fence - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppFence); - - HRESULT GetDeviceRemovedReason(); - - void GetCopyableFootprints( - [annotation("_In_")] const D3D12_RESOURCE_DESC* pResourceDesc, - [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES)")] UINT FirstSubresource, - [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource)")] UINT NumSubresources, - UINT64 BaseOffset, - [annotation("_Out_writes_opt_(NumSubresources)")] D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - [annotation("_Out_writes_opt_(NumSubresources)")] UINT* pNumRows, - [annotation("_Out_writes_opt_(NumSubresources)")] UINT64* pRowSizeInBytes, - [annotation("_Out_opt_")] UINT64* pTotalBytes ); - - HRESULT CreateQueryHeap( - [annotation("_In_")] const D3D12_QUERY_HEAP_DESC* pDesc, - [in] REFIID riid, // Expected: ID3D12QueryHeap - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap - ); - - HRESULT SetStablePowerState(BOOL Enable); - - HRESULT CreateCommandSignature( - [annotation("_In_")] const D3D12_COMMAND_SIGNATURE_DESC* pDesc, - [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature, - [in] REFIID riid, // Expected: ID3D12CommandSignature - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvCommandSignature - ); - - void GetResourceTiling( - [annotation("_In_")] ID3D12Resource* pTiledResource, - [annotation("_Out_opt_")] UINT* pNumTilesForEntireResource, - [annotation("_Out_opt_")] D3D12_PACKED_MIP_INFO* pPackedMipDesc, - [annotation("_Out_opt_")] D3D12_TILE_SHAPE* pStandardTileShapeForNonPackedMips, - [annotation("_Inout_opt_")] UINT* pNumSubresourceTilings, - [annotation("_In_")] UINT FirstSubresourceTilingToGet, - [annotation("_Out_writes_(*pNumSubresourceTilings)")] D3D12_SUBRESOURCE_TILING* pSubresourceTilingsForNonPackedMips - ); - - LUID GetAdapterLuid(); -} - -// D3D12 Revision 1 -[ uuid( c64226a8-9201-46af-b4cc-53fb9ff7414f ), object, local, pointer_default( unique ) ] -interface ID3D12PipelineLibrary - : ID3D12DeviceChild -{ - HRESULT StorePipeline( - [annotation("_In_opt_")] LPCWSTR pName, - [annotation("_In_")] ID3D12PipelineState *pPipeline - ); - - HRESULT LoadGraphicsPipeline( - [annotation("_In_")] LPCWSTR pName, - [annotation("_In_")] const D3D12_GRAPHICS_PIPELINE_STATE_DESC* pDesc, - [in] REFIID riid, // Expected: ID3D12PipelineState - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState - ); - - HRESULT LoadComputePipeline( - [annotation("_In_")] LPCWSTR pName, - [annotation("_In_")] const D3D12_COMPUTE_PIPELINE_STATE_DESC* pDesc, - [in] REFIID riid, // Expected: ID3D12PipelineState - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState - ); - - SIZE_T GetSerializedSize(); - - HRESULT Serialize( - [annotation("_Out_writes_(DataSizeInBytes)")] void* pData, - SIZE_T DataSizeInBytes - ); -} - -// Pipeline State v2 -[ uuid( 80eabf42-2568-4e5e-bd82-c37f86961dc3 ), object, local, pointer_default( unique ) ] -interface ID3D12PipelineLibrary1 - : ID3D12PipelineLibrary -{ - HRESULT LoadPipeline( - [annotation("_In_")] LPCWSTR pName, - [annotation("_In_")] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc, - [in] REFIID riid, // Expected: ID3D12PipelineState - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState - ); -} - -typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS -{ - D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0, - D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1, - - D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0, // Alias, default behavior is ALL -} D3D12_MULTIPLE_FENCE_WAIT_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS )" ) - -// Applications may use the whole value range of UINT for a priority. -// These names are merely semantic suggestions. -typedef enum D3D12_RESIDENCY_PRIORITY -{ - D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000, - D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000, - D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000, - D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000, - D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000, -} D3D12_RESIDENCY_PRIORITY; - -[uuid(77acce80-638e-4e65-8895-c1f23386863e), object, local, pointer_default(unique)] -interface ID3D12Device1 - : ID3D12Device -{ - HRESULT CreatePipelineLibrary( - [annotation("_In_reads_(BlobLength)")] const void *pLibraryBlob, - SIZE_T BlobLength, - [in] REFIID riid, // Expected: ID3D12PipelineLibrary - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineLibrary - ); - - HRESULT SetEventOnMultipleFenceCompletion( - [annotation("_In_reads_(NumFences)")] ID3D12Fence* const* ppFences, - [annotation("_In_reads_(NumFences)")] const UINT64* pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - HANDLE hEvent - ); - - HRESULT SetResidencyPriority( - UINT NumObjects, - [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects, - [annotation("_In_reads_(NumObjects)")] const D3D12_RESIDENCY_PRIORITY* pPriorities ); -} - -[uuid(30baa41e-b15b-475c-a0bb-1af5c5b64328), object, local, pointer_default(unique)] -interface ID3D12Device2 - : ID3D12Device1 -{ - HRESULT CreatePipelineState( - [in] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc, - [in] REFIID riid, // Can be any pipeline state interface, provided the pipeline subobjects match - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState - ); -} - -typedef enum D3D12_RESIDENCY_FLAGS -{ - D3D12_RESIDENCY_FLAG_NONE = 0x0, - D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1, -} D3D12_RESIDENCY_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS )" ) - -[uuid(81dadc15-2bad-4392-93c5-101345c4aa98), object, local, pointer_default(unique)] -interface ID3D12Device3 - : ID3D12Device2 -{ - HRESULT OpenExistingHeapFromAddress( - [annotation("_In_")] const void* pAddress, - [in] REFIID riid, // Expected: ID3D12Heap - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap - ); - HRESULT OpenExistingHeapFromFileMapping( - [annotation("_In_")] HANDLE hFileMapping, - [in] REFIID riid, // Expected: ID3D12Heap - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap - ); - HRESULT EnqueueMakeResident( - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects, - [annotation("_In_")] ID3D12Fence* pFenceToSignal, - UINT64 FenceValueToSignal - ); -} - -typedef enum D3D12_COMMAND_LIST_FLAGS -{ - D3D12_COMMAND_LIST_FLAG_NONE = 0x0, -} D3D12_COMMAND_LIST_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS )") - - -typedef enum D3D12_COMMAND_POOL_FLAGS -{ - D3D12_COMMAND_POOL_FLAG_NONE = 0x0, - -} D3D12_COMMAND_POOL_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS )") - -typedef enum D3D12_COMMAND_RECORDER_FLAGS -{ - D3D12_COMMAND_RECORDER_FLAG_NONE = 0x0, - -} D3D12_COMMAND_RECORDER_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS )") - -typedef enum D3D12_PROTECTED_SESSION_STATUS -{ - D3D12_PROTECTED_SESSION_STATUS_OK = 0, - D3D12_PROTECTED_SESSION_STATUS_INVALID = 1, -} D3D12_PROTECTED_SESSION_STATUS; - -[uuid(A1533D18-0AC1-4084-85B9-89A96116806B), object, local, pointer_default(unique)] -interface ID3D12ProtectedSession - : ID3D12DeviceChild -{ - HRESULT GetStatusFence( - [in] REFIID riid, - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppFence); - - D3D12_PROTECTED_SESSION_STATUS GetSessionStatus(); -} - -typedef enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS -{ - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0x0, - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1, - -} D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS )") - -typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT -{ - UINT NodeIndex; // input - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support; // output -} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT; - -typedef enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS -{ - D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0x0, - -} D3D12_PROTECTED_RESOURCE_SESSION_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS )") - -typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC -{ - UINT NodeMask; - D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; -} D3D12_PROTECTED_RESOURCE_SESSION_DESC; - -[uuid(6CD696F4-F289-40CC-8091-5A6C0A099C3D), object, local, pointer_default(unique)] -interface ID3D12ProtectedResourceSession - : ID3D12ProtectedSession -{ - D3D12_PROTECTED_RESOURCE_SESSION_DESC GetDesc(); -} - -[uuid(e865df17-a9ee-46f9-a463-3098315aa2e5), object, local, pointer_default(unique)] -interface ID3D12Device4 - : ID3D12Device3 -{ - HRESULT CreateCommandList1( - [annotation("_In_")] UINT nodeMask, - [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type, - [annotation("_In_")] D3D12_COMMAND_LIST_FLAGS flags, - [in] REFIID riid, // Expected: ID3D12CommandList - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandList - ); - - HRESULT CreateProtectedResourceSession( - [annotation("_In_")] const D3D12_PROTECTED_RESOURCE_SESSION_DESC* pDesc, - [annotation("_In_")] REFIID riid, // Expected: ID3D12ProtectedResourceSession, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppSession - ); - - HRESULT CreateCommittedResource1( - [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession, - [in] REFIID riidResource, // Expected: ID3D12Resource1* - [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource - ); - - HRESULT CreateHeap1( - [annotation("_In_")] const D3D12_HEAP_DESC* pDesc, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession, - [in] REFIID riid, // Expected: ID3D12Heap1* - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap - ); - - HRESULT CreateReservedResource1( - [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, - D3D12_RESOURCE_STATES InitialState, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession, - [in] REFIID riid, // Expected: ID3D12Resource1* - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource - ); - - D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1( - UINT visibleMask, - UINT numResourceDescs, - [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC* pResourceDescs, - [annotation("_Out_writes_opt_(numResourceDescs)")] D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1 - ); -} - -typedef enum D3D12_LIFETIME_STATE -{ - D3D12_LIFETIME_STATE_IN_USE, - D3D12_LIFETIME_STATE_NOT_IN_USE, -} D3D12_LIFETIME_STATE; - -interface ID3D12LifetimeTracker; - -[uuid(e667af9f-cd56-4f46-83ce-032e595d70a8), object, local, pointer_default(unique)] -interface ID3D12LifetimeOwner : IUnknown -{ - void LifetimeStateUpdated(D3D12_LIFETIME_STATE NewState); -} - -[uuid(f1df64b6-57fd-49cd-8807-c0eb88b45c8f), object, local, pointer_default(unique)] -interface ID3D12SwapChainAssistant - : IUnknown -{ - LUID GetLUID(); - HRESULT GetSwapChainObject(REFIID riid, [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppv); - HRESULT GetCurrentResourceAndCommandQueue(REFIID riidResource, [out, iid_is(riidResource), annotation("_COM_Outptr_")] void** ppvResource, - REFIID riidQueue, [out, iid_is(riidQueue), annotation("_COM_Outptr_")] void** ppvQueue); - HRESULT InsertImplicitSync(); -} - -[uuid(3fd03d36-4eb1-424a-a582-494ecb8ba813), object, local, pointer_default(unique)] -interface ID3D12LifetimeTracker - : ID3D12DeviceChild -{ - HRESULT DestroyOwnedObject([annotation("_In_")] ID3D12DeviceChild* pObject); -} - -typedef enum D3D12_META_COMMAND_PARAMETER_TYPE -{ - D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0, - D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1, - D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2, - D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3, - D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4, -} D3D12_META_COMMAND_PARAMETER_TYPE; - -typedef enum D3D12_META_COMMAND_PARAMETER_FLAGS -{ - D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x00000001, - D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x00000002 -} D3D12_META_COMMAND_PARAMETER_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS )") - -typedef enum D3D12_META_COMMAND_PARAMETER_STAGE -{ - D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0, - D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, - D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2, -} D3D12_META_COMMAND_PARAMETER_STAGE; - -typedef struct D3D12_META_COMMAND_PARAMETER_DESC -{ - LPCWSTR Name; - D3D12_META_COMMAND_PARAMETER_TYPE Type; - D3D12_META_COMMAND_PARAMETER_FLAGS Flags; - D3D12_RESOURCE_STATES RequiredResourceState; - UINT StructureOffset; -} D3D12_META_COMMAND_PARAMETER_DESC; - -typedef enum D3D12_GRAPHICS_STATES -{ - D3D12_GRAPHICS_STATE_NONE = 0, - D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = (1 << 0), - D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = (1 << 1), - D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = (1 << 2), - D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = (1 << 3), - D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = (1 << 4), - D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = (1 << 5), - D3D12_GRAPHICS_STATE_RS_VIEWPORTS = (1 << 6), - D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = (1 << 7), - D3D12_GRAPHICS_STATE_PREDICATION = (1 << 8), - D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = (1 << 9), - D3D12_GRAPHICS_STATE_OM_STENCIL_REF = (1 << 10), - D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = (1 << 11), - D3D12_GRAPHICS_STATE_PIPELINE_STATE = (1 << 12), - D3D12_GRAPHICS_STATE_SO_TARGETS = (1 << 13), - D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = (1 << 14), - D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = (1 << 15), - D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = (1 << 16), - -} D3D12_GRAPHICS_STATES; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES )") - -typedef struct D3D12_META_COMMAND_DESC -{ - GUID Id; - LPCWSTR Name; - D3D12_GRAPHICS_STATES InitializationDirtyState; - D3D12_GRAPHICS_STATES ExecutionDirtyState; -} D3D12_META_COMMAND_DESC; - -[uuid(47016943-fca8-4594-93ea-af258b55346d), object, local, pointer_default(unique)] -interface ID3D12StateObject - : ID3D12Pageable -{ -} - -[uuid(de5fa827-9bf9-4f26-89ff-d7f56fde3860), object, local, pointer_default(unique)] -interface ID3D12StateObjectProperties - : IUnknown -{ - void* GetShaderIdentifier([annotation("_In_")] LPCWSTR pExportName); - UINT64 GetShaderStackSize([annotation("_In_")] LPCWSTR pExportName); - UINT64 GetPipelineStackSize(); - void SetPipelineStackSize(UINT64 PipelineStackSizeInBytes); -} - -typedef struct D3D12_PROGRAM_IDENTIFIER -{ - UINT64 OpaqueData[4]; -} D3D12_PROGRAM_IDENTIFIER; - -[uuid(460caac7-1d24-446a-a184-ca67db494138), object, local, pointer_default(unique)] -interface ID3D12StateObjectProperties1 - : ID3D12StateObjectProperties -{ - D3D12_PROGRAM_IDENTIFIER GetProgramIdentifier(LPCWSTR pProgramName); -} - -typedef struct D3D12_NODE_ID -{ - LPCWSTR Name; - UINT ArrayIndex; -} D3D12_NODE_ID; - -typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS -{ - UINT64 MinSizeInBytes; - UINT64 MaxSizeInBytes; - UINT SizeGranularityInBytes; -} D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS; - -[uuid(065acf71-f863-4b89-82f4-02e4d5886757), object, local, pointer_default(unique)] -interface ID3D12WorkGraphProperties : IUnknown -{ - UINT GetNumWorkGraphs(); - LPCWSTR GetProgramName(UINT WorkGraphIndex); - UINT GetWorkGraphIndex(LPCWSTR pProgramName); - - UINT GetNumNodes(UINT WorkGraphIndex); - D3D12_NODE_ID GetNodeID(UINT WorkGraphIndex, UINT NodeIndex); - UINT GetNodeIndex(UINT WorkGraphIndex, D3D12_NODE_ID NodeID); - UINT GetNodeLocalRootArgumentsTableIndex(UINT WorkGraphIndex, UINT NodeIndex); - - UINT GetNumEntrypoints(UINT WorkGraphIndex); - D3D12_NODE_ID GetEntrypointID(UINT WorkGraphIndex, UINT EntrypointIndex); - UINT GetEntrypointIndex(UINT WorkGraphIndex, D3D12_NODE_ID NodeID); - UINT GetEntrypointRecordSizeInBytes(UINT WorkGraphIndex, UINT EntrypointIndex); - - void GetWorkGraphMemoryRequirements( - UINT WorkGraphIndex, - [annotation("_Out_")] D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS* pWorkGraphMemoryRequirements); - - UINT GetEntrypointRecordAlignmentInBytes(UINT WorkGraphIndex, UINT EntrypointIndex); -} - -typedef enum D3D12_STATE_SUBOBJECT_TYPE -{ - D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0, // D3D12_STATE_OBJECT_CONFIG - D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1, // D3D12_GLOBAL_ROOT_SIGNATURE - D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2, // D3D12_LOCAL_ROOT_SIGNATURE - D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3, // D3D12_NODE_MASK - // 4 unused - D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5, // D3D12_DXIL_LIBRARY_DESC - D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6, // D3D12_EXISTING_COLLECTION_DESC - D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7, // D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION - D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8, // D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION - D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9, // D3D12_RAYTRACING_SHADER_CONFIG - D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10, // D3D12_RAYTRACING_PIPELINE_CONFIG - D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11, // D3D12_HIT_GROUP_DESC - D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12, // D3D12_RAYTRACING_PIPELINE_CONFIG1 - D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13, // D3D12_WORK_GRAPH_DESC - D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14, // D3D12_STREAM_OUTPUT_DESC - D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15, // D3D12_BLEND_DESC - D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16, // UINT - D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17, // D3D12_RASTERIZER_DESC2 - D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18, // D3D12_DEPTH_STENCIL_DESC - D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19, // D3D12_INPUT_LAYOUT_DESC - D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20, // D3D12_INDEX_BUFFER_STRIP_CUT_VALUE - D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21, // D3D12_PRIMITIVE_TOPOLOGY_TYPE - D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22, // D3D12_RT_FORMAT_ARRAY - D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23, // DXGI_FORMAT - D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24, // DXGI_SAMPLE_DESC - // 25 is unused - D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26, // D3D12_PIPELINE_STATE_FLAGS - D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27, // D3D12_DEPTH_STENCIL_DESC1 - D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28, // D3D12_VIEW_INSTANCING_DESC - D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29, // D3D12_GENERIC_PROGRAM_DESC - D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30, // D3D12_DEPTH_STENCIL_DESC2 - - D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID, -} D3D12_STATE_SUBOBJECT_TYPE; - -typedef struct D3D12_STATE_SUBOBJECT -{ - D3D12_STATE_SUBOBJECT_TYPE Type; - const void* pDesc; -} D3D12_STATE_SUBOBJECT; - -typedef enum D3D12_STATE_OBJECT_FLAGS -{ - D3D12_STATE_OBJECT_FLAG_NONE = 0x0, - D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1, - D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2, - D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4, -} D3D12_STATE_OBJECT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS )") - -typedef struct D3D12_STATE_OBJECT_CONFIG -{ - D3D12_STATE_OBJECT_FLAGS Flags; -} D3D12_STATE_OBJECT_CONFIG; - -typedef struct D3D12_GLOBAL_ROOT_SIGNATURE -{ - ID3D12RootSignature* pGlobalRootSignature; -} D3D12_GLOBAL_ROOT_SIGNATURE; - -typedef struct D3D12_LOCAL_ROOT_SIGNATURE -{ - ID3D12RootSignature* pLocalRootSignature; -} D3D12_LOCAL_ROOT_SIGNATURE; - -typedef struct D3D12_NODE_MASK -{ - UINT NodeMask; -} D3D12_NODE_MASK; - -typedef struct D3D12_SAMPLE_MASK -{ - UINT SampleMask; -} D3D12_SAMPLE_MASK; - -typedef struct D3D12_IB_STRIP_CUT_VALUE -{ - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue; -} D3D12_IB_STRIP_CUT_VALUE; - -typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC -{ - D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology; -} D3D12_PRIMITIVE_TOPOLOGY_DESC; - -typedef struct D3D12_DEPTH_STENCIL_FORMAT -{ - DXGI_FORMAT DepthStencilFormat; -} D3D12_DEPTH_STENCIL_FORMAT; - -typedef enum D3D12_EXPORT_FLAGS -{ - D3D12_EXPORT_FLAG_NONE = 0x0, -} D3D12_EXPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS )") - -typedef struct D3D12_EXPORT_DESC -{ - LPCWSTR Name; - [annotation("_In_opt_")] LPCWSTR ExportToRename; - D3D12_EXPORT_FLAGS Flags; -} D3D12_EXPORT_DESC; - -typedef struct D3D12_DXIL_LIBRARY_DESC -{ - D3D12_SHADER_BYTECODE DXILLibrary; - UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced - [annotation("_In_reads_(NumExports)")] const D3D12_EXPORT_DESC* pExports; -} D3D12_DXIL_LIBRARY_DESC; - -typedef struct D3D12_EXISTING_COLLECTION_DESC -{ - ID3D12StateObject* pExistingCollection; - UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced - [annotation("_In_reads_(NumExports)")] const D3D12_EXPORT_DESC* pExports; -} D3D12_EXISTING_COLLECTION_DESC; - -typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION -{ - const D3D12_STATE_SUBOBJECT* pSubobjectToAssociate; - UINT NumExports; - [annotation("_In_reads_(NumExports)")] LPCWSTR* pExports; -} D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION; - -typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION -{ - LPCWSTR SubobjectToAssociate; - UINT NumExports; - [annotation("_In_reads_(NumExports)")] LPCWSTR* pExports; -} D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; - -typedef enum D3D12_HIT_GROUP_TYPE -{ - D3D12_HIT_GROUP_TYPE_TRIANGLES = 0x0, - D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1, -} D3D12_HIT_GROUP_TYPE; - -typedef struct D3D12_HIT_GROUP_DESC -{ - LPCWSTR HitGroupExport; - D3D12_HIT_GROUP_TYPE Type; - [annotation("_In_opt_")] LPCWSTR AnyHitShaderImport; - [annotation("_In_opt_")] LPCWSTR ClosestHitShaderImport; - [annotation("_In_opt_")] LPCWSTR IntersectionShaderImport; -} D3D12_HIT_GROUP_DESC; - -typedef struct D3D12_RAYTRACING_SHADER_CONFIG -{ - UINT MaxPayloadSizeInBytes; - UINT MaxAttributeSizeInBytes; -} D3D12_RAYTRACING_SHADER_CONFIG; - -typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG -{ - UINT MaxTraceRecursionDepth; -} D3D12_RAYTRACING_PIPELINE_CONFIG; - -typedef enum D3D12_RAYTRACING_PIPELINE_FLAGS -{ - D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0x0, - D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100, - D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200, -} D3D12_RAYTRACING_PIPELINE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS )") - -typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 -{ - UINT MaxTraceRecursionDepth; - D3D12_RAYTRACING_PIPELINE_FLAGS Flags; -} D3D12_RAYTRACING_PIPELINE_CONFIG1; - -typedef struct D3D12_NODE_OUTPUT_OVERRIDES -{ - UINT OutputIndex; - [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; - [annotation("_In_opt_")] const BOOL* pAllowSparseNodes; - [annotation("_In_opt_")] const UINT* pMaxRecords; - [annotation("_In_opt_")] const UINT* pMaxRecordsSharedWithOutputIndex; -} D3D12_NODE_OUTPUT_OVERRIDES; - -typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES -{ - [annotation("_In_opt_")] const UINT* pLocalRootArgumentsTableIndex; - [annotation("_In_opt_")] const BOOL* pProgramEntry; - [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; - [annotation("_In_opt_ ")] const D3D12_NODE_ID* pShareInputOf; - [annotation("_In_reads_opt_(3)")] const UINT* pDispatchGrid; - [annotation("_In_reads_opt_(3)")] const UINT* pMaxDispatchGrid; - UINT NumOutputOverrides; - [annotation("_In_reads_opt_(NumOutputOverrides)")] const D3D12_NODE_OUTPUT_OVERRIDES* pOutputOverrides; -} D3D12_BROADCASTING_LAUNCH_OVERRIDES; - -typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES -{ - [annotation("_In_opt_")] const UINT* pLocalRootArgumentsTableIndex; - [annotation("_In_opt_")] const BOOL* pProgramEntry; - [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; - [annotation("_In_opt_")] const D3D12_NODE_ID* pShareInputOf; - UINT NumOutputOverrides; - [annotation("_In_reads_opt_(NumOutputOverrides)")] const D3D12_NODE_OUTPUT_OVERRIDES* pOutputOverrides; -} D3D12_COALESCING_LAUNCH_OVERRIDES; - -typedef struct D3D12_THREAD_LAUNCH_OVERRIDES -{ - [annotation("_In_opt_")] const UINT* pLocalRootArgumentsTableIndex; - [annotation("_In_opt_")] const BOOL* pProgramEntry; - [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; - [annotation("_In_opt_")] const D3D12_NODE_ID* pShareInputOf; - UINT NumOutputOverrides; - [annotation("_In_reads_opt_(NumOutputOverrides)")] const D3D12_NODE_OUTPUT_OVERRIDES* pOutputOverrides; -} D3D12_THREAD_LAUNCH_OVERRIDES; - -typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES -{ - [annotation("_In_opt_")] const UINT* pLocalRootArgumentsTableIndex; - [annotation("_In_opt_")] const BOOL* pProgramEntry; - [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; - [annotation("_In_opt_")] const D3D12_NODE_ID* pShareInputOf; - UINT NumOutputOverrides; - [annotation("_In_reads_opt_(NumOutputOverrides)")] const D3D12_NODE_OUTPUT_OVERRIDES* pOutputOverrides; -} D3D12_COMMON_COMPUTE_NODE_OVERRIDES; - -typedef enum D3D12_NODE_OVERRIDES_TYPE -{ - D3D12_NODE_OVERRIDES_TYPE_NONE = 0, - D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1, - D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2, - D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3, - D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4, -} D3D12_NODE_OVERRIDES_TYPE; - -typedef struct D3D12_SHADER_NODE -{ - LPCWSTR Shader; - D3D12_NODE_OVERRIDES_TYPE OverridesType; - union - { - const D3D12_BROADCASTING_LAUNCH_OVERRIDES* pBroadcastingLaunchOverrides; - const D3D12_COALESCING_LAUNCH_OVERRIDES* pCoalescingLaunchOverrides; - const D3D12_THREAD_LAUNCH_OVERRIDES* pThreadLaunchOverrides; - const D3D12_COMMON_COMPUTE_NODE_OVERRIDES* pCommonComputeNodeOverrides; - }; -} D3D12_SHADER_NODE; - -typedef enum D3D12_NODE_TYPE -{ - D3D12_NODE_TYPE_SHADER = 0x0 -} D3D12_NODE_TYPE; - -typedef struct D3D12_NODE -{ - D3D12_NODE_TYPE NodeType; - union - { - D3D12_SHADER_NODE Shader; // D3D12_NODE_TYPE_SHADER - }; -} D3D12_NODE; - -typedef enum D3D12_WORK_GRAPH_FLAGS -{ - D3D12_WORK_GRAPH_FLAG_NONE = 0x0, - D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1, -} D3D12_WORK_GRAPH_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS )") - -typedef struct D3D12_WORK_GRAPH_DESC -{ - LPCWSTR ProgramName; - D3D12_WORK_GRAPH_FLAGS Flags; - UINT NumEntrypoints; - [annotation("_In_reads_opt_(NumEntrypoints)")] const D3D12_NODE_ID* pEntrypoints; - UINT NumExplicitlyDefinedNodes; - [annotation("_In_reads_opt_(NumExplicitlyDefinedNodes)")] const D3D12_NODE* pExplicitlyDefinedNodes; -} D3D12_WORK_GRAPH_DESC; - -typedef struct D3D12_GENERIC_PROGRAM_DESC -{ - LPCWSTR ProgramName; - UINT NumExports; - [annotation("_In_reads_(NumExports)")] LPCWSTR* pExports; - UINT NumSubobjects; - [annotation("_In_reads_opt_(NumSubobjects)")] const D3D12_STATE_SUBOBJECT* const* ppSubobjects; -} D3D12_GENERIC_PROGRAM_DESC; - -typedef enum D3D12_STATE_OBJECT_TYPE -{ - D3D12_STATE_OBJECT_TYPE_COLLECTION = 0, - D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3, - D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4 -} D3D12_STATE_OBJECT_TYPE; - -typedef struct D3D12_STATE_OBJECT_DESC -{ - D3D12_STATE_OBJECT_TYPE Type; - UINT NumSubobjects; - [annotation("_In_reads_(NumSubobjects)")] const D3D12_STATE_SUBOBJECT* pSubobjects; -} D3D12_STATE_OBJECT_DESC; - -typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS -{ - D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0x0, - D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1, - D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2, -} D3D12_RAYTRACING_GEOMETRY_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS )") - -typedef enum D3D12_RAYTRACING_GEOMETRY_TYPE -{ - D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, - D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS, -} D3D12_RAYTRACING_GEOMETRY_TYPE; - -typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS -{ - D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0x0, - D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1, - D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2, - D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4, - D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8 -} D3D12_RAYTRACING_INSTANCE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS )") - -typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE -{ - D3D12_GPU_VIRTUAL_ADDRESS StartAddress; - UINT64 StrideInBytes; -} D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE; - -typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE -{ - D3D12_GPU_VIRTUAL_ADDRESS StartAddress; - UINT64 SizeInBytes; -} D3D12_GPU_VIRTUAL_ADDRESS_RANGE; - -typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE -{ - D3D12_GPU_VIRTUAL_ADDRESS StartAddress; - UINT64 SizeInBytes; - UINT64 StrideInBytes; -} D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE; - -typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC -{ - D3D12_GPU_VIRTUAL_ADDRESS Transform3x4; - DXGI_FORMAT IndexFormat; - DXGI_FORMAT VertexFormat; - UINT IndexCount; - UINT VertexCount; - D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer; - D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer; -} D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC; - -typedef struct D3D12_RAYTRACING_AABB -{ - FLOAT MinX; - FLOAT MinY; - FLOAT MinZ; - FLOAT MaxX; - FLOAT MaxY; - FLOAT MaxZ; -} D3D12_RAYTRACING_AABB; - -typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC -{ - UINT64 AABBCount; - D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs; -} D3D12_RAYTRACING_GEOMETRY_AABBS_DESC; - -typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS -{ - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0x00, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x01, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x02, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x04, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x08, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20, -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS )") - -typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE -{ - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0x0, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4, -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE; - -typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE -{ - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0x0, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1 -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE; - -typedef enum D3D12_ELEMENTS_LAYOUT -{ - D3D12_ELEMENTS_LAYOUT_ARRAY = 0x0, - D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1 -} D3D12_ELEMENTS_LAYOUT; - -typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE -{ - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0x0, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3, -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC -{ - D3D12_GPU_VIRTUAL_ADDRESS DestBuffer; - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType; -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC -{ - UINT64 CompactedSizeInBytes; -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC -{ - UINT64 DecodedSizeInBytes; -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC; - -typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER -{ - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; - UINT NumDescs; -} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER; -cpp_quote("// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,") -cpp_quote("// depending on Type field, NumDescs above is followed by either:") -cpp_quote("// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]") -cpp_quote("// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].") -cpp_quote("// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.") -cpp_quote("") - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC -{ - UINT64 SerializedSizeInBytes; - UINT64 NumBottomLevelAccelerationStructurePointers; -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC; - -typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER -{ - GUID DriverOpaqueGUID; - BYTE DriverOpaqueVersioningData[16]; -} D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER; - -typedef enum D3D12_SERIALIZED_DATA_TYPE -{ - D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0x0, -} D3D12_SERIALIZED_DATA_TYPE; - -typedef enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS -{ - D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0x0, - D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1, - D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2, - D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3, - D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4, -} D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS; - -typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER -{ - D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier; - UINT64 SerializedSizeInBytesIncludingHeader; - UINT64 DeserializedSizeInBytes; - UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader; -} D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC -{ - UINT64 CurrentSizeInBytes; -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC; - -typedef struct D3D12_RAYTRACING_INSTANCE_DESC -{ - FLOAT Transform[3][4]; - UINT InstanceID : 24; - UINT InstanceMask : 8; - UINT InstanceContributionToHitGroupIndex : 24; - UINT Flags : 8; - D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure; -} D3D12_RAYTRACING_INSTANCE_DESC; - -typedef struct D3D12_RAYTRACING_GEOMETRY_DESC -{ - D3D12_RAYTRACING_GEOMETRY_TYPE Type; - D3D12_RAYTRACING_GEOMETRY_FLAGS Flags; - union - { - D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles; - D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs; - }; -} D3D12_RAYTRACING_GEOMETRY_DESC; - -typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS -{ - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags; - UINT NumDescs; - D3D12_ELEMENTS_LAYOUT DescsLayout; - union - { - D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs; - const D3D12_RAYTRACING_GEOMETRY_DESC* pGeometryDescs; - const D3D12_RAYTRACING_GEOMETRY_DESC*const* ppGeometryDescs; - }; -} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS; - -typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC -{ - D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData; - D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs; - [annotation("_In_opt_")] D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData; - D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData; -} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC; - -typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO -{ - UINT64 ResultDataMaxSizeInBytes; - UINT64 ScratchDataSizeInBytes; - UINT64 UpdateScratchDataSizeInBytes; -} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO; - -typedef enum D3D12_RAY_FLAGS -{ - D3D12_RAY_FLAG_NONE = 0x00, - D3D12_RAY_FLAG_FORCE_OPAQUE = 0x01, - D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x02, - D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x04, - D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x08, - D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10, - D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20, - D3D12_RAY_FLAG_CULL_OPAQUE = 0x40, - D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80, - D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100, - D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200, -} D3D12_RAY_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS )" ) - -typedef enum D3D12_HIT_KIND -{ - D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe, - D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff, -} D3D12_HIT_KIND; - -[uuid(8b4f173b-2fea-4b80-8f58-4307191ab95d), object, local, pointer_default(unique)] -interface ID3D12Device5 - : ID3D12Device4 -{ - HRESULT CreateLifetimeTracker( - [annotation("_In_")] ID3D12LifetimeOwner* pOwner, - [in] REFIID riid, // Expected: ID3D12LifetimeTracker* - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvTracker - ); - - void RemoveDevice(); - - HRESULT EnumerateMetaCommands( - [annotation("_Inout_")] UINT* pNumMetaCommands, - [annotation("_Out_writes_opt_(*pNumMetaCommands)")] D3D12_META_COMMAND_DESC* pDescs - ); - - HRESULT EnumerateMetaCommandParameters( - [annotation("_In_")] REFGUID CommandId, - [annotation("_In_")] D3D12_META_COMMAND_PARAMETER_STAGE Stage, - [annotation("_Out_opt_")] UINT* pTotalStructureSizeInBytes, - [annotation("_Inout_")] UINT* pParameterCount, - [annotation("_Out_writes_opt_(*pParameterCount)")] D3D12_META_COMMAND_PARAMETER_DESC* pParameterDescs - ); - - HRESULT CreateMetaCommand( - [annotation("_In_")] REFGUID CommandId, - [annotation("_In_")] UINT NodeMask, - [annotation("_In_reads_bytes_opt_(CreationParametersDataSizeInBytes)")] const void * pCreationParametersData, - [annotation("_In_")] SIZE_T CreationParametersDataSizeInBytes, - [in] REFIID riid, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppMetaCommand - ); - - HRESULT CreateStateObject( - [in] const D3D12_STATE_OBJECT_DESC* pDesc, - [in] REFIID riid, // ID3D12StateObject - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppStateObject - ); - - void GetRaytracingAccelerationStructurePrebuildInfo( - [annotation("_In_")] const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS* pDesc, - [annotation("_Out_")] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo - ); - - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS CheckDriverMatchingIdentifier( - [annotation("_In_")] D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - [annotation("_In_")] const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER* pIdentifierToCheck); -} - - -typedef enum D3D12_AUTO_BREADCRUMB_OP -{ - D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0, - D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1, - D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2, - D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3, - D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5, - D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6, - D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7, - D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8, - D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9, - D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10, - D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11, - D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12, - D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13, - D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14, - D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16, - D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18, - D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19, - D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22, - D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23, - D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24, - D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25, - D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27, - D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30, - D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, - D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, - D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34, - D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36, - D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38, - D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39, - D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 40, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 41, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 42, - D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 43, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 44, - 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; - -typedef struct D3D12_AUTO_BREADCRUMB_NODE -{ - const char *pCommandListDebugNameA; - const wchar_t *pCommandListDebugNameW; - const char *pCommandQueueDebugNameA; - const wchar_t *pCommandQueueDebugNameW; - ID3D12GraphicsCommandList *pCommandList; - ID3D12CommandQueue *pCommandQueue; - UINT32 BreadcrumbCount; - const UINT32 *pLastBreadcrumbValue; - const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; - const struct D3D12_AUTO_BREADCRUMB_NODE *pNext; // pointer to next node -} D3D12_AUTO_BREADCRUMB_NODE; - -typedef struct D3D12_DRED_BREADCRUMB_CONTEXT -{ - UINT BreadcrumbIndex; - const wchar_t *pContextString; -} D3D12_DRED_BREADCRUMB_CONTEXT; - -// !!! Must be castable to D3D12_AUTO_BREADCRUMB_NODE -typedef struct D3D12_AUTO_BREADCRUMB_NODE1 -{ - const char *pCommandListDebugNameA; - const wchar_t *pCommandListDebugNameW; - const char *pCommandQueueDebugNameA; - const wchar_t *pCommandQueueDebugNameW; - ID3D12GraphicsCommandList *pCommandList; - ID3D12CommandQueue *pCommandQueue; - UINT BreadcrumbCount; - const UINT *pLastBreadcrumbValue; - const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; - const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext; // pointer to next node - UINT BreadcrumbContextsCount; - D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts; -} D3D12_AUTO_BREADCRUMB_NODE1; - -// D3D12_DRED_VERSION -typedef enum D3D12_DRED_VERSION -{ - D3D12_DRED_VERSION_1_0 = 0x1, - D3D12_DRED_VERSION_1_1 = 0x2, - D3D12_DRED_VERSION_1_2 = 0x3, - D3D12_DRED_VERSION_1_3 = 0x4, -} D3D12_DRED_VERSION; - -typedef enum D3D12_DRED_FLAGS -{ - D3D12_DRED_FLAG_NONE = 0, - D3D12_DRED_FLAG_FORCE_ENABLE = 1, - D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2, -} D3D12_DRED_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS )") - -typedef enum D3D12_DRED_ENABLEMENT -{ - D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0, - D3D12_DRED_ENABLEMENT_FORCED_OFF = 1, - D3D12_DRED_ENABLEMENT_FORCED_ON = 2, -} D3D12_DRED_ENABLEMENT; - -typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA -{ - [annotation("_In_")] D3D12_DRED_FLAGS Flags; // Dred flags - [annotation("_Out_")] D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; // Pointer to head of a linked list of auto-breadcrumb data -} D3D12_DEVICE_REMOVED_EXTENDED_DATA; - -typedef enum D3D12_DRED_ALLOCATION_TYPE -{ - // Enum starts at 19 and skips 26 to maintain compatibility with older D3D12 drivers - D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20, - D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22, - D3D12_DRED_ALLOCATION_TYPE_FENCE = 23, - D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24, - D3D12_DRED_ALLOCATION_TYPE_HEAP = 25, - D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28, - D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32, - D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34, - D3D12_DRED_ALLOCATION_TYPE_PASS = 35, - D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36, - D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37, - D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40, - D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41, - D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42, - D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43, - D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48, - D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49, - - - D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xFFFFFFFF -} D3D12_DRED_ALLOCATION_TYPE; - -typedef struct D3D12_DRED_ALLOCATION_NODE -{ - const char *ObjectNameA; - const wchar_t *ObjectNameW; - D3D12_DRED_ALLOCATION_TYPE AllocationType; - const struct D3D12_DRED_ALLOCATION_NODE *pNext; -} D3D12_DRED_ALLOCATION_NODE; - -typedef struct D3D12_DRED_ALLOCATION_NODE1 -{ - const char *ObjectNameA; - const wchar_t *ObjectNameW; - D3D12_DRED_ALLOCATION_TYPE AllocationType; - const struct D3D12_DRED_ALLOCATION_NODE1 *pNext; - const IUnknown *pObject; -} D3D12_DRED_ALLOCATION_NODE1; - -typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT -{ - [annotation("_Out_")] const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; // Pointer to head of a null-terminated linked list of auto-breadcrumb data -} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT; - -typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 -{ - [annotation("_Out_")] const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode; // Pointer to head of a null-terminated linked list of auto-breadcrumb data -} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1; - -typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT -{ - D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op - [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode; - [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode; -} D3D12_DRED_PAGE_FAULT_OUTPUT; - -typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1 -{ - D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op - [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; - [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; -} D3D12_DRED_PAGE_FAULT_OUTPUT1; - -typedef enum D3D12_DRED_PAGE_FAULT_FLAGS -{ - D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0, -} D3D12_DRED_PAGE_FAULT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS )") - -typedef enum D3D12_DRED_DEVICE_STATE -{ - D3D12_DRED_DEVICE_STATE_UNKNOWN = 0, // Only known if DRED event occurred - D3D12_DRED_DEVICE_STATE_HUNG = 3, - D3D12_DRED_DEVICE_STATE_FAULT = 6, - D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7, -} D3D12_DRED_DEVICE_STATE; - -typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2 -{ - D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op - [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; - [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; - D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags; - -} D3D12_DRED_PAGE_FAULT_OUTPUT2; - -typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 -{ - HRESULT DeviceRemovedReason; - D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput; - D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput; -} D3D12_DEVICE_REMOVED_EXTENDED_DATA1; - -typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 -{ - HRESULT DeviceRemovedReason; - D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; - D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput; -} D3D12_DEVICE_REMOVED_EXTENDED_DATA2; - -typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 -{ - HRESULT DeviceRemovedReason; - D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; - D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput; - D3D12_DRED_DEVICE_STATE DeviceState; -} D3D12_DEVICE_REMOVED_EXTENDED_DATA3; - -typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA -{ - D3D12_DRED_VERSION Version; // Version of the DRED data - union - { - D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0; - D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1; - D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2; - D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3; - }; -} D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA; - -[uuid(82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63), object, local, pointer_default(unique)] -interface ID3D12DeviceRemovedExtendedDataSettings - : IUnknown -{ - void SetAutoBreadcrumbsEnablement(D3D12_DRED_ENABLEMENT Enablement); - void SetPageFaultEnablement(D3D12_DRED_ENABLEMENT Enablement); - void SetWatsonDumpEnablement(D3D12_DRED_ENABLEMENT Enablement); -}; - -[uuid(DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B), object, local, pointer_default(unique)] -interface ID3D12DeviceRemovedExtendedDataSettings1 - : ID3D12DeviceRemovedExtendedDataSettings -{ - void SetBreadcrumbContextEnablement(D3D12_DRED_ENABLEMENT Enablement); -}; - -[uuid(61552388-01ab-4008-a436-83db189566ea), object, local, pointer_default(unique)] -interface ID3D12DeviceRemovedExtendedDataSettings2 - : ID3D12DeviceRemovedExtendedDataSettings1 -{ - void UseMarkersOnlyAutoBreadcrumbs(BOOL MarkersOnly); -}; - - -[uuid(98931D33-5AE8-4791-AA3C-1A73A2934E71), object, local, pointer_default(unique)] -interface ID3D12DeviceRemovedExtendedData - : IUnknown -{ - HRESULT GetAutoBreadcrumbsOutput([annotation("_Out_")] D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); - HRESULT GetPageFaultAllocationOutput([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); -}; - -[uuid(9727A022-CF1D-4DDA-9EBA-EFFA653FC506), object, local, pointer_default(unique)] -interface ID3D12DeviceRemovedExtendedData1 - : ID3D12DeviceRemovedExtendedData -{ - HRESULT GetAutoBreadcrumbsOutput1([annotation("_Out_")] D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput); - HRESULT GetPageFaultAllocationOutput1([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput); -}; - -[uuid(67FC5816-E4CA-4915-BF18-42541272DA54), object, local, pointer_default(unique)] -interface ID3D12DeviceRemovedExtendedData2 - : ID3D12DeviceRemovedExtendedData1 -{ - HRESULT GetPageFaultAllocationOutput2([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput); - D3D12_DRED_DEVICE_STATE GetDeviceState(); -}; - -typedef enum D3D12_BACKGROUND_PROCESSING_MODE -{ - D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED, - D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS, - D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK, - D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM, -} D3D12_BACKGROUND_PROCESSING_MODE; - -typedef enum D3D12_MEASUREMENTS_ACTION -{ - D3D12_MEASUREMENTS_ACTION_KEEP_ALL, - D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS, - D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY, - D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS, -} D3D12_MEASUREMENTS_ACTION; - -[uuid(c70b221b-40e4-4a17-89af-025a0727a6dc), object, local, pointer_default(unique)] -interface ID3D12Device6 : ID3D12Device5 -{ - HRESULT SetBackgroundProcessingMode( - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - [annotation("_In_opt_")] HANDLE hEventToSignalUponCompletion, - [annotation("_Out_opt_")] BOOL* pbFurtherMeasurementsDesired); -}; - -cpp_quote("DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82); ") - -// D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT -typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT -{ - UINT NodeIndex; // input - UINT Count; // output -} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT; - -// D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES -typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES -{ - UINT NodeIndex; // input - UINT Count; // input - GUID* pTypes; // output -} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES; - -typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 -{ - UINT NodeMask; - D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; - GUID ProtectionType; -} D3D12_PROTECTED_RESOURCE_SESSION_DESC1; - -[uuid(D6F12DD6-76FB-406E-8961-4296EEFC0409), object, local, pointer_default(unique)] -interface ID3D12ProtectedResourceSession1 - : ID3D12ProtectedResourceSession -{ - D3D12_PROTECTED_RESOURCE_SESSION_DESC1 GetDesc1(); -}; - -[uuid(5c014b53-68a1-4b9b-8bd1-dd6046b9358b), object, local, pointer_default(unique)] -interface ID3D12Device7 : ID3D12Device6 -{ - HRESULT AddToStateObject( - [in] const D3D12_STATE_OBJECT_DESC* pAddition, - [in] ID3D12StateObject* pStateObjectToGrowFrom, - [in] REFIID riid, // ID3D12StateObject - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppNewStateObject - ); - - HRESULT CreateProtectedResourceSession1( - [annotation("_In_")] const D3D12_PROTECTED_RESOURCE_SESSION_DESC1* pDesc, - [annotation("_In_")] REFIID riid, // Expected: ID3D12ProtectedResourceSession1, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppSession - ); -}; - -[uuid(9218E6BB-F944-4F7E-A75C-B1B2C7B701F3), object, local, pointer_default(unique)] -interface ID3D12Device8 : ID3D12Device7 -{ - D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo2( - UINT visibleMask, - UINT numResourceDescs, - [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC1* pResourceDescs, - [annotation("_Out_writes_opt_(numResourceDescs)")] D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1); - - HRESULT CreateCommittedResource2( - [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedSession, - [in] REFIID riidResource, // Expected: ID3D12Resource1* - [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource); - - HRESULT CreatePlacedResource1( - [annotation("_In_")] ID3D12Heap* pHeap, - UINT64 HeapOffset, - [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc, - D3D12_RESOURCE_STATES InitialState, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [in] REFIID riid, // Expected: ID3D12Resource* - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource); - - void CreateSamplerFeedbackUnorderedAccessView( - [annotation("_In_opt_")] ID3D12Resource* pTargetedResource, - [annotation("_In_opt_")] ID3D12Resource* pFeedbackResource, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void GetCopyableFootprints1( - [annotation("_In_")] const D3D12_RESOURCE_DESC1* pResourceDesc, - [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES)")] UINT FirstSubresource, - [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource)")] UINT NumSubresources, - UINT64 BaseOffset, - [annotation("_Out_writes_opt_(NumSubresources)")] D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - [annotation("_Out_writes_opt_(NumSubresources)")] UINT* pNumRows, - [annotation("_Out_writes_opt_(NumSubresources)")] UINT64* pRowSizeInBytes, - [annotation("_Out_opt_")] UINT64* pTotalBytes); -}; - - -[uuid(9D5E227A-4430-4161-88B3-3ECA6BB16E19), object, local, pointer_default(unique)] -interface ID3D12Resource1 - : ID3D12Resource -{ - HRESULT GetProtectedResourceSession( - [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); -} - -[uuid(BE36EC3B-EA85-4AEB-A45A-E9D76404A495), object, local, pointer_default(unique)] -interface ID3D12Resource2 - : ID3D12Resource1 -{ - D3D12_RESOURCE_DESC1 GetDesc1(); -} - - - -[uuid(572F7389-2168-49E3-9693-D6DF5871BF6D), object, local, pointer_default(unique)] -interface ID3D12Heap1 - : ID3D12Heap -{ - HRESULT GetProtectedResourceSession( - [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); -} - - -[uuid(6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList3 : ID3D12GraphicsCommandList2 -{ - void SetProtectedResourceSession( - [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession - ); -} - -// Beginning Access -typedef enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE -{ - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD, - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE, - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR, - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS, - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER, - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV, - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV -} D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE; - -typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS -{ - D3D12_CLEAR_VALUE ClearValue; -} D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS -{ - UINT AdditionalWidth; - UINT AdditionalHeight; -} D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS -{ - D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type; - - union - { - D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear; - D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; - }; -} D3D12_RENDER_PASS_BEGINNING_ACCESS; - -// Ending Access -typedef enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE -{ - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD, - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE, - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE, - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS, - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER, - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV, - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV -} D3D12_RENDER_PASS_ENDING_ACCESS_TYPE; - -typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS -{ - UINT SrcSubresource; - UINT DstSubresource; - - UINT DstX; - UINT DstY; - D3D12_RECT SrcRect; // (0, 0, 0, 0) == resolve entire resource. - -} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS -{ - ID3D12Resource* pSrcResource; - ID3D12Resource* pDstResource; - - // Can be a subset of RT's array slices, but can't target subresources that were't part of RTV/DSV. - UINT SubresourceCount; - [annotation("_Field_size_full_(SubresourceCount)")] const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters; - - DXGI_FORMAT Format; - D3D12_RESOLVE_MODE ResolveMode; - - BOOL PreserveResolveSource; - -} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS -{ - UINT AdditionalWidth; - UINT AdditionalHeight; -} D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS; - -typedef struct D3D12_RENDER_PASS_ENDING_ACCESS -{ - D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type; - - union - { - D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve; - D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; - }; -} D3D12_RENDER_PASS_ENDING_ACCESS; - -// Render Target Desc -typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC -{ - D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; - - D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess; - D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess; - -} D3D12_RENDER_PASS_RENDER_TARGET_DESC; - -// Depth-Stencil Desc -typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC -{ - D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; - - D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess; - D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess; - - D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess; - D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess; - -} D3D12_RENDER_PASS_DEPTH_STENCIL_DESC; - -typedef enum D3D12_RENDER_PASS_FLAGS -{ - D3D12_RENDER_PASS_FLAG_NONE = 0x0, - D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1, - D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2, - D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4, - D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8, - D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10 -} D3D12_RENDER_PASS_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS )") - -[uuid(DBB84C27-36CE-4FC9-B801-F048C46AC570), object, local, pointer_default(unique)] -interface ID3D12MetaCommand : ID3D12Pageable -{ - UINT64 GetRequiredParameterResourceSize([annotation("_In_")] D3D12_META_COMMAND_PARAMETER_STAGE Stage, [annotation("_In_")] UINT ParameterIndex); -} - -typedef struct D3D12_DISPATCH_RAYS_DESC -{ - D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable; - UINT Width; - UINT Height; - UINT Depth; -} D3D12_DISPATCH_RAYS_DESC; - -typedef enum D3D12_SET_WORK_GRAPH_FLAGS -{ - D3D12_SET_WORK_GRAPH_FLAG_NONE = 0x0, - D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1, -} D3D12_SET_WORK_GRAPH_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS )" ) - -typedef struct D3D12_SET_WORK_GRAPH_DESC -{ - D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; - D3D12_SET_WORK_GRAPH_FLAGS Flags; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory; - D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable; -} D3D12_SET_WORK_GRAPH_DESC; - -typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC -{ - D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; -} D3D12_SET_RAYTRACING_PIPELINE_DESC; - -typedef struct D3D12_SET_GENERIC_PIPELINE_DESC -{ - D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; -} D3D12_SET_GENERIC_PIPELINE_DESC; - -typedef enum D3D12_PROGRAM_TYPE -{ - D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1, - D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4, - D3D12_PROGRAM_TYPE_WORK_GRAPH = 5 -} D3D12_PROGRAM_TYPE; - -typedef struct D3D12_SET_PROGRAM_DESC -{ - D3D12_PROGRAM_TYPE Type; - union - { - D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline; - D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline; - D3D12_SET_WORK_GRAPH_DESC WorkGraph; - }; -} D3D12_SET_PROGRAM_DESC; - -typedef enum D3D12_DISPATCH_MODE -{ - D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0, // D3D12_NODE_CPU_INPUT - D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1, // D3D12_NODE_GPU_INPUT in GPU memory - D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2, // D3D12_MULTI_NODE_CPU_INPUT - D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3 // D3D12_MULTI_NODE_GPU_INPUT in GPU memory -} D3D12_DISPATCH_MODE; - -typedef struct D3D12_NODE_CPU_INPUT -{ - UINT EntrypointIndex; - UINT NumRecords; - const void* pRecords; - UINT64 RecordStrideInBytes; -} D3D12_NODE_CPU_INPUT; - -typedef struct D3D12_NODE_GPU_INPUT -{ - UINT EntrypointIndex; - UINT NumRecords; - D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records; -} D3D12_NODE_GPU_INPUT; - -typedef struct D3D12_MULTI_NODE_CPU_INPUT -{ - UINT NumNodeInputs; - const D3D12_NODE_CPU_INPUT* pNodeInputs; - UINT64 NodeInputStrideInBytes; -} D3D12_MULTI_NODE_CPU_INPUT; - -typedef struct D3D12_MULTI_NODE_GPU_INPUT -{ - UINT NumNodeInputs; - D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs; // D3D12_GPU_NODE_INPUT array -} D3D12_MULTI_NODE_GPU_INPUT; - -typedef struct D3D12_DISPATCH_GRAPH_DESC -{ - D3D12_DISPATCH_MODE Mode; - union - { - D3D12_NODE_CPU_INPUT NodeCPUInput; - D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput; - D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput; - D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput; - }; -} D3D12_DISPATCH_GRAPH_DESC; - -[uuid(8754318e-d3a9-4541-98cf-645b50dc4874), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList4 : ID3D12GraphicsCommandList3 -{ - void BeginRenderPass( - [annotation("_In_")] UINT NumRenderTargets, - [annotation("_In_reads_opt_(NumRenderTargets)")] const D3D12_RENDER_PASS_RENDER_TARGET_DESC* pRenderTargets, - [annotation("_In_opt_")] const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC* pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags - ); - - void EndRenderPass(); - - void InitializeMetaCommand( - [annotation("_In_")] ID3D12MetaCommand * pMetaCommand, - [annotation("_In_reads_bytes_opt_(InitializationParametersDataSizeInBytes)")] const void * pInitializationParametersData, - [annotation("_In_")] SIZE_T InitializationParametersDataSizeInBytes - ); - - void ExecuteMetaCommand( - [annotation("_In_")] ID3D12MetaCommand * pMetaCommand, - [annotation("_In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes)")] const void * pExecutionParametersData, - [annotation("_In_")] SIZE_T ExecutionParametersDataSizeInBytes - ); - - void BuildRaytracingAccelerationStructure( - [annotation("_In_")] const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC* pDesc, - [annotation("_In_")] UINT NumPostbuildInfoDescs, - [annotation("_In_reads_opt_(NumPostbuildInfoDescs)")] const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pPostbuildInfoDescs - ); - - void EmitRaytracingAccelerationStructurePostbuildInfo( - [annotation("_In_")] const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pDesc, - [annotation("_In_")] UINT NumSourceAccelerationStructures, - [annotation("_In_reads_( NumSourceAccelerationStructures )")] const D3D12_GPU_VIRTUAL_ADDRESS* pSourceAccelerationStructureData); - - void CopyRaytracingAccelerationStructure( - [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - [annotation("_In_")] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); - - void SetPipelineState1( - [annotation("_In_")] ID3D12StateObject* pStateObject); - - void DispatchRays( - [annotation("_In_")] const D3D12_DISPATCH_RAYS_DESC* pDesc); -} - -typedef enum D3D12_SHADER_CACHE_MODE -{ - D3D12_SHADER_CACHE_MODE_MEMORY, - D3D12_SHADER_CACHE_MODE_DISK, -} D3D12_SHADER_CACHE_MODE; - -typedef enum D3D12_SHADER_CACHE_FLAGS -{ - D3D12_SHADER_CACHE_FLAG_NONE = 0x0, - D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1, - D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2, -} D3D12_SHADER_CACHE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS )") - -typedef struct D3D12_SHADER_CACHE_SESSION_DESC -{ - GUID Identifier; - D3D12_SHADER_CACHE_MODE Mode; - D3D12_SHADER_CACHE_FLAGS Flags; - - UINT MaximumInMemoryCacheSizeBytes; - UINT MaximumInMemoryCacheEntries; - - UINT MaximumValueFileSizeBytes; - - UINT64 Version; -} D3D12_SHADER_CACHE_SESSION_DESC; - -typedef enum D3D12_BARRIER_LAYOUT -{ - D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff, - D3D12_BARRIER_LAYOUT_COMMON = 0, - D3D12_BARRIER_LAYOUT_PRESENT = 0, - D3D12_BARRIER_LAYOUT_GENERIC_READ, - D3D12_BARRIER_LAYOUT_RENDER_TARGET, - D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS, - D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE, - D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ, - D3D12_BARRIER_LAYOUT_SHADER_RESOURCE, - D3D12_BARRIER_LAYOUT_COPY_SOURCE, - D3D12_BARRIER_LAYOUT_COPY_DEST, - D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE, - D3D12_BARRIER_LAYOUT_RESOLVE_DEST, - D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE, - D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ, - D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE, - D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ, - D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE, - D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ, - D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE, - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON, - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ, - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS, - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE, - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE, - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST, - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON, - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ, - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS, - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE, - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE, - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST, - D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON, - -} D3D12_BARRIER_LAYOUT; - -typedef enum D3D12_BARRIER_SYNC -{ - D3D12_BARRIER_SYNC_NONE = 0x0, - D3D12_BARRIER_SYNC_ALL = 0x1, - D3D12_BARRIER_SYNC_DRAW = 0x2, - D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4, - D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8, - D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10, - D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20, - D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40, - D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80, - D3D12_BARRIER_SYNC_RAYTRACING = 0x100, - D3D12_BARRIER_SYNC_COPY = 0x200, - D3D12_BARRIER_SYNC_RESOLVE = 0x400, - D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800, - D3D12_BARRIER_SYNC_PREDICATION = 0x800, // Aliased with SYNC_EXECUTE_INDIRECT - D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000, - D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000, - D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000, - D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000, - D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000, - D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000, - D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000, - D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000, - D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000, - D3D12_BARRIER_SYNC_SPLIT = 0x80000000, -} D3D12_BARRIER_SYNC; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC )" ) - -typedef enum D3D12_BARRIER_ACCESS -{ - D3D12_BARRIER_ACCESS_COMMON = 0, - D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1, - D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2, - D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4, - D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8, - D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10, - D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20, - D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40, - D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80, - D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100, - D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200, - D3D12_BARRIER_ACCESS_PREDICATION = 0x200, // Aliased with ACCESS_INDIRECT_ARGUMENT - D3D12_BARRIER_ACCESS_COPY_DEST = 0x400, - D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800, - D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000, - D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000, - D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000, - D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000, - D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000, - D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000, - D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000, - D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000, - D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000, - D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000, - D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000, - D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000, -} D3D12_BARRIER_ACCESS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS )" ) - -typedef enum D3D12_BARRIER_TYPE -{ - D3D12_BARRIER_TYPE_GLOBAL, - D3D12_BARRIER_TYPE_TEXTURE, - D3D12_BARRIER_TYPE_BUFFER, -} D3D12_BARRIER_TYPE; - -typedef enum D3D12_TEXTURE_BARRIER_FLAGS -{ - D3D12_TEXTURE_BARRIER_FLAG_NONE = 0x0, - D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1, -} D3D12_TEXTURE_BARRIER_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS )") - -typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE -{ - UINT IndexOrFirstMipLevel; - UINT NumMipLevels; - UINT FirstArraySlice; - UINT NumArraySlices; - UINT FirstPlane; - UINT NumPlanes; -} D3D12_BARRIER_SUBRESOURCE_RANGE; - -typedef struct D3D12_GLOBAL_BARRIER -{ - D3D12_BARRIER_SYNC SyncBefore; - D3D12_BARRIER_SYNC SyncAfter; - D3D12_BARRIER_ACCESS AccessBefore; - D3D12_BARRIER_ACCESS AccessAfter; -} D3D12_GLOBAL_BARRIER; - -typedef struct D3D12_TEXTURE_BARRIER -{ - D3D12_BARRIER_SYNC SyncBefore; - D3D12_BARRIER_SYNC SyncAfter; - D3D12_BARRIER_ACCESS AccessBefore; - D3D12_BARRIER_ACCESS AccessAfter; - D3D12_BARRIER_LAYOUT LayoutBefore; - D3D12_BARRIER_LAYOUT LayoutAfter; - [annotation("_In_")] ID3D12Resource *pResource; - D3D12_BARRIER_SUBRESOURCE_RANGE Subresources; - D3D12_TEXTURE_BARRIER_FLAGS Flags; -} D3D12_TEXTURE_BARRIER; - -typedef struct D3D12_BUFFER_BARRIER -{ - D3D12_BARRIER_SYNC SyncBefore; - D3D12_BARRIER_SYNC SyncAfter; - D3D12_BARRIER_ACCESS AccessBefore; - D3D12_BARRIER_ACCESS AccessAfter; - [annotation("_In_")] ID3D12Resource *pResource; - UINT64 Offset; - UINT64 Size; -} D3D12_BUFFER_BARRIER; - -typedef struct D3D12_BARRIER_GROUP -{ - D3D12_BARRIER_TYPE Type; - UINT32 NumBarriers; - union - { - [annotation("_In_reads_(NumBarriers)")] const D3D12_GLOBAL_BARRIER *pGlobalBarriers; - [annotation("_In_reads_(NumBarriers)")] const D3D12_TEXTURE_BARRIER *pTextureBarriers; - [annotation("_In_reads_(NumBarriers)")] const D3D12_BUFFER_BARRIER *pBufferBarriers; - }; -} D3D12_BARRIER_GROUP; - -[uuid(28e2495d-0f64-4ae4-a6ec-129255dc49a8), object, local, pointer_default(unique)] -interface ID3D12ShaderCacheSession - : ID3D12DeviceChild -{ - HRESULT FindValue( - [in, annotation("_In_reads_bytes_(KeySize)")] const void* pKey, - UINT KeySize, - [out, annotation("_Out_writes_bytes_(*pValueSize)")] void* pValue, - [annotation("_Inout_")] UINT* pValueSize); - HRESULT StoreValue( - [in, annotation("_In_reads_bytes_(KeySize)")] const void* pKey, - UINT KeySize, - [in, annotation("_In_reads_bytes_(ValueSize)")] const void* pValue, - UINT ValueSize); - - void SetDeleteOnDestroy(); - D3D12_SHADER_CACHE_SESSION_DESC GetDesc(); -}; - -typedef enum D3D12_SHADER_CACHE_KIND_FLAGS -{ - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1, - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2, - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4, - D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8, -} D3D12_SHADER_CACHE_KIND_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS )") - -typedef enum D3D12_SHADER_CACHE_CONTROL_FLAGS -{ - D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1, - D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2, - D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4, -} D3D12_SHADER_CACHE_CONTROL_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS )") - -[uuid(4c80e962-f032-4f60-bc9e-ebc2cfa1d83c), object, local, pointer_default(unique)] -interface ID3D12Device9 - : ID3D12Device8 -{ - HRESULT CreateShaderCacheSession( - [annotation("_In_")] const D3D12_SHADER_CACHE_SESSION_DESC* pDesc, - REFIID riid, - [annotation("_COM_Outptr_opt_")] void** ppvSession); - - HRESULT ShaderCacheControl( - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control); - - HRESULT CreateCommandQueue1( - [annotation("_In_")] const D3D12_COMMAND_QUEUE_DESC* pDesc, - REFIID CreatorID, - [in] REFIID riid, // Expected: ID3D12CommandQueue - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandQueue - ); -}; - -[uuid(517f8718-aa66-49f9-b02b-a7ab89c06031), object, local, pointer_default(unique)] -interface ID3D12Device10 - : ID3D12Device9 -{ - HRESULT CreateCommittedResource3( - [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedSession, - UINT32 NumCastableFormats, - [annotation("_In_opt_count_(NumCastableFormats)")] const DXGI_FORMAT *pCastableFormats, - [in] REFIID riidResource, // Expected: ID3D12Resource1* - [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource); - - HRESULT CreatePlacedResource2( - [annotation("_In_")] ID3D12Heap* pHeap, - UINT64 HeapOffset, - [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - UINT32 NumCastableFormats, - [annotation("_In_opt_count_(NumCastableFormats)")] const DXGI_FORMAT *pCastableFormats, - [in] REFIID riid, // Expected: ID3D12Resource* - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource); - - HRESULT CreateReservedResource2( - [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession, - UINT32 NumCastableFormats, - [annotation("_In_opt_count_(NumCastableFormats)")] const DXGI_FORMAT *pCastableFormats, - [in] REFIID riid, // Expected: ID3D12Resource1* - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource - ); -}; - -[uuid(5405c344-d457-444e-b4dd-2366e45aee39), object, local, pointer_default(unique)] -interface ID3D12Device11 - : ID3D12Device10 -{ - void CreateSampler2( - [annotation("_In_")] const D3D12_SAMPLER_DESC2* pDesc, - [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); -}; - -[uuid(5af5c532-4c91-4cd0-b541-15a405395fc5), object, local, pointer_default(unique)] -interface ID3D12Device12 - : ID3D12Device11 -{ - D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo3( - UINT visibleMask, - UINT numResourceDescs, - [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC1* pResourceDescs, - [annotation("_In_opt_count_(numResourceDescs)")] const UINT32* pNumCastableFormats, - [annotation("_In_opt_count_(numResourceDescs)")] const DXGI_FORMAT *const *ppCastableFormats, - [annotation("_Out_writes_opt_(numResourceDescs)")] D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1); -}; - -[uuid(14eecffc-4df8-40f7-a118-5c816f45695e), object, local, pointer_default(unique)] -interface ID3D12Device13 - : ID3D12Device12 -{ - HRESULT OpenExistingHeapFromAddress1( - [annotation("_In_")] const void* pAddress, - SIZE_T size, - [in] REFIID riid, // Expected: ID3D12Heap - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap - ); -}; - -[uuid(5f6e592d-d895-44c2-8e4a-88ad4926d323), object, local, pointer_default(unique)] -interface ID3D12Device14 : ID3D12Device13 -{ - HRESULT CreateRootSignatureFromSubobjectInLibrary( - [annotation("_In_")] UINT nodeMask, - [annotation("_In_reads_(blobLengthInBytes)")] const void* pLibraryBlob, - [annotation("_In_")] SIZE_T blobLengthInBytes, - [annotation("_In_opt_")] LPCWSTR subobjectName, - [in] REFIID riid, // Expected ID3D12RootSignature - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvRootSignature); -}; - - -[uuid(bc66d368-7373-4943-8757-fc87dc79e476), object, local, pointer_default(unique)] -interface ID3D12VirtualizationGuestDevice - : IUnknown -{ - HRESULT ShareWithHost( - [annotation("_In_")] ID3D12DeviceChild* pObject, - [annotation("_Out_")] HANDLE* pHandle - ); - - HRESULT CreateFenceFd( - [annotation("_In_")] ID3D12Fence *pFence, - UINT64 FenceValue, - [annotation("_Out_")] int *pFenceFd - ); -}; - - -[uuid(7071e1f0-e84b-4b33-974f-12fa49de65c5), object, local, pointer_default(unique)] -interface ID3D12Tools - : IUnknown -{ - void EnableShaderInstrumentation(BOOL bEnable); - BOOL ShaderInstrumentationEnabled(); -} - - -typedef struct D3D12_SUBRESOURCE_DATA -{ - const void* pData; - LONG_PTR RowPitch; - LONG_PTR SlicePitch; -} D3D12_SUBRESOURCE_DATA; - -typedef struct D3D12_MEMCPY_DEST -{ - void* pData; - SIZE_T RowPitch; - SIZE_T SlicePitch; -} D3D12_MEMCPY_DEST; - - - -cpp_quote( "#if !defined( D3D12_IGNORE_SDK_LAYERS ) ") -cpp_quote( "#include \"d3d12sdklayers.h\" ") -cpp_quote( "#endif ") - - -cpp_quote("") -cpp_quote("///////////////////////////////////////////////////////////////////////////") -cpp_quote("// D3D12CreateDevice") -cpp_quote("// ------------------") -cpp_quote("//") -cpp_quote("// pAdapter") -cpp_quote("// If NULL, D3D12CreateDevice will choose the primary adapter.") -cpp_quote("// If non-NULL, D3D12CreateDevice will use the provided adapter.") -cpp_quote("// MinimumFeatureLevel") -cpp_quote("// The minimum feature level required for successful device creation.") -cpp_quote("// riid") -cpp_quote("// The interface IID of the device to be returned. Expected: ID3D12Device.") -cpp_quote("// ppDevice") -cpp_quote("// Pointer to returned interface. May be NULL.") -cpp_quote("//") -cpp_quote("// Return Values") -cpp_quote("// Any of those documented for ") -cpp_quote("// CreateDXGIFactory1") -cpp_quote("// IDXGIFactory::EnumAdapters") -cpp_quote("// D3D12CreateDevice") -cpp_quote("//") -cpp_quote("///////////////////////////////////////////////////////////////////////////") -cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*, ") -cpp_quote(" D3D_FEATURE_LEVEL, ") -cpp_quote(" _In_ REFIID, _COM_Outptr_opt_ void** );") -cpp_quote("") -cpp_quote("HRESULT WINAPI D3D12CreateDevice(") -cpp_quote(" _In_opt_ IUnknown* pAdapter,") -cpp_quote(" D3D_FEATURE_LEVEL MinimumFeatureLevel,") -cpp_quote(" _In_ REFIID riid, // Expected: ID3D12Device") -cpp_quote(" _COM_Outptr_opt_ void** ppDevice );") -cpp_quote("") - -cpp_quote("") -cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** );") -cpp_quote("") -cpp_quote("HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );") -cpp_quote("") - -cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") -cpp_quote("// D3D12EnableExperimentalFeatures") -cpp_quote("//") -cpp_quote("// Pass in a list of feature GUIDs to be enabled together.") -cpp_quote("// ") -cpp_quote("// If a particular feature requires some configuration information on enablement, it will have") -cpp_quote("// a configuration struct that can be passed alongside the GUID.") -cpp_quote("// ") -cpp_quote("// Some features might use an interface IID as the GUID. For these, once the feature is enabled via") -cpp_quote("// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface") -cpp_quote("// for manipulating the feature. This allows for control that might not cleanly be expressed by just ") -cpp_quote("// the configuration struct that D3D12EnableExperimentalFeatures provides.") -cpp_quote("//") -cpp_quote("// If this method is called and a change to existing feature enablement is made, ") -cpp_quote("// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one") -cpp_quote("// singleton device for a process. Removing the devices when configuration changes prevents") -cpp_quote("// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view.") -cpp_quote("//") -cpp_quote("// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on.") -cpp_quote("// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed") -cpp_quote("// in are known to be incompatible with each other, or other errors.") -cpp_quote("// Returns S_OK otherwise.") -cpp_quote("//") -cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") -cpp_quote("HRESULT WINAPI D3D12EnableExperimentalFeatures(") -cpp_quote(" UINT NumFeatures,") -cpp_quote(" _In_count_(NumFeatures) const IID* pIIDs,") -cpp_quote(" _In_opt_count_(NumFeatures) void* pConfigurationStructs,") -cpp_quote(" _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes);") -cpp_quote("") -cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") -cpp_quote("// Experimental Feature: D3D12ExperimentalShaderModels") -cpp_quote("//") -cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,") -cpp_quote("// meaning shader models that haven't been finalized for use in retail.") -cpp_quote("//") -cpp_quote("// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.") -cpp_quote("//") -cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") -cpp_quote("static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */") -cpp_quote(" 0x76f5573e,") -cpp_quote(" 0xf13a,") -cpp_quote(" 0x40f5,") -cpp_quote(" { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }") -cpp_quote("};") -cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") -cpp_quote("// Experimental Feature: D3D12TiledResourceTier4") -cpp_quote("//") -cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,") -cpp_quote("// meaning texture tile data-inheritance is allowed.") -cpp_quote("//") -cpp_quote("// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.") -cpp_quote("//") -cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") -cpp_quote("static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */") -cpp_quote(" 0xc9c4725f,") -cpp_quote(" 0xa81a,") -cpp_quote(" 0x4f56,") -cpp_quote(" { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }") -cpp_quote("};") - -cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") -cpp_quote("// D3D12GetInterface") -cpp_quote("//") -cpp_quote("// Retrieve Global D3D12 Interface.") -cpp_quote("//") -cpp_quote("") -cpp_quote("DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);") -cpp_quote("DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);") -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("") -cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );") -cpp_quote("") -cpp_quote("HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );") -cpp_quote("") - -//================================================================================================================================== -// -// SDK Configuration -// -//================================================================================================================================== - -[uuid(e9eb5314-33aa-42b2-a718-d77f58b1f1c7), object, local, pointer_default(unique)] -interface ID3D12SDKConfiguration - : IUnknown -{ - HRESULT SetSDKVersion( - UINT SDKVersion, - [annotation("_In_z_")] LPCSTR SDKPath - ); -} - -[uuid(8aaf9303-ad25-48b9-9a57-d9c37e009d9f), object, local, pointer_default(unique)] -interface ID3D12SDKConfiguration1 - : ID3D12SDKConfiguration -{ - HRESULT CreateDeviceFactory( - UINT SDKVersion, - [annotation("_In_")] LPCSTR SDKPath, - REFIID riid, // Expected: ID3D12DeviceFactory - [annotation("_COM_Outptr_")] void **ppvFactory - ); - void FreeUnusedSDKs(); -} - -typedef enum D3D12_DEVICE_FACTORY_FLAGS -{ - D3D12_DEVICE_FACTORY_FLAG_NONE = 0, - D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1, - D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2, - D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4, -} D3D12_DEVICE_FACTORY_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS )") - -[uuid(61f307d3-d34e-4e7c-8374-3ba4de23cccb), object, local, pointer_default(unique)] -interface ID3D12DeviceFactory - : IUnknown -{ - HRESULT InitializeFromGlobalState(); - HRESULT ApplyToGlobalState(); - - HRESULT SetFlags(D3D12_DEVICE_FACTORY_FLAGS flags); - D3D12_DEVICE_FACTORY_FLAGS GetFlags(); - - HRESULT GetConfigurationInterface( - REFCLSID clsid, - REFIID iid, - [annotation("_COM_Outptr_")] void **ppv); - - HRESULT EnableExperimentalFeatures( - UINT NumFeatures, - [annotation("_In_reads_(NumFeatures)")] const IID *pIIDs, - [annotation("_In_reads_opt_(NumFeatures)")] void *pConfigurationStructs, - [annotation("_In_reads_opt_(NumFeatures)")] UINT *pConfigurationStructSizes); - - HRESULT CreateDevice( - [annotation("_In_opt_")] IUnknown *adapter, - D3D_FEATURE_LEVEL FeatureLevel, - REFIID riid, - [annotation("_COM_Outptr_opt_")] void **ppvDevice); -}; - -typedef enum D3D12_DEVICE_FLAGS -{ - D3D12_DEVICE_FLAG_NONE = 0, - D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1, - D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2, - D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4, - D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8, - D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10, - D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20, - D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40, - D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80, - D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100, - D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200, - D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400, -} D3D12_DEVICE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS )") - -typedef struct D3D12_DEVICE_CONFIGURATION_DESC -{ - D3D12_DEVICE_FLAGS Flags; - UINT GpuBasedValidationFlags; // D3D12_GPU_BASED_VALIDATION_FLAGS from d3d12sdklayers.h - UINT SDKVersion; - UINT NumEnabledExperimentalFeatures; -} D3D12_DEVICE_CONFIGURATION_DESC; - -[uuid(78dbf87b-f766-422b-a61c-c8c446bdb9ad), object, local, pointer_default(unique)] -interface ID3D12DeviceConfiguration - : IUnknown -{ - D3D12_DEVICE_CONFIGURATION_DESC GetDesc(); - HRESULT GetEnabledExperimentalFeatures([annotation("_Out_writes_(NumGuids)")] GUID *pGuids, UINT NumGuids); - - HRESULT SerializeVersionedRootSignature( - [annotation("_In_")] const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, - [annotation("_COM_Outptr_")] ID3DBlob **ppResult, - [annotation("_Always_(_Outptr_opt_result_maybenull_)")] ID3DBlob **ppError); - - HRESULT CreateVersionedRootSignatureDeserializer( - [annotation("_In_reads_bytes_(Size)")] const void *pBlob, - SIZE_T Size, - REFIID riid, - [annotation("_COM_Outptr_")] void **ppvDeserializer); -}; - -[uuid(ed342442-6343-4e16-bb82-a3a577874e56), object, local, pointer_default(unique)] -interface ID3D12DeviceConfiguration1 - : ID3D12DeviceConfiguration -{ - HRESULT CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary( - [annotation("_In_reads_bytes_(Size)")] const void* pLibraryBlob, - SIZE_T Size, - LPCWSTR RootSignatureSubobjectName, - REFIID riid, - [annotation("_COM_Outptr_")] void** ppvDeserializer); -}; - - -typedef enum D3D12_AXIS_SHADING_RATE -{ - D3D12_AXIS_SHADING_RATE_1X = 0x0, - D3D12_AXIS_SHADING_RATE_2X = 0x1, - D3D12_AXIS_SHADING_RATE_4X = 0x2 -} D3D12_AXIS_SHADING_RATE; - - -cpp_quote("#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2") -cpp_quote("#define D3D12_SHADING_RATE_VALID_MASK 3") - -cpp_quote("#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))") - -cpp_quote("#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)") -cpp_quote("#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK)") - -typedef enum D3D12_SHADING_RATE -{ - D3D12_SHADING_RATE_1X1 = 0x0, - D3D12_SHADING_RATE_1X2 = 0x1, - D3D12_SHADING_RATE_2X1 = 0x4, - D3D12_SHADING_RATE_2X2 = 0x5, - D3D12_SHADING_RATE_2X4 = 0x6, - D3D12_SHADING_RATE_4X2 = 0x9, - D3D12_SHADING_RATE_4X4 = 0xA -} D3D12_SHADING_RATE; - -typedef enum D3D12_SHADING_RATE_COMBINER -{ - D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0, - D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1, - D3D12_SHADING_RATE_COMBINER_MIN = 2, - D3D12_SHADING_RATE_COMBINER_MAX = 3, - D3D12_SHADING_RATE_COMBINER_SUM = 4, -} D3D12_SHADING_RATE_COMBINER; - -[uuid(55050859-4024-474c-87f5-6472eaee44ea), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList5 : ID3D12GraphicsCommandList4 -{ - void RSSetShadingRate( - [annotation("_In_")] D3D12_SHADING_RATE baseShadingRate, - [annotation("_In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT)")] const D3D12_SHADING_RATE_COMBINER* combiners); - - void RSSetShadingRateImage( - [annotation("_In_opt_")] ID3D12Resource* shadingRateImage); -} - -typedef struct D3D12_DISPATCH_MESH_ARGUMENTS -{ - UINT ThreadGroupCountX; - UINT ThreadGroupCountY; - UINT ThreadGroupCountZ; -} D3D12_DISPATCH_MESH_ARGUMENTS; - -[uuid(c3827890-e548-4cfa-96cf-5689a9370f80), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList6 : ID3D12GraphicsCommandList5 -{ - void DispatchMesh( - [annotation("_In_")] UINT ThreadGroupCountX, - [annotation("_In_")] UINT ThreadGroupCountY, - [annotation("_In_")] UINT ThreadGroupCountZ - ); -} - -[uuid(dd171223-8b61-4769-90e3-160ccde4e2c1), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList7 : ID3D12GraphicsCommandList6 -{ - void Barrier( - UINT32 NumBarrierGroups, - [annotation("_In_reads_(NumBarrierGroups)")] const D3D12_BARRIER_GROUP *pBarrierGroups - ); -}; - -[uuid(ee936ef9-599d-4d28-938e-23c4ad05ce51), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList8 : ID3D12GraphicsCommandList7 -{ - void OMSetFrontAndBackStencilRef( - [annotation("_In_")] UINT FrontStencilRef, - [annotation("_In_")] UINT BackStencilRef - ); -}; - -[uuid(34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList9 : ID3D12GraphicsCommandList8 -{ - void RSSetDepthBias( - [annotation("_In_")] FLOAT DepthBias, - [annotation("_In_")] FLOAT DepthBiasClamp, - [annotation("_In_")] FLOAT SlopeScaledDepthBias - ); - - void IASetIndexBufferStripCutValue( - [annotation("_In_")] D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue - ); -}; - -[uuid(7013c015-d161-4b63-a08c-238552dd8acc), object, local, pointer_default(unique)] -interface ID3D12GraphicsCommandList10 : ID3D12GraphicsCommandList9 -{ - void SetProgram([annotation("_In_")] const D3D12_SET_PROGRAM_DESC* pDesc); - void DispatchGraph([annotation("_In_")] const D3D12_DISPATCH_GRAPH_DESC* pDesc); -}; - - - -[uuid(597985ab-9b75-4dbb-be23-0761195bebee), object, local, pointer_default(unique)] -interface ID3D12GBVDiagnostics - : IUnknown -{ - HRESULT GetGBVEntireSubresourceStatesData( [annotation("_In_")] ID3D12Resource* pResource, [annotation("_Out_writes_bytes_(DataSize)")] int *pData, UINT DataSize ); - HRESULT GetGBVSubresourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, [annotation("_Out_")] int *pData ); - HRESULT GetGBVResourceUniformState( [annotation("_In_")] ID3D12Resource* pResource, [annotation("_Out_")] int *pData ); - HRESULT GetGBVResourceInfo( [annotation("_In_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] D3D12_RESOURCE_DESC* pResourceDesc, - [annotation("_In_opt_")] UINT32* pResourceHash, - [annotation("_In_opt_")] UINT32* pSubresourceStatesByteOffset ); - - void GBVReserved0(); - - void GBVReserved1(); -} - -//---------------------------------------------------------------------------------------------------------- -// Old types which are still supported by the runtime for app-compat - -cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") -#pragma endregion - -cpp_quote( "DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);" ) -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_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);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e);" ) -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_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);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1);" ) -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_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee);" ) diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12compatibility.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12compatibility.h deleted file mode 100644 index bab8d6f..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12compatibility.h +++ /dev/null @@ -1,819 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0628 */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __d3d12compatibility_h__ -#define __d3d12compatibility_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -#ifndef DECLSPEC_XFGVIRT -#if defined(_CONTROL_FLOW_GUARD_XFG) -#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) -#else -#define DECLSPEC_XFGVIRT(base, func) -#endif -#endif - -/* Forward Declarations */ - -#ifndef __ID3D12CompatibilityDevice_FWD_DEFINED__ -#define __ID3D12CompatibilityDevice_FWD_DEFINED__ -typedef interface ID3D12CompatibilityDevice ID3D12CompatibilityDevice; - -#endif /* __ID3D12CompatibilityDevice_FWD_DEFINED__ */ - - -#ifndef __D3D11On12CreatorID_FWD_DEFINED__ -#define __D3D11On12CreatorID_FWD_DEFINED__ -typedef interface D3D11On12CreatorID D3D11On12CreatorID; - -#endif /* __D3D11On12CreatorID_FWD_DEFINED__ */ - - -#ifndef __D3D9On12CreatorID_FWD_DEFINED__ -#define __D3D9On12CreatorID_FWD_DEFINED__ -typedef interface D3D9On12CreatorID D3D9On12CreatorID; - -#endif /* __D3D9On12CreatorID_FWD_DEFINED__ */ - - -#ifndef __OpenGLOn12CreatorID_FWD_DEFINED__ -#define __OpenGLOn12CreatorID_FWD_DEFINED__ -typedef interface OpenGLOn12CreatorID OpenGLOn12CreatorID; - -#endif /* __OpenGLOn12CreatorID_FWD_DEFINED__ */ - - -#ifndef __OpenCLOn12CreatorID_FWD_DEFINED__ -#define __OpenCLOn12CreatorID_FWD_DEFINED__ -typedef interface OpenCLOn12CreatorID OpenCLOn12CreatorID; - -#endif /* __OpenCLOn12CreatorID_FWD_DEFINED__ */ - - -#ifndef __VulkanOn12CreatorID_FWD_DEFINED__ -#define __VulkanOn12CreatorID_FWD_DEFINED__ -typedef interface VulkanOn12CreatorID VulkanOn12CreatorID; - -#endif /* __VulkanOn12CreatorID_FWD_DEFINED__ */ - - -#ifndef __DirectMLTensorFlowCreatorID_FWD_DEFINED__ -#define __DirectMLTensorFlowCreatorID_FWD_DEFINED__ -typedef interface DirectMLTensorFlowCreatorID DirectMLTensorFlowCreatorID; - -#endif /* __DirectMLTensorFlowCreatorID_FWD_DEFINED__ */ - - -#ifndef __DirectMLPyTorchCreatorID_FWD_DEFINED__ -#define __DirectMLPyTorchCreatorID_FWD_DEFINED__ -typedef interface DirectMLPyTorchCreatorID DirectMLPyTorchCreatorID; - -#endif /* __DirectMLPyTorchCreatorID_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "d3d11on12.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d12compatibility_0000_0000 */ -/* [local] */ - -#include -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) -typedef -enum D3D12_COMPATIBILITY_SHARED_FLAGS - { - D3D12_COMPATIBILITY_SHARED_FLAG_NONE = 0, - D3D12_COMPATIBILITY_SHARED_FLAG_NON_NT_HANDLE = 0x1, - D3D12_COMPATIBILITY_SHARED_FLAG_KEYED_MUTEX = 0x2, - D3D12_COMPATIBILITY_SHARED_FLAG_9_ON_12 = 0x4 - } D3D12_COMPATIBILITY_SHARED_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMPATIBILITY_SHARED_FLAGS ) -typedef -enum D3D12_REFLECT_SHARED_PROPERTY - { - D3D12_REFLECT_SHARED_PROPERTY_D3D11_RESOURCE_FLAGS = 0, - D3D12_REFELCT_SHARED_PROPERTY_COMPATIBILITY_SHARED_FLAGS = ( D3D12_REFLECT_SHARED_PROPERTY_D3D11_RESOURCE_FLAGS + 1 ) , - D3D12_REFLECT_SHARED_PROPERTY_NON_NT_SHARED_HANDLE = ( D3D12_REFELCT_SHARED_PROPERTY_COMPATIBILITY_SHARED_FLAGS + 1 ) - } D3D12_REFLECT_SHARED_PROPERTY; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D12CompatibilityDevice_INTERFACE_DEFINED__ -#define __ID3D12CompatibilityDevice_INTERFACE_DEFINED__ - -/* interface ID3D12CompatibilityDevice */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CompatibilityDevice; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8f1c0e3c-fae3-4a82-b098-bfe1708207ff") - ID3D12CompatibilityDevice : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateSharedResource( - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ const D3D11_RESOURCE_FLAGS *pFlags11, - D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, - _In_opt_ ID3D12LifetimeTracker *pLifetimeTracker, - _In_opt_ ID3D12SwapChainAssistant *pOwningSwapchain, - REFIID riid, - _COM_Outptr_opt_ void **ppResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSharedHeap( - _In_ const D3D12_HEAP_DESC *pHeapDesc, - D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, - REFIID riid, - _COM_Outptr_opt_ void **ppHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReflectSharedProperties( - _In_ ID3D12Object *pHeapOrResource, - D3D12_REFLECT_SHARED_PROPERTY ReflectType, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12CompatibilityDeviceVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CompatibilityDevice * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CompatibilityDevice * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CompatibilityDevice * This); - - DECLSPEC_XFGVIRT(ID3D12CompatibilityDevice, CreateSharedResource) - HRESULT ( STDMETHODCALLTYPE *CreateSharedResource )( - ID3D12CompatibilityDevice * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - _In_opt_ const D3D11_RESOURCE_FLAGS *pFlags11, - D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, - _In_opt_ ID3D12LifetimeTracker *pLifetimeTracker, - _In_opt_ ID3D12SwapChainAssistant *pOwningSwapchain, - REFIID riid, - _COM_Outptr_opt_ void **ppResource); - - DECLSPEC_XFGVIRT(ID3D12CompatibilityDevice, CreateSharedHeap) - HRESULT ( STDMETHODCALLTYPE *CreateSharedHeap )( - ID3D12CompatibilityDevice * This, - _In_ const D3D12_HEAP_DESC *pHeapDesc, - D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, - REFIID riid, - _COM_Outptr_opt_ void **ppHeap); - - DECLSPEC_XFGVIRT(ID3D12CompatibilityDevice, ReflectSharedProperties) - HRESULT ( STDMETHODCALLTYPE *ReflectSharedProperties )( - ID3D12CompatibilityDevice * This, - _In_ ID3D12Object *pHeapOrResource, - D3D12_REFLECT_SHARED_PROPERTY ReflectType, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize); - - END_INTERFACE - } ID3D12CompatibilityDeviceVtbl; - - interface ID3D12CompatibilityDevice - { - CONST_VTBL struct ID3D12CompatibilityDeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CompatibilityDevice_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CompatibilityDevice_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CompatibilityDevice_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CompatibilityDevice_CreateSharedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pFlags11,CompatibilityFlags,pLifetimeTracker,pOwningSwapchain,riid,ppResource) \ - ( (This)->lpVtbl -> CreateSharedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pFlags11,CompatibilityFlags,pLifetimeTracker,pOwningSwapchain,riid,ppResource) ) - -#define ID3D12CompatibilityDevice_CreateSharedHeap(This,pHeapDesc,CompatibilityFlags,riid,ppHeap) \ - ( (This)->lpVtbl -> CreateSharedHeap(This,pHeapDesc,CompatibilityFlags,riid,ppHeap) ) - -#define ID3D12CompatibilityDevice_ReflectSharedProperties(This,pHeapOrResource,ReflectType,pData,DataSize) \ - ( (This)->lpVtbl -> ReflectSharedProperties(This,pHeapOrResource,ReflectType,pData,DataSize) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12CompatibilityDevice_INTERFACE_DEFINED__ */ - - -#ifndef __D3D11On12CreatorID_INTERFACE_DEFINED__ -#define __D3D11On12CreatorID_INTERFACE_DEFINED__ - -/* interface D3D11On12CreatorID */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_D3D11On12CreatorID; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("edbf5678-2960-4e81-8429-99d4b2630c4e") - D3D11On12CreatorID : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct D3D11On12CreatorIDVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - D3D11On12CreatorID * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - D3D11On12CreatorID * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - D3D11On12CreatorID * This); - - END_INTERFACE - } D3D11On12CreatorIDVtbl; - - interface D3D11On12CreatorID - { - CONST_VTBL struct D3D11On12CreatorIDVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define D3D11On12CreatorID_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define D3D11On12CreatorID_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define D3D11On12CreatorID_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __D3D11On12CreatorID_INTERFACE_DEFINED__ */ - - -#ifndef __D3D9On12CreatorID_INTERFACE_DEFINED__ -#define __D3D9On12CreatorID_INTERFACE_DEFINED__ - -/* interface D3D9On12CreatorID */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_D3D9On12CreatorID; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("fffcbb7f-15d3-42a2-841e-9d8d32f37ddd") - D3D9On12CreatorID : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct D3D9On12CreatorIDVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - D3D9On12CreatorID * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - D3D9On12CreatorID * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - D3D9On12CreatorID * This); - - END_INTERFACE - } D3D9On12CreatorIDVtbl; - - interface D3D9On12CreatorID - { - CONST_VTBL struct D3D9On12CreatorIDVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define D3D9On12CreatorID_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define D3D9On12CreatorID_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define D3D9On12CreatorID_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __D3D9On12CreatorID_INTERFACE_DEFINED__ */ - - -#ifndef __OpenGLOn12CreatorID_INTERFACE_DEFINED__ -#define __OpenGLOn12CreatorID_INTERFACE_DEFINED__ - -/* interface OpenGLOn12CreatorID */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_OpenGLOn12CreatorID; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6bb3cd34-0d19-45ab-97ed-d720ba3dfc80") - OpenGLOn12CreatorID : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct OpenGLOn12CreatorIDVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - OpenGLOn12CreatorID * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - OpenGLOn12CreatorID * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - OpenGLOn12CreatorID * This); - - END_INTERFACE - } OpenGLOn12CreatorIDVtbl; - - interface OpenGLOn12CreatorID - { - CONST_VTBL struct OpenGLOn12CreatorIDVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define OpenGLOn12CreatorID_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define OpenGLOn12CreatorID_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define OpenGLOn12CreatorID_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __OpenGLOn12CreatorID_INTERFACE_DEFINED__ */ - - -#ifndef __OpenCLOn12CreatorID_INTERFACE_DEFINED__ -#define __OpenCLOn12CreatorID_INTERFACE_DEFINED__ - -/* interface OpenCLOn12CreatorID */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_OpenCLOn12CreatorID; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3f76bb74-91b5-4a88-b126-20ca0331cd60") - OpenCLOn12CreatorID : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct OpenCLOn12CreatorIDVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - OpenCLOn12CreatorID * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - OpenCLOn12CreatorID * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - OpenCLOn12CreatorID * This); - - END_INTERFACE - } OpenCLOn12CreatorIDVtbl; - - interface OpenCLOn12CreatorID - { - CONST_VTBL struct OpenCLOn12CreatorIDVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define OpenCLOn12CreatorID_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define OpenCLOn12CreatorID_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define OpenCLOn12CreatorID_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __OpenCLOn12CreatorID_INTERFACE_DEFINED__ */ - - -#ifndef __VulkanOn12CreatorID_INTERFACE_DEFINED__ -#define __VulkanOn12CreatorID_INTERFACE_DEFINED__ - -/* interface VulkanOn12CreatorID */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_VulkanOn12CreatorID; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("bc806e01-3052-406c-a3e8-9fc07f048f98") - VulkanOn12CreatorID : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct VulkanOn12CreatorIDVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - VulkanOn12CreatorID * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - VulkanOn12CreatorID * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - VulkanOn12CreatorID * This); - - END_INTERFACE - } VulkanOn12CreatorIDVtbl; - - interface VulkanOn12CreatorID - { - CONST_VTBL struct VulkanOn12CreatorIDVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define VulkanOn12CreatorID_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define VulkanOn12CreatorID_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define VulkanOn12CreatorID_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __VulkanOn12CreatorID_INTERFACE_DEFINED__ */ - - -#ifndef __DirectMLTensorFlowCreatorID_INTERFACE_DEFINED__ -#define __DirectMLTensorFlowCreatorID_INTERFACE_DEFINED__ - -/* interface DirectMLTensorFlowCreatorID */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_DirectMLTensorFlowCreatorID; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("cb7490ac-8a0f-44ec-9b7b-6f4cafe8e9ab") - DirectMLTensorFlowCreatorID : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct DirectMLTensorFlowCreatorIDVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - DirectMLTensorFlowCreatorID * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - DirectMLTensorFlowCreatorID * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - DirectMLTensorFlowCreatorID * This); - - END_INTERFACE - } DirectMLTensorFlowCreatorIDVtbl; - - interface DirectMLTensorFlowCreatorID - { - CONST_VTBL struct DirectMLTensorFlowCreatorIDVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define DirectMLTensorFlowCreatorID_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define DirectMLTensorFlowCreatorID_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define DirectMLTensorFlowCreatorID_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __DirectMLTensorFlowCreatorID_INTERFACE_DEFINED__ */ - - -#ifndef __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ -#define __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ - -/* interface DirectMLPyTorchCreatorID */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_DirectMLPyTorchCreatorID; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("af029192-fba1-4b05-9116-235e06560354") - DirectMLPyTorchCreatorID : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct DirectMLPyTorchCreatorIDVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - DirectMLPyTorchCreatorID * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - DirectMLPyTorchCreatorID * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - DirectMLPyTorchCreatorID * This); - - END_INTERFACE - } DirectMLPyTorchCreatorIDVtbl; - - interface DirectMLPyTorchCreatorID - { - CONST_VTBL struct DirectMLPyTorchCreatorIDVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define DirectMLPyTorchCreatorID_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define DirectMLPyTorchCreatorID_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define DirectMLPyTorchCreatorID_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12compatibility_0000_0008 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ -#pragma endregion -DEFINE_GUID(IID_ID3D12CompatibilityDevice,0x8f1c0e3c,0xfae3,0x4a82,0xb0,0x98,0xbf,0xe1,0x70,0x82,0x07,0xff); -DEFINE_GUID(IID_D3D11On12CreatorID,0xedbf5678,0x2960,0x4e81,0x84,0x29,0x99,0xd4,0xb2,0x63,0x0c,0x4e); -DEFINE_GUID(IID_D3D9On12CreatorID,0xfffcbb7f,0x15d3,0x42a2,0x84,0x1e,0x9d,0x8d,0x32,0xf3,0x7d,0xdd); -DEFINE_GUID(IID_OpenGLOn12CreatorID,0x6bb3cd34,0x0d19,0x45ab,0x97,0xed,0xd7,0x20,0xba,0x3d,0xfc,0x80); -DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x26,0x20,0xca,0x03,0x31,0xcd,0x60); -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); - - -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; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12compatibility.idl b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12compatibility.idl deleted file mode 100644 index f0f6edd..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12compatibility.idl +++ /dev/null @@ -1,96 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ -import "oaidl.idl"; -import "ocidl.idl"; - -import "d3d11on12.idl"; - -cpp_quote("#include ") - -#pragma region Desktop Family -cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") - -typedef enum D3D12_COMPATIBILITY_SHARED_FLAGS -{ - D3D12_COMPATIBILITY_SHARED_FLAG_NONE = 0, - D3D12_COMPATIBILITY_SHARED_FLAG_NON_NT_HANDLE = 0x1, - D3D12_COMPATIBILITY_SHARED_FLAG_KEYED_MUTEX = 0x2, - D3D12_COMPATIBILITY_SHARED_FLAG_9_ON_12 = 0x4, - -} D3D12_COMPATIBILITY_SHARED_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMPATIBILITY_SHARED_FLAGS )" ) - -typedef enum D3D12_REFLECT_SHARED_PROPERTY -{ - D3D12_REFLECT_SHARED_PROPERTY_D3D11_RESOURCE_FLAGS, // D3D11_RESOURCE_FLAGS - D3D12_REFELCT_SHARED_PROPERTY_COMPATIBILITY_SHARED_FLAGS, // D3D12_COMPATIBILITY_SHARED_FLAGS - D3D12_REFLECT_SHARED_PROPERTY_NON_NT_SHARED_HANDLE, // HANDLE -} D3D12_REFLECT_SHARED_PROPERTY; - -[ uuid( 8f1c0e3c-fae3-4a82-b098-bfe1708207ff ), object, local, pointer_default( unique ) ] -interface ID3D12CompatibilityDevice - : IUnknown -{ - HRESULT CreateSharedResource( - [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, - [annotation("_In_opt_")] const D3D11_RESOURCE_FLAGS* pFlags11, - D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, - [annotation("_In_opt_")] ID3D12LifetimeTracker* pLifetimeTracker, - [annotation("_In_opt_")] ID3D12SwapChainAssistant* pOwningSwapchain, - REFIID riid, - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppResource); - - HRESULT CreateSharedHeap( - [annotation("_In_")] const D3D12_HEAP_DESC* pHeapDesc, - D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, - REFIID riid, - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppHeap); - - HRESULT ReflectSharedProperties( - [annotation("_In_")] ID3D12Object* pHeapOrResource, - D3D12_REFLECT_SHARED_PROPERTY ReflectType, - [annotation("_Out_writes_bytes_(DataSize)")] void* pData, - UINT DataSize); -} - -[uuid(edbf5678-2960-4e81-8429-99d4b2630c4e), object, local, pointer_default(unique)] -interface D3D11On12CreatorID : IUnknown { }; - -[uuid(fffcbb7f-15d3-42a2-841e-9d8d32f37ddd), object, local, pointer_default(unique)] -interface D3D9On12CreatorID : IUnknown { }; - -[uuid(6bb3cd34-0d19-45ab-97ed-d720ba3dfc80), object, local, pointer_default(unique)] -interface OpenGLOn12CreatorID : IUnknown { }; - -[uuid(3f76bb74-91b5-4a88-b126-20ca0331cd60), object, local, pointer_default(unique)] -interface OpenCLOn12CreatorID : IUnknown { }; - -[uuid(bc806e01-3052-406c-a3e8-9fc07f048f98), object, local, pointer_default(unique)] -interface VulkanOn12CreatorID : IUnknown { }; - -[uuid(cb7490ac-8a0f-44ec-9b7b-6f4cafe8e9ab), object, local, pointer_default(unique)] -interface DirectMLTensorFlowCreatorID : IUnknown { }; - -[uuid(af029192-fba1-4b05-9116-235e06560354), object, local, pointer_default(unique)] -interface DirectMLPyTorchCreatorID : IUnknown { }; - - -cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") -#pragma endregion - -cpp_quote( "DEFINE_GUID(IID_ID3D12CompatibilityDevice,0x8f1c0e3c,0xfae3,0x4a82,0xb0,0x98,0xbf,0xe1,0x70,0x82,0x07,0xff);" ) -cpp_quote( "DEFINE_GUID(IID_D3D11On12CreatorID,0xedbf5678,0x2960,0x4e81,0x84,0x29,0x99,0xd4,0xb2,0x63,0x0c,0x4e);" ) -cpp_quote( "DEFINE_GUID(IID_D3D9On12CreatorID,0xfffcbb7f,0x15d3,0x42a2,0x84,0x1e,0x9d,0x8d,0x32,0xf3,0x7d,0xdd);" ) -cpp_quote( "DEFINE_GUID(IID_OpenGLOn12CreatorID,0x6bb3cd34,0x0d19,0x45ab,0x97,0xed,0xd7,0x20,0xba,0x3d,0xfc,0x80);" ) -cpp_quote( "DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x26,0x20,0xca,0x03,0x31,0xcd,0x60);" ) -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);" ) diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12sdklayers.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12sdklayers.h deleted file mode 100644 index 3bab2e3..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12sdklayers.h +++ /dev/null @@ -1,4263 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0628 */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __d3d12sdklayers_h__ -#define __d3d12sdklayers_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -#ifndef DECLSPEC_XFGVIRT -#if defined(_CONTROL_FLOW_GUARD_XFG) -#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) -#else -#define DECLSPEC_XFGVIRT(base, func) -#endif -#endif - -/* Forward Declarations */ - -#ifndef __ID3D12Debug_FWD_DEFINED__ -#define __ID3D12Debug_FWD_DEFINED__ -typedef interface ID3D12Debug ID3D12Debug; - -#endif /* __ID3D12Debug_FWD_DEFINED__ */ - - -#ifndef __ID3D12Debug1_FWD_DEFINED__ -#define __ID3D12Debug1_FWD_DEFINED__ -typedef interface ID3D12Debug1 ID3D12Debug1; - -#endif /* __ID3D12Debug1_FWD_DEFINED__ */ - - -#ifndef __ID3D12Debug2_FWD_DEFINED__ -#define __ID3D12Debug2_FWD_DEFINED__ -typedef interface ID3D12Debug2 ID3D12Debug2; - -#endif /* __ID3D12Debug2_FWD_DEFINED__ */ - - -#ifndef __ID3D12Debug3_FWD_DEFINED__ -#define __ID3D12Debug3_FWD_DEFINED__ -typedef interface ID3D12Debug3 ID3D12Debug3; - -#endif /* __ID3D12Debug3_FWD_DEFINED__ */ - - -#ifndef __ID3D12Debug4_FWD_DEFINED__ -#define __ID3D12Debug4_FWD_DEFINED__ -typedef interface ID3D12Debug4 ID3D12Debug4; - -#endif /* __ID3D12Debug4_FWD_DEFINED__ */ - - -#ifndef __ID3D12Debug5_FWD_DEFINED__ -#define __ID3D12Debug5_FWD_DEFINED__ -typedef interface ID3D12Debug5 ID3D12Debug5; - -#endif /* __ID3D12Debug5_FWD_DEFINED__ */ - - -#ifndef __ID3D12Debug6_FWD_DEFINED__ -#define __ID3D12Debug6_FWD_DEFINED__ -typedef interface ID3D12Debug6 ID3D12Debug6; - -#endif /* __ID3D12Debug6_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugDevice1_FWD_DEFINED__ -#define __ID3D12DebugDevice1_FWD_DEFINED__ -typedef interface ID3D12DebugDevice1 ID3D12DebugDevice1; - -#endif /* __ID3D12DebugDevice1_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugDevice_FWD_DEFINED__ -#define __ID3D12DebugDevice_FWD_DEFINED__ -typedef interface ID3D12DebugDevice ID3D12DebugDevice; - -#endif /* __ID3D12DebugDevice_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugDevice2_FWD_DEFINED__ -#define __ID3D12DebugDevice2_FWD_DEFINED__ -typedef interface ID3D12DebugDevice2 ID3D12DebugDevice2; - -#endif /* __ID3D12DebugDevice2_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandQueue_FWD_DEFINED__ -#define __ID3D12DebugCommandQueue_FWD_DEFINED__ -typedef interface ID3D12DebugCommandQueue ID3D12DebugCommandQueue; - -#endif /* __ID3D12DebugCommandQueue_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandQueue1_FWD_DEFINED__ -#define __ID3D12DebugCommandQueue1_FWD_DEFINED__ -typedef interface ID3D12DebugCommandQueue1 ID3D12DebugCommandQueue1; - -#endif /* __ID3D12DebugCommandQueue1_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList1_FWD_DEFINED__ -#define __ID3D12DebugCommandList1_FWD_DEFINED__ -typedef interface ID3D12DebugCommandList1 ID3D12DebugCommandList1; - -#endif /* __ID3D12DebugCommandList1_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList_FWD_DEFINED__ -#define __ID3D12DebugCommandList_FWD_DEFINED__ -typedef interface ID3D12DebugCommandList ID3D12DebugCommandList; - -#endif /* __ID3D12DebugCommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList2_FWD_DEFINED__ -#define __ID3D12DebugCommandList2_FWD_DEFINED__ -typedef interface ID3D12DebugCommandList2 ID3D12DebugCommandList2; - -#endif /* __ID3D12DebugCommandList2_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList3_FWD_DEFINED__ -#define __ID3D12DebugCommandList3_FWD_DEFINED__ -typedef interface ID3D12DebugCommandList3 ID3D12DebugCommandList3; - -#endif /* __ID3D12DebugCommandList3_FWD_DEFINED__ */ - - -#ifndef __ID3D12SharingContract_FWD_DEFINED__ -#define __ID3D12SharingContract_FWD_DEFINED__ -typedef interface ID3D12SharingContract ID3D12SharingContract; - -#endif /* __ID3D12SharingContract_FWD_DEFINED__ */ - - -#ifndef __ID3D12ManualWriteTrackingResource_FWD_DEFINED__ -#define __ID3D12ManualWriteTrackingResource_FWD_DEFINED__ -typedef interface ID3D12ManualWriteTrackingResource ID3D12ManualWriteTrackingResource; - -#endif /* __ID3D12ManualWriteTrackingResource_FWD_DEFINED__ */ - - -#ifndef __ID3D12InfoQueue_FWD_DEFINED__ -#define __ID3D12InfoQueue_FWD_DEFINED__ -typedef interface ID3D12InfoQueue ID3D12InfoQueue; - -#endif /* __ID3D12InfoQueue_FWD_DEFINED__ */ - - -#ifndef __ID3D12InfoQueue1_FWD_DEFINED__ -#define __ID3D12InfoQueue1_FWD_DEFINED__ -typedef interface ID3D12InfoQueue1 ID3D12InfoQueue1; - -#endif /* __ID3D12InfoQueue1_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "d3d12.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0000 */ -/* [local] */ - -#include -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D12Debug_INTERFACE_DEFINED__ -#define __ID3D12Debug_INTERFACE_DEFINED__ - -/* interface ID3D12Debug */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Debug; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0") - ID3D12Debug : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE EnableDebugLayer( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Debug * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Debug * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Debug * This); - - DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) - void ( STDMETHODCALLTYPE *EnableDebugLayer )( - ID3D12Debug * This); - - END_INTERFACE - } ID3D12DebugVtbl; - - interface ID3D12Debug - { - CONST_VTBL struct ID3D12DebugVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Debug_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Debug_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Debug_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Debug_EnableDebugLayer(This) \ - ( (This)->lpVtbl -> EnableDebugLayer(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Debug_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0001 */ -/* [local] */ - -typedef -enum D3D12_GPU_BASED_VALIDATION_FLAGS - { - D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0, - D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x1 - } D3D12_GPU_BASED_VALIDATION_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS) - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3D12Debug1_INTERFACE_DEFINED__ -#define __ID3D12Debug1_INTERFACE_DEFINED__ - -/* interface ID3D12Debug1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Debug1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("affaa4ca-63fe-4d8e-b8ad-159000af4304") - ID3D12Debug1 : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE EnableDebugLayer( void) = 0; - - virtual void STDMETHODCALLTYPE SetEnableGPUBasedValidation( - BOOL Enable) = 0; - - virtual void STDMETHODCALLTYPE SetEnableSynchronizedCommandQueueValidation( - BOOL Enable) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Debug1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Debug1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Debug1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Debug1 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug1, EnableDebugLayer) - void ( STDMETHODCALLTYPE *EnableDebugLayer )( - ID3D12Debug1 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug1, SetEnableGPUBasedValidation) - void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( - ID3D12Debug1 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug1, SetEnableSynchronizedCommandQueueValidation) - void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( - ID3D12Debug1 * This, - BOOL Enable); - - END_INTERFACE - } ID3D12Debug1Vtbl; - - interface ID3D12Debug1 - { - CONST_VTBL struct ID3D12Debug1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Debug1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Debug1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Debug1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Debug1_EnableDebugLayer(This) \ - ( (This)->lpVtbl -> EnableDebugLayer(This) ) - -#define ID3D12Debug1_SetEnableGPUBasedValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) - -#define ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Debug1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Debug2_INTERFACE_DEFINED__ -#define __ID3D12Debug2_INTERFACE_DEFINED__ - -/* interface ID3D12Debug2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Debug2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("93a665c4-a3b2-4e5d-b692-a26ae14e3374") - ID3D12Debug2 : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE SetGPUBasedValidationFlags( - D3D12_GPU_BASED_VALIDATION_FLAGS Flags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Debug2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Debug2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Debug2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Debug2 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug2, SetGPUBasedValidationFlags) - void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( - ID3D12Debug2 * This, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags); - - END_INTERFACE - } ID3D12Debug2Vtbl; - - interface ID3D12Debug2 - { - CONST_VTBL struct ID3D12Debug2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Debug2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Debug2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Debug2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Debug2_SetGPUBasedValidationFlags(This,Flags) \ - ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Debug2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Debug3_INTERFACE_DEFINED__ -#define __ID3D12Debug3_INTERFACE_DEFINED__ - -/* interface ID3D12Debug3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Debug3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5cf4e58f-f671-4ff1-a542-3686e3d153d1") - ID3D12Debug3 : public ID3D12Debug - { - public: - virtual void STDMETHODCALLTYPE SetEnableGPUBasedValidation( - BOOL Enable) = 0; - - virtual void STDMETHODCALLTYPE SetEnableSynchronizedCommandQueueValidation( - BOOL Enable) = 0; - - virtual void STDMETHODCALLTYPE SetGPUBasedValidationFlags( - D3D12_GPU_BASED_VALIDATION_FLAGS Flags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Debug3Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Debug3 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Debug3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Debug3 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) - void ( STDMETHODCALLTYPE *EnableDebugLayer )( - ID3D12Debug3 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableGPUBasedValidation) - void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( - ID3D12Debug3 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableSynchronizedCommandQueueValidation) - void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( - ID3D12Debug3 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetGPUBasedValidationFlags) - void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( - ID3D12Debug3 * This, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags); - - END_INTERFACE - } ID3D12Debug3Vtbl; - - interface ID3D12Debug3 - { - CONST_VTBL struct ID3D12Debug3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Debug3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Debug3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Debug3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Debug3_EnableDebugLayer(This) \ - ( (This)->lpVtbl -> EnableDebugLayer(This) ) - - -#define ID3D12Debug3_SetEnableGPUBasedValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) - -#define ID3D12Debug3_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) - -#define ID3D12Debug3_SetGPUBasedValidationFlags(This,Flags) \ - ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Debug3_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Debug4_INTERFACE_DEFINED__ -#define __ID3D12Debug4_INTERFACE_DEFINED__ - -/* interface ID3D12Debug4 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Debug4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("014b816e-9ec5-4a2f-a845-ffbe441ce13a") - ID3D12Debug4 : public ID3D12Debug3 - { - public: - virtual void STDMETHODCALLTYPE DisableDebugLayer( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Debug4Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Debug4 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Debug4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Debug4 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) - void ( STDMETHODCALLTYPE *EnableDebugLayer )( - ID3D12Debug4 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableGPUBasedValidation) - void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( - ID3D12Debug4 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableSynchronizedCommandQueueValidation) - void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( - ID3D12Debug4 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetGPUBasedValidationFlags) - void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( - ID3D12Debug4 * This, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12Debug4, DisableDebugLayer) - void ( STDMETHODCALLTYPE *DisableDebugLayer )( - ID3D12Debug4 * This); - - END_INTERFACE - } ID3D12Debug4Vtbl; - - interface ID3D12Debug4 - { - CONST_VTBL struct ID3D12Debug4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Debug4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Debug4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Debug4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Debug4_EnableDebugLayer(This) \ - ( (This)->lpVtbl -> EnableDebugLayer(This) ) - - -#define ID3D12Debug4_SetEnableGPUBasedValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) - -#define ID3D12Debug4_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) - -#define ID3D12Debug4_SetGPUBasedValidationFlags(This,Flags) \ - ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) - - -#define ID3D12Debug4_DisableDebugLayer(This) \ - ( (This)->lpVtbl -> DisableDebugLayer(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Debug4_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Debug5_INTERFACE_DEFINED__ -#define __ID3D12Debug5_INTERFACE_DEFINED__ - -/* interface ID3D12Debug5 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Debug5; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("548d6b12-09fa-40e0-9069-5dcd589a52c9") - ID3D12Debug5 : public ID3D12Debug4 - { - public: - virtual void STDMETHODCALLTYPE SetEnableAutoName( - BOOL Enable) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Debug5Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Debug5 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Debug5 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Debug5 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) - void ( STDMETHODCALLTYPE *EnableDebugLayer )( - ID3D12Debug5 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableGPUBasedValidation) - void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( - ID3D12Debug5 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableSynchronizedCommandQueueValidation) - void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( - ID3D12Debug5 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetGPUBasedValidationFlags) - void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( - ID3D12Debug5 * This, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12Debug4, DisableDebugLayer) - void ( STDMETHODCALLTYPE *DisableDebugLayer )( - ID3D12Debug5 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug5, SetEnableAutoName) - void ( STDMETHODCALLTYPE *SetEnableAutoName )( - ID3D12Debug5 * This, - BOOL Enable); - - END_INTERFACE - } ID3D12Debug5Vtbl; - - interface ID3D12Debug5 - { - CONST_VTBL struct ID3D12Debug5Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Debug5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Debug5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Debug5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Debug5_EnableDebugLayer(This) \ - ( (This)->lpVtbl -> EnableDebugLayer(This) ) - - -#define ID3D12Debug5_SetEnableGPUBasedValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) - -#define ID3D12Debug5_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) - -#define ID3D12Debug5_SetGPUBasedValidationFlags(This,Flags) \ - ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) - - -#define ID3D12Debug5_DisableDebugLayer(This) \ - ( (This)->lpVtbl -> DisableDebugLayer(This) ) - - -#define ID3D12Debug5_SetEnableAutoName(This,Enable) \ - ( (This)->lpVtbl -> SetEnableAutoName(This,Enable) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Debug5_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Debug6_INTERFACE_DEFINED__ -#define __ID3D12Debug6_INTERFACE_DEFINED__ - -/* interface ID3D12Debug6 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Debug6; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("82a816d6-5d01-4157-97d0-4975463fd1ed") - ID3D12Debug6 : public ID3D12Debug5 - { - public: - virtual void STDMETHODCALLTYPE SetForceLegacyBarrierValidation( - BOOL Enable) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12Debug6Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Debug6 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Debug6 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Debug6 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) - void ( STDMETHODCALLTYPE *EnableDebugLayer )( - ID3D12Debug6 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableGPUBasedValidation) - void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( - ID3D12Debug6 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableSynchronizedCommandQueueValidation) - void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( - ID3D12Debug6 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug3, SetGPUBasedValidationFlags) - void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( - ID3D12Debug6 * This, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12Debug4, DisableDebugLayer) - void ( STDMETHODCALLTYPE *DisableDebugLayer )( - ID3D12Debug6 * This); - - DECLSPEC_XFGVIRT(ID3D12Debug5, SetEnableAutoName) - void ( STDMETHODCALLTYPE *SetEnableAutoName )( - ID3D12Debug6 * This, - BOOL Enable); - - DECLSPEC_XFGVIRT(ID3D12Debug6, SetForceLegacyBarrierValidation) - void ( STDMETHODCALLTYPE *SetForceLegacyBarrierValidation )( - ID3D12Debug6 * This, - BOOL Enable); - - END_INTERFACE - } ID3D12Debug6Vtbl; - - interface ID3D12Debug6 - { - CONST_VTBL struct ID3D12Debug6Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Debug6_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Debug6_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Debug6_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Debug6_EnableDebugLayer(This) \ - ( (This)->lpVtbl -> EnableDebugLayer(This) ) - - -#define ID3D12Debug6_SetEnableGPUBasedValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) - -#define ID3D12Debug6_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ - ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) - -#define ID3D12Debug6_SetGPUBasedValidationFlags(This,Flags) \ - ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) - - -#define ID3D12Debug6_DisableDebugLayer(This) \ - ( (This)->lpVtbl -> DisableDebugLayer(This) ) - - -#define ID3D12Debug6_SetEnableAutoName(This,Enable) \ - ( (This)->lpVtbl -> SetEnableAutoName(This,Enable) ) - - -#define ID3D12Debug6_SetForceLegacyBarrierValidation(This,Enable) \ - ( (This)->lpVtbl -> SetForceLegacyBarrierValidation(This,Enable) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Debug6_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0007 */ -/* [local] */ - -DEFINE_GUID(WKPDID_D3DAutoDebugObjectNameW, 0xd4902e36, 0x757a, 0x4942, 0x95, 0x94, 0xb6, 0x76, 0x9a, 0xfa, 0x43, 0xcd); -typedef -enum D3D12_RLDO_FLAGS - { - D3D12_RLDO_NONE = 0, - D3D12_RLDO_SUMMARY = 0x1, - D3D12_RLDO_DETAIL = 0x2, - D3D12_RLDO_IGNORE_INTERNAL = 0x4 - } D3D12_RLDO_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS) -typedef -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_TYPE; - -typedef -enum D3D12_DEBUG_FEATURE - { - D3D12_DEBUG_FEATURE_NONE = 0, - D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x1, - D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x2, - D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x4, - D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7 = 0x8 - } D3D12_DEBUG_FEATURE; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEBUG_FEATURE) -typedef -enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE - { - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0, - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE + 1 ) , - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY + 1 ) , - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION + 1 ) , - NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION + 1 ) - } D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE; - -typedef -enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS - { - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0, - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x1, - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x2, - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x4, - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x7 - } D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS) -typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS - { - UINT MaxMessagesPerCommandList; - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode; - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags; - } D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS; - -typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR - { - FLOAT SlowdownFactor; - } D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_s_ifspec; - -#ifndef __ID3D12DebugDevice1_INTERFACE_DEFINED__ -#define __ID3D12DebugDevice1_INTERFACE_DEFINED__ - -/* interface ID3D12DebugDevice1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugDevice1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a9b71770-d099-4a65-a698-3dee10020f88") - ID3D12DebugDevice1 : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetDebugParameter( - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDebugParameter( - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects( - D3D12_RLDO_FLAGS Flags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugDevice1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugDevice1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugDevice1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugDevice1 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice1, SetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( - ID3D12DebugDevice1 * This, - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice1, GetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( - ID3D12DebugDevice1 * This, - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice1, ReportLiveDeviceObjects) - HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )( - ID3D12DebugDevice1 * This, - D3D12_RLDO_FLAGS Flags); - - END_INTERFACE - } ID3D12DebugDevice1Vtbl; - - interface ID3D12DebugDevice1 - { - CONST_VTBL struct ID3D12DebugDevice1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugDevice1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugDevice1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugDevice1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugDevice1_SetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) - -#define ID3D12DebugDevice1_GetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) - -#define ID3D12DebugDevice1_ReportLiveDeviceObjects(This,Flags) \ - ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugDevice1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DebugDevice_INTERFACE_DEFINED__ -#define __ID3D12DebugDevice_INTERFACE_DEFINED__ - -/* interface ID3D12DebugDevice */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugDevice; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3febd6dd-4973-4787-8194-e45f9e28923e") - ID3D12DebugDevice : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetFeatureMask( - D3D12_DEBUG_FEATURE Mask) = 0; - - virtual D3D12_DEBUG_FEATURE STDMETHODCALLTYPE GetFeatureMask( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects( - D3D12_RLDO_FLAGS Flags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugDeviceVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugDevice * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugDevice * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugDevice * This); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice, SetFeatureMask) - HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( - ID3D12DebugDevice * This, - D3D12_DEBUG_FEATURE Mask); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice, GetFeatureMask) - D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( - ID3D12DebugDevice * This); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice, ReportLiveDeviceObjects) - HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )( - ID3D12DebugDevice * This, - D3D12_RLDO_FLAGS Flags); - - END_INTERFACE - } ID3D12DebugDeviceVtbl; - - interface ID3D12DebugDevice - { - CONST_VTBL struct ID3D12DebugDeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugDevice_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugDevice_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugDevice_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugDevice_SetFeatureMask(This,Mask) \ - ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) - -#define ID3D12DebugDevice_GetFeatureMask(This) \ - ( (This)->lpVtbl -> GetFeatureMask(This) ) - -#define ID3D12DebugDevice_ReportLiveDeviceObjects(This,Flags) \ - ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugDevice_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DebugDevice2_INTERFACE_DEFINED__ -#define __ID3D12DebugDevice2_INTERFACE_DEFINED__ - -/* interface ID3D12DebugDevice2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugDevice2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("60eccbc1-378d-4df1-894c-f8ac5ce4d7dd") - ID3D12DebugDevice2 : public ID3D12DebugDevice - { - public: - virtual HRESULT STDMETHODCALLTYPE SetDebugParameter( - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDebugParameter( - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugDevice2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugDevice2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugDevice2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugDevice2 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice, SetFeatureMask) - HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( - ID3D12DebugDevice2 * This, - D3D12_DEBUG_FEATURE Mask); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice, GetFeatureMask) - D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( - ID3D12DebugDevice2 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice, ReportLiveDeviceObjects) - HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )( - ID3D12DebugDevice2 * This, - D3D12_RLDO_FLAGS Flags); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice2, SetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( - ID3D12DebugDevice2 * This, - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize); - - DECLSPEC_XFGVIRT(ID3D12DebugDevice2, GetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( - ID3D12DebugDevice2 * This, - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize); - - END_INTERFACE - } ID3D12DebugDevice2Vtbl; - - interface ID3D12DebugDevice2 - { - CONST_VTBL struct ID3D12DebugDevice2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugDevice2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugDevice2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugDevice2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugDevice2_SetFeatureMask(This,Mask) \ - ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) - -#define ID3D12DebugDevice2_GetFeatureMask(This) \ - ( (This)->lpVtbl -> GetFeatureMask(This) ) - -#define ID3D12DebugDevice2_ReportLiveDeviceObjects(This,Flags) \ - ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) ) - - -#define ID3D12DebugDevice2_SetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) - -#define ID3D12DebugDevice2_GetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugDevice2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0010 */ -/* [local] */ - -DEFINE_GUID(DXGI_DEBUG_D3D12, 0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0010_v0_0_s_ifspec; - -#ifndef __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ -#define __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ - -/* interface ID3D12DebugCommandQueue */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugCommandQueue; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("09e0bf36-54ac-484f-8847-4baeeab6053a") - ID3D12DebugCommandQueue : public IUnknown - { - public: - virtual BOOL STDMETHODCALLTYPE AssertResourceState( - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugCommandQueueVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugCommandQueue * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugCommandQueue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugCommandQueue * This); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandQueue, AssertResourceState) - BOOL ( STDMETHODCALLTYPE *AssertResourceState )( - ID3D12DebugCommandQueue * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State); - - END_INTERFACE - } ID3D12DebugCommandQueueVtbl; - - interface ID3D12DebugCommandQueue - { - CONST_VTBL struct ID3D12DebugCommandQueueVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugCommandQueue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugCommandQueue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugCommandQueue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugCommandQueue_AssertResourceState(This,pResource,Subresource,State) \ - ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandQueue1_INTERFACE_DEFINED__ -#define __ID3D12DebugCommandQueue1_INTERFACE_DEFINED__ - -/* interface ID3D12DebugCommandQueue1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugCommandQueue1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("16be35a2-bfd6-49f2-bcae-eaae4aff862d") - ID3D12DebugCommandQueue1 : public ID3D12DebugCommandQueue - { - public: - virtual void STDMETHODCALLTYPE AssertResourceAccess( - _In_ ID3D12Resource *pResource, - UINT Subresource, - D3D12_BARRIER_ACCESS Access) = 0; - - virtual void STDMETHODCALLTYPE AssertTextureLayout( - _In_ ID3D12Resource *pResource, - UINT Subresource, - D3D12_BARRIER_LAYOUT Layout) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugCommandQueue1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugCommandQueue1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugCommandQueue1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugCommandQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandQueue, AssertResourceState) - BOOL ( STDMETHODCALLTYPE *AssertResourceState )( - ID3D12DebugCommandQueue1 * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandQueue1, AssertResourceAccess) - void ( STDMETHODCALLTYPE *AssertResourceAccess )( - ID3D12DebugCommandQueue1 * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - D3D12_BARRIER_ACCESS Access); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandQueue1, AssertTextureLayout) - void ( STDMETHODCALLTYPE *AssertTextureLayout )( - ID3D12DebugCommandQueue1 * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - D3D12_BARRIER_LAYOUT Layout); - - END_INTERFACE - } ID3D12DebugCommandQueue1Vtbl; - - interface ID3D12DebugCommandQueue1 - { - CONST_VTBL struct ID3D12DebugCommandQueue1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugCommandQueue1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugCommandQueue1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugCommandQueue1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugCommandQueue1_AssertResourceState(This,pResource,Subresource,State) \ - ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) - - -#define ID3D12DebugCommandQueue1_AssertResourceAccess(This,pResource,Subresource,Access) \ - ( (This)->lpVtbl -> AssertResourceAccess(This,pResource,Subresource,Access) ) - -#define ID3D12DebugCommandQueue1_AssertTextureLayout(This,pResource,Subresource,Layout) \ - ( (This)->lpVtbl -> AssertTextureLayout(This,pResource,Subresource,Layout) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugCommandQueue1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0012 */ -/* [local] */ - -typedef -enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE - { - D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = 0 - } D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE; - -typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS - { - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode; - } D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0012_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0012_v0_0_s_ifspec; - -#ifndef __ID3D12DebugCommandList1_INTERFACE_DEFINED__ -#define __ID3D12DebugCommandList1_INTERFACE_DEFINED__ - -/* interface ID3D12DebugCommandList1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugCommandList1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("102ca951-311b-4b01-b11f-ecb83e061b37") - ID3D12DebugCommandList1 : public IUnknown - { - public: - virtual BOOL STDMETHODCALLTYPE AssertResourceState( - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDebugParameter( - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDebugParameter( - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugCommandList1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugCommandList1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugCommandList1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList1, AssertResourceState) - BOOL ( STDMETHODCALLTYPE *AssertResourceState )( - ID3D12DebugCommandList1 * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList1, SetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( - ID3D12DebugCommandList1 * This, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList1, GetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( - ID3D12DebugCommandList1 * This, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize); - - END_INTERFACE - } ID3D12DebugCommandList1Vtbl; - - interface ID3D12DebugCommandList1 - { - CONST_VTBL struct ID3D12DebugCommandList1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugCommandList1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugCommandList1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugCommandList1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugCommandList1_AssertResourceState(This,pResource,Subresource,State) \ - ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) - -#define ID3D12DebugCommandList1_SetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) - -#define ID3D12DebugCommandList1_GetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugCommandList1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList_INTERFACE_DEFINED__ -#define __ID3D12DebugCommandList_INTERFACE_DEFINED__ - -/* interface ID3D12DebugCommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugCommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("09e0bf36-54ac-484f-8847-4baeeab6053f") - ID3D12DebugCommandList : public IUnknown - { - public: - virtual BOOL STDMETHODCALLTYPE AssertResourceState( - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFeatureMask( - D3D12_DEBUG_FEATURE Mask) = 0; - - virtual D3D12_DEBUG_FEATURE STDMETHODCALLTYPE GetFeatureMask( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugCommandListVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugCommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugCommandList * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, AssertResourceState) - BOOL ( STDMETHODCALLTYPE *AssertResourceState )( - ID3D12DebugCommandList * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, SetFeatureMask) - HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( - ID3D12DebugCommandList * This, - D3D12_DEBUG_FEATURE Mask); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, GetFeatureMask) - D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( - ID3D12DebugCommandList * This); - - END_INTERFACE - } ID3D12DebugCommandListVtbl; - - interface ID3D12DebugCommandList - { - CONST_VTBL struct ID3D12DebugCommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugCommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugCommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugCommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugCommandList_AssertResourceState(This,pResource,Subresource,State) \ - ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) - -#define ID3D12DebugCommandList_SetFeatureMask(This,Mask) \ - ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) - -#define ID3D12DebugCommandList_GetFeatureMask(This) \ - ( (This)->lpVtbl -> GetFeatureMask(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugCommandList_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList2_INTERFACE_DEFINED__ -#define __ID3D12DebugCommandList2_INTERFACE_DEFINED__ - -/* interface ID3D12DebugCommandList2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugCommandList2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("aeb575cf-4e06-48be-ba3b-c450fc96652e") - ID3D12DebugCommandList2 : public ID3D12DebugCommandList - { - public: - virtual HRESULT STDMETHODCALLTYPE SetDebugParameter( - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDebugParameter( - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugCommandList2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugCommandList2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugCommandList2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, AssertResourceState) - BOOL ( STDMETHODCALLTYPE *AssertResourceState )( - ID3D12DebugCommandList2 * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, SetFeatureMask) - HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( - ID3D12DebugCommandList2 * This, - D3D12_DEBUG_FEATURE Mask); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, GetFeatureMask) - D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( - ID3D12DebugCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList2, SetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( - ID3D12DebugCommandList2 * This, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList2, GetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( - ID3D12DebugCommandList2 * This, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize); - - END_INTERFACE - } ID3D12DebugCommandList2Vtbl; - - interface ID3D12DebugCommandList2 - { - CONST_VTBL struct ID3D12DebugCommandList2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugCommandList2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugCommandList2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugCommandList2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugCommandList2_AssertResourceState(This,pResource,Subresource,State) \ - ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) - -#define ID3D12DebugCommandList2_SetFeatureMask(This,Mask) \ - ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) - -#define ID3D12DebugCommandList2_GetFeatureMask(This) \ - ( (This)->lpVtbl -> GetFeatureMask(This) ) - - -#define ID3D12DebugCommandList2_SetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) - -#define ID3D12DebugCommandList2_GetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugCommandList2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList3_INTERFACE_DEFINED__ -#define __ID3D12DebugCommandList3_INTERFACE_DEFINED__ - -/* interface ID3D12DebugCommandList3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugCommandList3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("197d5e15-4d37-4d34-af78-724cd70fdb1f") - ID3D12DebugCommandList3 : public ID3D12DebugCommandList2 - { - public: - virtual void STDMETHODCALLTYPE AssertResourceAccess( - _In_ ID3D12Resource *pResource, - UINT Subresource, - D3D12_BARRIER_ACCESS Access) = 0; - - virtual void STDMETHODCALLTYPE AssertTextureLayout( - _In_ ID3D12Resource *pResource, - UINT Subresource, - D3D12_BARRIER_LAYOUT Layout) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugCommandList3Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugCommandList3 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugCommandList3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, AssertResourceState) - BOOL ( STDMETHODCALLTYPE *AssertResourceState )( - ID3D12DebugCommandList3 * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, SetFeatureMask) - HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( - ID3D12DebugCommandList3 * This, - D3D12_DEBUG_FEATURE Mask); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList, GetFeatureMask) - D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( - ID3D12DebugCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList2, SetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( - ID3D12DebugCommandList3 * This, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _In_reads_bytes_(DataSize) const void *pData, - UINT DataSize); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList2, GetDebugParameter) - HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( - ID3D12DebugCommandList3 * This, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - _Out_writes_bytes_(DataSize) void *pData, - UINT DataSize); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList3, AssertResourceAccess) - void ( STDMETHODCALLTYPE *AssertResourceAccess )( - ID3D12DebugCommandList3 * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - D3D12_BARRIER_ACCESS Access); - - DECLSPEC_XFGVIRT(ID3D12DebugCommandList3, AssertTextureLayout) - void ( STDMETHODCALLTYPE *AssertTextureLayout )( - ID3D12DebugCommandList3 * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - D3D12_BARRIER_LAYOUT Layout); - - END_INTERFACE - } ID3D12DebugCommandList3Vtbl; - - interface ID3D12DebugCommandList3 - { - CONST_VTBL struct ID3D12DebugCommandList3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugCommandList3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugCommandList3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugCommandList3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugCommandList3_AssertResourceState(This,pResource,Subresource,State) \ - ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) - -#define ID3D12DebugCommandList3_SetFeatureMask(This,Mask) \ - ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) - -#define ID3D12DebugCommandList3_GetFeatureMask(This) \ - ( (This)->lpVtbl -> GetFeatureMask(This) ) - - -#define ID3D12DebugCommandList3_SetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) - -#define ID3D12DebugCommandList3_GetDebugParameter(This,Type,pData,DataSize) \ - ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) - - -#define ID3D12DebugCommandList3_AssertResourceAccess(This,pResource,Subresource,Access) \ - ( (This)->lpVtbl -> AssertResourceAccess(This,pResource,Subresource,Access) ) - -#define ID3D12DebugCommandList3_AssertTextureLayout(This,pResource,Subresource,Layout) \ - ( (This)->lpVtbl -> AssertTextureLayout(This,pResource,Subresource,Layout) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugCommandList3_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12SharingContract_INTERFACE_DEFINED__ -#define __ID3D12SharingContract_INTERFACE_DEFINED__ - -/* interface ID3D12SharingContract */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12SharingContract; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0adf7d52-929c-4e61-addb-ffed30de66ef") - ID3D12SharingContract : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE Present( - _In_ ID3D12Resource *pResource, - UINT Subresource, - _In_ HWND window) = 0; - - virtual void STDMETHODCALLTYPE SharedFenceSignal( - _In_ ID3D12Fence *pFence, - UINT64 FenceValue) = 0; - - virtual void STDMETHODCALLTYPE BeginCapturableWork( - _In_ REFGUID guid) = 0; - - virtual void STDMETHODCALLTYPE EndCapturableWork( - _In_ REFGUID guid) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12SharingContractVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12SharingContract * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12SharingContract * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12SharingContract * This); - - DECLSPEC_XFGVIRT(ID3D12SharingContract, Present) - void ( STDMETHODCALLTYPE *Present )( - ID3D12SharingContract * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - _In_ HWND window); - - DECLSPEC_XFGVIRT(ID3D12SharingContract, SharedFenceSignal) - void ( STDMETHODCALLTYPE *SharedFenceSignal )( - ID3D12SharingContract * This, - _In_ ID3D12Fence *pFence, - UINT64 FenceValue); - - DECLSPEC_XFGVIRT(ID3D12SharingContract, BeginCapturableWork) - void ( STDMETHODCALLTYPE *BeginCapturableWork )( - ID3D12SharingContract * This, - _In_ REFGUID guid); - - DECLSPEC_XFGVIRT(ID3D12SharingContract, EndCapturableWork) - void ( STDMETHODCALLTYPE *EndCapturableWork )( - ID3D12SharingContract * This, - _In_ REFGUID guid); - - END_INTERFACE - } ID3D12SharingContractVtbl; - - interface ID3D12SharingContract - { - CONST_VTBL struct ID3D12SharingContractVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12SharingContract_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12SharingContract_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12SharingContract_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12SharingContract_Present(This,pResource,Subresource,window) \ - ( (This)->lpVtbl -> Present(This,pResource,Subresource,window) ) - -#define ID3D12SharingContract_SharedFenceSignal(This,pFence,FenceValue) \ - ( (This)->lpVtbl -> SharedFenceSignal(This,pFence,FenceValue) ) - -#define ID3D12SharingContract_BeginCapturableWork(This,guid) \ - ( (This)->lpVtbl -> BeginCapturableWork(This,guid) ) - -#define ID3D12SharingContract_EndCapturableWork(This,guid) \ - ( (This)->lpVtbl -> EndCapturableWork(This,guid) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12SharingContract_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12ManualWriteTrackingResource_INTERFACE_DEFINED__ -#define __ID3D12ManualWriteTrackingResource_INTERFACE_DEFINED__ - -/* interface ID3D12ManualWriteTrackingResource */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12ManualWriteTrackingResource; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("86ca3b85-49ad-4b6e-aed5-eddb18540f41") - ID3D12ManualWriteTrackingResource : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE TrackWrite( - UINT Subresource, - _In_opt_ const D3D12_RANGE *pWrittenRange) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ManualWriteTrackingResourceVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12ManualWriteTrackingResource * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12ManualWriteTrackingResource * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12ManualWriteTrackingResource * This); - - DECLSPEC_XFGVIRT(ID3D12ManualWriteTrackingResource, TrackWrite) - void ( STDMETHODCALLTYPE *TrackWrite )( - ID3D12ManualWriteTrackingResource * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pWrittenRange); - - END_INTERFACE - } ID3D12ManualWriteTrackingResourceVtbl; - - interface ID3D12ManualWriteTrackingResource - { - CONST_VTBL struct ID3D12ManualWriteTrackingResourceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12ManualWriteTrackingResource_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12ManualWriteTrackingResource_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12ManualWriteTrackingResource_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12ManualWriteTrackingResource_TrackWrite(This,Subresource,pWrittenRange) \ - ( (This)->lpVtbl -> TrackWrite(This,Subresource,pWrittenRange) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12ManualWriteTrackingResource_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0018 */ -/* [local] */ - -typedef -enum D3D12_MESSAGE_CATEGORY - { - D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0, - D3D12_MESSAGE_CATEGORY_MISCELLANEOUS = ( D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED + 1 ) , - D3D12_MESSAGE_CATEGORY_INITIALIZATION = ( D3D12_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) , - D3D12_MESSAGE_CATEGORY_CLEANUP = ( D3D12_MESSAGE_CATEGORY_INITIALIZATION + 1 ) , - D3D12_MESSAGE_CATEGORY_COMPILATION = ( D3D12_MESSAGE_CATEGORY_CLEANUP + 1 ) , - D3D12_MESSAGE_CATEGORY_STATE_CREATION = ( D3D12_MESSAGE_CATEGORY_COMPILATION + 1 ) , - D3D12_MESSAGE_CATEGORY_STATE_SETTING = ( D3D12_MESSAGE_CATEGORY_STATE_CREATION + 1 ) , - D3D12_MESSAGE_CATEGORY_STATE_GETTING = ( D3D12_MESSAGE_CATEGORY_STATE_SETTING + 1 ) , - D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = ( D3D12_MESSAGE_CATEGORY_STATE_GETTING + 1 ) , - D3D12_MESSAGE_CATEGORY_EXECUTION = ( D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 ) , - D3D12_MESSAGE_CATEGORY_SHADER = ( D3D12_MESSAGE_CATEGORY_EXECUTION + 1 ) - } D3D12_MESSAGE_CATEGORY; - -typedef -enum D3D12_MESSAGE_SEVERITY - { - D3D12_MESSAGE_SEVERITY_CORRUPTION = 0, - D3D12_MESSAGE_SEVERITY_ERROR = ( D3D12_MESSAGE_SEVERITY_CORRUPTION + 1 ) , - D3D12_MESSAGE_SEVERITY_WARNING = ( D3D12_MESSAGE_SEVERITY_ERROR + 1 ) , - D3D12_MESSAGE_SEVERITY_INFO = ( D3D12_MESSAGE_SEVERITY_WARNING + 1 ) , - D3D12_MESSAGE_SEVERITY_MESSAGE = ( D3D12_MESSAGE_SEVERITY_INFO + 1 ) - } D3D12_MESSAGE_SEVERITY; - -typedef -enum D3D12_MESSAGE_ID - { - D3D12_MESSAGE_ID_UNKNOWN = 0, - D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = 1, - D3D12_MESSAGE_ID_CORRUPTED_THIS = 2, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = 3, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = 4, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = 5, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = 6, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = 7, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = 8, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = 9, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = 10, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = 11, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = 12, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = 13, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = 14, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = 15, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = 16, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = 17, - D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = 18, - D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 19, - D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 20, - D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 21, - D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 24, - D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 25, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 26, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 27, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 28, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = 29, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = 30, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 31, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 32, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 35, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 36, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 37, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 38, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = 39, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = 40, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 41, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 42, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 45, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 46, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 47, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 48, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 49, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 52, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 53, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 54, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 55, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 56, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 57, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 58, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 59, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 60, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 61, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 62, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 63, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 64, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 65, - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 66, - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 67, - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 68, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 69, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 70, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 71, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 72, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 73, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 74, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 75, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 76, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 79, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 80, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 81, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 82, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 83, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 84, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 85, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 86, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 87, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 88, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 89, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 90, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 91, - D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 92, - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 93, - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 94, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 95, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 96, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 97, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 98, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 100, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 101, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 102, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 103, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 104, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 105, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 106, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 107, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 108, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 109, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 111, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 112, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 113, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 114, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 115, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 116, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 117, - D3D12_MESSAGE_ID_GET_PROGRAM_IDENTIFIER_ERROR = 118, - D3D12_MESSAGE_ID_GET_WORK_GRAPH_PROPERTIES_ERROR = 119, - D3D12_MESSAGE_ID_SET_PROGRAM_ERROR = 120, - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 135, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = 200, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = 201, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = 202, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 209, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = 210, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = 211, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = 212, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = 213, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = 219, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = 221, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = 222, - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 232, - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 233, - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 234, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 239, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 240, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 245, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 253, - D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 255, - D3D12_MESSAGE_ID_LIVE_DEVICE = 274, - D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = 275, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 276, - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 277, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 278, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 280, - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 283, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 284, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 285, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 286, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 287, - D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 289, - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 290, - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 291, - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 292, - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 294, - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 295, - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 296, - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 297, - D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 310, - D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 318, - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 321, - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 322, - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 323, - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 331, - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 332, - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 333, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 334, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 335, - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 336, - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 337, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 340, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 341, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 342, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = 343, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = 344, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 345, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 346, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 354, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 401, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 403, - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 410, - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 412, - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 414, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 416, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 418, - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 420, - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 422, - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 425, - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 426, - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 427, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 428, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 429, - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 430, - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 431, - D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 447, - D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 448, - D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = 493, - D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = 494, - D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = 506, - D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = 507, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = 519, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = 520, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = 521, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = 522, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = 523, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = 524, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = 525, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = 526, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = 527, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = 528, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = 529, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = 530, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = 531, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = 532, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = 533, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = 534, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = 535, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = 536, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = 537, - D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = 538, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = 540, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = 541, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = 542, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = 543, - D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = 544, - D3D12_MESSAGE_ID_INVALID_BUNDLE_API = 546, - D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = 547, - D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = 549, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = 552, - D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = 553, - D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = 554, - D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = 557, - D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = 558, - D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = 559, - D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = 560, - D3D12_MESSAGE_ID_CREATE_RESOURCE = 562, - D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = 563, - D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = 564, - D3D12_MESSAGE_ID_CREATE_LIBRARY = 565, - D3D12_MESSAGE_ID_CREATE_HEAP = 566, - D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = 567, - D3D12_MESSAGE_ID_CREATE_QUERYHEAP = 568, - D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = 569, - D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = 570, - D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = 571, - D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = 572, - D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = 573, - D3D12_MESSAGE_ID_LIVE_RESOURCE = 575, - D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = 576, - D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = 577, - D3D12_MESSAGE_ID_LIVE_LIBRARY = 578, - D3D12_MESSAGE_ID_LIVE_HEAP = 579, - D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = 580, - D3D12_MESSAGE_ID_LIVE_QUERYHEAP = 581, - D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = 582, - D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = 583, - D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = 584, - D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = 585, - D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = 586, - D3D12_MESSAGE_ID_DESTROY_RESOURCE = 588, - D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = 589, - D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = 590, - D3D12_MESSAGE_ID_DESTROY_LIBRARY = 591, - D3D12_MESSAGE_ID_DESTROY_HEAP = 592, - D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = 593, - D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = 594, - D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = 595, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = 597, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = 599, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = 602, - D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = 603, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = 604, - D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = 607, - D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 608, - D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 609, - D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = 610, - D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = 611, - D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = 613, - D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 614, - D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = 615, - D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 616, - D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = 622, - D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = 623, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = 624, - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = 625, - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 626, - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = 627, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = 628, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = 629, - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = 630, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = 631, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = 632, - D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = 633, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = 634, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = 635, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 636, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = 637, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = 638, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = 639, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = 640, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = 641, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = 642, - D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = 643, - D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = 644, - D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = 645, - D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = 646, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = 647, - D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = 649, - D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = 650, - D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = 652, - D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = 653, - D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = 654, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = 655, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = 656, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = 657, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = 658, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = 659, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = 660, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = 661, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = 662, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = 663, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 664, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = 665, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 666, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = 667, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 668, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 669, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 670, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 671, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 672, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = 673, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = 674, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 675, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 676, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = 677, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 678, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = 679, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = 680, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = 681, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = 682, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = 683, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = 684, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = 685, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = 686, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = 687, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = 688, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = 689, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = 690, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = 691, - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = 692, - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = 693, - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = 694, - D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = 695, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = 696, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = 697, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = 698, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = 699, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = 700, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = 701, - D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = 702, - D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = 703, - D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = 705, - D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = 708, - D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = 709, - D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = 710, - D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = 711, - D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = 712, - D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = 713, - D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = 715, - D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = 717, - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = 718, - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = 719, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = 720, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = 721, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = 722, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = 723, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = 724, - D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = 725, - D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = 726, - D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = 727, - D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = 728, - D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = 729, - D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = 731, - D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = 732, - D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = 733, - D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = 734, - D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = 735, - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = 737, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = 738, - D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE = 739, - D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET = 740, - D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = 739, - D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = 740, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = 741, - D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = 742, - D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = 743, - D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = 744, - D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = 745, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = 815, - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = 816, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = 817, - D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = 818, - D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = 820, - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = 821, - D3D12_MESSAGE_ID_MAP_INVALIDHEAP = 822, - D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = 823, - D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = 824, - D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = 825, - D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = 826, - D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = 827, - D3D12_MESSAGE_ID_MAP_INVALIDRANGE = 828, - D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = 829, - D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = 832, - D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = 833, - D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = 834, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = 835, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = 836, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = 837, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = 838, - D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = 839, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = 840, - D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = 841, - D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = 842, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = 843, - D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = 844, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = 845, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = 846, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = 847, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = 848, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = 849, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = 850, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = 851, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = 852, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = 853, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = 854, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = 855, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = 856, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = 857, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = 858, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = 859, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = 860, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = 861, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = 862, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = 863, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = 864, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = 865, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = 866, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = 867, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = 868, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = 869, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = 870, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = 871, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = 872, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = 873, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = 874, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = 875, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = 876, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = 877, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = 878, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = 879, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = 880, - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = 881, - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = 882, - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = 883, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = 884, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = 885, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = 886, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = 887, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = 888, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = 889, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = 890, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = 891, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = 892, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = 893, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = 894, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = 895, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = 896, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = 897, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = 898, - D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = 899, - D3D12_MESSAGE_ID_INVALID_NODE_INDEX = 900, - D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = 901, - D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = 902, - D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = 903, - D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = 904, - D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = 905, - D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = 906, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = 907, - D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = 908, - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = 909, - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = 910, - D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = 911, - D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = 912, - D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = 913, - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = 914, - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = 915, - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = 916, - D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = 917, - D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = 918, - D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = 919, - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = 920, - D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = 921, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = 922, - D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = 923, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = 924, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = 925, - D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = 926, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = 927, - D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = 929, - D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = 930, - D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = 931, - D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = 932, - D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = 933, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = 934, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = 935, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = 936, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = 937, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = 938, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = 939, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = 940, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = 941, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = 942, - D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = 943, - D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = 944, - D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = 945, - D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = 946, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = 947, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = 948, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = 949, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = 950, - D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = 951, - D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = 952, - D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = 953, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = 954, - D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = 955, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = 956, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = 957, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = 958, - D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = 959, - D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = 960, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = 961, - D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = 962, - D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = 963, - D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = 964, - D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = 965, - D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = 966, - D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = 967, - D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = 968, - D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = 969, - D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = 970, - D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = 971, - D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = 972, - D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = 973, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = 974, - D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = 975, - D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = 976, - D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = 977, - D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = 978, - D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST = 979, - D3D12_MESSAGE_ID_CREATE_VIDEODECODER = 980, - D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = 981, - D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST = 982, - D3D12_MESSAGE_ID_LIVE_VIDEODECODER = 983, - D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = 984, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST = 985, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = 986, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = 987, - D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = 988, - D3D12_MESSAGE_ID_DEPRECATED_API = 989, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = 990, - D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = 991, - D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = 992, - D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = 993, - D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = 994, - D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = 995, - D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = 996, - D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = 997, - D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = 998, - D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = 999, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = 1000, - D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = 1001, - D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = 1002, - D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = 1003, - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = 1004, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = 1005, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = 1006, - D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS = 1007, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = 1008, - D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY = 1009, - D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = 1013, - D3D12_MESSAGE_ID_BEGIN_EVENT = 1014, - D3D12_MESSAGE_ID_END_EVENT = 1015, - D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = 1016, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = 1017, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = 1018, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = 1019, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM = 1020, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM = 1021, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = 1022, - D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = 1023, - D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = 1024, - D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = 1025, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = 1026, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST = 1027, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = 1028, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = 1029, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC = 1030, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = 1031, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = 1032, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = 1033, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = 1034, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = 1035, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = 1036, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = 1037, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = 1038, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = 1039, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = 1040, - D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = 1041, - D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = 1042, - D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS = 1043, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = 1044, - D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET = 1045, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = 1046, - D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE = 1047, - D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED = 1048, - D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS = 1049, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT = 1050, - D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE = 1051, - D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST = 1052, - D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE = 1053, - D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE = 1054, - D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST = 1055, - D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE = 1056, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE = 1057, - D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST = 1058, - D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE = 1059, - D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 1060, - D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM = 1061, - D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 1062, - D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM = 1063, - D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 1064, - D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM = 1065, - D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS = 1066, - D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT = 1067, - D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION = 1068, - D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY = 1069, - D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION = 1070, - D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION = 1071, - D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY = 1072, - D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION = 1073, - D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION = 1074, - D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY = 1075, - D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION = 1076, - D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 1077, - D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION = 1078, - D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 1079, - D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED = 1080, - D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 1081, - D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 1082, - D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP = 1083, - D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP = 1084, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP = 1085, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN = 1086, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 1087, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS = 1088, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE = 1089, - D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST = 1090, - D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE = 1091, - D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 1092, - D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 1093, - D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS = 1094, - D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED = 1095, - D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS = 1096, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1097, - D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1098, - D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 1099, - D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 1100, - D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT = 1101, - D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED = 1102, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 1103, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 1104, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 1105, - D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT = 1106, - D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 1107, - D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 1108, - D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 1109, - D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 1110, - D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 1111, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 1112, - D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 1113, - D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 1114, - D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 1115, - D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 1116, - D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 1117, - D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 1118, - D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 1119, - D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 1120, - D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 1121, - D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 1122, - D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 1123, - D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 1124, - D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 1125, - D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 1126, - D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 1127, - D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 1128, - D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 1129, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 1130, - D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 1131, - D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 1132, - D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 1133, - D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 1134, - D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 1135, - D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 1136, - D3D12_MESSAGE_ID_CREATE_META_COMMAND = 1137, - D3D12_MESSAGE_ID_LIVE_META_COMMAND = 1138, - D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 1139, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 1140, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 1141, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 1142, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 1143, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 1144, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 1145, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 1146, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 1147, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 1148, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 1149, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 1150, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 1151, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 1152, - D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 1153, - D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 1154, - D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 1155, - D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 1156, - D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 1157, - D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1158, - D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 1159, - D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1160, - D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 1161, - D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 1162, - D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 1163, - D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 1164, - D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 1165, - D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 1166, - D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 1167, - D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 1168, - D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 1169, - D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 1170, - D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 1171, - D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 1172, - D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 1173, - D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 1174, - D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 1175, - D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 1176, - D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 1177, - D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 1178, - D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 1179, - D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 1180, - D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 1181, - D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 1182, - D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 1183, - D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 1184, - D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 1185, - D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 1186, - D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 1187, - D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 1188, - D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 1189, - D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 1190, - D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 1191, - D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 1192, - D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 1193, - D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 1194, - D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 1195, - D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 1196, - D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 1197, - D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 1198, - D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 1199, - D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 1200, - D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 1201, - D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 1202, - D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 1203, - D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 1204, - D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 1205, - D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 1206, - D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 1207, - D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 1208, - D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 1209, - D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 1210, - D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 1211, - D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 1212, - D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 1213, - D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 1214, - D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR = 1215, - D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL = 1216, - D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT = 1217, - D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT = 1218, - D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1219, - D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT = 1220, - D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1221, - D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE = 1222, - D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT = 1223, - D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL = 1224, - D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND = 1225, - D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND = 1226, - D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND = 1227, - D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID = 1228, - D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT = 1229, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY = 1230, - D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR = 1231, - D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1232, - D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE = 1233, - D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP = 1234, - D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER = 1235, - D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 = 1236, - D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1 = 1237, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT = 1238, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE = 1239, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL = 1240, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT = 1241, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY = 1242, - D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE = 1243, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH = 1244, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH = 1245, - D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR = 1246, - D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT = 1247, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH = 1248, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE = 1249, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH = 1250, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH = 1251, - D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT = 1252, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH = 1253, - D3D12_MESSAGE_ID_EMPTY_DISPATCH = 1254, - D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1255, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION = 1256, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION = 1257, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT = 1258, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY = 1259, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT = 1260, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG = 1261, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS = 1262, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1263, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT = 1264, - D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE = 1265, - D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY = 1266, - D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 1267, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT = 1268, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT = 1269, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH = 1270, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE = 1271, - D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE = 1272, - D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE = 1273, - D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1274, - D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1275, - D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE = 1276, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 1277, - D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 1278, - D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 1279, - D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION = 1280, - D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION = 1281, - D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION = 1282, - D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS = 1283, - D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED = 1284, - D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN = 1285, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE = 1286, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS = 1287, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET = 1288, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG = 1289, - D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT = 1290, - D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION = 1291, - D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL = 1292, - D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND = 1293, - D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT = 1294, - D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED = 1295, - D3D12_MESSAGE_ID_OVERSIZED_DISPATCH = 1296, - D3D12_MESSAGE_ID_CREATE_VIDEOENCODER = 1297, - D3D12_MESSAGE_ID_LIVE_VIDEOENCODER = 1298, - D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER = 1299, - D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP = 1300, - D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP = 1301, - D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP = 1302, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1303, - D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1304, - D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS = 1305, - D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS = 1306, - D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS = 1307, - D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS = 1308, - D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS = 1309, - D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS = 1310, - D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS = 1311, - D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS = 1312, - D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR = 1313, - D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE = 1314, - D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE = 1315, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING = 1316, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING = 1317, - D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING = 1318, - D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE = 1319, - D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS = 1320, - D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH = 1321, - D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH = 1322, - D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH = 1323, - D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY = 1324, - D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY = 1325, - D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED = 1326, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED = 1327, - D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED = 1328, - D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER = 1329, - D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED = 1330, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES = 1331, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS = 1332, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC = 1333, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT = 1334, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE = 1335, - D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE = 1336, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION = 1337, - D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT = 1338, - D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D = 1339, - D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS = 1340, - D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT = 1341, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS = 1342, - D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED = 1343, - D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON = 1346, - D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE = 1347, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED = 1348, - D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED = 1349, - D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT = 1350, - D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE = 1351, - D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK = 1352, - D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED = 1353, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED = 1354, - D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS = 1355, - D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS = 1356, - D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT = 1357, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT = 1358, - D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED = 1359, - D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED = 1360, - D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED = 1361, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE = 1362, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE = 1363, - D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED = 1364, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS = 1365, - D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING = 1366, - D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE = 1367, - D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING = 1368, - D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE = 1369, - D3D12_MESSAGE_ID_NONNORMALIZED_COORDINATE_SAMPLING_NOT_SUPPORTED = 1370, - D3D12_MESSAGE_ID_INVALID_CAST_TARGET = 1371, - D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_END_STATE = 1372, - D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_START_STATE = 1373, - D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_ACCESS = 1374, - D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_LOCAL_PRESERVE_PARAMETERS = 1375, - D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_PRESERVE_RENDER_PARAMETERS_ERROR = 1376, - D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_DEPTH_STENCIL_ERROR = 1377, - D3D12_MESSAGE_ID_DRAW_POTENTIALLY_OUTSIDE_OF_VALID_RENDER_AREA = 1378, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_LINERASTERIZATIONMODE = 1379, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT_SMALLRESOURCE = 1380, - D3D12_MESSAGE_ID_GENERIC_DEVICE_OPERATION_UNSUPPORTED = 1381, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDER_TARGET_WRONG_WRITE_MASK = 1382, - 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, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_STRUCTURED_BUFFER_STRIDE_MISMATCH = 1387, - 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_CREATE_STATE_OBJECT_WARNING = 1414, - D3D12_MESSAGE_ID_GUID_TEXTURE_LAYOUT_UNSUPPORTED = 1415, - D3D12_MESSAGE_ID_RESOLVE_ENCODER_INPUT_PARAM_LAYOUT_INVALID_PARAMETERS = 1416, - D3D12_MESSAGE_ID_INVALID_BARRIER_ACCESS = 1417, - 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; - -typedef struct D3D12_MESSAGE - { - D3D12_MESSAGE_CATEGORY Category; - D3D12_MESSAGE_SEVERITY Severity; - D3D12_MESSAGE_ID ID; - _Field_size_(DescriptionByteLength) const char *pDescription; - SIZE_T DescriptionByteLength; - } D3D12_MESSAGE; - -typedef struct D3D12_INFO_QUEUE_FILTER_DESC - { - UINT NumCategories; - _Field_size_(NumCategories) D3D12_MESSAGE_CATEGORY *pCategoryList; - UINT NumSeverities; - _Field_size_(NumSeverities) D3D12_MESSAGE_SEVERITY *pSeverityList; - UINT NumIDs; - _Field_size_(NumIDs) D3D12_MESSAGE_ID *pIDList; - } D3D12_INFO_QUEUE_FILTER_DESC; - -typedef struct D3D12_INFO_QUEUE_FILTER - { - D3D12_INFO_QUEUE_FILTER_DESC AllowList; - D3D12_INFO_QUEUE_FILTER_DESC DenyList; - } D3D12_INFO_QUEUE_FILTER; - -#define D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024 - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0018_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0018_v0_0_s_ifspec; - -#ifndef __ID3D12InfoQueue_INTERFACE_DEFINED__ -#define __ID3D12InfoQueue_INTERFACE_DEFINED__ - -/* interface ID3D12InfoQueue */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12InfoQueue; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0742a90b-c387-483f-b946-30a7e4e61458") - ID3D12InfoQueue : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit( - _In_ UINT64 MessageCountLimit) = 0; - - virtual void STDMETHODCALLTYPE ClearStoredMessages( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMessage( - _In_ UINT64 MessageIndex, - _Out_writes_bytes_opt_(*pMessageByteLength) D3D12_MESSAGE *pMessage, - _Inout_ SIZE_T *pMessageByteLength) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries( - _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStorageFilter( - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength) = 0; - - virtual void STDMETHODCALLTYPE ClearStorageFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushStorageFilter( - _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; - - virtual void STDMETHODCALLTYPE PopStorageFilter( void) = 0; - - virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries( - _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter( - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength) = 0; - - virtual void STDMETHODCALLTYPE ClearRetrievalFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter( - _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; - - virtual void STDMETHODCALLTYPE PopRetrievalFilter( void) = 0; - - virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddMessage( - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ D3D12_MESSAGE_ID ID, - _In_ LPCSTR pDescription) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage( - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ LPCSTR pDescription) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory( - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ BOOL bEnable) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity( - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ BOOL bEnable) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBreakOnID( - _In_ D3D12_MESSAGE_ID ID, - _In_ BOOL bEnable) = 0; - - virtual BOOL STDMETHODCALLTYPE GetBreakOnCategory( - _In_ D3D12_MESSAGE_CATEGORY Category) = 0; - - virtual BOOL STDMETHODCALLTYPE GetBreakOnSeverity( - _In_ D3D12_MESSAGE_SEVERITY Severity) = 0; - - virtual BOOL STDMETHODCALLTYPE GetBreakOnID( - _In_ D3D12_MESSAGE_ID ID) = 0; - - virtual void STDMETHODCALLTYPE SetMuteDebugOutput( - _In_ BOOL bMute) = 0; - - virtual BOOL STDMETHODCALLTYPE GetMuteDebugOutput( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12InfoQueueVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12InfoQueue * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetMessageCountLimit) - HRESULT ( STDMETHODCALLTYPE *SetMessageCountLimit )( - ID3D12InfoQueue * This, - _In_ UINT64 MessageCountLimit); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearStoredMessages) - void ( STDMETHODCALLTYPE *ClearStoredMessages )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMessage) - HRESULT ( STDMETHODCALLTYPE *GetMessage )( - ID3D12InfoQueue * This, - _In_ UINT64 MessageIndex, - _Out_writes_bytes_opt_(*pMessageByteLength) D3D12_MESSAGE *pMessage, - _Inout_ SIZE_T *pMessageByteLength); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesAllowedByStorageFilter) - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesDeniedByStorageFilter) - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumStoredMessages) - UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessages )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumStoredMessagesAllowedByRetrievalFilter) - UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesDiscardedByMessageCountLimit) - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMessageCountLimit) - UINT64 ( STDMETHODCALLTYPE *GetMessageCountLimit )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddStorageFilterEntries) - HRESULT ( STDMETHODCALLTYPE *AddStorageFilterEntries )( - ID3D12InfoQueue * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetStorageFilter) - HRESULT ( STDMETHODCALLTYPE *GetStorageFilter )( - ID3D12InfoQueue * This, - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearStorageFilter) - void ( STDMETHODCALLTYPE *ClearStorageFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushEmptyStorageFilter) - HRESULT ( STDMETHODCALLTYPE *PushEmptyStorageFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushCopyOfStorageFilter) - HRESULT ( STDMETHODCALLTYPE *PushCopyOfStorageFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushStorageFilter) - HRESULT ( STDMETHODCALLTYPE *PushStorageFilter )( - ID3D12InfoQueue * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PopStorageFilter) - void ( STDMETHODCALLTYPE *PopStorageFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetStorageFilterStackSize) - UINT ( STDMETHODCALLTYPE *GetStorageFilterStackSize )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddRetrievalFilterEntries) - HRESULT ( STDMETHODCALLTYPE *AddRetrievalFilterEntries )( - ID3D12InfoQueue * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetRetrievalFilter) - HRESULT ( STDMETHODCALLTYPE *GetRetrievalFilter )( - ID3D12InfoQueue * This, - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearRetrievalFilter) - void ( STDMETHODCALLTYPE *ClearRetrievalFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushEmptyRetrievalFilter) - HRESULT ( STDMETHODCALLTYPE *PushEmptyRetrievalFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushCopyOfRetrievalFilter) - HRESULT ( STDMETHODCALLTYPE *PushCopyOfRetrievalFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushRetrievalFilter) - HRESULT ( STDMETHODCALLTYPE *PushRetrievalFilter )( - ID3D12InfoQueue * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PopRetrievalFilter) - void ( STDMETHODCALLTYPE *PopRetrievalFilter )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetRetrievalFilterStackSize) - UINT ( STDMETHODCALLTYPE *GetRetrievalFilterStackSize )( - ID3D12InfoQueue * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddMessage) - HRESULT ( STDMETHODCALLTYPE *AddMessage )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ D3D12_MESSAGE_ID ID, - _In_ LPCSTR pDescription); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddApplicationMessage) - HRESULT ( STDMETHODCALLTYPE *AddApplicationMessage )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ LPCSTR pDescription); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnCategory) - HRESULT ( STDMETHODCALLTYPE *SetBreakOnCategory )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ BOOL bEnable); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnSeverity) - HRESULT ( STDMETHODCALLTYPE *SetBreakOnSeverity )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ BOOL bEnable); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnID) - HRESULT ( STDMETHODCALLTYPE *SetBreakOnID )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_ID ID, - _In_ BOOL bEnable); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnCategory) - BOOL ( STDMETHODCALLTYPE *GetBreakOnCategory )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_CATEGORY Category); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnSeverity) - BOOL ( STDMETHODCALLTYPE *GetBreakOnSeverity )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_SEVERITY Severity); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnID) - BOOL ( STDMETHODCALLTYPE *GetBreakOnID )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_ID ID); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetMuteDebugOutput) - void ( STDMETHODCALLTYPE *SetMuteDebugOutput )( - ID3D12InfoQueue * This, - _In_ BOOL bMute); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMuteDebugOutput) - BOOL ( STDMETHODCALLTYPE *GetMuteDebugOutput )( - ID3D12InfoQueue * This); - - END_INTERFACE - } ID3D12InfoQueueVtbl; - - interface ID3D12InfoQueue - { - CONST_VTBL struct ID3D12InfoQueueVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12InfoQueue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12InfoQueue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12InfoQueue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12InfoQueue_SetMessageCountLimit(This,MessageCountLimit) \ - ( (This)->lpVtbl -> SetMessageCountLimit(This,MessageCountLimit) ) - -#define ID3D12InfoQueue_ClearStoredMessages(This) \ - ( (This)->lpVtbl -> ClearStoredMessages(This) ) - -#define ID3D12InfoQueue_GetMessage(This,MessageIndex,pMessage,pMessageByteLength) \ - ( (This)->lpVtbl -> GetMessage(This,MessageIndex,pMessage,pMessageByteLength) ) - -#define ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter(This) \ - ( (This)->lpVtbl -> GetNumMessagesAllowedByStorageFilter(This) ) - -#define ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter(This) \ - ( (This)->lpVtbl -> GetNumMessagesDeniedByStorageFilter(This) ) - -#define ID3D12InfoQueue_GetNumStoredMessages(This) \ - ( (This)->lpVtbl -> GetNumStoredMessages(This) ) - -#define ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This) \ - ( (This)->lpVtbl -> GetNumStoredMessagesAllowedByRetrievalFilter(This) ) - -#define ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This) \ - ( (This)->lpVtbl -> GetNumMessagesDiscardedByMessageCountLimit(This) ) - -#define ID3D12InfoQueue_GetMessageCountLimit(This) \ - ( (This)->lpVtbl -> GetMessageCountLimit(This) ) - -#define ID3D12InfoQueue_AddStorageFilterEntries(This,pFilter) \ - ( (This)->lpVtbl -> AddStorageFilterEntries(This,pFilter) ) - -#define ID3D12InfoQueue_GetStorageFilter(This,pFilter,pFilterByteLength) \ - ( (This)->lpVtbl -> GetStorageFilter(This,pFilter,pFilterByteLength) ) - -#define ID3D12InfoQueue_ClearStorageFilter(This) \ - ( (This)->lpVtbl -> ClearStorageFilter(This) ) - -#define ID3D12InfoQueue_PushEmptyStorageFilter(This) \ - ( (This)->lpVtbl -> PushEmptyStorageFilter(This) ) - -#define ID3D12InfoQueue_PushCopyOfStorageFilter(This) \ - ( (This)->lpVtbl -> PushCopyOfStorageFilter(This) ) - -#define ID3D12InfoQueue_PushStorageFilter(This,pFilter) \ - ( (This)->lpVtbl -> PushStorageFilter(This,pFilter) ) - -#define ID3D12InfoQueue_PopStorageFilter(This) \ - ( (This)->lpVtbl -> PopStorageFilter(This) ) - -#define ID3D12InfoQueue_GetStorageFilterStackSize(This) \ - ( (This)->lpVtbl -> GetStorageFilterStackSize(This) ) - -#define ID3D12InfoQueue_AddRetrievalFilterEntries(This,pFilter) \ - ( (This)->lpVtbl -> AddRetrievalFilterEntries(This,pFilter) ) - -#define ID3D12InfoQueue_GetRetrievalFilter(This,pFilter,pFilterByteLength) \ - ( (This)->lpVtbl -> GetRetrievalFilter(This,pFilter,pFilterByteLength) ) - -#define ID3D12InfoQueue_ClearRetrievalFilter(This) \ - ( (This)->lpVtbl -> ClearRetrievalFilter(This) ) - -#define ID3D12InfoQueue_PushEmptyRetrievalFilter(This) \ - ( (This)->lpVtbl -> PushEmptyRetrievalFilter(This) ) - -#define ID3D12InfoQueue_PushCopyOfRetrievalFilter(This) \ - ( (This)->lpVtbl -> PushCopyOfRetrievalFilter(This) ) - -#define ID3D12InfoQueue_PushRetrievalFilter(This,pFilter) \ - ( (This)->lpVtbl -> PushRetrievalFilter(This,pFilter) ) - -#define ID3D12InfoQueue_PopRetrievalFilter(This) \ - ( (This)->lpVtbl -> PopRetrievalFilter(This) ) - -#define ID3D12InfoQueue_GetRetrievalFilterStackSize(This) \ - ( (This)->lpVtbl -> GetRetrievalFilterStackSize(This) ) - -#define ID3D12InfoQueue_AddMessage(This,Category,Severity,ID,pDescription) \ - ( (This)->lpVtbl -> AddMessage(This,Category,Severity,ID,pDescription) ) - -#define ID3D12InfoQueue_AddApplicationMessage(This,Severity,pDescription) \ - ( (This)->lpVtbl -> AddApplicationMessage(This,Severity,pDescription) ) - -#define ID3D12InfoQueue_SetBreakOnCategory(This,Category,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnCategory(This,Category,bEnable) ) - -#define ID3D12InfoQueue_SetBreakOnSeverity(This,Severity,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnSeverity(This,Severity,bEnable) ) - -#define ID3D12InfoQueue_SetBreakOnID(This,ID,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnID(This,ID,bEnable) ) - -#define ID3D12InfoQueue_GetBreakOnCategory(This,Category) \ - ( (This)->lpVtbl -> GetBreakOnCategory(This,Category) ) - -#define ID3D12InfoQueue_GetBreakOnSeverity(This,Severity) \ - ( (This)->lpVtbl -> GetBreakOnSeverity(This,Severity) ) - -#define ID3D12InfoQueue_GetBreakOnID(This,ID) \ - ( (This)->lpVtbl -> GetBreakOnID(This,ID) ) - -#define ID3D12InfoQueue_SetMuteDebugOutput(This,bMute) \ - ( (This)->lpVtbl -> SetMuteDebugOutput(This,bMute) ) - -#define ID3D12InfoQueue_GetMuteDebugOutput(This) \ - ( (This)->lpVtbl -> GetMuteDebugOutput(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12InfoQueue_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0019 */ -/* [local] */ - -typedef -enum D3D12_MESSAGE_CALLBACK_FLAGS - { - D3D12_MESSAGE_CALLBACK_FLAG_NONE = 0, - D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS = 0x1 - } D3D12_MESSAGE_CALLBACK_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_MESSAGE_CALLBACK_FLAGS) -typedef void ( __stdcall *D3D12MessageFunc )( - D3D12_MESSAGE_CATEGORY Category, - D3D12_MESSAGE_SEVERITY Severity, - D3D12_MESSAGE_ID ID, - LPCSTR pDescription, - void *pContext); - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0019_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0019_v0_0_s_ifspec; - -#ifndef __ID3D12InfoQueue1_INTERFACE_DEFINED__ -#define __ID3D12InfoQueue1_INTERFACE_DEFINED__ - -/* interface ID3D12InfoQueue1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12InfoQueue1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2852dd88-b484-4c0c-b6b1-67168500e600") - ID3D12InfoQueue1 : public ID3D12InfoQueue - { - public: - virtual HRESULT STDMETHODCALLTYPE RegisterMessageCallback( - _In_ D3D12MessageFunc CallbackFunc, - _In_ D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, - _Inout_ void *pContext, - _Inout_ DWORD *pCallbackCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnregisterMessageCallback( - _In_ DWORD CallbackCookie) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12InfoQueue1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12InfoQueue1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetMessageCountLimit) - HRESULT ( STDMETHODCALLTYPE *SetMessageCountLimit )( - ID3D12InfoQueue1 * This, - _In_ UINT64 MessageCountLimit); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearStoredMessages) - void ( STDMETHODCALLTYPE *ClearStoredMessages )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMessage) - HRESULT ( STDMETHODCALLTYPE *GetMessage )( - ID3D12InfoQueue1 * This, - _In_ UINT64 MessageIndex, - _Out_writes_bytes_opt_(*pMessageByteLength) D3D12_MESSAGE *pMessage, - _Inout_ SIZE_T *pMessageByteLength); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesAllowedByStorageFilter) - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesDeniedByStorageFilter) - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumStoredMessages) - UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessages )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumStoredMessagesAllowedByRetrievalFilter) - UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesDiscardedByMessageCountLimit) - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMessageCountLimit) - UINT64 ( STDMETHODCALLTYPE *GetMessageCountLimit )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddStorageFilterEntries) - HRESULT ( STDMETHODCALLTYPE *AddStorageFilterEntries )( - ID3D12InfoQueue1 * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetStorageFilter) - HRESULT ( STDMETHODCALLTYPE *GetStorageFilter )( - ID3D12InfoQueue1 * This, - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearStorageFilter) - void ( STDMETHODCALLTYPE *ClearStorageFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushEmptyStorageFilter) - HRESULT ( STDMETHODCALLTYPE *PushEmptyStorageFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushCopyOfStorageFilter) - HRESULT ( STDMETHODCALLTYPE *PushCopyOfStorageFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushStorageFilter) - HRESULT ( STDMETHODCALLTYPE *PushStorageFilter )( - ID3D12InfoQueue1 * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PopStorageFilter) - void ( STDMETHODCALLTYPE *PopStorageFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetStorageFilterStackSize) - UINT ( STDMETHODCALLTYPE *GetStorageFilterStackSize )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddRetrievalFilterEntries) - HRESULT ( STDMETHODCALLTYPE *AddRetrievalFilterEntries )( - ID3D12InfoQueue1 * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetRetrievalFilter) - HRESULT ( STDMETHODCALLTYPE *GetRetrievalFilter )( - ID3D12InfoQueue1 * This, - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearRetrievalFilter) - void ( STDMETHODCALLTYPE *ClearRetrievalFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushEmptyRetrievalFilter) - HRESULT ( STDMETHODCALLTYPE *PushEmptyRetrievalFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushCopyOfRetrievalFilter) - HRESULT ( STDMETHODCALLTYPE *PushCopyOfRetrievalFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushRetrievalFilter) - HRESULT ( STDMETHODCALLTYPE *PushRetrievalFilter )( - ID3D12InfoQueue1 * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, PopRetrievalFilter) - void ( STDMETHODCALLTYPE *PopRetrievalFilter )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetRetrievalFilterStackSize) - UINT ( STDMETHODCALLTYPE *GetRetrievalFilterStackSize )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddMessage) - HRESULT ( STDMETHODCALLTYPE *AddMessage )( - ID3D12InfoQueue1 * This, - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ D3D12_MESSAGE_ID ID, - _In_ LPCSTR pDescription); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddApplicationMessage) - HRESULT ( STDMETHODCALLTYPE *AddApplicationMessage )( - ID3D12InfoQueue1 * This, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ LPCSTR pDescription); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnCategory) - HRESULT ( STDMETHODCALLTYPE *SetBreakOnCategory )( - ID3D12InfoQueue1 * This, - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ BOOL bEnable); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnSeverity) - HRESULT ( STDMETHODCALLTYPE *SetBreakOnSeverity )( - ID3D12InfoQueue1 * This, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ BOOL bEnable); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnID) - HRESULT ( STDMETHODCALLTYPE *SetBreakOnID )( - ID3D12InfoQueue1 * This, - _In_ D3D12_MESSAGE_ID ID, - _In_ BOOL bEnable); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnCategory) - BOOL ( STDMETHODCALLTYPE *GetBreakOnCategory )( - ID3D12InfoQueue1 * This, - _In_ D3D12_MESSAGE_CATEGORY Category); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnSeverity) - BOOL ( STDMETHODCALLTYPE *GetBreakOnSeverity )( - ID3D12InfoQueue1 * This, - _In_ D3D12_MESSAGE_SEVERITY Severity); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnID) - BOOL ( STDMETHODCALLTYPE *GetBreakOnID )( - ID3D12InfoQueue1 * This, - _In_ D3D12_MESSAGE_ID ID); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetMuteDebugOutput) - void ( STDMETHODCALLTYPE *SetMuteDebugOutput )( - ID3D12InfoQueue1 * This, - _In_ BOOL bMute); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMuteDebugOutput) - BOOL ( STDMETHODCALLTYPE *GetMuteDebugOutput )( - ID3D12InfoQueue1 * This); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue1, RegisterMessageCallback) - HRESULT ( STDMETHODCALLTYPE *RegisterMessageCallback )( - ID3D12InfoQueue1 * This, - _In_ D3D12MessageFunc CallbackFunc, - _In_ D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, - _Inout_ void *pContext, - _Inout_ DWORD *pCallbackCookie); - - DECLSPEC_XFGVIRT(ID3D12InfoQueue1, UnregisterMessageCallback) - HRESULT ( STDMETHODCALLTYPE *UnregisterMessageCallback )( - ID3D12InfoQueue1 * This, - _In_ DWORD CallbackCookie); - - END_INTERFACE - } ID3D12InfoQueue1Vtbl; - - interface ID3D12InfoQueue1 - { - CONST_VTBL struct ID3D12InfoQueue1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12InfoQueue1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12InfoQueue1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12InfoQueue1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12InfoQueue1_SetMessageCountLimit(This,MessageCountLimit) \ - ( (This)->lpVtbl -> SetMessageCountLimit(This,MessageCountLimit) ) - -#define ID3D12InfoQueue1_ClearStoredMessages(This) \ - ( (This)->lpVtbl -> ClearStoredMessages(This) ) - -#define ID3D12InfoQueue1_GetMessage(This,MessageIndex,pMessage,pMessageByteLength) \ - ( (This)->lpVtbl -> GetMessage(This,MessageIndex,pMessage,pMessageByteLength) ) - -#define ID3D12InfoQueue1_GetNumMessagesAllowedByStorageFilter(This) \ - ( (This)->lpVtbl -> GetNumMessagesAllowedByStorageFilter(This) ) - -#define ID3D12InfoQueue1_GetNumMessagesDeniedByStorageFilter(This) \ - ( (This)->lpVtbl -> GetNumMessagesDeniedByStorageFilter(This) ) - -#define ID3D12InfoQueue1_GetNumStoredMessages(This) \ - ( (This)->lpVtbl -> GetNumStoredMessages(This) ) - -#define ID3D12InfoQueue1_GetNumStoredMessagesAllowedByRetrievalFilter(This) \ - ( (This)->lpVtbl -> GetNumStoredMessagesAllowedByRetrievalFilter(This) ) - -#define ID3D12InfoQueue1_GetNumMessagesDiscardedByMessageCountLimit(This) \ - ( (This)->lpVtbl -> GetNumMessagesDiscardedByMessageCountLimit(This) ) - -#define ID3D12InfoQueue1_GetMessageCountLimit(This) \ - ( (This)->lpVtbl -> GetMessageCountLimit(This) ) - -#define ID3D12InfoQueue1_AddStorageFilterEntries(This,pFilter) \ - ( (This)->lpVtbl -> AddStorageFilterEntries(This,pFilter) ) - -#define ID3D12InfoQueue1_GetStorageFilter(This,pFilter,pFilterByteLength) \ - ( (This)->lpVtbl -> GetStorageFilter(This,pFilter,pFilterByteLength) ) - -#define ID3D12InfoQueue1_ClearStorageFilter(This) \ - ( (This)->lpVtbl -> ClearStorageFilter(This) ) - -#define ID3D12InfoQueue1_PushEmptyStorageFilter(This) \ - ( (This)->lpVtbl -> PushEmptyStorageFilter(This) ) - -#define ID3D12InfoQueue1_PushCopyOfStorageFilter(This) \ - ( (This)->lpVtbl -> PushCopyOfStorageFilter(This) ) - -#define ID3D12InfoQueue1_PushStorageFilter(This,pFilter) \ - ( (This)->lpVtbl -> PushStorageFilter(This,pFilter) ) - -#define ID3D12InfoQueue1_PopStorageFilter(This) \ - ( (This)->lpVtbl -> PopStorageFilter(This) ) - -#define ID3D12InfoQueue1_GetStorageFilterStackSize(This) \ - ( (This)->lpVtbl -> GetStorageFilterStackSize(This) ) - -#define ID3D12InfoQueue1_AddRetrievalFilterEntries(This,pFilter) \ - ( (This)->lpVtbl -> AddRetrievalFilterEntries(This,pFilter) ) - -#define ID3D12InfoQueue1_GetRetrievalFilter(This,pFilter,pFilterByteLength) \ - ( (This)->lpVtbl -> GetRetrievalFilter(This,pFilter,pFilterByteLength) ) - -#define ID3D12InfoQueue1_ClearRetrievalFilter(This) \ - ( (This)->lpVtbl -> ClearRetrievalFilter(This) ) - -#define ID3D12InfoQueue1_PushEmptyRetrievalFilter(This) \ - ( (This)->lpVtbl -> PushEmptyRetrievalFilter(This) ) - -#define ID3D12InfoQueue1_PushCopyOfRetrievalFilter(This) \ - ( (This)->lpVtbl -> PushCopyOfRetrievalFilter(This) ) - -#define ID3D12InfoQueue1_PushRetrievalFilter(This,pFilter) \ - ( (This)->lpVtbl -> PushRetrievalFilter(This,pFilter) ) - -#define ID3D12InfoQueue1_PopRetrievalFilter(This) \ - ( (This)->lpVtbl -> PopRetrievalFilter(This) ) - -#define ID3D12InfoQueue1_GetRetrievalFilterStackSize(This) \ - ( (This)->lpVtbl -> GetRetrievalFilterStackSize(This) ) - -#define ID3D12InfoQueue1_AddMessage(This,Category,Severity,ID,pDescription) \ - ( (This)->lpVtbl -> AddMessage(This,Category,Severity,ID,pDescription) ) - -#define ID3D12InfoQueue1_AddApplicationMessage(This,Severity,pDescription) \ - ( (This)->lpVtbl -> AddApplicationMessage(This,Severity,pDescription) ) - -#define ID3D12InfoQueue1_SetBreakOnCategory(This,Category,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnCategory(This,Category,bEnable) ) - -#define ID3D12InfoQueue1_SetBreakOnSeverity(This,Severity,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnSeverity(This,Severity,bEnable) ) - -#define ID3D12InfoQueue1_SetBreakOnID(This,ID,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnID(This,ID,bEnable) ) - -#define ID3D12InfoQueue1_GetBreakOnCategory(This,Category) \ - ( (This)->lpVtbl -> GetBreakOnCategory(This,Category) ) - -#define ID3D12InfoQueue1_GetBreakOnSeverity(This,Severity) \ - ( (This)->lpVtbl -> GetBreakOnSeverity(This,Severity) ) - -#define ID3D12InfoQueue1_GetBreakOnID(This,ID) \ - ( (This)->lpVtbl -> GetBreakOnID(This,ID) ) - -#define ID3D12InfoQueue1_SetMuteDebugOutput(This,bMute) \ - ( (This)->lpVtbl -> SetMuteDebugOutput(This,bMute) ) - -#define ID3D12InfoQueue1_GetMuteDebugOutput(This) \ - ( (This)->lpVtbl -> GetMuteDebugOutput(This) ) - - -#define ID3D12InfoQueue1_RegisterMessageCallback(This,CallbackFunc,CallbackFilterFlags,pContext,pCallbackCookie) \ - ( (This)->lpVtbl -> RegisterMessageCallback(This,CallbackFunc,CallbackFilterFlags,pContext,pCallbackCookie) ) - -#define ID3D12InfoQueue1_UnregisterMessageCallback(This,CallbackCookie) \ - ( (This)->lpVtbl -> UnregisterMessageCallback(This,CallbackCookie) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12InfoQueue1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0020 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ -#pragma endregion -DEFINE_GUID(IID_ID3D12Debug,0x344488b7,0x6846,0x474b,0xb9,0x89,0xf0,0x27,0x44,0x82,0x45,0xe0); -DEFINE_GUID(IID_ID3D12Debug1,0xaffaa4ca,0x63fe,0x4d8e,0xb8,0xad,0x15,0x90,0x00,0xaf,0x43,0x04); -DEFINE_GUID(IID_ID3D12Debug2,0x93a665c4,0xa3b2,0x4e5d,0xb6,0x92,0xa2,0x6a,0xe1,0x4e,0x33,0x74); -DEFINE_GUID(IID_ID3D12Debug3,0x5cf4e58f,0xf671,0x4ff1,0xa5,0x42,0x36,0x86,0xe3,0xd1,0x53,0xd1); -DEFINE_GUID(IID_ID3D12Debug4,0x014b816e,0x9ec5,0x4a2f,0xa8,0x45,0xff,0xbe,0x44,0x1c,0xe1,0x3a); -DEFINE_GUID(IID_ID3D12Debug5,0x548d6b12,0x09fa,0x40e0,0x90,0x69,0x5d,0xcd,0x58,0x9a,0x52,0xc9); -DEFINE_GUID(IID_ID3D12Debug6,0x82a816d6,0x5d01,0x4157,0x97,0xd0,0x49,0x75,0x46,0x3f,0xd1,0xed); -DEFINE_GUID(IID_ID3D12DebugDevice1,0xa9b71770,0xd099,0x4a65,0xa6,0x98,0x3d,0xee,0x10,0x02,0x0f,0x88); -DEFINE_GUID(IID_ID3D12DebugDevice,0x3febd6dd,0x4973,0x4787,0x81,0x94,0xe4,0x5f,0x9e,0x28,0x92,0x3e); -DEFINE_GUID(IID_ID3D12DebugDevice2,0x60eccbc1,0x378d,0x4df1,0x89,0x4c,0xf8,0xac,0x5c,0xe4,0xd7,0xdd); -DEFINE_GUID(IID_ID3D12DebugCommandQueue,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3a); -DEFINE_GUID(IID_ID3D12DebugCommandQueue1,0x16be35a2,0xbfd6,0x49f2,0xbc,0xae,0xea,0xae,0x4a,0xff,0x86,0x2d); -DEFINE_GUID(IID_ID3D12DebugCommandList1,0x102ca951,0x311b,0x4b01,0xb1,0x1f,0xec,0xb8,0x3e,0x06,0x1b,0x37); -DEFINE_GUID(IID_ID3D12DebugCommandList,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3f); -DEFINE_GUID(IID_ID3D12DebugCommandList2,0xaeb575cf,0x4e06,0x48be,0xba,0x3b,0xc4,0x50,0xfc,0x96,0x65,0x2e); -DEFINE_GUID(IID_ID3D12DebugCommandList3,0x197d5e15,0x4d37,0x4d34,0xaf,0x78,0x72,0x4c,0xd7,0x0f,0xdb,0x1f); -DEFINE_GUID(IID_ID3D12SharingContract,0x0adf7d52,0x929c,0x4e61,0xad,0xdb,0xff,0xed,0x30,0xde,0x66,0xef); -DEFINE_GUID(IID_ID3D12ManualWriteTrackingResource,0x86ca3b85,0x49ad,0x4b6e,0xae,0xd5,0xed,0xdb,0x18,0x54,0x0f,0x41); -DEFINE_GUID(IID_ID3D12InfoQueue,0x0742a90b,0xc387,0x483f,0xb9,0x46,0x30,0xa7,0xe4,0xe6,0x14,0x58); -DEFINE_GUID(IID_ID3D12InfoQueue1,0x2852dd88,0xb484,0x4c0c,0xb6,0xb1,0x67,0x16,0x85,0x00,0xe6,0x00); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0020_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0020_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12sdklayers.idl b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12sdklayers.idl deleted file mode 100644 index 36e7d5d..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12sdklayers.idl +++ /dev/null @@ -1,1843 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ -import "oaidl.idl"; -import "ocidl.idl"; - -import "d3d12.idl"; - -cpp_quote("#include ") - -#pragma region App Family -cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") - -//================================================================================================================================== -// -// Debugging Layer -// -//================================================================================================================================== - -[uuid(344488b7-6846-474b-b989-f027448245e0), object, local, pointer_default(unique)] -interface ID3D12Debug - : IUnknown -{ - void EnableDebugLayer(); -} - -typedef enum D3D12_GPU_BASED_VALIDATION_FLAGS -{ - D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0x00, - D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x01, - -} D3D12_GPU_BASED_VALIDATION_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS)") - - -[uuid(affaa4ca-63fe-4d8e-b8ad-159000af4304), object, local, pointer_default(unique)] -interface ID3D12Debug1 - : IUnknown -{ - void EnableDebugLayer(); - void SetEnableGPUBasedValidation(BOOL Enable); - void SetEnableSynchronizedCommandQueueValidation(BOOL Enable); -} - -[uuid(93a665c4-a3b2-4e5d-b692-a26ae14e3374), object, local, pointer_default(unique)] -interface ID3D12Debug2 - : IUnknown -{ - void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags); -} - -[uuid(5cf4e58f-f671-4ff1-a542-3686e3d153d1), object, local, pointer_default(unique)] -interface ID3D12Debug3 - : ID3D12Debug -{ - void SetEnableGPUBasedValidation(BOOL Enable); - void SetEnableSynchronizedCommandQueueValidation(BOOL Enable); - void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags); -} - -[uuid(014b816e-9ec5-4a2f-a845-ffbe441ce13a), object, local, pointer_default(unique)] -interface ID3D12Debug4 - : ID3D12Debug3 -{ - void DisableDebugLayer(); -} - -[uuid(548d6b12-09fa-40e0-9069-5dcd589a52c9), object, local, pointer_default(unique)] -interface ID3D12Debug5 - : ID3D12Debug4 -{ - void SetEnableAutoName(BOOL Enable); -} - -[uuid(82a816d6-5d01-4157-97d0-4975463fd1ed), object, local, pointer_default(unique)] -interface ID3D12Debug6 - : ID3D12Debug5 -{ - void SetForceLegacyBarrierValidation(BOOL Enable); -} - -cpp_quote("DEFINE_GUID(WKPDID_D3DAutoDebugObjectNameW, 0xd4902e36, 0x757a, 0x4942, 0x95, 0x94, 0xb6, 0x76, 0x9a, 0xfa, 0x43, 0xcd);") - -typedef enum D3D12_RLDO_FLAGS -{ - D3D12_RLDO_NONE = 0x0, - D3D12_RLDO_SUMMARY = 0x1, - D3D12_RLDO_DETAIL = 0x2, - D3D12_RLDO_IGNORE_INTERNAL = 0x4, - -} D3D12_RLDO_FLAGS; - -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS)") - -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_TYPE; - -typedef enum D3D12_DEBUG_FEATURE -{ - D3D12_DEBUG_FEATURE_NONE = 0x00, - D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x01, - D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x02, - D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x04, - D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7 = 0x08, -} D3D12_DEBUG_FEATURE; - -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEBUG_FEATURE)") - -typedef enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE -{ - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE, - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY, - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION, - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION, - NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES -} D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE; - -typedef enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS -{ - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0x00, - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x01, - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x02, - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x04, - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x07 -} D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS; - -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS)") - -typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS -{ - UINT MaxMessagesPerCommandList; - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode; - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags; -} D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS; - -typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR -{ - FLOAT SlowdownFactor; -} D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; - -[uuid(a9b71770-d099-4a65-a698-3dee10020f88), object, local, pointer_default(unique)] -interface ID3D12DebugDevice1 - : IUnknown -{ - HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize); - HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize); - HRESULT ReportLiveDeviceObjects( D3D12_RLDO_FLAGS Flags ); -} - -[uuid(3febd6dd-4973-4787-8194-e45f9e28923e), object, local, pointer_default(unique)] -interface ID3D12DebugDevice - : IUnknown -{ - HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask); - D3D12_DEBUG_FEATURE GetFeatureMask(); - HRESULT ReportLiveDeviceObjects(D3D12_RLDO_FLAGS Flags); -} - -[uuid(60eccbc1-378d-4df1-894c-f8ac5ce4d7dd), object, local, pointer_default(unique)] -interface ID3D12DebugDevice2 - : ID3D12DebugDevice -{ - HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize); - HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize); -} - -cpp_quote("DEFINE_GUID(DXGI_DEBUG_D3D12, 0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95);") - - -[ uuid( 09e0bf36-54ac-484f-8847-4baeeab6053a ), object, local, pointer_default( unique ) ] -interface ID3D12DebugCommandQueue - : IUnknown -{ - BOOL AssertResourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State ); -// TODO: Stale BOOL AssertResourceStateThroughView( [annotation("_In_")] ID3D12View* pView, UINT State ); -}; - -[ uuid( 16be35a2-bfd6-49f2-bcae-eaae4aff862d ), object, local, pointer_default( unique ) ] -interface ID3D12DebugCommandQueue1 - : ID3D12DebugCommandQueue -{ - void AssertResourceAccess([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, D3D12_BARRIER_ACCESS Access); - void AssertTextureLayout([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, D3D12_BARRIER_LAYOUT Layout); -}; - -typedef enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE -{ - D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS, -} D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE; - -typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS -{ - D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode; -} D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS; - -[ uuid( 102ca951-311b-4b01-b11f-ecb83e061b37 ), object, local, pointer_default( unique ) ] -interface ID3D12DebugCommandList1 - : IUnknown -{ - BOOL AssertResourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State ); - HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize); - HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize); -}; - -[uuid(09e0bf36-54ac-484f-8847-4baeeab6053f), object, local, pointer_default(unique)] -interface ID3D12DebugCommandList - : IUnknown -{ - BOOL AssertResourceState([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State); - HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask); - D3D12_DEBUG_FEATURE GetFeatureMask(); -}; - -[ uuid(aeb575cf-4e06-48be-ba3b-c450fc96652e), object, local, pointer_default( unique ) ] -interface ID3D12DebugCommandList2 - : ID3D12DebugCommandList -{ - HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize); - HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize); -}; - -[ uuid(197d5e15-4d37-4d34-af78-724cd70fdb1f), object, local, pointer_default( unique ) ] -interface ID3D12DebugCommandList3 - : ID3D12DebugCommandList2 -{ - void AssertResourceAccess([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, D3D12_BARRIER_ACCESS Access); - void AssertTextureLayout([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, D3D12_BARRIER_LAYOUT Layout); -}; - -[uuid(0adf7d52-929c-4e61-addb-ffed30de66ef), object, local, pointer_default(unique)] -interface ID3D12SharingContract - : IUnknown -{ - void Present([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, [annotation("_In_")] HWND window); - void SharedFenceSignal([annotation("_In_")] ID3D12Fence* pFence, UINT64 FenceValue); - void BeginCapturableWork([annotation("_In_")] REFGUID guid); - void EndCapturableWork([annotation("_In_")] REFGUID guid); -}; - -[uuid(86ca3b85-49ad-4b6e-aed5-eddb18540f41), object, local, pointer_default(unique)] -interface ID3D12ManualWriteTrackingResource - : IUnknown -{ - void TrackWrite( - UINT Subresource, - [annotation("_In_opt_")] const D3D12_RANGE* pWrittenRange); -}; - - -//================================================================================================================================== -// -// Info Queue -// -//================================================================================================================================== -typedef enum D3D12_MESSAGE_CATEGORY { - D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED, - D3D12_MESSAGE_CATEGORY_MISCELLANEOUS, - D3D12_MESSAGE_CATEGORY_INITIALIZATION, - D3D12_MESSAGE_CATEGORY_CLEANUP, - D3D12_MESSAGE_CATEGORY_COMPILATION, - D3D12_MESSAGE_CATEGORY_STATE_CREATION, - D3D12_MESSAGE_CATEGORY_STATE_SETTING, - D3D12_MESSAGE_CATEGORY_STATE_GETTING, - D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION, - D3D12_MESSAGE_CATEGORY_EXECUTION, - D3D12_MESSAGE_CATEGORY_SHADER, -} D3D12_MESSAGE_CATEGORY; - -typedef enum D3D12_MESSAGE_SEVERITY { - D3D12_MESSAGE_SEVERITY_CORRUPTION, - D3D12_MESSAGE_SEVERITY_ERROR, - D3D12_MESSAGE_SEVERITY_WARNING, - D3D12_MESSAGE_SEVERITY_INFO, - D3D12_MESSAGE_SEVERITY_MESSAGE -} D3D12_MESSAGE_SEVERITY; - -// Unique ID for every error -// CAUTION: New enum values should be appended to the list only. Inserting -// new enum values into the middle of the list results in changing the numeric -// values of some ID's from one SDK release to the next. This in-turn breaks -// PIX and customer tools/filters. -typedef enum D3D12_MESSAGE_ID { - D3D12_MESSAGE_ID_UNKNOWN = 0, - - //-------------------------------------------------------------------------- - // Messages Used by Core - // Message IDs generated from core are at the beginning - // since the core changes less frequently than the debug layer. - - // End of Messages used by Core - // ------------------------------------------------------------------------ - D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = 1, - D3D12_MESSAGE_ID_CORRUPTED_THIS = 2, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = 3, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = 4, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = 5, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = 6, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = 7, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = 8, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = 9, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = 10, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = 11, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = 12, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = 13, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = 14, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = 15, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = 16, - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = 17, - D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = 18, - D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 19, - - D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 20, - D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 21, - D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 24, - D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 25, - - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 26, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 27, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 28, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = 29, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = 30, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 31, - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 32, - - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 35, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 36, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 37, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 38, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = 39, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = 40, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 41, - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 42, - - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 45, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 46, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 47, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 48, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 49, - - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 52, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 53, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 54, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 55, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 56, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 57, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 58, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 59, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 60, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 61, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 62, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 63, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 64, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 65, - - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 66, - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 67, - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 68, - - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 69, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 70, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 71, - - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 72, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 73, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 74, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 75, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 76, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 79, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 80, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 81, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 82, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 83, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 84, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 85, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 86, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 87, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 88, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 89, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 90, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 91, - - D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 92, - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 93, - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 94, - - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 95, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 96, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 97, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 98, - - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 100, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 101, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 102, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 103, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 104, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 105, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 106, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 107, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 108, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 109, - - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 111, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 112, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 113, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 114, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 115, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 116, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 117, - - D3D12_MESSAGE_ID_GET_PROGRAM_IDENTIFIER_ERROR = 118, - D3D12_MESSAGE_ID_GET_WORK_GRAPH_PROPERTIES_ERROR = 119, - D3D12_MESSAGE_ID_SET_PROGRAM_ERROR = 120, - - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 135, - - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = 200, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = 201, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = 202, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 209, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = 210, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = 211, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = 212, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = 213, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = 219, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = 221, - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = 222, - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 232, - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 233, - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 234, - - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 239, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 240, - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 245, - - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 253, - - D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 255, - D3D12_MESSAGE_ID_LIVE_DEVICE = 274, - D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = 275, - - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 276, - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 277, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 278, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 280, - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 283, - - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 284, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 285, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 286, - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 287, - - D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 289, - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 290, - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 291, - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 292, - - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 294, - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 295, - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 296, - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 297, - - D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 310, - - D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 318, - - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 321, - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 322, - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 323, - - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 331, - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 332, - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 333, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 334, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 335, - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 336, - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 337, - - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 340, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 341, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 342, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = 343, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = 344, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 345, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 346, - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 354, - - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 401, - - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 403, - - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 410, - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 412, - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 414, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 416, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 418, - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 420, - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 422, - - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 425, - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 426, - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 427, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 428, - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 429, - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 430, - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 431, - - D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 447, - D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 448, - - D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = 493, - D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = 494, - - D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = 506, - D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = 507, - - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = 519, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = 520, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = 521, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = 522, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = 523, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = 524, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = 525, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = 526, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = 527, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = 528, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = 529, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = 530, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = 531, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = 532, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = 533, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = 534, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = 535, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = 536, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = 537, - D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = 538, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = 540, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = 541, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = 542, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = 543, - D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = 544, - D3D12_MESSAGE_ID_INVALID_BUNDLE_API = 546, - D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = 547, - D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = 549, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = 552, - D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = 553, - D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = 554, - - D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = 557, - D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = 558, - D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = 559, - D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = 560, - D3D12_MESSAGE_ID_CREATE_RESOURCE = 562, - D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = 563, - D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = 564, - D3D12_MESSAGE_ID_CREATE_LIBRARY = 565, - D3D12_MESSAGE_ID_CREATE_HEAP = 566, - D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = 567, - D3D12_MESSAGE_ID_CREATE_QUERYHEAP = 568, - D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = 569, - - D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = 570, - D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = 571, - D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = 572, - D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = 573, - D3D12_MESSAGE_ID_LIVE_RESOURCE = 575, - D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = 576, - D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = 577, - D3D12_MESSAGE_ID_LIVE_LIBRARY = 578, - D3D12_MESSAGE_ID_LIVE_HEAP = 579, - D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = 580, - D3D12_MESSAGE_ID_LIVE_QUERYHEAP = 581, - D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = 582, - - D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = 583, - D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = 584, - D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = 585, - D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = 586, - D3D12_MESSAGE_ID_DESTROY_RESOURCE = 588, - D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = 589, - D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = 590, - D3D12_MESSAGE_ID_DESTROY_LIBRARY = 591, - D3D12_MESSAGE_ID_DESTROY_HEAP = 592, - D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = 593, - D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = 594, - D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = 595, - - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = 597, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = 599, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = 602, - D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = 603, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = 604, - // This was shipped, but is no longer used. Do not reuse. - //D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDINITIALSTATE = 605, - D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = 607, - D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 608, - D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 609, - D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = 610, - D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = 611, - D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = 613, - D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 614, - D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = 615, - D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 616, - D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = 622, - D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = 623, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = 624, - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = 625, - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 626, - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = 627, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = 628, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = 629, - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = 630, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = 631, - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = 632, - D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = 633, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = 634, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = 635, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 636, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = 637, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = 638, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = 639, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = 640, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = 641, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = 642, - D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = 643, - D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = 644, - D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = 645, - D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = 646, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = 647, - D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = 649, - D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = 650, - D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = 652, - D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = 653, - D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = 654, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = 655, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = 656, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = 657, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = 658, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = 659, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = 660, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = 661, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = 662, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = 663, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 664, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = 665, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 666, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = 667, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 668, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 669, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 670, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 671, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 672, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = 673, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = 674, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 675, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 676, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = 677, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 678, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = 679, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = 680, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = 681, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = 682, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = 683, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = 684, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = 685, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = 686, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = 687, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = 688, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = 689, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = 690, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = 691, - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = 692, - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = 693, - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = 694, - D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = 695, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = 696, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = 697, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = 698, - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = 699, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = 700, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = 701, - D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = 702, - D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = 703, - D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = 705, - D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = 708, - D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = 709, - D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = 710, - D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = 711, - D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = 712, - D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = 713, - D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = 715, - D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = 717, - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = 718, - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = 719, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = 720, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = 721, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = 722, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = 723, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = 724, - D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = 725, - D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = 726, - D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = 727, - D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = 728, - D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = 729, - D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = 731, - D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = 732, - D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = 733, - D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = 734, - D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = 735, - // This was shipped, but is no longer used. Do not reuse. - //D3D12_MESSAGE_ID_UNSTABLE_POWER_STATE = 736, - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = 737, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = 738, - D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE = 739, - D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET = 740, - // Note: These are the same as the above two, with the original (incorrect) name - D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = 739, - D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = 740, - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = 741, - D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = 742, - D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = 743, - D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = 744, - D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = 745, - - // These values shipped, but are no longer used. Do not reuse. - //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE = 746, - //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED = 747, - //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED = 748, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = 815, - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = 816, - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = 817, - D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = 818, - D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = 820, - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = 821, - D3D12_MESSAGE_ID_MAP_INVALIDHEAP = 822, - D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = 823, - D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = 824, - D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = 825, - D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = 826, - D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = 827, - D3D12_MESSAGE_ID_MAP_INVALIDRANGE = 828, - D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = 829, - D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = 832, - D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = 833, - D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = 834, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = 835, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = 836, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = 837, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = 838, - D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = 839, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = 840, - D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = 841, - D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = 842, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = 843, - D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = 844, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = 845, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = 846, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = 847, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = 848, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = 849, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = 850, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = 851, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = 852, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = 853, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = 854, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = 855, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = 856, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = 857, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = 858, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = 859, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = 860, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = 861, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = 862, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = 863, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = 864, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = 865, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = 866, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = 867, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = 868, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = 869, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = 870, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = 871, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = 872, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = 873, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = 874, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = 875, - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = 876, - - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = 877, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = 878, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = 879, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = 880, - - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = 881, - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = 882, - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = 883, - - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = 884, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = 885, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = 886, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = 887, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = 888, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = 889, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = 890, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = 891, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = 892, - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = 893, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = 894, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = 895, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = 896, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = 897, - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = 898, - - D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = 899, - D3D12_MESSAGE_ID_INVALID_NODE_INDEX = 900, - - D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = 901, - D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = 902, - D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = 903, - D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = 904, - D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = 905, - D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = 906, - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = 907, - D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = 908, - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = 909, - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = 910, - - D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = 911, - D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = 912, - D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = 913, - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = 914, - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = 915, - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = 916, - D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = 917, - D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = 918, - D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = 919, - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = 920, - - D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = 921, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = 922, - - D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = 923, - - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = 924, - - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = 925, - - D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = 926, - - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = 927, - - D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = 929, - D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = 930, - D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = 931, - - D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = 932, - D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = 933, - - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = 934, - - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = 935, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = 936, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = 937, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = 938, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = 939, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = 940, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = 941, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = 942, - - D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = 943, - D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = 944, - D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = 945, - D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = 946, - - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = 947, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = 948, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = 949, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = 950, - - D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = 951, - D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = 952, - D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = 953, - - D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = 954, - - D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = 955, - - D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = 956, - - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = 957, - - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = 958, - - D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = 959, - - D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = 960, - - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = 961, - - D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = 962, - D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = 963, - D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = 964, - D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = 965, - D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = 966, - D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = 967, - D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = 968, - - D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = 969, - D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = 970, - D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = 971, - D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = 972, - D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = 973, - - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = 974, - - D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = 975, - - D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = 976, - D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = 977, - D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = 978, - D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST = 979, - D3D12_MESSAGE_ID_CREATE_VIDEODECODER = 980, - D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = 981, - D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST = 982, - D3D12_MESSAGE_ID_LIVE_VIDEODECODER = 983, - D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = 984, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST = 985, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = 986, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = 987, - D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = 988, - - D3D12_MESSAGE_ID_DEPRECATED_API = 989, - - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = 990, - - D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = 991, - D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = 992, - D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = 993, - D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = 994, - - D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = 995, - D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = 996, - D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = 997, - - D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = 998, - - D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = 999, - - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = 1000, - - D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = 1001, - D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = 1002, - D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = 1003, - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = 1004, - - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = 1005, - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = 1006, - - D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS = 1007, - - D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = 1008, - D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY = 1009, - D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = 1013, - - D3D12_MESSAGE_ID_BEGIN_EVENT = 1014, - D3D12_MESSAGE_ID_END_EVENT = 1015, - - D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = 1016, - - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = 1017, - - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = 1018, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = 1019, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM = 1020, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM = 1021, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = 1022, - - D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = 1023, - - D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = 1024, - D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = 1025, - - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = 1026, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST = 1027, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = 1028, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = 1029, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC = 1030, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = 1031, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = 1032, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = 1033, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = 1034, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = 1035, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = 1036, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = 1037, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = 1038, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = 1039, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = 1040, - - D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = 1041, - - D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = 1042, - - D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS = 1043, - - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = 1044, - - D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET = 1045, - - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = 1046, - - D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE = 1047, - - D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED = 1048, - - D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS = 1049, - - D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT = 1050, - - D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE = 1051, - D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST = 1052, - D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE = 1053, - D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE = 1054, - D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST = 1055, - D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE = 1056, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE = 1057, - D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST = 1058, - D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE = 1059, - D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 1060, - D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM = 1061, - D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 1062, - D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM = 1063, - D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 1064, - D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM = 1065, - - D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS = 1066, - - D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT = 1067, - - D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION = 1068, - D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY = 1069, - D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION = 1070, - D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION = 1071, - D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY = 1072, - D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION = 1073, - D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION = 1074, - D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY = 1075, - D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION = 1076, - D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 1077, - - D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION = 1078, - - D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 1079, - - D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED = 1080, - D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 1081, - D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 1082, - - D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP = 1083, - D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP = 1084, - D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP = 1085, - - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN = 1086, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 1087, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS = 1088, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE = 1089, - - D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST = 1090, - D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE = 1091, - D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 1092, - D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 1093, - - D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS = 1094, - D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED = 1095, - D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS = 1096, - - D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1097, - D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1098, - - D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 1099, - D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 1100, - D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT = 1101, - D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED = 1102, - - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 1103, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 1104, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 1105, - - D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT = 1106, - - D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 1107, - D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 1108, - D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 1109, - - D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 1110, - - D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 1111, - D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 1112, - - D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 1113, - - D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 1114, - - D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 1115, - D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 1116, - D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 1117, - D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 1118, - D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 1119, - D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 1120, - D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 1121, - - D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 1122, - D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 1123, - D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 1124, - D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 1125, - - D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 1126, - - D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 1127, - D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 1128, - - D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 1129, - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 1130, - D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 1131, - - D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 1132, - D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 1133, - D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 1134, - D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 1135, - - D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 1136, - - D3D12_MESSAGE_ID_CREATE_META_COMMAND = 1137, - D3D12_MESSAGE_ID_LIVE_META_COMMAND = 1138, - D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 1139, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 1140, - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 1141, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 1142, - D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 1143, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 1144, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 1145, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 1146, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 1147, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 1148, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 1149, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 1150, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 1151, - D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 1152, - - D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 1153, - D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 1154, - - D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 1155, - - D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 1156, - - D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 1157, - - D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1158, - D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 1159, - D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1160, - D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 1161, - D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 1162, - - D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 1163, - D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 1164, - D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 1165, - D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 1166, - - D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 1167, - D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 1168, - D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 1169, - - D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 1170, - - D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 1171, - D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 1172, - D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 1173, - D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 1174, - D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 1175, - D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 1176, - - D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 1177, - D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 1178, - D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 1179, - - D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 1180, - D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 1181, - D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 1182, - - D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 1183, - D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 1184, - D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 1185, - - D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 1186, - D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 1187, - D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 1188, - - D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 1189, - D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 1190, - D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 1191, - D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 1192, - D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 1193, - D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 1194, - D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 1195, - D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 1196, - D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 1197, - D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 1198, - D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 1199, - D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 1200, - D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 1201, - - D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 1202, - D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 1203, - D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 1204, - D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 1205, - D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 1206, - D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 1207, - D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 1208, - D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 1209, - D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 1210, - - D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 1211, - D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 1212, - - D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 1213, - D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 1214, - - D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR = 1215, - - D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL = 1216, - D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT = 1217, - - D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT = 1218, - D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1219, - D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT = 1220, - D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1221, - - D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE = 1222, - D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT = 1223, - D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL = 1224, - - D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND = 1225, - D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND = 1226, - D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND = 1227, - D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID = 1228, - D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT = 1229, - - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY = 1230, - - D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR = 1231, - D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1232, - D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE = 1233, - D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP = 1234, - D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER = 1235, - D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 = 1236, - D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1 = 1237, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT = 1238, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE = 1239, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL = 1240, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT = 1241, - D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY = 1242, - - D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE = 1243, - - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH = 1244, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH = 1245, - - D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR = 1246, - - D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT = 1247, - - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH = 1248, - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE = 1249, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH = 1250, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH = 1251, - D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT = 1252, - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH = 1253, - - D3D12_MESSAGE_ID_EMPTY_DISPATCH = 1254, - - - D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1255, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION = 1256, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION = 1257, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT = 1258, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY = 1259, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT = 1260, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG = 1261, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS = 1262, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1263, - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT = 1264, - - D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE = 1265, - D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY = 1266, - D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 1267, - - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT = 1268, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT = 1269, - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH = 1270, - - D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE = 1271, - - D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE = 1272, - D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE = 1273, - - D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1274, - D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1275, - D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE = 1276, - - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 1277, - - D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 1278, - D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 1279, - - D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION = 1280, - D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION = 1281, - D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION = 1282, - - D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS = 1283, - D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED = 1284, - D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN = 1285, - - D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE = 1286, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS = 1287, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET = 1288, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG = 1289, - - D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT = 1290, - D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION = 1291, - D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL = 1292, - D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND = 1293, - D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT = 1294, - D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED = 1295, - - D3D12_MESSAGE_ID_OVERSIZED_DISPATCH = 1296, - D3D12_MESSAGE_ID_CREATE_VIDEOENCODER = 1297, - D3D12_MESSAGE_ID_LIVE_VIDEOENCODER = 1298, - D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER = 1299, - D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP = 1300, - D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP = 1301, - D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP = 1302, - - D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1303, - D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1304, - D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS = 1305, - D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS = 1306, - D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS = 1307, - D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS = 1308, - D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS = 1309, - D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS = 1310, - D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS = 1311, - D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS = 1312, - D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR = 1313, - D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE = 1314, - D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE = 1315, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING = 1316, - D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING = 1317, - D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING = 1318, - D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE = 1319, - D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS = 1320, - D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH = 1321, - D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH = 1322, - D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH = 1323, - D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY = 1324, - D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY = 1325, - D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED = 1326, - D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED = 1327, - D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED = 1328, - D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER = 1329, - D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED = 1330, - - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES = 1331, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS = 1332, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC = 1333, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT = 1334, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE = 1335, - D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE = 1336, - D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION = 1337, - - D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT = 1338, - - D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D = 1339, - - D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS = 1340, - - D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT = 1341, - - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS = 1342, - - D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED = 1343, - - D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON = 1346, - - D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE = 1347, - - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED = 1348, - - D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED = 1349, - - D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT = 1350, - D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE = 1351, - - D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK = 1352, - - D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED = 1353, - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED = 1354, - - D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS = 1355, - - D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS = 1356, - - D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT = 1357, - - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT = 1358, - - D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED = 1359, - D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED = 1360, - - D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED = 1361, - - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE = 1362, - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE = 1363, - D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED = 1364, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS = 1365, - - D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING = 1366, - D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE = 1367, - D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING = 1368, - D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE = 1369, - - D3D12_MESSAGE_ID_NONNORMALIZED_COORDINATE_SAMPLING_NOT_SUPPORTED = 1370, - - D3D12_MESSAGE_ID_INVALID_CAST_TARGET = 1371, - - D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_END_STATE = 1372, - D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_START_STATE = 1373, - D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_ACCESS = 1374, - D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_LOCAL_PRESERVE_PARAMETERS = 1375, - D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_PRESERVE_RENDER_PARAMETERS_ERROR = 1376, - D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_DEPTH_STENCIL_ERROR = 1377, - - D3D12_MESSAGE_ID_DRAW_POTENTIALLY_OUTSIDE_OF_VALID_RENDER_AREA = 1378, - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_LINERASTERIZATIONMODE = 1379, - - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT_SMALLRESOURCE = 1380, - D3D12_MESSAGE_ID_GENERIC_DEVICE_OPERATION_UNSUPPORTED = 1381, - - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDER_TARGET_WRONG_WRITE_MASK = 1382, - - 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, - - D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_STRUCTURED_BUFFER_STRIDE_MISMATCH = 1387, - - 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_CREATE_STATE_OBJECT_WARNING = 1414, - D3D12_MESSAGE_ID_GUID_TEXTURE_LAYOUT_UNSUPPORTED = 1415, - D3D12_MESSAGE_ID_RESOLVE_ENCODER_INPUT_PARAM_LAYOUT_INVALID_PARAMETERS = 1416, - D3D12_MESSAGE_ID_INVALID_BARRIER_ACCESS = 1417, - 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; - -typedef struct D3D12_MESSAGE -{ - D3D12_MESSAGE_CATEGORY Category; - D3D12_MESSAGE_SEVERITY Severity; - D3D12_MESSAGE_ID ID; - [annotation("_Field_size_(DescriptionByteLength)")] const char* pDescription; - SIZE_T DescriptionByteLength; -} D3D12_MESSAGE; - -typedef struct D3D12_INFO_QUEUE_FILTER_DESC -{ - UINT NumCategories; - [annotation("_Field_size_(NumCategories)")] D3D12_MESSAGE_CATEGORY* pCategoryList; - UINT NumSeverities; - [annotation("_Field_size_(NumSeverities)")] D3D12_MESSAGE_SEVERITY* pSeverityList; - UINT NumIDs; - [annotation("_Field_size_(NumIDs)")] D3D12_MESSAGE_ID* pIDList; -} D3D12_INFO_QUEUE_FILTER_DESC; - -// To use, memset to 0, then fill in what you need. -typedef struct D3D12_INFO_QUEUE_FILTER -{ - D3D12_INFO_QUEUE_FILTER_DESC AllowList; - D3D12_INFO_QUEUE_FILTER_DESC DenyList; -} D3D12_INFO_QUEUE_FILTER; - -//============================================================================= -// ID3D12InfoQueue -// -// Logs D3D12 Messages. -// This interface can be queried from ID3D12Device, as long as the device -// was created with the debug layer. -// -// -cpp_quote("#define D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024") -[uuid(0742a90b-c387-483f-b946-30a7e4e61458), object, local, pointer_default(unique)] -interface ID3D12InfoQueue - : IUnknown -{ - //========================================================================= - // Methods for configuring how much data is stored in the queue. - - // SetMessageCountLimit() - // This sets how many messages are stored. When the queue is full, - // new messages coming in push old messages out. - // Passing -1 to SetMessageCountLimit means the queue has - // unlimited size (go until out of memory or ClearStoredMessages()). - // The default message count size is - // D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT - // Returns S_OK or E_INVALIDARG. - HRESULT SetMessageCountLimit([annotation("_In_")] UINT64 MessageCountLimit); - - // ClearStoredMessages - void ClearStoredMessages(); - - //========================================================================= - // Methods for retrieving data or statistics from the queue. - - // GetMessage() - // Retrieves messages, one at a time, from the queue which pass any - // retrieval filter currently defined. If there is no retrieval filter, - // all messages can be retrieved. - // The MessageIndex parameter is a 0 based index into the results passing - // the filter. The number of results is returned by - // GetNumStoredMessagesAllowedByRetrievalFilter(). - // - // Note this does not remove the message from the queue. - // - // pMessageByteLength inputs the size of the buffer passed in via - // pMessage, and outputs the size of the message. pMessage can be NULL - // when the size of the required buffer is being queried (return S_FALSE). - // - // NOTE: The returned buffer pMessage is NOT just the size of D3D12_MESSAGE, - // it includes extra memory after the D3D12_MESSAGE for storing the string - // description, which is pointed to from within D3D12_MESSAGE. Therefore - // applications should check the size needed for pMessage as described above. - // - // Watch out for thread safety when making consecutive calls first to - // determine the buffer size required and then to pass in the buffer and - // retrieve the message, and also between calling - // GetNumStoredMessagesAllowedByRetrievalFilter() and enumerating through - // the results via GetMessagE(). - // - // Returns: S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY. - HRESULT GetMessage( - [annotation("_In_")] UINT64 MessageIndex, - [annotation("_Out_writes_bytes_opt_(*pMessageByteLength)")] D3D12_MESSAGE* pMessage, - [annotation("_Inout_")] SIZE_T* pMessageByteLength); - - // GetNumMessagesAllowedByStorageFilter() - // Returns how many messages sent to the queue passed - // whatever storage filter was active upon receipt of - // the message. - // This can be a larger value than the message count limit, - // returned by GetMessageCountLimit(), since old messages are discarded - // when the queue is full to prevent overflow. - UINT64 GetNumMessagesAllowedByStorageFilter(); - - // GetNumMessagesDeniedByStorageFilter() - UINT64 GetNumMessagesDeniedByStorageFilter(); - - // GetNumStoredMessages() - // Returns how many messages are currently stored in the queue. - UINT64 GetNumStoredMessages(); - - // GetNumStoredMessagesAllowedByRetrievalFilter() - // Returns how many messages that are currently in the queue - // pass any retrieval filter that is currently set. - // The MessageIndex parameter to GetMessage() indexes - // an array of this many results. - UINT64 GetNumStoredMessagesAllowedByRetrievalFilter(); - - // GetNumMessagesDiscardedByMessageCountLimit() - UINT64 GetNumMessagesDiscardedByMessageCountLimit(); - - // GetMessageCountLimit - // This is how many messages can be stored in the queue. - // When the queue is full, new messages coming in push old messages out. - // -1 means there is no limit. - UINT64 GetMessageCountLimit(); - - //========================================================================= - // Methods for filtering what gets stored in the queue - - // AddStorageFilterEntries() - // Adds to the existing entries at top of stack - // Returns: S_OK, E_INVALIDARG or E_OUTOFMEMORY. - HRESULT AddStorageFilterEntries( - [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter); - - // GetStorageFilter() - // Gets all entries at top of stack. - // The application must allocate the output buffer. The size required can be - // queried by passing null for pFilter and looking at the returned - // pFilterByteLength (HRESULT is S_FALSE). Note that D3D12_INFO_QUEUE_FILTER contains - // pointers - these will point to locations within the same - // contiguous buffer - *pFilterByteLength is the total storage needed for all - // data. So the application needs to only allocate/free the memory for pFilter. - // Returns S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY - HRESULT GetStorageFilter( - [annotation("_Out_writes_bytes_opt_(*pFilterByteLength)")] D3D12_INFO_QUEUE_FILTER* pFilter, - [annotation("_Inout_")] SIZE_T* pFilterByteLength); - - // ClearStorageFilter() - // Clears filter at the top of the stack (if there is one) - void ClearStorageFilter(); - - // PushEmptyStorageFilter() - // Push an empty storage filter on the stack to allow local filtering changes. - // For convenience, this is automatically called by SetStorageFilter() - // if the stack is empty. Thus if the stack is not needed, filters can be - // defined without ever bothering to push or pop. - // Returns S_OK or E_OUTOFMEMORY - HRESULT PushEmptyStorageFilter(); - - // PushCopyOfStorageFilter() - // Push a copy of the current filter so that local modifications can be made - // starting from what currently exists. - // Returns S_OK or E_OUTOFMEMORY - HRESULT PushCopyOfStorageFilter(); - - // PushStorageFilter() - // Push a filter passed as a parameter onto the stack. This is - // just a helper for calling PushEmptyStorageFilter() followed - // by AddStorageFilterEntries() - // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY. - HRESULT PushStorageFilter( - [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter); - - // PopStorageFilter() - // Pop the current storage filter off the stack (if there is one) - void PopStorageFilter(); - - // GetStorageFilterStackSize() - UINT GetStorageFilterStackSize(); - - //========================================================================= - // Methods for filtering what gets read out of the queue by GetMessage(). - - // AddRetrievalFilterEntries() - // Adds to the existing entries at top of stack - // Returns: S_OK, E_INVALIDARG or E_OUTOFMEMORY. - HRESULT AddRetrievalFilterEntries( - [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter); - - // GetRetrievalFilter() - // Gets all entries at top of stack. - // The application must allocate the output buffer. The size required can be - // queried by passing null for pFilter and looking at the returned - // pFilterByteLength (HRESULT is S_FALSE). Note that D3D12_INFO_QUEUE_FILTER contains - // pointers - these will point to locations within the same - // contiguous buffer - *pFilterByteLength is the total storage needed for all - // data. So the application needs to only allocate/free the memory for pFilter. - // Returns S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY - HRESULT GetRetrievalFilter( - [annotation("_Out_writes_bytes_opt_(*pFilterByteLength)")] D3D12_INFO_QUEUE_FILTER* pFilter, - [annotation("_Inout_")] SIZE_T* pFilterByteLength); - - // ClearRetrievalFilter() - // Clears filter at the top of the stack (if there is one) - void ClearRetrievalFilter(); - - // PushEmptyRetrievalFilter() - // Push an empty storage filter on the stack to allow local filtering changes. - // For convenience, this is automatically called by SetRetrievalFilter() - // if the stack is empty. Thus if the stack is not needed, filters can be - // defined without ever bothering to push or pop. - // Returns S_OK or E_OUTOFMEMORY - HRESULT PushEmptyRetrievalFilter(); - - // PushCopyOfRetrievalFilter() - // Push a copy of the current filter so that local modifications can be made - // starting from what currently exists. - // Returns S_OK or E_OUTOFMEMORY - HRESULT PushCopyOfRetrievalFilter(); - - // PushRetrievalFilter() - // Push a filter passed as a parameter onto the stack. This is - // just a helper for calling PushEmptyRetrievalFilter() followed - // by AddRetrievalFilterEntries() - // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY. - HRESULT PushRetrievalFilter( - [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter); - - // PopRetrievalFilter() - // Pop the current storage filter off the stack (if there is one) - void PopRetrievalFilter(); - - // GetRetrievalFilterStackSize() - UINT GetRetrievalFilterStackSize(); - - //========================================================================= - // Methods for adding entries to the queue. - - // AddMessage() - // This is used by D3D12 components to log messages. Nothing stops - // applications from calling this, but it isn’t particularly useful. - // If an application wishes to insert custom strings into the queue, - // AddApplicationMessage() below is suggested. See below. - // - // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY - HRESULT AddMessage( - [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category, - [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity, - [annotation("_In_")] D3D12_MESSAGE_ID ID, - [annotation("_In_")] LPCSTR pDescription); - - // AddApplicationMessage() - // This is a convenience for applications that want - // to insert strings of their own into the queue, perhaps to log issues - // of its own, or to mark out points in time in the queue. This - // has the same effect as calling AddMessage() above with the - // following settings: - // Category = D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED - // Severity = - // ID = D3D12_MESSAGE_ID_STRING_FROM_APPLICATION - // pDescription = - // - // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY - HRESULT AddApplicationMessage( - [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity, - [annotation("_In_")] LPCSTR pDescription); - - //========================================================================= - // Methods for breaking on errors that pass the storage filter. - HRESULT SetBreakOnCategory( - [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category, - [annotation("_In_")] BOOL bEnable); - HRESULT SetBreakOnSeverity( - [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity, - [annotation("_In_")] BOOL bEnable); - HRESULT SetBreakOnID( - [annotation("_In_")] D3D12_MESSAGE_ID ID, - [annotation("_In_")] BOOL bEnable); - - BOOL GetBreakOnCategory( - [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category); - BOOL GetBreakOnSeverity( - [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity); - BOOL GetBreakOnID( - [annotation("_In_")] D3D12_MESSAGE_ID ID); - - //========================================================================= - // Methods for globally muting debug spte from the InfoQueue - void SetMuteDebugOutput( - [annotation("_In_")] BOOL bMute); - BOOL GetMuteDebugOutput(); -}; - -typedef enum D3D12_MESSAGE_CALLBACK_FLAGS -{ - D3D12_MESSAGE_CALLBACK_FLAG_NONE = 0x00, - D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS = 0x01, - -} D3D12_MESSAGE_CALLBACK_FLAGS; - -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS(D3D12_MESSAGE_CALLBACK_FLAGS)") - -typedef void (__stdcall *D3D12MessageFunc) (D3D12_MESSAGE_CATEGORY Category, - D3D12_MESSAGE_SEVERITY Severity, - D3D12_MESSAGE_ID ID, - LPCSTR pDescription, - void* pContext); - -[ uuid( 2852dd88-b484-4c0c-b6b1-67168500e600 ), object, local, pointer_default( unique ) ] -interface ID3D12InfoQueue1 - : ID3D12InfoQueue -{ - HRESULT RegisterMessageCallback( - [annotation("_In_")] D3D12MessageFunc CallbackFunc, - [annotation("_In_")] D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, - [annotation("_Inout_")] void* pContext, - [annotation("_Inout_")] DWORD *pCallbackCookie); - - HRESULT UnregisterMessageCallback( - [annotation("_In_")] DWORD CallbackCookie); -}; - - - -cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") -#pragma endregion - -cpp_quote( "DEFINE_GUID(IID_ID3D12Debug,0x344488b7,0x6846,0x474b,0xb9,0x89,0xf0,0x27,0x44,0x82,0x45,0xe0);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Debug1,0xaffaa4ca,0x63fe,0x4d8e,0xb8,0xad,0x15,0x90,0x00,0xaf,0x43,0x04);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Debug2,0x93a665c4,0xa3b2,0x4e5d,0xb6,0x92,0xa2,0x6a,0xe1,0x4e,0x33,0x74);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Debug3,0x5cf4e58f,0xf671,0x4ff1,0xa5,0x42,0x36,0x86,0xe3,0xd1,0x53,0xd1);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Debug4,0x014b816e,0x9ec5,0x4a2f,0xa8,0x45,0xff,0xbe,0x44,0x1c,0xe1,0x3a);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Debug5,0x548d6b12,0x09fa,0x40e0,0x90,0x69,0x5d,0xcd,0x58,0x9a,0x52,0xc9);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12Debug6,0x82a816d6,0x5d01,0x4157,0x97,0xd0,0x49,0x75,0x46,0x3f,0xd1,0xed);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice1,0xa9b71770,0xd099,0x4a65,0xa6,0x98,0x3d,0xee,0x10,0x02,0x0f,0x88);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice,0x3febd6dd,0x4973,0x4787,0x81,0x94,0xe4,0x5f,0x9e,0x28,0x92,0x3e);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice2,0x60eccbc1,0x378d,0x4df1,0x89,0x4c,0xf8,0xac,0x5c,0xe4,0xd7,0xdd);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandQueue,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3a);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandQueue1,0x16be35a2,0xbfd6,0x49f2,0xbc,0xae,0xea,0xae,0x4a,0xff,0x86,0x2d);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList1,0x102ca951,0x311b,0x4b01,0xb1,0x1f,0xec,0xb8,0x3e,0x06,0x1b,0x37);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3f);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList2,0xaeb575cf,0x4e06,0x48be,0xba,0x3b,0xc4,0x50,0xfc,0x96,0x65,0x2e);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList3,0x197d5e15,0x4d37,0x4d34,0xaf,0x78,0x72,0x4c,0xd7,0x0f,0xdb,0x1f);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12SharingContract,0x0adf7d52,0x929c,0x4e61,0xad,0xdb,0xff,0xed,0x30,0xde,0x66,0xef);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12ManualWriteTrackingResource,0x86ca3b85,0x49ad,0x4b6e,0xae,0xd5,0xed,0xdb,0x18,0x54,0x0f,0x41);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12InfoQueue,0x0742a90b,0xc387,0x483f,0xb9,0x46,0x30,0xa7,0xe4,0xe6,0x14,0x58);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12InfoQueue1,0x2852dd88,0xb484,0x4c0c,0xb6,0xb1,0x67,0x16,0x85,0x00,0xe6,0x00);" ) diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12shader.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12shader.h deleted file mode 100644 index 224ae51..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12shader.h +++ /dev/null @@ -1,494 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -// -// File: D3D12Shader.h -// Content: D3D12 Shader Types and APIs -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef __D3D12SHADER_H__ -#define __D3D12SHADER_H__ - -#include "d3dcommon.h" - -typedef enum D3D12_SHADER_VERSION_TYPE -{ - D3D12_SHVER_PIXEL_SHADER = 0, - D3D12_SHVER_VERTEX_SHADER = 1, - D3D12_SHVER_GEOMETRY_SHADER = 2, - - // D3D11 Shaders - D3D12_SHVER_HULL_SHADER = 3, - D3D12_SHVER_DOMAIN_SHADER = 4, - D3D12_SHVER_COMPUTE_SHADER = 5, - - // D3D12 Shaders - D3D12_SHVER_LIBRARY = 6, - - D3D12_SHVER_RAY_GENERATION_SHADER = 7, - D3D12_SHVER_INTERSECTION_SHADER = 8, - D3D12_SHVER_ANY_HIT_SHADER = 9, - D3D12_SHVER_CLOSEST_HIT_SHADER = 10, - D3D12_SHVER_MISS_SHADER = 11, - D3D12_SHVER_CALLABLE_SHADER = 12, - - D3D12_SHVER_MESH_SHADER = 13, - D3D12_SHVER_AMPLIFICATION_SHADER = 14, - - D3D12_SHVER_NODE_SHADER = 15, - - D3D12_SHVER_RESERVED0 = 0xFFF0, -} D3D12_SHADER_VERSION_TYPE; - -#define D3D12_SHVER_GET_TYPE(_Version) \ - (((_Version) >> 16) & 0xffff) -#define D3D12_SHVER_GET_MAJOR(_Version) \ - (((_Version) >> 4) & 0xf) -#define D3D12_SHVER_GET_MINOR(_Version) \ - (((_Version) >> 0) & 0xf) - -// Slot ID for library function return -#define D3D_RETURN_PARAMETER_INDEX (-1) - -typedef D3D_RESOURCE_RETURN_TYPE D3D12_RESOURCE_RETURN_TYPE; - -typedef D3D_CBUFFER_TYPE D3D12_CBUFFER_TYPE; - - -typedef struct _D3D12_SIGNATURE_PARAMETER_DESC -{ - LPCSTR SemanticName; // Name of the semantic - UINT SemanticIndex; // Index of the semantic - UINT Register; // Number of member variables - D3D_NAME SystemValueType;// A predefined system value, or D3D_NAME_UNDEFINED if not applicable - D3D_REGISTER_COMPONENT_TYPE ComponentType; // Scalar type (e.g. uint, float, etc.) - BYTE Mask; // Mask to indicate which components of the register - // are used (combination of D3D10_COMPONENT_MASK values) - BYTE ReadWriteMask; // Mask to indicate whether a given component is - // never written (if this is an output signature) or - // always read (if this is an input signature). - // (combination of D3D_MASK_* values) - UINT Stream; // Stream index - D3D_MIN_PRECISION MinPrecision; // Minimum desired interpolation precision -} D3D12_SIGNATURE_PARAMETER_DESC; - -typedef struct _D3D12_SHADER_BUFFER_DESC -{ - LPCSTR Name; // Name of the constant buffer - D3D_CBUFFER_TYPE Type; // Indicates type of buffer content - UINT Variables; // Number of member variables - UINT Size; // Size of CB (in bytes) - UINT uFlags; // Buffer description flags -} D3D12_SHADER_BUFFER_DESC; - -typedef struct _D3D12_SHADER_VARIABLE_DESC -{ - LPCSTR Name; // Name of the variable - UINT StartOffset; // Offset in constant buffer's backing store - UINT Size; // Size of variable (in bytes) - UINT uFlags; // Variable flags - LPVOID DefaultValue; // Raw pointer to default value - UINT StartTexture; // First texture index (or -1 if no textures used) - UINT TextureSize; // Number of texture slots possibly used. - UINT StartSampler; // First sampler index (or -1 if no textures used) - UINT SamplerSize; // Number of sampler slots possibly used. -} D3D12_SHADER_VARIABLE_DESC; - -typedef struct _D3D12_SHADER_TYPE_DESC -{ - D3D_SHADER_VARIABLE_CLASS Class; // Variable class (e.g. object, matrix, etc.) - D3D_SHADER_VARIABLE_TYPE Type; // Variable type (e.g. float, sampler, etc.) - UINT Rows; // Number of rows (for matrices, 1 for other numeric, 0 if not applicable) - UINT Columns; // Number of columns (for vectors & matrices, 1 for other numeric, 0 if not applicable) - UINT Elements; // Number of elements (0 if not an array) - UINT Members; // Number of members (0 if not a structure) - UINT Offset; // Offset from the start of structure (0 if not a structure member) - LPCSTR Name; // Name of type, can be NULL -} D3D12_SHADER_TYPE_DESC; - -typedef D3D_TESSELLATOR_DOMAIN D3D12_TESSELLATOR_DOMAIN; - -typedef D3D_TESSELLATOR_PARTITIONING D3D12_TESSELLATOR_PARTITIONING; - -typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D12_TESSELLATOR_OUTPUT_PRIMITIVE; - -typedef struct _D3D12_SHADER_DESC -{ - UINT Version; // Shader version - LPCSTR Creator; // Creator string - UINT Flags; // Shader compilation/parse flags - - UINT ConstantBuffers; // Number of constant buffers - UINT BoundResources; // Number of bound resources - UINT InputParameters; // Number of parameters in the input signature - UINT OutputParameters; // Number of parameters in the output signature - - UINT InstructionCount; // Number of emitted instructions - UINT TempRegisterCount; // Number of temporary registers used - UINT TempArrayCount; // Number of temporary arrays used - UINT DefCount; // Number of constant defines - UINT DclCount; // Number of declarations (input + output) - UINT TextureNormalInstructions; // Number of non-categorized texture instructions - UINT TextureLoadInstructions; // Number of texture load instructions - UINT TextureCompInstructions; // Number of texture comparison instructions - UINT TextureBiasInstructions; // Number of texture bias instructions - UINT TextureGradientInstructions; // Number of texture gradient instructions - UINT FloatInstructionCount; // Number of floating point arithmetic instructions used - UINT IntInstructionCount; // Number of signed integer arithmetic instructions used - UINT UintInstructionCount; // Number of unsigned integer arithmetic instructions used - UINT StaticFlowControlCount; // Number of static flow control instructions used - UINT DynamicFlowControlCount; // Number of dynamic flow control instructions used - UINT MacroInstructionCount; // Number of macro instructions used - UINT ArrayInstructionCount; // Number of array instructions used - UINT CutInstructionCount; // Number of cut instructions used - UINT EmitInstructionCount; // Number of emit instructions used - D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; // Geometry shader output topology - UINT GSMaxOutputVertexCount; // Geometry shader maximum output vertex count - D3D_PRIMITIVE InputPrimitive; // GS/HS input primitive - UINT PatchConstantParameters; // Number of parameters in the patch constant signature - UINT cGSInstanceCount; // Number of Geometry shader instances - UINT cControlPoints; // Number of control points in the HS->DS stage - D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive; // Primitive output by the tessellator - D3D_TESSELLATOR_PARTITIONING HSPartitioning; // Partitioning mode of the tessellator - D3D_TESSELLATOR_DOMAIN TessellatorDomain; // Domain of the tessellator (quad, tri, isoline) - // instruction counts - UINT cBarrierInstructions; // Number of barrier instructions in a compute shader - UINT cInterlockedInstructions; // Number of interlocked instructions - UINT cTextureStoreInstructions; // Number of texture writes -} D3D12_SHADER_DESC; - -typedef struct _D3D12_SHADER_INPUT_BIND_DESC -{ - LPCSTR Name; // Name of the resource - D3D_SHADER_INPUT_TYPE Type; // Type of resource (e.g. texture, cbuffer, etc.) - UINT BindPoint; // Starting bind point - UINT BindCount; // Number of contiguous bind points (for arrays) - - UINT uFlags; // Input binding flags - D3D_RESOURCE_RETURN_TYPE ReturnType; // Return type (if texture) - D3D_SRV_DIMENSION Dimension; // Dimension (if texture) - UINT NumSamples; // Number of samples (0 if not MS texture) - UINT Space; // Register space - UINT uID; // Range ID in the bytecode -} D3D12_SHADER_INPUT_BIND_DESC; - -#define D3D_SHADER_REQUIRES_DOUBLES 0x00000001 -#define D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL 0x00000002 -#define D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE 0x00000004 -#define D3D_SHADER_REQUIRES_64_UAVS 0x00000008 -#define D3D_SHADER_REQUIRES_MINIMUM_PRECISION 0x00000010 -#define D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS 0x00000020 -#define D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS 0x00000040 -#define D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING 0x00000080 -#define D3D_SHADER_REQUIRES_TILED_RESOURCES 0x00000100 -#define D3D_SHADER_REQUIRES_STENCIL_REF 0x00000200 -#define D3D_SHADER_REQUIRES_INNER_COVERAGE 0x00000400 -#define D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00000800 -#define D3D_SHADER_REQUIRES_ROVS 0x00001000 -#define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x00002000 -#define D3D_SHADER_REQUIRES_WAVE_OPS 0x00004000 -#define D3D_SHADER_REQUIRES_INT64_OPS 0x00008000 -#define D3D_SHADER_REQUIRES_VIEW_ID 0x00010000 -#define D3D_SHADER_REQUIRES_BARYCENTRICS 0x00020000 -#define D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS 0x00040000 -#define D3D_SHADER_REQUIRES_SHADING_RATE 0x00080000 -#define D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1 0x00100000 -#define D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK 0x00200000 -#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE 0x00400000 -#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED 0x00800000 -#define D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x01000000 -#define D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x02000000 -#define D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x04000000 -#define D3D_SHADER_REQUIRES_WAVE_MMA 0x08000000 -#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000 -#define D3D_SHADER_REQUIRES_ADVANCED_TEXTURE_OPS 0x20000000 -#define D3D_SHADER_REQUIRES_WRITEABLE_MSAA_TEXTURES 0x40000000 -#define D3D_SHADER_REQUIRES_SAMPLE_CMP_GRADIENT_OR_BIAS 0x80000000 -#define D3D_SHADER_REQUIRES_EXTENDED_COMMAND_INFO 0x100000000ull - - -typedef struct _D3D12_LIBRARY_DESC -{ - LPCSTR Creator; // The name of the originator of the library. - UINT Flags; // Compilation flags. - UINT FunctionCount; // Number of functions exported from the library. -} D3D12_LIBRARY_DESC; - -typedef struct _D3D12_FUNCTION_DESC -{ - UINT Version; // Shader version - LPCSTR Creator; // Creator string - UINT Flags; // Shader compilation/parse flags - - UINT ConstantBuffers; // Number of constant buffers - UINT BoundResources; // Number of bound resources - - UINT InstructionCount; // Number of emitted instructions - UINT TempRegisterCount; // Number of temporary registers used - UINT TempArrayCount; // Number of temporary arrays used - UINT DefCount; // Number of constant defines - UINT DclCount; // Number of declarations (input + output) - UINT TextureNormalInstructions; // Number of non-categorized texture instructions - UINT TextureLoadInstructions; // Number of texture load instructions - UINT TextureCompInstructions; // Number of texture comparison instructions - UINT TextureBiasInstructions; // Number of texture bias instructions - UINT TextureGradientInstructions; // Number of texture gradient instructions - UINT FloatInstructionCount; // Number of floating point arithmetic instructions used - UINT IntInstructionCount; // Number of signed integer arithmetic instructions used - UINT UintInstructionCount; // Number of unsigned integer arithmetic instructions used - UINT StaticFlowControlCount; // Number of static flow control instructions used - UINT DynamicFlowControlCount; // Number of dynamic flow control instructions used - UINT MacroInstructionCount; // Number of macro instructions used - UINT ArrayInstructionCount; // Number of array instructions used - UINT MovInstructionCount; // Number of mov instructions used - UINT MovcInstructionCount; // Number of movc instructions used - UINT ConversionInstructionCount; // Number of type conversion instructions used - UINT BitwiseInstructionCount; // Number of bitwise arithmetic instructions used - D3D_FEATURE_LEVEL MinFeatureLevel; // Min target of the function byte code - UINT64 RequiredFeatureFlags; // Required feature flags - - LPCSTR Name; // Function name - INT FunctionParameterCount; // Number of logical parameters in the function signature (not including return) - BOOL HasReturn; // TRUE, if function returns a value, false - it is a subroutine - BOOL Has10Level9VertexShader; // TRUE, if there is a 10L9 VS blob - BOOL Has10Level9PixelShader; // TRUE, if there is a 10L9 PS blob -} D3D12_FUNCTION_DESC; - -typedef struct _D3D12_PARAMETER_DESC -{ - LPCSTR Name; // Parameter name. - LPCSTR SemanticName; // Parameter semantic name (+index). - D3D_SHADER_VARIABLE_TYPE Type; // Element type. - D3D_SHADER_VARIABLE_CLASS Class; // Scalar/Vector/Matrix. - UINT Rows; // Rows are for matrix parameters. - UINT Columns; // Components or Columns in matrix. - D3D_INTERPOLATION_MODE InterpolationMode; // Interpolation mode. - D3D_PARAMETER_FLAGS Flags; // Parameter modifiers. - - UINT FirstInRegister; // The first input register for this parameter. - UINT FirstInComponent; // The first input register component for this parameter. - UINT FirstOutRegister; // The first output register for this parameter. - UINT FirstOutComponent; // The first output register component for this parameter. -} D3D12_PARAMETER_DESC; - - -////////////////////////////////////////////////////////////////////////////// -// Interfaces //////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -typedef interface ID3D12ShaderReflectionType ID3D12ShaderReflectionType; -typedef interface ID3D12ShaderReflectionType *LPD3D12SHADERREFLECTIONTYPE; - -typedef interface ID3D12ShaderReflectionVariable ID3D12ShaderReflectionVariable; -typedef interface ID3D12ShaderReflectionVariable *LPD3D12SHADERREFLECTIONVARIABLE; - -typedef interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer; -typedef interface ID3D12ShaderReflectionConstantBuffer *LPD3D12SHADERREFLECTIONCONSTANTBUFFER; - -typedef interface ID3D12ShaderReflection ID3D12ShaderReflection; -typedef interface ID3D12ShaderReflection *LPD3D12SHADERREFLECTION; - -typedef interface ID3D12LibraryReflection ID3D12LibraryReflection; -typedef interface ID3D12LibraryReflection *LPD3D12LIBRARYREFLECTION; - -typedef interface ID3D12FunctionReflection ID3D12FunctionReflection; -typedef interface ID3D12FunctionReflection *LPD3D12FUNCTIONREFLECTION; - -typedef interface ID3D12FunctionParameterReflection ID3D12FunctionParameterReflection; -typedef interface ID3D12FunctionParameterReflection *LPD3D12FUNCTIONPARAMETERREFLECTION; - - -// {E913C351-783D-48CA-A1D1-4F306284AD56} -interface DECLSPEC_UUID("E913C351-783D-48CA-A1D1-4F306284AD56") ID3D12ShaderReflectionType; -DEFINE_GUID(IID_ID3D12ShaderReflectionType, -0xe913c351, 0x783d, 0x48ca, 0xa1, 0xd1, 0x4f, 0x30, 0x62, 0x84, 0xad, 0x56); - -#undef INTERFACE -#define INTERFACE ID3D12ShaderReflectionType - -DECLARE_INTERFACE(ID3D12ShaderReflectionType) -{ - STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_TYPE_DESC *pDesc) PURE; - - STDMETHOD_(ID3D12ShaderReflectionType*, GetMemberTypeByIndex)(THIS_ _In_ UINT Index) PURE; - STDMETHOD_(ID3D12ShaderReflectionType*, GetMemberTypeByName)(THIS_ _In_ LPCSTR Name) PURE; - STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ _In_ UINT Index) PURE; - - STDMETHOD(IsEqual)(THIS_ _In_ ID3D12ShaderReflectionType* pType) PURE; - STDMETHOD_(ID3D12ShaderReflectionType*, GetSubType)(THIS) PURE; - STDMETHOD_(ID3D12ShaderReflectionType*, GetBaseClass)(THIS) PURE; - STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE; - STDMETHOD_(ID3D12ShaderReflectionType*, GetInterfaceByIndex)(THIS_ _In_ UINT uIndex) PURE; - STDMETHOD(IsOfType)(THIS_ _In_ ID3D12ShaderReflectionType* pType) PURE; - STDMETHOD(ImplementsInterface)(THIS_ _In_ ID3D12ShaderReflectionType* pBase) PURE; -}; - -// {8337A8A6-A216-444A-B2F4-314733A73AEA} -interface DECLSPEC_UUID("8337A8A6-A216-444A-B2F4-314733A73AEA") ID3D12ShaderReflectionVariable; -DEFINE_GUID(IID_ID3D12ShaderReflectionVariable, -0x8337a8a6, 0xa216, 0x444a, 0xb2, 0xf4, 0x31, 0x47, 0x33, 0xa7, 0x3a, 0xea); - -#undef INTERFACE -#define INTERFACE ID3D12ShaderReflectionVariable - -DECLARE_INTERFACE(ID3D12ShaderReflectionVariable) -{ - STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_VARIABLE_DESC *pDesc) PURE; - - STDMETHOD_(ID3D12ShaderReflectionType*, GetType)(THIS) PURE; - STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetBuffer)(THIS) PURE; - - STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ _In_ UINT uArrayIndex) PURE; -}; - -// {C59598B4-48B3-4869-B9B1-B1618B14A8B7} -interface DECLSPEC_UUID("C59598B4-48B3-4869-B9B1-B1618B14A8B7") ID3D12ShaderReflectionConstantBuffer; -DEFINE_GUID(IID_ID3D12ShaderReflectionConstantBuffer, -0xc59598b4, 0x48b3, 0x4869, 0xb9, 0xb1, 0xb1, 0x61, 0x8b, 0x14, 0xa8, 0xb7); - -#undef INTERFACE -#define INTERFACE ID3D12ShaderReflectionConstantBuffer - -DECLARE_INTERFACE(ID3D12ShaderReflectionConstantBuffer) -{ - STDMETHOD(GetDesc)(THIS_ D3D12_SHADER_BUFFER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByIndex)(THIS_ _In_ UINT Index) PURE; - STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; -}; - -// The ID3D12ShaderReflection IID may change from SDK version to SDK version -// if the reflection API changes. This prevents new code with the new API -// from working with an old binary. Recompiling with the new header -// will pick up the new IID. - -// {5A58797D-A72C-478D-8BA2-EFC6B0EFE88E} -interface DECLSPEC_UUID("5A58797D-A72C-478D-8BA2-EFC6B0EFE88E") ID3D12ShaderReflection; -DEFINE_GUID(IID_ID3D12ShaderReflection, -0x5a58797d, 0xa72c, 0x478d, 0x8b, 0xa2, 0xef, 0xc6, 0xb0, 0xef, 0xe8, 0x8e); - -#undef INTERFACE -#define INTERFACE ID3D12ShaderReflection - -DECLARE_INTERFACE_(ID3D12ShaderReflection, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, - _Out_ LPVOID *ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ _In_ UINT Index) PURE; - STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ _In_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDesc)(THIS_ _In_ UINT ResourceIndex, - _Out_ D3D12_SHADER_INPUT_BIND_DESC *pDesc) PURE; - - STDMETHOD(GetInputParameterDesc)(THIS_ _In_ UINT ParameterIndex, - _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - STDMETHOD(GetOutputParameterDesc)(THIS_ _In_ UINT ParameterIndex, - _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - STDMETHOD(GetPatchConstantParameterDesc)(THIS_ _In_ UINT ParameterIndex, - _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDescByName)(THIS_ _In_ LPCSTR Name, - _Out_ D3D12_SHADER_INPUT_BIND_DESC *pDesc) PURE; - - STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE; - STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE; - STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE; - STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE; - - STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE; - STDMETHOD_(BOOL, IsSampleFrequencyShader)(THIS) PURE; - - STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE; - STDMETHOD(GetMinFeatureLevel)(THIS_ _Out_ enum D3D_FEATURE_LEVEL* pLevel) PURE; - - STDMETHOD_(UINT, GetThreadGroupSize)(THIS_ - _Out_opt_ UINT* pSizeX, - _Out_opt_ UINT* pSizeY, - _Out_opt_ UINT* pSizeZ) PURE; - - STDMETHOD_(UINT64, GetRequiresFlags)(THIS) PURE; -}; - -// {8E349D19-54DB-4A56-9DC9-119D87BDB804} -interface DECLSPEC_UUID("8E349D19-54DB-4A56-9DC9-119D87BDB804") ID3D12LibraryReflection; -DEFINE_GUID(IID_ID3D12LibraryReflection, -0x8e349d19, 0x54db, 0x4a56, 0x9d, 0xc9, 0x11, 0x9d, 0x87, 0xbd, 0xb8, 0x4); - -#undef INTERFACE -#define INTERFACE ID3D12LibraryReflection - -DECLARE_INTERFACE_(ID3D12LibraryReflection, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_LIBRARY_DESC * pDesc) PURE; - - STDMETHOD_(ID3D12FunctionReflection *, GetFunctionByIndex)(THIS_ _In_ INT FunctionIndex) PURE; -}; - -// {1108795C-2772-4BA9-B2A8-D464DC7E2799} -interface DECLSPEC_UUID("1108795C-2772-4BA9-B2A8-D464DC7E2799") ID3D12FunctionReflection; -DEFINE_GUID(IID_ID3D12FunctionReflection, -0x1108795c, 0x2772, 0x4ba9, 0xb2, 0xa8, 0xd4, 0x64, 0xdc, 0x7e, 0x27, 0x99); - -#undef INTERFACE -#define INTERFACE ID3D12FunctionReflection - -DECLARE_INTERFACE(ID3D12FunctionReflection) -{ - STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_FUNCTION_DESC * pDesc) PURE; - - STDMETHOD_(ID3D12ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ _In_ UINT BufferIndex) PURE; - STDMETHOD_(ID3D12ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ _In_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDesc)(THIS_ _In_ UINT ResourceIndex, - _Out_ D3D12_SHADER_INPUT_BIND_DESC * pDesc) PURE; - - STDMETHOD_(ID3D12ShaderReflectionVariable *, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDescByName)(THIS_ _In_ LPCSTR Name, - _Out_ D3D12_SHADER_INPUT_BIND_DESC * pDesc) PURE; - - // Use D3D_RETURN_PARAMETER_INDEX to get description of the return value. - STDMETHOD_(ID3D12FunctionParameterReflection *, GetFunctionParameter)(THIS_ _In_ INT ParameterIndex) PURE; -}; - -// {EC25F42D-7006-4F2B-B33E-02CC3375733F} -interface DECLSPEC_UUID("EC25F42D-7006-4F2B-B33E-02CC3375733F") ID3D12FunctionParameterReflection; -DEFINE_GUID(IID_ID3D12FunctionParameterReflection, -0xec25f42d, 0x7006, 0x4f2b, 0xb3, 0x3e, 0x2, 0xcc, 0x33, 0x75, 0x73, 0x3f); - -#undef INTERFACE -#define INTERFACE ID3D12FunctionParameterReflection - -DECLARE_INTERFACE(ID3D12FunctionParameterReflection) -{ - STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_PARAMETER_DESC * pDesc) PURE; -}; - - -////////////////////////////////////////////////////////////////////////////// -// APIs ////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -#ifdef __cplusplus -extern "C" { -#endif //__cplusplus - -#ifdef __cplusplus -} -#endif //__cplusplus - -#endif //__D3D12SHADER_H__ - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12video.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12video.h deleted file mode 100644 index e38f12f..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12video.h +++ /dev/null @@ -1,9312 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0628 */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __d3d12video_h__ -#define __d3d12video_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -#ifndef DECLSPEC_XFGVIRT -#if defined(_CONTROL_FLOW_GUARD_XFG) -#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) -#else -#define DECLSPEC_XFGVIRT(base, func) -#endif -#endif - -/* Forward Declarations */ - -#ifndef __ID3D12VideoDecoderHeap_FWD_DEFINED__ -#define __ID3D12VideoDecoderHeap_FWD_DEFINED__ -typedef interface ID3D12VideoDecoderHeap ID3D12VideoDecoderHeap; - -#endif /* __ID3D12VideoDecoderHeap_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDevice_FWD_DEFINED__ -#define __ID3D12VideoDevice_FWD_DEFINED__ -typedef interface ID3D12VideoDevice ID3D12VideoDevice; - -#endif /* __ID3D12VideoDevice_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDecoder_FWD_DEFINED__ -#define __ID3D12VideoDecoder_FWD_DEFINED__ -typedef interface ID3D12VideoDecoder ID3D12VideoDecoder; - -#endif /* __ID3D12VideoDecoder_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessor_FWD_DEFINED__ -#define __ID3D12VideoProcessor_FWD_DEFINED__ -typedef interface ID3D12VideoProcessor ID3D12VideoProcessor; - -#endif /* __ID3D12VideoProcessor_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDecodeCommandList_FWD_DEFINED__ -#define __ID3D12VideoDecodeCommandList_FWD_DEFINED__ -typedef interface ID3D12VideoDecodeCommandList ID3D12VideoDecodeCommandList; - -#endif /* __ID3D12VideoDecodeCommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessCommandList_FWD_DEFINED__ -#define __ID3D12VideoProcessCommandList_FWD_DEFINED__ -typedef interface ID3D12VideoProcessCommandList ID3D12VideoProcessCommandList; - -#endif /* __ID3D12VideoProcessCommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ -#define __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ -typedef interface ID3D12VideoDecodeCommandList1 ID3D12VideoDecodeCommandList1; - -#endif /* __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessCommandList1_FWD_DEFINED__ -#define __ID3D12VideoProcessCommandList1_FWD_DEFINED__ -typedef interface ID3D12VideoProcessCommandList1 ID3D12VideoProcessCommandList1; - -#endif /* __ID3D12VideoProcessCommandList1_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoMotionEstimator_FWD_DEFINED__ -#define __ID3D12VideoMotionEstimator_FWD_DEFINED__ -typedef interface ID3D12VideoMotionEstimator ID3D12VideoMotionEstimator; - -#endif /* __ID3D12VideoMotionEstimator_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ -#define __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ -typedef interface ID3D12VideoMotionVectorHeap ID3D12VideoMotionVectorHeap; - -#endif /* __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDevice1_FWD_DEFINED__ -#define __ID3D12VideoDevice1_FWD_DEFINED__ -typedef interface ID3D12VideoDevice1 ID3D12VideoDevice1; - -#endif /* __ID3D12VideoDevice1_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoEncodeCommandList_FWD_DEFINED__ -#define __ID3D12VideoEncodeCommandList_FWD_DEFINED__ -typedef interface ID3D12VideoEncodeCommandList ID3D12VideoEncodeCommandList; - -#endif /* __ID3D12VideoEncodeCommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDecoder1_FWD_DEFINED__ -#define __ID3D12VideoDecoder1_FWD_DEFINED__ -typedef interface ID3D12VideoDecoder1 ID3D12VideoDecoder1; - -#endif /* __ID3D12VideoDecoder1_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDecoderHeap1_FWD_DEFINED__ -#define __ID3D12VideoDecoderHeap1_FWD_DEFINED__ -typedef interface ID3D12VideoDecoderHeap1 ID3D12VideoDecoderHeap1; - -#endif /* __ID3D12VideoDecoderHeap1_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessor1_FWD_DEFINED__ -#define __ID3D12VideoProcessor1_FWD_DEFINED__ -typedef interface ID3D12VideoProcessor1 ID3D12VideoProcessor1; - -#endif /* __ID3D12VideoProcessor1_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoExtensionCommand_FWD_DEFINED__ -#define __ID3D12VideoExtensionCommand_FWD_DEFINED__ -typedef interface ID3D12VideoExtensionCommand ID3D12VideoExtensionCommand; - -#endif /* __ID3D12VideoExtensionCommand_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDevice2_FWD_DEFINED__ -#define __ID3D12VideoDevice2_FWD_DEFINED__ -typedef interface ID3D12VideoDevice2 ID3D12VideoDevice2; - -#endif /* __ID3D12VideoDevice2_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ -#define __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ -typedef interface ID3D12VideoDecodeCommandList2 ID3D12VideoDecodeCommandList2; - -#endif /* __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDecodeCommandList3_FWD_DEFINED__ -#define __ID3D12VideoDecodeCommandList3_FWD_DEFINED__ -typedef interface ID3D12VideoDecodeCommandList3 ID3D12VideoDecodeCommandList3; - -#endif /* __ID3D12VideoDecodeCommandList3_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessCommandList2_FWD_DEFINED__ -#define __ID3D12VideoProcessCommandList2_FWD_DEFINED__ -typedef interface ID3D12VideoProcessCommandList2 ID3D12VideoProcessCommandList2; - -#endif /* __ID3D12VideoProcessCommandList2_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessCommandList3_FWD_DEFINED__ -#define __ID3D12VideoProcessCommandList3_FWD_DEFINED__ -typedef interface ID3D12VideoProcessCommandList3 ID3D12VideoProcessCommandList3; - -#endif /* __ID3D12VideoProcessCommandList3_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ -#define __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ -typedef interface ID3D12VideoEncodeCommandList1 ID3D12VideoEncodeCommandList1; - -#endif /* __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoEncoder_FWD_DEFINED__ -#define __ID3D12VideoEncoder_FWD_DEFINED__ -typedef interface ID3D12VideoEncoder ID3D12VideoEncoder; - -#endif /* __ID3D12VideoEncoder_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoEncoderHeap_FWD_DEFINED__ -#define __ID3D12VideoEncoderHeap_FWD_DEFINED__ -typedef interface ID3D12VideoEncoderHeap ID3D12VideoEncoderHeap; - -#endif /* __ID3D12VideoEncoderHeap_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoDevice3_FWD_DEFINED__ -#define __ID3D12VideoDevice3_FWD_DEFINED__ -typedef interface ID3D12VideoDevice3 ID3D12VideoDevice3; - -#endif /* __ID3D12VideoDevice3_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoEncodeCommandList2_FWD_DEFINED__ -#define __ID3D12VideoEncodeCommandList2_FWD_DEFINED__ -typedef interface ID3D12VideoEncodeCommandList2 ID3D12VideoEncodeCommandList2; - -#endif /* __ID3D12VideoEncodeCommandList2_FWD_DEFINED__ */ - - -#ifndef __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ -#define __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ -typedef interface ID3D12VideoEncodeCommandList3 ID3D12VideoEncodeCommandList3; - -#endif /* __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgicommon.h" -#include "d3d12.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d12video_0000_0000 */ -/* [local] */ - -#include -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) -typedef -enum D3D12_VIDEO_FIELD_TYPE - { - D3D12_VIDEO_FIELD_TYPE_NONE = 0, - D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1, - D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2 - } D3D12_VIDEO_FIELD_TYPE; - -typedef -enum D3D12_VIDEO_FRAME_STEREO_FORMAT - { - D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0, - D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1, - D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2, - D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3, - D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4 - } D3D12_VIDEO_FRAME_STEREO_FORMAT; - -typedef struct D3D12_VIDEO_FORMAT - { - DXGI_FORMAT Format; - DXGI_COLOR_SPACE_TYPE ColorSpace; - } D3D12_VIDEO_FORMAT; - -typedef struct D3D12_VIDEO_SAMPLE - { - UINT Width; - UINT Height; - D3D12_VIDEO_FORMAT Format; - } D3D12_VIDEO_SAMPLE; - -typedef -enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE - { - D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0, - D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1 - } D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE; - -typedef -enum D3D12_FEATURE_VIDEO - { - D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0, - D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1, - D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2, - D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3, - D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5, - D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6, - D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7, - D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8, - D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9, - D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10, - D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11, - D3D12_FEATURE_VIDEO_ARCHITECTURE = 17, - D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18, - D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19, - D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20, - D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22, - D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27, - D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28, - D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29, - D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30, - D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31, - D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32, - D3D12_FEATURE_VIDEO_ENCODER_CODEC = 33, - D3D12_FEATURE_VIDEO_ENCODER_PROFILE_LEVEL = 34, - D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 35, - D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION = 36, - D3D12_FEATURE_VIDEO_ENCODER_INPUT_FORMAT = 37, - D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_MODE = 38, - D3D12_FEATURE_VIDEO_ENCODER_INTRA_REFRESH_MODE = 39, - D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 40, - D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE = 41, - D3D12_FEATURE_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = 42, - D3D12_FEATURE_VIDEO_ENCODER_SUPPORT = 43, - 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; - -typedef -enum D3D12_BITSTREAM_ENCRYPTION_TYPE - { - D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0 - } D3D12_BITSTREAM_ENCRYPTION_TYPE; - -typedef struct D3D12_VIDEO_DECODE_CONFIGURATION - { - GUID DecodeProfile; - D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption; - D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType; - } D3D12_VIDEO_DECODE_CONFIGURATION; - -typedef struct D3D12_VIDEO_DECODER_DESC - { - UINT NodeMask; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; - } D3D12_VIDEO_DECODER_DESC; - -typedef struct D3D12_VIDEO_DECODER_HEAP_DESC - { - UINT NodeMask; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; - UINT DecodeWidth; - UINT DecodeHeight; - DXGI_FORMAT Format; - DXGI_RATIONAL FrameRate; - UINT BitRate; - UINT MaxDecodePictureBufferCount; - } D3D12_VIDEO_DECODER_HEAP_DESC; - -typedef struct D3D12_VIDEO_SIZE_RANGE - { - UINT MaxWidth; - UINT MaxHeight; - UINT MinWidth; - UINT MinHeight; - } D3D12_VIDEO_SIZE_RANGE; - -typedef -enum D3D12_VIDEO_PROCESS_FILTER - { - D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0, - D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1, - D3D12_VIDEO_PROCESS_FILTER_HUE = 2, - D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3, - D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4, - D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5, - D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6, - D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7 - } D3D12_VIDEO_PROCESS_FILTER; - -typedef -enum D3D12_VIDEO_PROCESS_FILTER_FLAGS - { - D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0, - D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = ( 1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS ) , - D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = ( 1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST ) , - D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = ( 1 << D3D12_VIDEO_PROCESS_FILTER_HUE ) , - D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION ) , - D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION ) , - D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT ) , - D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = ( 1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING ) , - D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT ) - } D3D12_VIDEO_PROCESS_FILTER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS ) -typedef -enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS - { - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0, - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1, - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000 - } D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS ) -typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING - { - BOOL Enable; - FLOAT Alpha; - } D3D12_VIDEO_PROCESS_ALPHA_BLENDING; - -typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY - { - BOOL Enable; - FLOAT Lower; - FLOAT Upper; - } D3D12_VIDEO_PROCESS_LUMA_KEY; - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC - { - DXGI_FORMAT Format; - DXGI_COLOR_SPACE_TYPE ColorSpace; - DXGI_RATIONAL SourceAspectRatio; - DXGI_RATIONAL DestinationAspectRatio; - DXGI_RATIONAL FrameRate; - D3D12_VIDEO_SIZE_RANGE SourceSizeRange; - D3D12_VIDEO_SIZE_RANGE DestinationSizeRange; - BOOL EnableOrientation; - D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags; - D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat; - D3D12_VIDEO_FIELD_TYPE FieldType; - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; - BOOL EnableAlphaBlending; - D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey; - UINT NumPastFrames; - UINT NumFutureFrames; - BOOL EnableAutoProcessing; - } D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC; - -typedef -enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE - { - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0, - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1, - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2, - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3 - } D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE; - -typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC - { - DXGI_FORMAT Format; - DXGI_COLOR_SPACE_TYPE ColorSpace; - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode; - UINT AlphaFillModeSourceStreamIndex; - FLOAT BackgroundColor[ 4 ]; - DXGI_RATIONAL FrameRate; - BOOL EnableStereo; - } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ -#define __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDecoderHeap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDecoderHeap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0946B7C9-EBF6-4047-BB73-8683E27DBB1F") - ID3D12VideoDecoderHeap : public ID3D12Pageable - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_VIDEO_DECODER_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_VIDEO_DECODER_HEAP_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_VIDEO_DECODER_HEAP_DESC * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDecoderHeapVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDecoderHeap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDecoderHeap * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDecoderHeap * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoDecoderHeap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoDecoderHeap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoDecoderHeap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoDecoderHeap * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoDecoderHeap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc) -#if !defined(_WIN32) - D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoDecoderHeap * This); - -#else - D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoDecoderHeap * This, - D3D12_VIDEO_DECODER_HEAP_DESC * RetVal); - -#endif - - END_INTERFACE - } ID3D12VideoDecoderHeapVtbl; - - interface ID3D12VideoDecoderHeap - { - CONST_VTBL struct ID3D12VideoDecoderHeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDecoderHeap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDecoderHeap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDecoderHeap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDecoderHeap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoDecoderHeap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoDecoderHeap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoDecoderHeap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoDecoderHeap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12VideoDecoderHeap_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12VideoDecoderHeap_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoDevice_INTERFACE_DEFINED__ -#define __ID3D12VideoDevice_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDevice */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDevice; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1F052807-0B46-4ACC-8A89-364F793718A4") - ID3D12VideoDevice : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( - D3D12_FEATURE_VIDEO FeatureVideo, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( - _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoder) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap( - _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoderHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( - UINT NodeMask, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, - UINT NumInputStreamDescs, - _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoProcessor) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDeviceVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDevice * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDevice * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDevice * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12VideoDevice * This, - D3D12_FEATURE_VIDEO FeatureVideo, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( - ID3D12VideoDevice * This, - _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoder); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( - ID3D12VideoDevice * This, - _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoderHeap); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( - ID3D12VideoDevice * This, - UINT NodeMask, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, - UINT NumInputStreamDescs, - _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoProcessor); - - END_INTERFACE - } ID3D12VideoDeviceVtbl; - - interface ID3D12VideoDevice - { - CONST_VTBL struct ID3D12VideoDeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDevice_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDevice_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDevice_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDevice_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12VideoDevice_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ - ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) - -#define ID3D12VideoDevice_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ - ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) - -#define ID3D12VideoDevice_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ - ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDevice_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoDecoder_INTERFACE_DEFINED__ -#define __ID3D12VideoDecoder_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDecoder */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDecoder; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C59B6BDC-7720-4074-A136-17A156037470") - ID3D12VideoDecoder : public ID3D12Pageable - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_VIDEO_DECODER_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_VIDEO_DECODER_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_VIDEO_DECODER_DESC * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDecoderVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDecoder * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDecoder * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDecoder * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoDecoder * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoDecoder * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoDecoder * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoDecoder * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoDecoder * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc) -#if !defined(_WIN32) - D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoDecoder * This); - -#else - D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoDecoder * This, - D3D12_VIDEO_DECODER_DESC * RetVal); - -#endif - - END_INTERFACE - } ID3D12VideoDecoderVtbl; - - interface ID3D12VideoDecoder - { - CONST_VTBL struct ID3D12VideoDecoderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDecoder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDecoder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDecoder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoDecoder_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoDecoder_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoDecoder_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoDecoder_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12VideoDecoder_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12VideoDecoder_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDecoder_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0003 */ -/* [local] */ - -typedef -enum D3D12_VIDEO_DECODE_TIER - { - D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0, - D3D12_VIDEO_DECODE_TIER_1 = 1, - D3D12_VIDEO_DECODE_TIER_2 = 2, - D3D12_VIDEO_DECODE_TIER_3 = 3 - } D3D12_VIDEO_DECODE_TIER; - -typedef -enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS - { - D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0, - D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1 - } D3D12_VIDEO_DECODE_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS ) -typedef -enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS - { - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0, - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1, - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2, - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4, - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8 - } D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ) -typedef -enum D3D12_VIDEO_DECODE_STATUS - { - D3D12_VIDEO_DECODE_STATUS_OK = 0, - D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1, - D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2, - D3D12_VIDEO_DECODE_STATUS_RESTART = 3, - D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4 - } D3D12_VIDEO_DECODE_STATUS; - -typedef -enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE - { - D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0, - D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1, - D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2, - D3D12_VIDEO_DECODE_ARGUMENT_TYPE_HUFFMAN_TABLE = 3 - } D3D12_VIDEO_DECODE_ARGUMENT_TYPE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT - { - UINT NodeIndex; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; - UINT Width; - UINT Height; - DXGI_FORMAT DecodeFormat; - DXGI_RATIONAL FrameRate; - UINT BitRate; - D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags; - D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags; - D3D12_VIDEO_DECODE_TIER DecodeTier; - } D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT - { - UINT NodeIndex; - UINT ProfileCount; - } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES - { - UINT NodeIndex; - UINT ProfileCount; - _Field_size_full_(ProfileCount) GUID *pProfiles; - } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT - { - UINT NodeIndex; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; - UINT FormatCount; - } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS - { - UINT NodeIndex; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; - UINT FormatCount; - _Field_size_full_(FormatCount) DXGI_FORMAT *pOutputFormats; - } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE - { - BOOL IOCoherent; - } D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE; - -typedef -enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT - { - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3 - } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT; - -typedef -enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS - { - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y ) , - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U ) , - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V ) , - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R ) , - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G ) , - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B ) , - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A ) - } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS ) -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM - { - UINT NodeIndex; - GUID DecodeProfile; - UINT Width; - UINT Height; - DXGI_FORMAT DecodeFormat; - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components; - UINT BinCount; - UINT CounterBitDepth; - } D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM; - -typedef -enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS - { - D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0, - D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1 - } D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS ) -typedef -enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS - { - D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0, - D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1, - D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2 - } D3D12_VIDEO_SCALE_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS ) -typedef struct D3D12_VIDEO_SCALE_SUPPORT - { - D3D12_VIDEO_SIZE_RANGE OutputSizeRange; - D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags; - } D3D12_VIDEO_SCALE_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT - { - UINT NodeIndex; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; - D3D12_VIDEO_SAMPLE DecodeSample; - D3D12_VIDEO_FORMAT OutputFormat; - DXGI_RATIONAL FrameRate; - UINT BitRate; - D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags; - D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; - } D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE - { - D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; - UINT64 MemoryPoolL0Size; - UINT64 MemoryPoolL1Size; - } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE - { - UINT NodeMask; - const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc; - UINT NumInputStreamDescs; - const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; - UINT64 MemoryPoolL0Size; - UINT64 MemoryPoolL1Size; - } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE; - -typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS - { - UINT64 Status; - UINT64 NumMacroblocksAffected; - DXGI_RATIONAL FrameRate; - UINT BitRate; - } D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS; - -typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT - { - D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type; - UINT Size; - _Field_size_bytes_full_(Size) void *pData; - } D3D12_VIDEO_DECODE_FRAME_ARGUMENT; - -typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES - { - UINT NumTexture2Ds; - _Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds; - _Field_size_full_(NumTexture2Ds) UINT *pSubresources; - _Field_size_full_opt_(NumTexture2Ds) ID3D12VideoDecoderHeap **ppHeaps; - } D3D12_VIDEO_DECODE_REFERENCE_FRAMES; - -typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM - { - ID3D12Resource *pBuffer; - UINT64 Offset; - UINT64 Size; - } D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM; - -typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS - { - BOOL Enable; - ID3D12Resource *pReferenceTexture2D; - UINT ReferenceSubresource; - DXGI_COLOR_SPACE_TYPE OutputColorSpace; - DXGI_COLOR_SPACE_TYPE DecodeColorSpace; - } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS; - -typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS - { - UINT NumFrameArguments; - D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[ 10 ]; - D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames; - D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream; - ID3D12VideoDecoderHeap *pHeap; - } D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS; - -typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS - { - ID3D12Resource *pOutputTexture2D; - UINT OutputSubresource; - D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments; - } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_s_ifspec; - -#ifndef __ID3D12VideoProcessor_INTERFACE_DEFINED__ -#define __ID3D12VideoProcessor_INTERFACE_DEFINED__ - -/* interface ID3D12VideoProcessor */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoProcessor; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("304FDB32-BEDE-410A-8545-943AC6A46138") - ID3D12VideoProcessor : public ID3D12Pageable - { - public: - virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0; - - virtual UINT STDMETHODCALLTYPE GetNumInputStreamDescs( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInputStreamDescs( - UINT NumInputStreamDescs, - _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs) = 0; - -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC STDMETHODCALLTYPE GetOutputStreamDesc( void) = 0; -#else - virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *STDMETHODCALLTYPE GetOutputStreamDesc( - D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal) = 0; -#endif - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoProcessorVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoProcessor * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoProcessor * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoProcessor * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoProcessor * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoProcessor * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoProcessor * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoProcessor * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoProcessor * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask) - UINT ( STDMETHODCALLTYPE *GetNodeMask )( - ID3D12VideoProcessor * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs) - UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )( - ID3D12VideoProcessor * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs) - HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )( - ID3D12VideoProcessor * This, - UINT NumInputStreamDescs, - _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc) -#if !defined(_WIN32) - D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )( - ID3D12VideoProcessor * This); - -#else - D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )( - ID3D12VideoProcessor * This, - D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal); - -#endif - - END_INTERFACE - } ID3D12VideoProcessorVtbl; - - interface ID3D12VideoProcessor - { - CONST_VTBL struct ID3D12VideoProcessorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoProcessor_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoProcessor_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoProcessor_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoProcessor_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoProcessor_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoProcessor_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoProcessor_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12VideoProcessor_GetNodeMask(This) \ - ( (This)->lpVtbl -> GetNodeMask(This) ) - -#define ID3D12VideoProcessor_GetNumInputStreamDescs(This) \ - ( (This)->lpVtbl -> GetNumInputStreamDescs(This) ) - -#define ID3D12VideoProcessor_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \ - ( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) ) -#if !defined(_WIN32) - -#define ID3D12VideoProcessor_GetOutputStreamDesc(This) \ - ( (This)->lpVtbl -> GetOutputStreamDesc(This) ) -#else -#define ID3D12VideoProcessor_GetOutputStreamDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) ) -#endif - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoProcessor_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0004 */ -/* [local] */ - -typedef -enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS - { - D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40 - } D3D12_VIDEO_PROCESS_FEATURE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS ) -typedef -enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS - { - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x1, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x2, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x4, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x8, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000 - } D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS ) -typedef -enum D3D12_VIDEO_PROCESS_ORIENTATION - { - D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0, - D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4, - D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7 - } D3D12_VIDEO_PROCESS_ORIENTATION; - -typedef -enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS - { - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0, - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1, - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2 - } D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS ) -typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE - { - INT Minimum; - INT Maximum; - INT Default; - FLOAT Multiplier; - } D3D12_VIDEO_PROCESS_FILTER_RANGE; - -typedef -enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS - { - D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0, - D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1 - } D3D12_VIDEO_PROCESS_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS ) -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT - { - UINT NodeIndex; - D3D12_VIDEO_SAMPLE InputSample; - D3D12_VIDEO_FIELD_TYPE InputFieldType; - D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat; - DXGI_RATIONAL InputFrameRate; - D3D12_VIDEO_FORMAT OutputFormat; - D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat; - DXGI_RATIONAL OutputFrameRate; - D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags; - D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; - D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport; - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport; - D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport; - D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[ 32 ]; - } D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS - { - UINT NodeIndex; - UINT MaxInputStreams; - } D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS; - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO - { - UINT NodeIndex; - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; - D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters; - D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; - DXGI_RATIONAL InputFrameRate; - DXGI_RATIONAL OutputFrameRate; - BOOL EnableAutoProcessing; - UINT PastFrames; - UINT FutureFrames; - } D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO; - -typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET - { - UINT NumPastFrames; - ID3D12Resource **ppPastFrames; - UINT *pPastSubresources; - UINT NumFutureFrames; - ID3D12Resource **ppFutureFrames; - UINT *pFutureSubresources; - } D3D12_VIDEO_PROCESS_REFERENCE_SET; - -typedef struct D3D12_VIDEO_PROCESS_TRANSFORM - { - D3D12_RECT SourceRectangle; - D3D12_RECT DestinationRectangle; - D3D12_VIDEO_PROCESS_ORIENTATION Orientation; - } D3D12_VIDEO_PROCESS_TRANSFORM; - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE - { - UINT OutputIndex; - UINT InputFrameOrField; - } D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE; - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM - { - ID3D12Resource *pTexture2D; - UINT Subresource; - D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet; - } D3D12_VIDEO_PROCESS_INPUT_STREAM; - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS - { - D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ]; - D3D12_VIDEO_PROCESS_TRANSFORM Transform; - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; - D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; - INT FilterLevels[ 32 ]; - D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; - } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS; - -typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM - { - ID3D12Resource *pTexture2D; - UINT Subresource; - } D3D12_VIDEO_PROCESS_OUTPUT_STREAM; - -typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS - { - D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[ 2 ]; - D3D12_RECT TargetRectangle; - } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_s_ifspec; - -#ifndef __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ -#define __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDecodeCommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDecodeCommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3B60536E-AD29-4E64-A269-F853837E5E53") - ID3D12VideoDecodeCommandList : public ID3D12CommandList - { - public: - virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( - _In_ ID3D12CommandAllocator *pAllocator) = 0; - - virtual void STDMETHODCALLTYPE ClearState( void) = 0; - - virtual void STDMETHODCALLTYPE ResourceBarrier( - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; - - virtual void STDMETHODCALLTYPE DiscardResource( - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; - - virtual void STDMETHODCALLTYPE BeginQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE EndQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE ResolveQueryData( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset) = 0; - - virtual void STDMETHODCALLTYPE SetPredication( - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation) = 0; - - virtual void STDMETHODCALLTYPE SetMarker( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE BeginEvent( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE EndEvent( void) = 0; - - virtual void STDMETHODCALLTYPE DecodeFrame( - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; - - virtual void STDMETHODCALLTYPE WriteBufferImmediate( - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDecodeCommandListVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDecodeCommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDecodeCommandList * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDecodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoDecodeCommandList * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoDecodeCommandList * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoDecodeCommandList * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoDecodeCommandList * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoDecodeCommandList * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoDecodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoDecodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoDecodeCommandList * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoDecodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoDecodeCommandList * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoDecodeCommandList * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoDecodeCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoDecodeCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoDecodeCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12VideoDecodeCommandList * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoDecodeCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoDecodeCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoDecodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame) - void ( STDMETHODCALLTYPE *DecodeFrame )( - ID3D12VideoDecodeCommandList * This, - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12VideoDecodeCommandList * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - END_INTERFACE - } ID3D12VideoDecodeCommandListVtbl; - - interface ID3D12VideoDecodeCommandList - { - CONST_VTBL struct ID3D12VideoDecodeCommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDecodeCommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDecodeCommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDecodeCommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDecodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoDecodeCommandList_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoDecodeCommandList_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoDecodeCommandList_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoDecodeCommandList_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoDecodeCommandList_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoDecodeCommandList_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoDecodeCommandList_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoDecodeCommandList_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoDecodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoDecodeCommandList_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoDecodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoDecodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoDecodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoDecodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoDecodeCommandList_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoDecodeCommandList_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoDecodeCommandList_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoDecodeCommandList_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoDecodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ -#define __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ - -/* interface ID3D12VideoProcessCommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoProcessCommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("AEB2543A-167F-4682-ACC8-D159ED4A6209") - ID3D12VideoProcessCommandList : public ID3D12CommandList - { - public: - virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( - _In_ ID3D12CommandAllocator *pAllocator) = 0; - - virtual void STDMETHODCALLTYPE ClearState( void) = 0; - - virtual void STDMETHODCALLTYPE ResourceBarrier( - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; - - virtual void STDMETHODCALLTYPE DiscardResource( - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; - - virtual void STDMETHODCALLTYPE BeginQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE EndQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE ResolveQueryData( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset) = 0; - - virtual void STDMETHODCALLTYPE SetPredication( - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation) = 0; - - virtual void STDMETHODCALLTYPE SetMarker( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE BeginEvent( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE EndEvent( void) = 0; - - virtual void STDMETHODCALLTYPE ProcessFrames( - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; - - virtual void STDMETHODCALLTYPE WriteBufferImmediate( - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoProcessCommandListVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoProcessCommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoProcessCommandList * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoProcessCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoProcessCommandList * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoProcessCommandList * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoProcessCommandList * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoProcessCommandList * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoProcessCommandList * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoProcessCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoProcessCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoProcessCommandList * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoProcessCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoProcessCommandList * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoProcessCommandList * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoProcessCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoProcessCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoProcessCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12VideoProcessCommandList * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoProcessCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoProcessCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoProcessCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames) - void ( STDMETHODCALLTYPE *ProcessFrames )( - ID3D12VideoProcessCommandList * This, - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12VideoProcessCommandList * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - END_INTERFACE - } ID3D12VideoProcessCommandListVtbl; - - interface ID3D12VideoProcessCommandList - { - CONST_VTBL struct ID3D12VideoProcessCommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoProcessCommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoProcessCommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoProcessCommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoProcessCommandList_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoProcessCommandList_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoProcessCommandList_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoProcessCommandList_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoProcessCommandList_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoProcessCommandList_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoProcessCommandList_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoProcessCommandList_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoProcessCommandList_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoProcessCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoProcessCommandList_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoProcessCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoProcessCommandList_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoProcessCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoProcessCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoProcessCommandList_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoProcessCommandList_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoProcessCommandList_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoProcessCommandList_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ - ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) - -#define ID3D12VideoProcessCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0006 */ -/* [local] */ - -typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM - { - UINT64 Offset; - ID3D12Resource *pBuffer; - } D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM; - -typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 - { - BOOL Enable; - ID3D12Resource *pReferenceTexture2D; - UINT ReferenceSubresource; - DXGI_COLOR_SPACE_TYPE OutputColorSpace; - DXGI_COLOR_SPACE_TYPE DecodeColorSpace; - UINT OutputWidth; - UINT OutputHeight; - } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1; - -typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 - { - ID3D12Resource *pOutputTexture2D; - UINT OutputSubresource; - D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments; - D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[ 4 ]; - } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_s_ifspec; - -#ifndef __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ -#define __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDecodeCommandList1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDecodeCommandList1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D52F011B-B56E-453C-A05A-A7F311C8F472") - ID3D12VideoDecodeCommandList1 : public ID3D12VideoDecodeCommandList - { - public: - virtual void STDMETHODCALLTYPE DecodeFrame1( - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDecodeCommandList1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDecodeCommandList1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDecodeCommandList1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDecodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoDecodeCommandList1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoDecodeCommandList1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoDecodeCommandList1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoDecodeCommandList1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoDecodeCommandList1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoDecodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoDecodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoDecodeCommandList1 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoDecodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoDecodeCommandList1 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoDecodeCommandList1 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoDecodeCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoDecodeCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoDecodeCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12VideoDecodeCommandList1 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoDecodeCommandList1 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoDecodeCommandList1 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoDecodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame) - void ( STDMETHODCALLTYPE *DecodeFrame )( - ID3D12VideoDecodeCommandList1 * This, - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12VideoDecodeCommandList1 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1) - void ( STDMETHODCALLTYPE *DecodeFrame1 )( - ID3D12VideoDecodeCommandList1 * This, - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); - - END_INTERFACE - } ID3D12VideoDecodeCommandList1Vtbl; - - interface ID3D12VideoDecodeCommandList1 - { - CONST_VTBL struct ID3D12VideoDecodeCommandList1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDecodeCommandList1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDecodeCommandList1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDecodeCommandList1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDecodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoDecodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoDecodeCommandList1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoDecodeCommandList1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoDecodeCommandList1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoDecodeCommandList1_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoDecodeCommandList1_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoDecodeCommandList1_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoDecodeCommandList1_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoDecodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoDecodeCommandList1_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoDecodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoDecodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoDecodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoDecodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoDecodeCommandList1_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoDecodeCommandList1_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoDecodeCommandList1_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoDecodeCommandList1_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoDecodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12VideoDecodeCommandList1_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0007 */ -/* [local] */ - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 - { - D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ]; - D3D12_VIDEO_PROCESS_TRANSFORM Transform; - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; - D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; - INT FilterLevels[ 32 ]; - D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; - D3D12_VIDEO_FIELD_TYPE FieldType; - } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_s_ifspec; - -#ifndef __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ -#define __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ - -/* interface ID3D12VideoProcessCommandList1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoProcessCommandList1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("542C5C4D-7596-434F-8C93-4EFA6766F267") - ID3D12VideoProcessCommandList1 : public ID3D12VideoProcessCommandList - { - public: - virtual void STDMETHODCALLTYPE ProcessFrames1( - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoProcessCommandList1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoProcessCommandList1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoProcessCommandList1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoProcessCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoProcessCommandList1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoProcessCommandList1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoProcessCommandList1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoProcessCommandList1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoProcessCommandList1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoProcessCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoProcessCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoProcessCommandList1 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoProcessCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoProcessCommandList1 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoProcessCommandList1 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoProcessCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoProcessCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoProcessCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12VideoProcessCommandList1 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoProcessCommandList1 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoProcessCommandList1 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoProcessCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames) - void ( STDMETHODCALLTYPE *ProcessFrames )( - ID3D12VideoProcessCommandList1 * This, - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12VideoProcessCommandList1 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1) - void ( STDMETHODCALLTYPE *ProcessFrames1 )( - ID3D12VideoProcessCommandList1 * This, - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments); - - END_INTERFACE - } ID3D12VideoProcessCommandList1Vtbl; - - interface ID3D12VideoProcessCommandList1 - { - CONST_VTBL struct ID3D12VideoProcessCommandList1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoProcessCommandList1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoProcessCommandList1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoProcessCommandList1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoProcessCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoProcessCommandList1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoProcessCommandList1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoProcessCommandList1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoProcessCommandList1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoProcessCommandList1_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoProcessCommandList1_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoProcessCommandList1_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoProcessCommandList1_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoProcessCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoProcessCommandList1_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoProcessCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoProcessCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoProcessCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoProcessCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoProcessCommandList1_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoProcessCommandList1_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoProcessCommandList1_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoProcessCommandList1_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ - ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) - -#define ID3D12VideoProcessCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12VideoProcessCommandList1_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ - ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0008 */ -/* [local] */ - -typedef -enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE - { - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0, - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 1 - } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE; - -typedef -enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS - { - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0, - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 ) , - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 ) - } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS ) -typedef -enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION - { - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 0 - } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION; - -typedef -enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS - { - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0, - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL ) - } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS ) -typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT - { - UINT NodeIndex; - BOOL VideoDecodeSupport; - BOOL VideoProcessSupport; - BOOL VideoEncodeSupport; - } D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR - { - UINT NodeIndex; - DXGI_FORMAT InputFormat; - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags; - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags; - D3D12_VIDEO_SIZE_RANGE SizeRange; - } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR; - -typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE - { - UINT NodeIndex; - DXGI_FORMAT InputFormat; - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; - D3D12_VIDEO_SIZE_RANGE SizeRange; - BOOL Protected; - UINT64 MotionVectorHeapMemoryPoolL0Size; - UINT64 MotionVectorHeapMemoryPoolL1Size; - UINT64 MotionEstimatorMemoryPoolL0Size; - UINT64 MotionEstimatorMemoryPoolL1Size; - } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE; - -typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC - { - UINT NodeMask; - DXGI_FORMAT InputFormat; - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; - D3D12_VIDEO_SIZE_RANGE SizeRange; - } D3D12_VIDEO_MOTION_ESTIMATOR_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_s_ifspec; - -#ifndef __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ -#define __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ - -/* interface ID3D12VideoMotionEstimator */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoMotionEstimator; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("33FDAE0E-098B-428F-87BB-34B695DE08F8") - ID3D12VideoMotionEstimator : public ID3D12Pageable - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal) = 0; -#endif - - virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoMotionEstimatorVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoMotionEstimator * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoMotionEstimator * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoMotionEstimator * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoMotionEstimator * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoMotionEstimator * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoMotionEstimator * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoMotionEstimator * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoMotionEstimator * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetDesc) -#if !defined(_WIN32) - D3D12_VIDEO_MOTION_ESTIMATOR_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoMotionEstimator * This); - -#else - D3D12_VIDEO_MOTION_ESTIMATOR_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoMotionEstimator * This, - D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12VideoMotionEstimator * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - END_INTERFACE - } ID3D12VideoMotionEstimatorVtbl; - - interface ID3D12VideoMotionEstimator - { - CONST_VTBL struct ID3D12VideoMotionEstimatorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoMotionEstimator_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoMotionEstimator_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoMotionEstimator_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoMotionEstimator_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoMotionEstimator_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoMotionEstimator_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoMotionEstimator_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoMotionEstimator_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12VideoMotionEstimator_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12VideoMotionEstimator_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#define ID3D12VideoMotionEstimator_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0009 */ -/* [local] */ - -typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC - { - UINT NodeMask; - DXGI_FORMAT InputFormat; - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; - D3D12_VIDEO_SIZE_RANGE SizeRange; - } D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_s_ifspec; - -#ifndef __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ -#define __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ - -/* interface ID3D12VideoMotionVectorHeap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoMotionVectorHeap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5BE17987-743A-4061-834B-23D22DAEA505") - ID3D12VideoMotionVectorHeap : public ID3D12Pageable - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal) = 0; -#endif - - virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoMotionVectorHeapVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoMotionVectorHeap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoMotionVectorHeap * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoMotionVectorHeap * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoMotionVectorHeap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoMotionVectorHeap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoMotionVectorHeap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoMotionVectorHeap * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoMotionVectorHeap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetDesc) -#if !defined(_WIN32) - D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoMotionVectorHeap * This); - -#else - D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoMotionVectorHeap * This, - D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12VideoMotionVectorHeap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - END_INTERFACE - } ID3D12VideoMotionVectorHeapVtbl; - - interface ID3D12VideoMotionVectorHeap - { - CONST_VTBL struct ID3D12VideoMotionVectorHeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoMotionVectorHeap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoMotionVectorHeap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoMotionVectorHeap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoMotionVectorHeap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoMotionVectorHeap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoMotionVectorHeap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoMotionVectorHeap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoMotionVectorHeap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12VideoMotionVectorHeap_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12VideoMotionVectorHeap_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#define ID3D12VideoMotionVectorHeap_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoDevice1_INTERFACE_DEFINED__ -#define __ID3D12VideoDevice1_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDevice1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDevice1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("981611AD-A144-4C83-9890-F30E26D658AB") - ID3D12VideoDevice1 : public ID3D12VideoDevice - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionEstimator( - _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoMotionEstimator) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionVectorHeap( - _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoMotionVectorHeap) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDevice1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDevice1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDevice1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDevice1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12VideoDevice1 * This, - D3D12_FEATURE_VIDEO FeatureVideo, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( - ID3D12VideoDevice1 * This, - _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoder); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( - ID3D12VideoDevice1 * This, - _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoderHeap); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( - ID3D12VideoDevice1 * This, - UINT NodeMask, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, - UINT NumInputStreamDescs, - _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoProcessor); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator) - HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )( - ID3D12VideoDevice1 * This, - _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoMotionEstimator); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )( - ID3D12VideoDevice1 * This, - _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoMotionVectorHeap); - - END_INTERFACE - } ID3D12VideoDevice1Vtbl; - - interface ID3D12VideoDevice1 - { - CONST_VTBL struct ID3D12VideoDevice1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDevice1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDevice1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDevice1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDevice1_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12VideoDevice1_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ - ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) - -#define ID3D12VideoDevice1_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ - ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) - -#define ID3D12VideoDevice1_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ - ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) - - -#define ID3D12VideoDevice1_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \ - ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) ) - -#define ID3D12VideoDevice1_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \ - ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDevice1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0011 */ -/* [local] */ - -typedef struct D3D12_RESOURCE_COORDINATE - { - UINT64 X; - UINT Y; - UINT Z; - UINT SubresourceIndex; - } D3D12_RESOURCE_COORDINATE; - -typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT - { - ID3D12VideoMotionVectorHeap *pMotionVectorHeap; - } D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT; - -typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT - { - ID3D12Resource *pInputTexture2D; - UINT InputSubresourceIndex; - ID3D12Resource *pReferenceTexture2D; - UINT ReferenceSubresourceIndex; - ID3D12VideoMotionVectorHeap *pHintMotionVectorHeap; - } D3D12_VIDEO_MOTION_ESTIMATOR_INPUT; - -typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT - { - ID3D12Resource *pMotionVectorTexture2D; - D3D12_RESOURCE_COORDINATE MotionVectorCoordinate; - } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT; - -typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT - { - ID3D12VideoMotionVectorHeap *pMotionVectorHeap; - UINT PixelWidth; - UINT PixelHeight; - } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_s_ifspec; - -#ifndef __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ -#define __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ - -/* interface ID3D12VideoEncodeCommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoEncodeCommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8455293A-0CBD-4831-9B39-FBDBAB724723") - ID3D12VideoEncodeCommandList : public ID3D12CommandList - { - public: - virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( - _In_ ID3D12CommandAllocator *pAllocator) = 0; - - virtual void STDMETHODCALLTYPE ClearState( void) = 0; - - virtual void STDMETHODCALLTYPE ResourceBarrier( - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; - - virtual void STDMETHODCALLTYPE DiscardResource( - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; - - virtual void STDMETHODCALLTYPE BeginQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE EndQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE ResolveQueryData( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset) = 0; - - virtual void STDMETHODCALLTYPE SetPredication( - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation) = 0; - - virtual void STDMETHODCALLTYPE SetMarker( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE BeginEvent( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE EndEvent( void) = 0; - - virtual void STDMETHODCALLTYPE EstimateMotion( - _In_ ID3D12VideoMotionEstimator *pMotionEstimator, - _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments, - _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments) = 0; - - virtual void STDMETHODCALLTYPE ResolveMotionVectorHeap( - const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments, - const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments) = 0; - - virtual void STDMETHODCALLTYPE WriteBufferImmediate( - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; - - virtual void STDMETHODCALLTYPE SetProtectedResourceSession( - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoEncodeCommandListVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoEncodeCommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoEncodeCommandList * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoEncodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoEncodeCommandList * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoEncodeCommandList * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoEncodeCommandList * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoEncodeCommandList * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoEncodeCommandList * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoEncodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoEncodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoEncodeCommandList * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoEncodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoEncodeCommandList * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoEncodeCommandList * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoEncodeCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoEncodeCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoEncodeCommandList * 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 )( - ID3D12VideoEncodeCommandList * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoEncodeCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoEncodeCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoEncodeCommandList * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) - void ( STDMETHODCALLTYPE *EstimateMotion )( - ID3D12VideoEncodeCommandList * 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 )( - ID3D12VideoEncodeCommandList * 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 )( - ID3D12VideoEncodeCommandList * 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 )( - ID3D12VideoEncodeCommandList * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - END_INTERFACE - } ID3D12VideoEncodeCommandListVtbl; - - interface ID3D12VideoEncodeCommandList - { - CONST_VTBL struct ID3D12VideoEncodeCommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoEncodeCommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoEncodeCommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoEncodeCommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoEncodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoEncodeCommandList_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoEncodeCommandList_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoEncodeCommandList_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoEncodeCommandList_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoEncodeCommandList_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoEncodeCommandList_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoEncodeCommandList_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoEncodeCommandList_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoEncodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoEncodeCommandList_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoEncodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoEncodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoEncodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoEncodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoEncodeCommandList_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoEncodeCommandList_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoEncodeCommandList_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoEncodeCommandList_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoEncodeCommandList_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoEncodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - -#define ID3D12VideoEncodeCommandList_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0012 */ -/* [local] */ - -typedef -enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS - { - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0, - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x1 - } D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS ) -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES - { - UINT NodeIndex; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; - } D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES; - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES - { - UINT NodeIndex; - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; - } D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES; - -typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES - { - UINT NodeIndex; - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; - } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1 - { - D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; - BOOL Protected; - UINT64 MemoryPoolL0Size; - UINT64 MemoryPoolL1Size; - } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1; - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1 - { - UINT NodeMask; - const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc; - UINT NumInputStreamDescs; - const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; - BOOL Protected; - UINT64 MemoryPoolL0Size; - UINT64 MemoryPoolL1Size; - } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1; - -typedef -enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE - { - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 6 - } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE; - -typedef -enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE - { - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 10 - } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE; - -typedef -enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS - { - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x1, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x2 - } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS ) -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT - { - UINT NodeIndex; - UINT CommandCount; - } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT; - -typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO - { - GUID CommandId; - LPCWSTR Name; - D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags; - } D3D12_VIDEO_EXTENSION_COMMAND_INFO; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS - { - UINT NodeIndex; - UINT CommandCount; - _Field_size_full_(CommandCount) D3D12_VIDEO_EXTENSION_COMMAND_INFO *pCommandInfos; - } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT - { - GUID CommandId; - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; - UINT ParameterCount; - UINT ParameterPacking; - } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT; - -typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO - { - LPCWSTR Name; - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type; - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags; - } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS - { - GUID CommandId; - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; - UINT ParameterCount; - _Field_size_full_(ParameterCount) D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO *pParameterInfos; - } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT - { - UINT NodeIndex; - GUID CommandId; - _Field_size_bytes_full_opt_(InputDataSizeInBytes) const void *pInputData; - SIZE_T InputDataSizeInBytes; - _Field_size_bytes_full_opt_(OutputDataSizeInBytes) void *pOutputData; - SIZE_T OutputDataSizeInBytes; - } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE - { - UINT NodeIndex; - GUID CommandId; - _Field_size_bytes_full_(CreationParametersDataSizeInBytes) const void *pCreationParameters; - SIZE_T CreationParametersSizeInBytes; - UINT64 MemoryPoolL0Size; - UINT64 MemoryPoolL1Size; - } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE; - -typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC - { - UINT NodeMask; - GUID CommandId; - } D3D12_VIDEO_EXTENSION_COMMAND_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_s_ifspec; - -#ifndef __ID3D12VideoDecoder1_INTERFACE_DEFINED__ -#define __ID3D12VideoDecoder1_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDecoder1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDecoder1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("79A2E5FB-CCD2-469A-9FDE-195D10951F7E") - ID3D12VideoDecoder1 : public ID3D12VideoDecoder - { - public: - virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDecoder1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDecoder1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDecoder1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDecoder1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoDecoder1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoDecoder1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoDecoder1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoDecoder1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoDecoder1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc) -#if !defined(_WIN32) - D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoDecoder1 * This); - -#else - D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoDecoder1 * This, - D3D12_VIDEO_DECODER_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12VideoDecoder1, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12VideoDecoder1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - END_INTERFACE - } ID3D12VideoDecoder1Vtbl; - - interface ID3D12VideoDecoder1 - { - CONST_VTBL struct ID3D12VideoDecoder1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDecoder1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDecoder1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDecoder1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDecoder1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoDecoder1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoDecoder1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoDecoder1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoDecoder1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12VideoDecoder1_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12VideoDecoder1_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - - -#define ID3D12VideoDecoder1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDecoder1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ -#define __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDecoderHeap1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDecoderHeap1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("DA1D98C5-539F-41B2-BF6B-1198A03B6D26") - ID3D12VideoDecoderHeap1 : public ID3D12VideoDecoderHeap - { - public: - virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDecoderHeap1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDecoderHeap1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDecoderHeap1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDecoderHeap1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoDecoderHeap1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoDecoderHeap1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoDecoderHeap1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoDecoderHeap1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoDecoderHeap1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc) -#if !defined(_WIN32) - D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoDecoderHeap1 * This); - -#else - D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoDecoderHeap1 * This, - D3D12_VIDEO_DECODER_HEAP_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap1, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12VideoDecoderHeap1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - END_INTERFACE - } ID3D12VideoDecoderHeap1Vtbl; - - interface ID3D12VideoDecoderHeap1 - { - CONST_VTBL struct ID3D12VideoDecoderHeap1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDecoderHeap1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDecoderHeap1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDecoderHeap1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDecoderHeap1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoDecoderHeap1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoDecoderHeap1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoDecoderHeap1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoDecoderHeap1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12VideoDecoderHeap1_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12VideoDecoderHeap1_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - - -#define ID3D12VideoDecoderHeap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessor1_INTERFACE_DEFINED__ -#define __ID3D12VideoProcessor1_INTERFACE_DEFINED__ - -/* interface ID3D12VideoProcessor1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoProcessor1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F3CFE615-553F-425C-86D8-EE8C1B1FB01C") - ID3D12VideoProcessor1 : public ID3D12VideoProcessor - { - public: - virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoProcessor1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoProcessor1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoProcessor1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoProcessor1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoProcessor1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoProcessor1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoProcessor1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoProcessor1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoProcessor1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask) - UINT ( STDMETHODCALLTYPE *GetNodeMask )( - ID3D12VideoProcessor1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs) - UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )( - ID3D12VideoProcessor1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs) - HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )( - ID3D12VideoProcessor1 * This, - UINT NumInputStreamDescs, - _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc) -#if !defined(_WIN32) - D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )( - ID3D12VideoProcessor1 * This); - -#else - D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )( - ID3D12VideoProcessor1 * This, - D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12VideoProcessor1, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12VideoProcessor1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - END_INTERFACE - } ID3D12VideoProcessor1Vtbl; - - interface ID3D12VideoProcessor1 - { - CONST_VTBL struct ID3D12VideoProcessor1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoProcessor1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoProcessor1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoProcessor1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoProcessor1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoProcessor1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoProcessor1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoProcessor1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoProcessor1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12VideoProcessor1_GetNodeMask(This) \ - ( (This)->lpVtbl -> GetNodeMask(This) ) - -#define ID3D12VideoProcessor1_GetNumInputStreamDescs(This) \ - ( (This)->lpVtbl -> GetNumInputStreamDescs(This) ) - -#define ID3D12VideoProcessor1_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \ - ( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) ) -#if !defined(_WIN32) - -#define ID3D12VideoProcessor1_GetOutputStreamDesc(This) \ - ( (This)->lpVtbl -> GetOutputStreamDesc(This) ) -#else -#define ID3D12VideoProcessor1_GetOutputStreamDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) ) -#endif - - -#define ID3D12VideoProcessor1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoProcessor1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ -#define __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ - -/* interface ID3D12VideoExtensionCommand */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoExtensionCommand; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4") - ID3D12VideoExtensionCommand : public ID3D12Pageable - { - public: -#if defined(_MSC_VER) || !defined(_WIN32) - virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC STDMETHODCALLTYPE GetDesc( void) = 0; -#else - virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC *STDMETHODCALLTYPE GetDesc( - D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal) = 0; -#endif - - virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoExtensionCommandVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoExtensionCommand * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoExtensionCommand * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoExtensionCommand * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoExtensionCommand * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoExtensionCommand * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoExtensionCommand * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoExtensionCommand * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoExtensionCommand * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetDesc) -#if !defined(_WIN32) - D3D12_VIDEO_EXTENSION_COMMAND_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoExtensionCommand * This); - -#else - D3D12_VIDEO_EXTENSION_COMMAND_DESC *( STDMETHODCALLTYPE *GetDesc )( - ID3D12VideoExtensionCommand * This, - D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal); - -#endif - - DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetProtectedResourceSession) - HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( - ID3D12VideoExtensionCommand * This, - REFIID riid, - _COM_Outptr_opt_ void **ppProtectedSession); - - END_INTERFACE - } ID3D12VideoExtensionCommandVtbl; - - interface ID3D12VideoExtensionCommand - { - CONST_VTBL struct ID3D12VideoExtensionCommandVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoExtensionCommand_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoExtensionCommand_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoExtensionCommand_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoExtensionCommand_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoExtensionCommand_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoExtensionCommand_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoExtensionCommand_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoExtensionCommand_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#if !defined(_WIN32) - -#define ID3D12VideoExtensionCommand_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) -#else -#define ID3D12VideoExtensionCommand_GetDesc(This,RetVal) \ - ( (This)->lpVtbl -> GetDesc(This,RetVal) ) -#endif - -#define ID3D12VideoExtensionCommand_GetProtectedResourceSession(This,riid,ppProtectedSession) \ - ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoDevice2_INTERFACE_DEFINED__ -#define __ID3D12VideoDevice2_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDevice2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDevice2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F019AC49-F838-4A95-9B17-579437C8F513") - ID3D12VideoDevice2 : public ID3D12VideoDevice1 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder1( - _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoder) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap1( - _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoderHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor1( - UINT NodeMask, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, - UINT NumInputStreamDescs, - _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoProcessor) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoExtensionCommand( - _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc, - _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters, - SIZE_T CreationParametersDataSizeInBytes, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoExtensionCommand) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteExtensionCommand( - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes, - _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData, - SIZE_T OutputDataSizeInBytes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDevice2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDevice2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDevice2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDevice2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12VideoDevice2 * This, - D3D12_FEATURE_VIDEO FeatureVideo, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( - ID3D12VideoDevice2 * This, - _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoder); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( - ID3D12VideoDevice2 * This, - _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoderHeap); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( - ID3D12VideoDevice2 * This, - UINT NodeMask, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, - UINT NumInputStreamDescs, - _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoProcessor); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator) - HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )( - ID3D12VideoDevice2 * This, - _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoMotionEstimator); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )( - ID3D12VideoDevice2 * This, - _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoMotionVectorHeap); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )( - ID3D12VideoDevice2 * This, - _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoder); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )( - ID3D12VideoDevice2 * This, - _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoderHeap); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1) - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )( - ID3D12VideoDevice2 * This, - UINT NodeMask, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, - UINT NumInputStreamDescs, - _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoProcessor); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand) - HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )( - ID3D12VideoDevice2 * This, - _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc, - _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters, - SIZE_T CreationParametersDataSizeInBytes, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoExtensionCommand); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand) - HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoDevice2 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes, - _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData, - SIZE_T OutputDataSizeInBytes); - - END_INTERFACE - } ID3D12VideoDevice2Vtbl; - - interface ID3D12VideoDevice2 - { - CONST_VTBL struct ID3D12VideoDevice2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDevice2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDevice2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDevice2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDevice2_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12VideoDevice2_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ - ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) - -#define ID3D12VideoDevice2_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ - ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) - -#define ID3D12VideoDevice2_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ - ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) - - -#define ID3D12VideoDevice2_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \ - ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) ) - -#define ID3D12VideoDevice2_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \ - ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) ) - - -#define ID3D12VideoDevice2_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \ - ( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) ) - -#define ID3D12VideoDevice2_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \ - ( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) ) - -#define ID3D12VideoDevice2_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \ - ( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) ) - -#define ID3D12VideoDevice2_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \ - ( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) ) - -#define ID3D12VideoDevice2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDevice2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ -#define __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDecodeCommandList2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDecodeCommandList2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6e120880-c114-4153-8036-d247051e1729") - ID3D12VideoDecodeCommandList2 : public ID3D12VideoDecodeCommandList1 - { - public: - virtual void STDMETHODCALLTYPE SetProtectedResourceSession( - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; - - virtual void STDMETHODCALLTYPE InitializeExtensionCommand( - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes) = 0; - - virtual void STDMETHODCALLTYPE ExecuteExtensionCommand( - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDecodeCommandList2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDecodeCommandList2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDecodeCommandList2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDecodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoDecodeCommandList2 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoDecodeCommandList2 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoDecodeCommandList2 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoDecodeCommandList2 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoDecodeCommandList2 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoDecodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoDecodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoDecodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoDecodeCommandList2 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12VideoDecodeCommandList2 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoDecodeCommandList2 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoDecodeCommandList2 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoDecodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame) - void ( STDMETHODCALLTYPE *DecodeFrame )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12VideoDecodeCommandList2 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1) - void ( STDMETHODCALLTYPE *DecodeFrame1 )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12VideoDecodeCommandList2 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand) - void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand) - void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoDecodeCommandList2 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); - - END_INTERFACE - } ID3D12VideoDecodeCommandList2Vtbl; - - interface ID3D12VideoDecodeCommandList2 - { - CONST_VTBL struct ID3D12VideoDecodeCommandList2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDecodeCommandList2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDecodeCommandList2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDecodeCommandList2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDecodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoDecodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoDecodeCommandList2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoDecodeCommandList2_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoDecodeCommandList2_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoDecodeCommandList2_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoDecodeCommandList2_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoDecodeCommandList2_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoDecodeCommandList2_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoDecodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoDecodeCommandList2_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoDecodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoDecodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoDecodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoDecodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoDecodeCommandList2_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoDecodeCommandList2_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoDecodeCommandList2_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoDecodeCommandList2_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoDecodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12VideoDecodeCommandList2_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) ) - - -#define ID3D12VideoDecodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - -#define ID3D12VideoDecodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ - ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) - -#define ID3D12VideoDecodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ -#define __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDecodeCommandList3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDecodeCommandList3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2aee8c37-9562-42da-8abf-61efeb2e4513") - ID3D12VideoDecodeCommandList3 : public ID3D12VideoDecodeCommandList2 - { - public: - virtual void STDMETHODCALLTYPE Barrier( - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDecodeCommandList3Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDecodeCommandList3 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDecodeCommandList3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDecodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoDecodeCommandList3 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoDecodeCommandList3 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoDecodeCommandList3 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoDecodeCommandList3 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoDecodeCommandList3 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoDecodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoDecodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoDecodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoDecodeCommandList3 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12VideoDecodeCommandList3 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoDecodeCommandList3 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoDecodeCommandList3 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoDecodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame) - void ( STDMETHODCALLTYPE *DecodeFrame )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12VideoDecodeCommandList3 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1) - void ( STDMETHODCALLTYPE *DecodeFrame1 )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12VideoDecoder *pDecoder, - _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, - _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12VideoDecodeCommandList3 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand) - void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand) - void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoDecodeCommandList3 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList3, Barrier) - void ( STDMETHODCALLTYPE *Barrier )( - ID3D12VideoDecodeCommandList3 * This, - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); - - END_INTERFACE - } ID3D12VideoDecodeCommandList3Vtbl; - - interface ID3D12VideoDecodeCommandList3 - { - CONST_VTBL struct ID3D12VideoDecodeCommandList3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDecodeCommandList3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDecodeCommandList3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDecodeCommandList3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDecodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoDecodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoDecodeCommandList3_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoDecodeCommandList3_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoDecodeCommandList3_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoDecodeCommandList3_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoDecodeCommandList3_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoDecodeCommandList3_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoDecodeCommandList3_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoDecodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoDecodeCommandList3_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoDecodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoDecodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoDecodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoDecodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoDecodeCommandList3_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoDecodeCommandList3_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoDecodeCommandList3_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoDecodeCommandList3_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoDecodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12VideoDecodeCommandList3_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) ) - - -#define ID3D12VideoDecodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - -#define ID3D12VideoDecodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ - ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) - -#define ID3D12VideoDecodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) - - -#define ID3D12VideoDecodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \ - ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ -#define __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ - -/* interface ID3D12VideoProcessCommandList2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoProcessCommandList2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("db525ae4-6ad6-473c-baa7-59b2e37082e4") - ID3D12VideoProcessCommandList2 : public ID3D12VideoProcessCommandList1 - { - public: - virtual void STDMETHODCALLTYPE SetProtectedResourceSession( - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; - - virtual void STDMETHODCALLTYPE InitializeExtensionCommand( - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes) = 0; - - virtual void STDMETHODCALLTYPE ExecuteExtensionCommand( - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoProcessCommandList2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoProcessCommandList2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoProcessCommandList2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoProcessCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoProcessCommandList2 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoProcessCommandList2 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoProcessCommandList2 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoProcessCommandList2 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoProcessCommandList2 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoProcessCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoProcessCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoProcessCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoProcessCommandList2 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12VideoProcessCommandList2 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoProcessCommandList2 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoProcessCommandList2 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoProcessCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames) - void ( STDMETHODCALLTYPE *ProcessFrames )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12VideoProcessCommandList2 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1) - void ( STDMETHODCALLTYPE *ProcessFrames1 )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12VideoProcessCommandList2 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand) - void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand) - void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoProcessCommandList2 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); - - END_INTERFACE - } ID3D12VideoProcessCommandList2Vtbl; - - interface ID3D12VideoProcessCommandList2 - { - CONST_VTBL struct ID3D12VideoProcessCommandList2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoProcessCommandList2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoProcessCommandList2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoProcessCommandList2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoProcessCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoProcessCommandList2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoProcessCommandList2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoProcessCommandList2_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoProcessCommandList2_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoProcessCommandList2_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoProcessCommandList2_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoProcessCommandList2_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoProcessCommandList2_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoProcessCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoProcessCommandList2_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoProcessCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoProcessCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoProcessCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoProcessCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoProcessCommandList2_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoProcessCommandList2_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoProcessCommandList2_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoProcessCommandList2_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ - ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) - -#define ID3D12VideoProcessCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12VideoProcessCommandList2_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ - ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) - - -#define ID3D12VideoProcessCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - -#define ID3D12VideoProcessCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ - ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) - -#define ID3D12VideoProcessCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ -#define __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ - -/* interface ID3D12VideoProcessCommandList3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoProcessCommandList3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1a0a4ca4-9f08-40ce-9558-b411fd2666ff") - ID3D12VideoProcessCommandList3 : public ID3D12VideoProcessCommandList2 - { - public: - virtual void STDMETHODCALLTYPE Barrier( - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoProcessCommandList3Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoProcessCommandList3 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoProcessCommandList3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoProcessCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoProcessCommandList3 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoProcessCommandList3 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoProcessCommandList3 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoProcessCommandList3 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoProcessCommandList3 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoProcessCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoProcessCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoProcessCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoProcessCommandList3 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication) - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12VideoProcessCommandList3 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoProcessCommandList3 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoProcessCommandList3 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoProcessCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames) - void ( STDMETHODCALLTYPE *ProcessFrames )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate) - void ( STDMETHODCALLTYPE *WriteBufferImmediate )( - ID3D12VideoProcessCommandList3 * This, - UINT Count, - _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1) - void ( STDMETHODCALLTYPE *ProcessFrames1 )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12VideoProcessor *pVideoProcessor, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession) - void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( - ID3D12VideoProcessCommandList3 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand) - void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand) - void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoProcessCommandList3 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList3, Barrier) - void ( STDMETHODCALLTYPE *Barrier )( - ID3D12VideoProcessCommandList3 * This, - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); - - END_INTERFACE - } ID3D12VideoProcessCommandList3Vtbl; - - interface ID3D12VideoProcessCommandList3 - { - CONST_VTBL struct ID3D12VideoProcessCommandList3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoProcessCommandList3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoProcessCommandList3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoProcessCommandList3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoProcessCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoProcessCommandList3_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoProcessCommandList3_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoProcessCommandList3_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoProcessCommandList3_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoProcessCommandList3_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoProcessCommandList3_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoProcessCommandList3_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoProcessCommandList3_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoProcessCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoProcessCommandList3_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoProcessCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoProcessCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoProcessCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoProcessCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoProcessCommandList3_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoProcessCommandList3_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoProcessCommandList3_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoProcessCommandList3_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ - ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) - -#define ID3D12VideoProcessCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - - -#define ID3D12VideoProcessCommandList3_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ - ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) - - -#define ID3D12VideoProcessCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - -#define ID3D12VideoProcessCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ - ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) - -#define ID3D12VideoProcessCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) - - -#define ID3D12VideoProcessCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \ - ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ -#define __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ - -/* interface ID3D12VideoEncodeCommandList1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoEncodeCommandList1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("94971eca-2bdb-4769-88cf-3675ea757ebc") - ID3D12VideoEncodeCommandList1 : public ID3D12VideoEncodeCommandList - { - public: - virtual void STDMETHODCALLTYPE InitializeExtensionCommand( - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes) = 0; - - virtual void STDMETHODCALLTYPE ExecuteExtensionCommand( - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoEncodeCommandList1Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoEncodeCommandList1 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoEncodeCommandList1 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoEncodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoEncodeCommandList1 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoEncodeCommandList1 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoEncodeCommandList1 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoEncodeCommandList1 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoEncodeCommandList1 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoEncodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoEncodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoEncodeCommandList1 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoEncodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoEncodeCommandList1 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoEncodeCommandList1 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoEncodeCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoEncodeCommandList1 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoEncodeCommandList1 * 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 )( - ID3D12VideoEncodeCommandList1 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoEncodeCommandList1 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoEncodeCommandList1 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoEncodeCommandList1 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) - void ( STDMETHODCALLTYPE *EstimateMotion )( - ID3D12VideoEncodeCommandList1 * 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 )( - ID3D12VideoEncodeCommandList1 * 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 )( - ID3D12VideoEncodeCommandList1 * 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 )( - ID3D12VideoEncodeCommandList1 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand) - void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( - ID3D12VideoEncodeCommandList1 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand) - void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoEncodeCommandList1 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); - - END_INTERFACE - } ID3D12VideoEncodeCommandList1Vtbl; - - interface ID3D12VideoEncodeCommandList1 - { - CONST_VTBL struct ID3D12VideoEncodeCommandList1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoEncodeCommandList1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoEncodeCommandList1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoEncodeCommandList1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoEncodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoEncodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoEncodeCommandList1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoEncodeCommandList1_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoEncodeCommandList1_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoEncodeCommandList1_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoEncodeCommandList1_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoEncodeCommandList1_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoEncodeCommandList1_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoEncodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoEncodeCommandList1_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoEncodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoEncodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoEncodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoEncodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoEncodeCommandList1_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoEncodeCommandList1_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoEncodeCommandList1_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoEncodeCommandList1_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoEncodeCommandList1_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoEncodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - -#define ID3D12VideoEncodeCommandList1_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12VideoEncodeCommandList1_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ - ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) - -#define ID3D12VideoEncodeCommandList1_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0022 */ -/* [local] */ - -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME, 0x0685b993, 0x3d8c, 0x43a0, 0x8b, 0x28, 0xd7, 0x4c, 0x2d, 0x68, 0x99, 0xa4); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME10, 0x142a1d0f, 0x69dd, 0x4ec9, 0x85, 0x91, 0xb1, 0x2f, 0xfc, 0xb9, 0x1a, 0x29); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12, 0x1a72925f, 0x0c2c, 0x4f15, 0x96, 0xfb, 0xb1, 0x7d, 0x14, 0x73, 0x60, 0x3f); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_422, 0x0bac4fe5, 0x1532, 0x4429, 0xa8, 0x54, 0xf8, 0x4d, 0xe0, 0x49, 0x53, 0xdb); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_422, 0x55bcac81, 0xf311, 0x4093, 0xa7, 0xd0, 0x1c, 0xbc, 0x0b, 0x84, 0x9b, 0xee); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN_444, 0x4008018f, 0xf537, 0x4b36, 0x98, 0xcf, 0x61, 0xaf, 0x8a, 0x2c, 0x1a, 0x33); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_EXT, 0x9cc55490, 0xe37c, 0x4932, 0x86, 0x84, 0x49, 0x20, 0xf9, 0xf6, 0x40, 0x9c); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_444, 0x0dabeffa, 0x4458, 0x4602, 0xbc, 0x03, 0x07, 0x95, 0x65, 0x9d, 0x61, 0x7c); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_444, 0x9798634d, 0xfe9d, 0x48e5, 0xb4, 0xda, 0xdb, 0xec, 0x45, 0xb3, 0xdf, 0x01); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN16, 0xa4fbdbb0, 0xa113, 0x482b, 0xa2, 0x32, 0x63, 0x5c, 0xc0, 0x69, 0x7f, 0x6d); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_420, 0x725cb506, 0xc29, 0x43c4, 0x94, 0x40, 0x8e, 0x93, 0x97, 0x90, 0x3a, 0x4); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_422, 0x5b77b9cd, 0x1a35, 0x4c30, 0x9f, 0xd8, 0xef, 0x4b, 0x60, 0xc0, 0x35, 0xdd); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_444, 0xd95161f9, 0xd44, 0x47e6, 0xbc, 0xf5, 0x1b, 0xfb, 0xfb, 0x26, 0x8f, 0x97); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_4444, 0xc91748d5, 0xfd18, 0x4aca, 0x9d, 0xb3, 0x3a, 0x66, 0x34, 0xab, 0x54, 0x7d); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_420, 0xcf782c83, 0xbef5, 0x4a2c, 0x87, 0xcb, 0x60, 0x19, 0xe7, 0xb1, 0x75, 0xac); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_422, 0xf04df417, 0xeee2, 0x4067, 0xa7, 0x78, 0xf3, 0x5c, 0x15, 0xab, 0x97, 0x21); -DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_444, 0x4cd00e17, 0x89ba, 0x48ef, 0xb9, 0xf9, 0xed, 0xcb, 0x82, 0x71, 0x3f, 0x65); -typedef -enum D3D12_VIDEO_ENCODER_AV1_PROFILE - { - D3D12_VIDEO_ENCODER_AV1_PROFILE_MAIN = 0, - D3D12_VIDEO_ENCODER_AV1_PROFILE_HIGH = 1, - D3D12_VIDEO_ENCODER_AV1_PROFILE_PROFESSIONAL = 2 - } D3D12_VIDEO_ENCODER_AV1_PROFILE; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_LEVELS - { - D3D12_VIDEO_ENCODER_AV1_LEVELS_2_0 = 0, - D3D12_VIDEO_ENCODER_AV1_LEVELS_2_1 = 1, - D3D12_VIDEO_ENCODER_AV1_LEVELS_2_2 = 2, - D3D12_VIDEO_ENCODER_AV1_LEVELS_2_3 = 3, - D3D12_VIDEO_ENCODER_AV1_LEVELS_3_0 = 4, - D3D12_VIDEO_ENCODER_AV1_LEVELS_3_1 = 5, - D3D12_VIDEO_ENCODER_AV1_LEVELS_3_2 = 6, - D3D12_VIDEO_ENCODER_AV1_LEVELS_3_3 = 7, - D3D12_VIDEO_ENCODER_AV1_LEVELS_4_0 = 8, - D3D12_VIDEO_ENCODER_AV1_LEVELS_4_1 = 9, - D3D12_VIDEO_ENCODER_AV1_LEVELS_4_2 = 10, - D3D12_VIDEO_ENCODER_AV1_LEVELS_4_3 = 11, - D3D12_VIDEO_ENCODER_AV1_LEVELS_5_0 = 12, - D3D12_VIDEO_ENCODER_AV1_LEVELS_5_1 = 13, - D3D12_VIDEO_ENCODER_AV1_LEVELS_5_2 = 14, - D3D12_VIDEO_ENCODER_AV1_LEVELS_5_3 = 15, - D3D12_VIDEO_ENCODER_AV1_LEVELS_6_0 = 16, - D3D12_VIDEO_ENCODER_AV1_LEVELS_6_1 = 17, - D3D12_VIDEO_ENCODER_AV1_LEVELS_6_2 = 18, - D3D12_VIDEO_ENCODER_AV1_LEVELS_6_3 = 19, - D3D12_VIDEO_ENCODER_AV1_LEVELS_7_0 = 20, - D3D12_VIDEO_ENCODER_AV1_LEVELS_7_1 = 21, - D3D12_VIDEO_ENCODER_AV1_LEVELS_7_2 = 22, - D3D12_VIDEO_ENCODER_AV1_LEVELS_7_3 = 23 - } D3D12_VIDEO_ENCODER_AV1_LEVELS; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_TIER - { - D3D12_VIDEO_ENCODER_AV1_TIER_MAIN = 0, - D3D12_VIDEO_ENCODER_AV1_TIER_HIGH = 1 - } D3D12_VIDEO_ENCODER_AV1_TIER; - -typedef struct D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS - { - D3D12_VIDEO_ENCODER_AV1_LEVELS Level; - D3D12_VIDEO_ENCODER_AV1_TIER Tier; - } D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_128x128_SUPERBLOCK = 0x1, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FILTER_INTRA = 0x2, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_EDGE_FILTER = 0x4, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTERINTRA_COMPOUND = 0x8, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MASKED_COMPOUND = 0x10, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_WARPED_MOTION = 0x20, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DUAL_FILTER = 0x40, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_JNT_COMP = 0x80, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FORCED_INTEGER_MOTION_VECTORS = 0x100, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SUPER_RESOLUTION = 0x200, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_RESTORATION_FILTER = 0x400, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_PALETTE_ENCODING = 0x800, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CDEF_FILTERING = 0x1000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_BLOCK_COPY = 0x2000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x4000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ORDER_HINT_TOOLS = 0x8000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_AUTO_SEGMENTATION = 0x10000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CUSTOM_SEGMENTATION = 0x20000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_FILTER_DELTAS = 0x40000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_DELTAS = 0x80000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_MATRIX = 0x100000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_REDUCED_TX_SET = 0x200000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MOTION_MODE_SWITCHABLE = 0x400000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ALLOW_HIGH_PRECISION_MV = 0x800000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SKIP_MODE_PRESENT = 0x1000000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DELTA_LF_PARAMS = 0x2000000 - } D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_AV1_TX_MODE - { - D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 = 0, - D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST = 1, - D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT = 2 - } D3D12_VIDEO_ENCODER_AV1_TX_MODE; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_ONLY4x4 = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 ) , - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_LARGEST = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST ) , - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_SELECT = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT ) - } D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS - { - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP = 0, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH = 1, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP = 2, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR = 3, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE = 4 - } D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP ) , - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SMOOTH = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH ) , - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SHARP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP ) , - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_BILINEAR = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR ) , - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_SWITCHABLE = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE ) - } D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE - { - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_4x4 = 0, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_8x8 = 1, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_16x16 = 2, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_32x32 = 3, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_64x64 = 4 - } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE - { - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED = 0, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q = 1, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V = 2, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H = 3, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U = 4, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V = 5, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME = 6, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP = 7, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV = 8 - } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_DISABLED = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED ) , - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_Q = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q ) , - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V ) , - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_H = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H ) , - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_U = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U ) , - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V ) , - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_REF_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME ) , - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_SKIP = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP ) , - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_GLOBALMV = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV ) - } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE - { - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_DISABLED = 0, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SWITCHABLE = 1, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_WIENER = 2, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SGRPROJ = 3 - } D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE - { - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_DISABLED = 0, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_32x32 = 1, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_64x64 = 2, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_128x128 = 3, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_256x256 = 4 - } D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_NOT_SUPPORTED = 0, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_32x32 = 0x1, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_64x64 = 0x2, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_128x128 = 0x4, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_256x256 = 0x8 - } D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION - { - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY = 0, - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION = 1, - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM = 2, - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE = 3 - } D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_IDENTITY = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY ) , - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_TRANSLATION = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION ) , - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_ROTZOOM = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM ) , - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_AFFINE = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE ) - } D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION = 0x1, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION_DELTA = 0x2, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER = 0x4, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER_DELTA = 0x8, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CDEF_DATA = 0x10, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CONTEXT_UPDATE_TILE_ID = 0x20, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_COMPOUND_PREDICTION_MODE = 0x40, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_PRIMARY_REF_FRAME = 0x80, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_REFERENCE_INDICES = 0x100 - } D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT - { - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS SupportedFeatureFlags; - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS RequiredFeatureFlags; - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS SupportedInterpolationFilters; - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS SupportedRestorationParams[ 3 ][ 3 ]; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS SupportedSegmentationModes; - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS SupportedTxModes[ 4 ]; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE SegmentationBlockSize; - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS PostEncodeValuesFlags; - UINT MaxTemporalLayers; - UINT MaxSpatialLayers; - } D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE - { - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME = 0, - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME = 1, - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME = 2, - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME = 3 - } D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_KEY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME ) , - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTER_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME ) , - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTRA_ONLY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME ) , - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_SWITCH_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME ) - } D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE - { - D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_SINGLE_REFERENCE = 0, - D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_COMPOUND_REFERENCE = 1 - } D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT - { - D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE PredictionMode; - UINT MaxUniqueReferencesPerFrame; - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS SupportedFrameTypes; - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS SupportedReferenceWarpedMotionFlags; - } D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT; - -typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION - { - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS FeatureFlags; - UINT OrderHintBitsMinus1; - } D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION; - -typedef struct D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE - { - UINT IntraDistance; - UINT InterFramePeriod; - } D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE; - -typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO - { - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION TransformationType; - INT TransformationMatrix[ 8 ]; - BOOL InvalidAffineSet; - } D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO; - -typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR - { - UINT ReconstructedPictureResourceIndex; - UINT TemporalLayerIndexPlus1; - UINT SpatialLayerIndexPlus1; - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType; - D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO WarpedMotionInfo; - UINT OrderHint; - UINT PictureIndex; - } D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_ERROR_RESILIENT_MODE = 0x1, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_CDF_UPDATE = 0x2, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_PALETTE_ENCODING = 0x4, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_SKIP_MODE = 0x8, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x10, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FORCE_INTEGER_MOTION_VECTORS = 0x20, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_INTRA_BLOCK_COPY = 0x40, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_USE_SUPER_RESOLUTION = 0x80, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_FRAME_END_UPDATE_CDF = 0x100, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO = 0x200, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM = 0x400, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_WARPED_MOTION = 0x800, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_REDUCED_TX_SET = 0x1000, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_MOTION_MODE_SWITCHABLE = 0x2000, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_HIGH_PRECISION_MV = 0x4000 - } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG - { - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE FrameRestorationType[ 3 ]; - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE LoopRestorationPixelSize[ 3 ]; - } D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA - { - UINT64 EnabledFeatures; - INT64 FeatureValue[ 8 ]; - } D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA; - -typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG - { - UINT64 UpdateMap; - UINT64 TemporalUpdate; - UINT64 UpdateData; - UINT64 NumSegments; - D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA SegmentsData[ 8 ]; - } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP - { - UINT SegmentsMapByteSize; - UINT8 *pSegmentsMap; - } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG - { - UINT64 LoopFilterLevel[ 2 ]; - UINT64 LoopFilterLevelU; - UINT64 LoopFilterLevelV; - UINT64 LoopFilterSharpnessLevel; - UINT64 LoopFilterDeltaEnabled; - UINT64 UpdateRefDelta; - INT64 RefDeltas[ 8 ]; - UINT64 UpdateModeDelta; - INT64 ModeDeltas[ 2 ]; - } D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG - { - UINT64 DeltaLFPresent; - UINT64 DeltaLFMulti; - UINT64 DeltaLFRes; - } D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG - { - UINT64 BaseQIndex; - INT64 YDCDeltaQ; - INT64 UDCDeltaQ; - INT64 UACDeltaQ; - INT64 VDCDeltaQ; - INT64 VACDeltaQ; - UINT64 UsingQMatrix; - UINT64 QMY; - UINT64 QMU; - UINT64 QMV; - } D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG - { - UINT64 DeltaQPresent; - UINT64 DeltaQRes; - } D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG - { - UINT64 CdefBits; - UINT64 CdefDampingMinus3; - UINT64 CdefYPriStrength[ 8 ]; - UINT64 CdefUVPriStrength[ 8 ]; - UINT64 CdefYSecStrength[ 8 ]; - UINT64 CdefUVSecStrength[ 8 ]; - } D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA - { - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS Flags; - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType; - D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE CompoundPredictionType; - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS InterpolationFilter; - D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG FrameRestorationConfig; - D3D12_VIDEO_ENCODER_AV1_TX_MODE TxMode; - UINT SuperResDenominator; - UINT OrderHint; - UINT PictureIndex; - UINT TemporalLayerIndexPlus1; - UINT SpatialLayerIndexPlus1; - D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR ReferenceFramesReconPictureDescriptors[ 8 ]; - UINT ReferenceIndices[ 7 ]; - UINT PrimaryRefFrame; - UINT RefreshFrameFlags; - D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter; - D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta; - D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization; - D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta; - D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF; - UINT QPMapValuesCount; - _Field_size_full_(QPMapValuesCount) INT16 *pRateControlQPMap; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG CustomSegmentation; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP CustomSegmentsMap; - } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA; - -typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES - { - UINT64 RowCount; - UINT64 ColCount; - UINT64 RowHeights[ 64 ]; - UINT64 ColWidths[ 64 ]; - UINT64 ContextUpdateTileId; - } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES; - -typedef struct D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES - { - UINT64 CompoundPredictionType; - D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter; - D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta; - D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization; - D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta; - D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG SegmentationConfig; - UINT64 PrimaryRefFrame; - UINT64 ReferenceIndices[ 7 ]; - } D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES; - -typedef -enum D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE - { - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_ABSOLUTE_QP_MAP = 0, - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CQP = 1, - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CBR = 2, - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_VBR = 3, - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_QVBR = 4 - } D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE; - -typedef -enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS - { - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_DELTA_QP = 0x1, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_FRAME_ANALYSIS = 0x2, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE = 0x4, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_INITIAL_QP = 0x8, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE = 0x10, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES = 0x20, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_EXTENSION1_SUPPORT = 0x40, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QUALITY_VS_SPEED = 0x80 - } D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP - { - UINT ConstantQP_FullIntracodedFrame; - UINT ConstantQP_InterPredictedFrame_PrevRefOnly; - UINT ConstantQP_InterPredictedFrame_BiDirectionalRef; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 - { - UINT ConstantQP_FullIntracodedFrame; - UINT ConstantQP_InterPredictedFrame_PrevRefOnly; - UINT ConstantQP_InterPredictedFrame_BiDirectionalRef; - UINT QualityVsSpeed; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR - { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetBitRate; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 - { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetBitRate; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; - UINT QualityVsSpeed; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR - { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetAvgBitRate; - UINT64 PeakBitRate; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 - { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetAvgBitRate; - UINT64 PeakBitRate; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; - UINT QualityVsSpeed; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR - { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetAvgBitRate; - UINT64 PeakBitRate; - UINT ConstantQualityTarget; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 - { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetAvgBitRate; - UINT64 PeakBitRate; - UINT ConstantQualityTarget; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; - UINT QualityVsSpeed; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP - { - UINT QualityVsSpeed; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS - { - UINT DataSize; - union - { - const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP *pConfiguration_CQP; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR *pConfiguration_CBR; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR *pConfiguration_VBR; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR *pConfiguration_QVBR; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 *pConfiguration_CQP1; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 *pConfiguration_CBR1; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 *pConfiguration_VBR1; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 *pConfiguration_QVBR1; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP *pConfiguration_AbsoluteQPMap; - } ; - } D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL - { - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE Mode; - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS Flags; - D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS ConfigParams; - DXGI_RATIONAL TargetFrameRate; - } D3D12_VIDEO_ENCODER_RATE_CONTROL; - -typedef -enum D3D12_VIDEO_ENCODER_CODEC - { - D3D12_VIDEO_ENCODER_CODEC_H264 = 0, - D3D12_VIDEO_ENCODER_CODEC_HEVC = 1, - D3D12_VIDEO_ENCODER_CODEC_AV1 = 2 - } D3D12_VIDEO_ENCODER_CODEC; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - BOOL IsSupported; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC; - -typedef -enum D3D12_VIDEO_ENCODER_PROFILE_H264 - { - D3D12_VIDEO_ENCODER_PROFILE_H264_MAIN = 0, - D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH = 1, - D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH_10 = 2 - } D3D12_VIDEO_ENCODER_PROFILE_H264; - -typedef -enum D3D12_VIDEO_ENCODER_PROFILE_HEVC - { - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN = 0, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10 = 1, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12 = 2, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_422 = 3, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_422 = 4, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN_444 = 5, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_444 = 6, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_444 = 7, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN16_444 = 8 - } D3D12_VIDEO_ENCODER_PROFILE_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_PROFILE_DESC - { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_PROFILE_H264 *pH264Profile; - D3D12_VIDEO_ENCODER_PROFILE_HEVC *pHEVCProfile; - D3D12_VIDEO_ENCODER_AV1_PROFILE *pAV1Profile; - } ; - } D3D12_VIDEO_ENCODER_PROFILE_DESC; - -typedef -enum D3D12_VIDEO_ENCODER_LEVELS_H264 - { - D3D12_VIDEO_ENCODER_LEVELS_H264_1 = 0, - D3D12_VIDEO_ENCODER_LEVELS_H264_1b = 1, - D3D12_VIDEO_ENCODER_LEVELS_H264_11 = 2, - D3D12_VIDEO_ENCODER_LEVELS_H264_12 = 3, - D3D12_VIDEO_ENCODER_LEVELS_H264_13 = 4, - D3D12_VIDEO_ENCODER_LEVELS_H264_2 = 5, - D3D12_VIDEO_ENCODER_LEVELS_H264_21 = 6, - D3D12_VIDEO_ENCODER_LEVELS_H264_22 = 7, - D3D12_VIDEO_ENCODER_LEVELS_H264_3 = 8, - D3D12_VIDEO_ENCODER_LEVELS_H264_31 = 9, - D3D12_VIDEO_ENCODER_LEVELS_H264_32 = 10, - D3D12_VIDEO_ENCODER_LEVELS_H264_4 = 11, - D3D12_VIDEO_ENCODER_LEVELS_H264_41 = 12, - D3D12_VIDEO_ENCODER_LEVELS_H264_42 = 13, - D3D12_VIDEO_ENCODER_LEVELS_H264_5 = 14, - D3D12_VIDEO_ENCODER_LEVELS_H264_51 = 15, - D3D12_VIDEO_ENCODER_LEVELS_H264_52 = 16, - D3D12_VIDEO_ENCODER_LEVELS_H264_6 = 17, - D3D12_VIDEO_ENCODER_LEVELS_H264_61 = 18, - D3D12_VIDEO_ENCODER_LEVELS_H264_62 = 19 - } D3D12_VIDEO_ENCODER_LEVELS_H264; - -typedef -enum D3D12_VIDEO_ENCODER_TIER_HEVC - { - D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = 0, - D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = 1 - } D3D12_VIDEO_ENCODER_TIER_HEVC; - -typedef -enum D3D12_VIDEO_ENCODER_LEVELS_HEVC - { - D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = 0, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = 1, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = 2, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = 3, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = 4, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = 5, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = 6, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = 7, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = 8, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = 9, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = 10, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = 11, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = 12 - } D3D12_VIDEO_ENCODER_LEVELS_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC - { - D3D12_VIDEO_ENCODER_LEVELS_HEVC Level; - D3D12_VIDEO_ENCODER_TIER_HEVC Tier; - } D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_LEVEL_SETTING - { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_LEVELS_H264 *pH264LevelSetting; - D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC *pHEVCLevelSetting; - D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS *pAV1LevelSetting; - } ; - } D3D12_VIDEO_ENCODER_LEVEL_SETTING; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; - BOOL IsSupported; - D3D12_VIDEO_ENCODER_LEVEL_SETTING MinSupportedLevel; - D3D12_VIDEO_ENCODER_LEVEL_SETTING MaxSupportedLevel; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC - { - UINT Width; - UINT Height; - } D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC - { - UINT WidthRatio; - UINT HeightRatio; - } D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - UINT ResolutionRatiosCount; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - UINT ResolutionRatiosCount; - BOOL IsSupported; - D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MinResolutionSupported; - D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MaxResolutionSupported; - UINT ResolutionWidthMultipleRequirement; - UINT ResolutionHeightMultipleRequirement; - _Field_size_full_(ResolutionRatiosCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC *pResolutionRatios; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; - DXGI_FORMAT Format; - BOOL IsSupported; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE RateControlMode; - BOOL IsSupported; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE; - -typedef -enum D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE - { - D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE = 0, - D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED = 1 - } D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; - D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; - D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefreshMode; - BOOL IsSupported; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE; - -typedef -enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE - { - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME = 0, - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION = 1, - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = 2, - 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; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; - D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode; - BOOL IsSupported; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE; - -typedef -enum D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS - { - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NOT_SPECIFIED = 0x1, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_CODEC_CONSTRAINT = 0x2, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_HARDWARE_CONSTRAINT = 0x4, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_ROWS_COUNT = 0x8, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_COLS_COUNT = 0x10, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_WIDTH = 0x20, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_AREA = 0x40, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_TOTAL_TILES = 0x80 - } D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT - { - BOOL Use128SuperBlocks; - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES TilesConfiguration; - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS ValidationFlags; - UINT MinTileRows; - UINT MaxTileRows; - UINT MinTileCols; - UINT MaxTileCols; - UINT MinTileWidth; - UINT MaxTileWidth; - UINT MinTileArea; - UINT MaxTileArea; - UINT TileSizeBytesMinus1; - } D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT; - -typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT - { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT *pAV1Support; - } ; - } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; - D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode; - D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC FrameResolution; - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT CodecSupport; - BOOL IsSupported; - } 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_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC - { - UINT NodeMask; - D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags; - D3D12_VIDEO_ENCODER_CODEC EncodeCodec; - D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; - D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel; - UINT ResolutionsListCount; - _Field_size_full_(ResolutionsListCount) const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList; - } D3D12_VIDEO_ENCODER_HEAP_DESC; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE - { - D3D12_VIDEO_ENCODER_HEAP_DESC HeapDesc; - BOOL IsSupported; - UINT64 MemoryPoolL0Size; - UINT64 MemoryPoolL1Size; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE; - -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CABAC_ENCODING_SUPPORT = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = 0x8, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_SPATIAL_ENCODING_SUPPORT = 0x10, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_TEMPORAL_ENCODING_SUPPORT = 0x20, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x40, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x80 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES = 1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = 2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING = 3, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES = 4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = 5, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = 6 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES; - -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED ) , - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_1_DISABLE_ALL_SLICE_BLOCK_EDGES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES ) , - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS ) , - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_3_USE_TWO_STAGE_DEBLOCKING = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING ) , - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_4_DISABLE_CHROMA_BLOCK_EDGES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES ) , - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES ) , - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING ) - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS SupportFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS DisableDeblockingFilterSupportedModes; - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264; - -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_SAO_FILTER_SUPPORT = 0x8, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_SUPPORT = 0x10, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_REQUIRED = 0x20, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_SUPPORT = 0x40, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = 0x80, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = 0x100, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x200, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_SUPPORT = 0x400, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_REQUIRED = 0x800, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_SUPPORT = 0x1000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_REQUIRED = 0x2000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_SUPPORT = 0x4000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_REQUIRED = 0x8000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_SUPPORT = 0x10000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_REQUIRED = 0x20000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_SUPPORT = 0x40000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_REQUIRED = 0x80000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_SUPPORT = 0x100000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_REQUIRED = 0x200000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_SUPPORT = 0x400000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_REQUIRED = 0x800000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_SUPPORT = 0x1000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_REQUIRED = 0x2000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_SUPPORT = 0x4000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_REQUIRED = 0x8000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_SUPPORT = 0x10000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_REQUIRED = 0x20000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_SUPPORT = 0x40000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_REQUIRED = 0x80000000 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_8x8 = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_16x16 = 1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_32x32 = 2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_64x64 = 3 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE; - -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_4x4 = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_8x8 = 1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_16x16 = 2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_32x32 = 3 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; - UCHAR max_transform_hierarchy_depth_inter; - UCHAR max_transform_hierarchy_depth_intra; - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC; - -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_NONE = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_SUPPORT = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_REQUIRED = 0x2 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1) -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1 - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; - UCHAR max_transform_hierarchy_depth_inter; - UCHAR max_transform_hierarchy_depth_intra; - UINT allowed_diff_cu_chroma_qp_offset_depth_values; - UINT allowed_log2_sao_offset_scale_luma_values; - UINT allowed_log2_sao_offset_scale_chroma_values; - UINT allowed_log2_max_transform_skip_block_size_minus2_values; - UINT allowed_chroma_qp_offset_list_len_minus1_values; - UINT allowed_cb_qp_offset_list_values[ 6 ]; - UINT allowed_cr_qp_offset_list_values[ 6 ]; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 SupportFlags1; - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT - { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 *pH264Support; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC *pHEVCSupport; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1 *pHEVCSupport1; - D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT *pAV1Support; - } ; - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; - BOOL IsSupported; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT CodecSupportLimits; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 - { - UINT MaxL0ReferencesForP; - UINT MaxL0ReferencesForB; - UINT MaxL1ReferencesForB; - UINT MaxLongTermReferences; - UINT MaxDPBCapacity; - } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC - { - UINT MaxL0ReferencesForP; - UINT MaxL0ReferencesForB; - UINT MaxL1ReferencesForB; - UINT MaxLongTermReferences; - UINT MaxDPBCapacity; - } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT - { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 *pH264Support; - D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC *pHEVCSupport; - D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT *pAV1Support; - } ; - } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT - { - UINT NodeIndex; - D3D12_VIDEO_ENCODER_CODEC Codec; - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; - BOOL IsSupported; - D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT PictureSupport; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT; - -typedef -enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS - { - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK = 0x1, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE = 0x2, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE = 0x4, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = 0x8, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = 0x10, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = 0x20, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE = 0x40, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = 0x80, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = 0x100, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_INITIAL_QP_AVAILABLE = 0x200, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = 0x400, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = 0x800, - 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_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_ADAPTIVE_8x8_TRANSFORM = 0x2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ENABLE_CABAC_ENCODING = 0x4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x8 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS) -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_DISABLED = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_TEMPORAL = 1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_SPATIAL = 2 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS ConfigurationFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES DirectModeConfig; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES DisableDeblockingFilterConfig; - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264; - -typedef -enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_SAO_FILTER = 0x4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES = 0x8, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_ASYMETRIC_MOTION_PARTITION = 0x10, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_TRANSFORM_SKIPPING = 0x20, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x40, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_ROTATION = 0x80, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT = 0x100, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_IMPLICIT_RDPCM = 0x200, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXPLICIT_RDPCM = 0x400, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING = 0x800, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_INTRA_SMOOTHING_DISABLED = 0x1000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_HIGH_PRECISION_OFFSETS = 0x2000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION = 0x4000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT = 0x8000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_SEPARATE_COLOUR_PLANE = 0x10000 - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS ConfigurationFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; - UCHAR max_transform_hierarchy_depth_inter; - UCHAR max_transform_hierarchy_depth_intra; - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION - { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 *pH264Config; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC *pHEVCConfig; - D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION *pAV1Config; - } ; - } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION; - -typedef struct D3D12_VIDEO_ENCODER_INTRA_REFRESH - { - D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE Mode; - UINT IntraRefreshDuration; - } D3D12_VIDEO_ENCODER_INTRA_REFRESH; - -typedef -enum D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE - { - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM = 0, - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_FULL_PIXEL = 1, - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_HALF_PIXEL = 2, - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL = 3, - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_EIGHTH_PIXEL = 4 - } D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS - { - UINT MaxSubregionsNumber; - UINT MaxIntraRefreshFrameDuration; - UINT SubregionBlockPixelsSize; - UINT QPMapRegionPixelsSize; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS; - -typedef -enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS - { - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_NOT_SUPPORTED = 0x1, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INPUT_FORMAT_NOT_SUPPORTED = 0x8, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_CONFIGURATION_NOT_SUPPORTED = 0x10, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_MODE_NOT_SUPPORTED = 0x20, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = 0x40, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INTRA_REFRESH_MODE_NOT_SUPPORTED = 0x80, - 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_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 - { - UINT GOPLength; - UINT PPicturePeriod; - UCHAR pic_order_cnt_type; - UCHAR log2_max_frame_num_minus4; - UCHAR log2_max_pic_order_cnt_lsb_minus4; - } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264; - -typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC - { - UINT GOPLength; - UINT PPicturePeriod; - UCHAR log2_max_pic_order_cnt_lsb_minus4; - } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE - { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 *pH264GroupOfPictures; - D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC *pHEVCGroupOfPictures; - D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE *pAV1SequenceStructure; - } ; - } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT - { - 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_LIMITS *pResolutionDependentSupport; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES - { - union - { - UINT MaxBytesPerSlice; - UINT NumberOfCodingUnitsPerSlice; - UINT NumberOfRowsPerSlice; - UINT NumberOfSlicesPerFrame; - } ; - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA - { - UINT DataSize; - union - { - const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_H264; - const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_HEVC; - const D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES *pTilesPartition_AV1; - } ; - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1 - { - 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_LIMITS *pResolutionDependentSupport; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; - UINT MaxQualityVsSpeed; - } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS - { - 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_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS; - -typedef -enum D3D12_VIDEO_ENCODER_FLAGS - { - D3D12_VIDEO_ENCODER_FLAG_NONE = 0 - } D3D12_VIDEO_ENCODER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_DESC - { - UINT NodeMask; - D3D12_VIDEO_ENCODER_FLAGS Flags; - D3D12_VIDEO_ENCODER_CODEC EncodeCodec; - D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; - DXGI_FORMAT InputFormat; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE MaxMotionEstimationPrecision; - } D3D12_VIDEO_ENCODER_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_s_ifspec; - -#ifndef __ID3D12VideoEncoder_INTERFACE_DEFINED__ -#define __ID3D12VideoEncoder_INTERFACE_DEFINED__ - -/* interface ID3D12VideoEncoder */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoEncoder; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2E0D212D-8DF9-44A6-A770-BB289B182737") - ID3D12VideoEncoder : public ID3D12Pageable - { - public: - virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0; - - virtual D3D12_VIDEO_ENCODER_FLAGS STDMETHODCALLTYPE GetEncoderFlags( void) = 0; - - virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodecProfile( - _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodecConfiguration( - _Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig) = 0; - - virtual DXGI_FORMAT STDMETHODCALLTYPE GetInputFormat( void) = 0; - - virtual D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE STDMETHODCALLTYPE GetMaxMotionEstimationPrecision( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoEncoderVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoEncoder * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoEncoder * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoEncoder * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoEncoder * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoEncoder * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoEncoder * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoEncoder * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoEncoder * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetNodeMask) - UINT ( STDMETHODCALLTYPE *GetNodeMask )( - ID3D12VideoEncoder * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetEncoderFlags) - D3D12_VIDEO_ENCODER_FLAGS ( STDMETHODCALLTYPE *GetEncoderFlags )( - ID3D12VideoEncoder * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodec) - D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )( - ID3D12VideoEncoder * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecProfile) - HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )( - ID3D12VideoEncoder * This, - _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecConfiguration) - HRESULT ( STDMETHODCALLTYPE *GetCodecConfiguration )( - ID3D12VideoEncoder * This, - _Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetInputFormat) - DXGI_FORMAT ( STDMETHODCALLTYPE *GetInputFormat )( - ID3D12VideoEncoder * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetMaxMotionEstimationPrecision) - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE ( STDMETHODCALLTYPE *GetMaxMotionEstimationPrecision )( - ID3D12VideoEncoder * This); - - END_INTERFACE - } ID3D12VideoEncoderVtbl; - - interface ID3D12VideoEncoder - { - CONST_VTBL struct ID3D12VideoEncoderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoEncoder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoEncoder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoEncoder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoEncoder_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoEncoder_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoEncoder_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoEncoder_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoEncoder_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12VideoEncoder_GetNodeMask(This) \ - ( (This)->lpVtbl -> GetNodeMask(This) ) - -#define ID3D12VideoEncoder_GetEncoderFlags(This) \ - ( (This)->lpVtbl -> GetEncoderFlags(This) ) - -#define ID3D12VideoEncoder_GetCodec(This) \ - ( (This)->lpVtbl -> GetCodec(This) ) - -#define ID3D12VideoEncoder_GetCodecProfile(This,dstProfile) \ - ( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) ) - -#define ID3D12VideoEncoder_GetCodecConfiguration(This,dstCodecConfig) \ - ( (This)->lpVtbl -> GetCodecConfiguration(This,dstCodecConfig) ) - -#define ID3D12VideoEncoder_GetInputFormat(This) \ - ( (This)->lpVtbl -> GetInputFormat(This) ) - -#define ID3D12VideoEncoder_GetMaxMotionEstimationPrecision(This) \ - ( (This)->lpVtbl -> GetMaxMotionEstimationPrecision(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoEncoder_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ -#define __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ - -/* interface ID3D12VideoEncoderHeap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoEncoderHeap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("22B35D96-876A-44C0-B25E-FB8C9C7F1C4A") - ID3D12VideoEncoderHeap : public ID3D12Pageable - { - public: - virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0; - - virtual D3D12_VIDEO_ENCODER_HEAP_FLAGS STDMETHODCALLTYPE GetEncoderHeapFlags( void) = 0; - - virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodecProfile( - _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodecLevel( - _Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel) = 0; - - virtual UINT STDMETHODCALLTYPE GetResolutionListCount( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetResolutionList( - const UINT ResolutionsListCount, - _Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoEncoderHeapVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoEncoderHeap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoEncoderHeap * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoEncoderHeap * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoEncoderHeap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoEncoderHeap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoEncoderHeap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoEncoderHeap * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoEncoderHeap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetNodeMask) - UINT ( STDMETHODCALLTYPE *GetNodeMask )( - ID3D12VideoEncoderHeap * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetEncoderHeapFlags) - D3D12_VIDEO_ENCODER_HEAP_FLAGS ( STDMETHODCALLTYPE *GetEncoderHeapFlags )( - ID3D12VideoEncoderHeap * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodec) - D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )( - ID3D12VideoEncoderHeap * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecProfile) - HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )( - ID3D12VideoEncoderHeap * This, - _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecLevel) - HRESULT ( STDMETHODCALLTYPE *GetCodecLevel )( - ID3D12VideoEncoderHeap * This, - _Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionListCount) - UINT ( STDMETHODCALLTYPE *GetResolutionListCount )( - ID3D12VideoEncoderHeap * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionList) - HRESULT ( STDMETHODCALLTYPE *GetResolutionList )( - ID3D12VideoEncoderHeap * This, - const UINT ResolutionsListCount, - _Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList); - - END_INTERFACE - } ID3D12VideoEncoderHeapVtbl; - - interface ID3D12VideoEncoderHeap - { - CONST_VTBL struct ID3D12VideoEncoderHeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoEncoderHeap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoEncoderHeap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoEncoderHeap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoEncoderHeap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoEncoderHeap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoEncoderHeap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoEncoderHeap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoEncoderHeap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12VideoEncoderHeap_GetNodeMask(This) \ - ( (This)->lpVtbl -> GetNodeMask(This) ) - -#define ID3D12VideoEncoderHeap_GetEncoderHeapFlags(This) \ - ( (This)->lpVtbl -> GetEncoderHeapFlags(This) ) - -#define ID3D12VideoEncoderHeap_GetCodec(This) \ - ( (This)->lpVtbl -> GetCodec(This) ) - -#define ID3D12VideoEncoderHeap_GetCodecProfile(This,dstProfile) \ - ( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) ) - -#define ID3D12VideoEncoderHeap_GetCodecLevel(This,dstLevel) \ - ( (This)->lpVtbl -> GetCodecLevel(This,dstLevel) ) - -#define ID3D12VideoEncoderHeap_GetResolutionListCount(This) \ - ( (This)->lpVtbl -> GetResolutionListCount(This) ) - -#define ID3D12VideoEncoderHeap_GetResolutionList(This,ResolutionsListCount,pResolutionList) \ - ( (This)->lpVtbl -> GetResolutionList(This,ResolutionsListCount,pResolutionList) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoDevice3_INTERFACE_DEFINED__ -#define __ID3D12VideoDevice3_INTERFACE_DEFINED__ - -/* interface ID3D12VideoDevice3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoDevice3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4243ADB4-3A32-4666-973C-0CCC5625DC44") - ID3D12VideoDevice3 : public ID3D12VideoDevice2 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoder( - _In_ const D3D12_VIDEO_ENCODER_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoEncoder) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoderHeap( - _In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoEncoderHeap) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoDevice3Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoDevice3 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoDevice3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoDevice3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - ID3D12VideoDevice3 * This, - D3D12_FEATURE_VIDEO FeatureVideo, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoder); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoderHeap); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( - ID3D12VideoDevice3 * This, - UINT NodeMask, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, - UINT NumInputStreamDescs, - _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoProcessor); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator) - HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoMotionEstimator); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap) - HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoMotionVectorHeap); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoder); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1) - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoDecoderHeap); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1) - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )( - ID3D12VideoDevice3 * This, - UINT NodeMask, - _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, - UINT NumInputStreamDescs, - _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoProcessor); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand) - HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc, - _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters, - SIZE_T CreationParametersDataSizeInBytes, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoExtensionCommand); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand) - HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoDevice3 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes, - _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData, - SIZE_T OutputDataSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoder) - HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoder )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_ENCODER_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoEncoder); - - DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoderHeap) - HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap )( - ID3D12VideoDevice3 * This, - _In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc, - _In_ REFIID riid, - _COM_Outptr_ void **ppVideoEncoderHeap); - - END_INTERFACE - } ID3D12VideoDevice3Vtbl; - - interface ID3D12VideoDevice3 - { - CONST_VTBL struct ID3D12VideoDevice3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoDevice3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoDevice3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoDevice3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoDevice3_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12VideoDevice3_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ - ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) - -#define ID3D12VideoDevice3_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ - ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) - -#define ID3D12VideoDevice3_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ - ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) - - -#define ID3D12VideoDevice3_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \ - ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) ) - -#define ID3D12VideoDevice3_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \ - ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) ) - - -#define ID3D12VideoDevice3_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \ - ( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) ) - -#define ID3D12VideoDevice3_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \ - ( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) ) - -#define ID3D12VideoDevice3_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \ - ( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) ) - -#define ID3D12VideoDevice3_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \ - ( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) ) - -#define ID3D12VideoDevice3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) ) - - -#define ID3D12VideoDevice3_CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) \ - ( (This)->lpVtbl -> CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) ) - -#define ID3D12VideoDevice3_CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) \ - ( (This)->lpVtbl -> CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoDevice3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0025 */ -/* [local] */ - -typedef -enum D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 - { - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_I_FRAME = 0, - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_P_FRAME = 1, - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_B_FRAME = 2, - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_IDR_FRAME = 3 - } D3D12_VIDEO_ENCODER_FRAME_TYPE_H264; - -typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 - { - UINT ReconstructedPictureResourceIndex; - BOOL IsLongTermReference; - UINT LongTermPictureIdx; - UINT PictureOrderCountNumber; - UINT FrameDecodingOrderNumber; - UINT TemporalLayerIndex; - } D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264; - -typedef -enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS - { - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2 - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION - { - UCHAR memory_management_control_operation; - UINT difference_of_pic_nums_minus1; - UINT long_term_pic_num; - UINT long_term_frame_idx; - UINT max_long_term_frame_idx_plus1; - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION - { - UCHAR modification_of_pic_nums_idc; - UINT abs_diff_pic_num_minus1; - UINT long_term_pic_num; - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 - { - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS Flags; - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 FrameType; - UINT pic_parameter_set_id; - UINT idr_pic_id; - UINT PictureOrderCountNumber; - UINT FrameDecodingOrderNumber; - UINT TemporalLayerIndex; - UINT List0ReferenceFramesCount; - _Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames; - UINT List1ReferenceFramesCount; - _Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames; - UINT ReferenceFramesReconPictureDescriptorsCount; - _Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 *pReferenceFramesReconPictureDescriptors; - UCHAR adaptive_ref_pic_marking_mode_flag; - UINT RefPicMarkingOperationsCommandsCount; - _Field_size_full_(RefPicMarkingOperationsCommandsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION *pRefPicMarkingOperationsCommands; - UINT List0RefPicModificationsCount; - _Field_size_full_(List0RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList0RefPicModifications; - UINT List1RefPicModificationsCount; - _Field_size_full_(List1RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList1RefPicModifications; - UINT QPMapValuesCount; - _Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap; - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264; - -typedef -enum D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC - { - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_I_FRAME = 0, - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_P_FRAME = 1, - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_B_FRAME = 2, - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_IDR_FRAME = 3 - } D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC - { - UINT ReconstructedPictureResourceIndex; - BOOL IsRefUsedByCurrentPic; - BOOL IsLongTermReference; - UINT PictureOrderCountNumber; - UINT TemporalLayerIndex; - } D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC; - -typedef -enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS - { - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CROSS_COMPONENT_PREDICTION = 0x4, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CHROMA_QP_OFFSET_LIST = 0x8 - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC - { - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; - UINT slice_pic_parameter_set_id; - UINT PictureOrderCountNumber; - UINT TemporalLayerIndex; - UINT List0ReferenceFramesCount; - _Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames; - UINT List1ReferenceFramesCount; - _Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames; - UINT ReferenceFramesReconPictureDescriptorsCount; - _Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors; - UINT List0RefPicModificationsCount; - _Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications; - UINT List1RefPicModificationsCount; - _Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications; - UINT QPMapValuesCount; - _Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap; - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1 - { - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; - UINT slice_pic_parameter_set_id; - UINT PictureOrderCountNumber; - UINT TemporalLayerIndex; - UINT List0ReferenceFramesCount; - _Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames; - UINT List1ReferenceFramesCount; - _Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames; - UINT ReferenceFramesReconPictureDescriptorsCount; - _Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors; - UINT List0RefPicModificationsCount; - _Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications; - UINT List1RefPicModificationsCount; - _Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications; - UINT QPMapValuesCount; - _Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap; - UCHAR diff_cu_chroma_qp_offset_depth; - UCHAR log2_sao_offset_scale_luma; - UCHAR log2_sao_offset_scale_chroma; - UCHAR log2_max_transform_skip_block_size_minus2; - UCHAR chroma_qp_offset_list_len_minus1; - CHAR cb_qp_offset_list[ 6 ]; - CHAR cr_qp_offset_list[ 6 ]; - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA - { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 *pH264PicData; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC *pHEVCPicData; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1 *pHEVCPicData1; - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA *pAV1PicData; - } ; - } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA; - -typedef struct D3D12_VIDEO_ENCODE_REFERENCE_FRAMES - { - UINT NumTexture2Ds; - _Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds; - _Field_size_full_(NumTexture2Ds) UINT *pSubresources; - } D3D12_VIDEO_ENCODE_REFERENCE_FRAMES; - -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_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC - { - 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_PICTURE_CONTROL_DESC; - -typedef -enum D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS - { - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RESOLUTION_CHANGE = 0x1, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RATE_CONTROL_CHANGE = 0x2, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_SUBREGION_LAYOUT_CHANGE = 0x4, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH = 0x8, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_GOP_SEQUENCE_CHANGE = 0x10 - } D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC - { - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags; - D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig; - D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; - D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData; - D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; - } D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC; - -typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS - { - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC PictureControlDesc; - ID3D12Resource *pInputFrame; - UINT InputFrameSubresource; - UINT CurrentFrameBitstreamMetadataSize; - } D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS; - -typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM - { - ID3D12Resource *pBuffer; - UINT64 FrameStartOffset; - } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM; - -typedef struct D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE - { - ID3D12Resource *pReconstructedPicture; - UINT ReconstructedPictureSubresource; - } D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE; - -typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA - { - UINT64 bSize; - UINT64 bStartOffset; - UINT64 bHeaderSize; - } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA; - -typedef -enum D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS - { - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_NO_ERROR = 0, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_CODEC_PICTURE_CONTROL_NOT_SUPPORTED = 0x1, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = 0x2, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_REFERENCE_PICTURES = 0x4, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_RECONFIGURATION_REQUEST_NOT_SUPPORTED = 0x8, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_METADATA_BUFFER_SOURCE = 0x10 - } D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS) -typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS - { - UINT64 AverageQP; - UINT64 IntraCodingUnitsCount; - UINT64 InterCodingUnitsCount; - UINT64 SkipCodingUnitsCount; - UINT64 AverageMotionEstimationXDirection; - UINT64 AverageMotionEstimationYDirection; - } D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS; - -typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA - { - UINT64 EncodeErrorFlags; - D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS EncodeStats; - UINT64 EncodedBitstreamWrittenBytesCount; - UINT64 WrittenSubregionsCount; - } D3D12_VIDEO_ENCODER_OUTPUT_METADATA; - -typedef struct D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER - { - ID3D12Resource *pBuffer; - UINT64 Offset; - } D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER; - -typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS - { - 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_RESOLVE_METADATA_INPUT_ARGUMENTS; - -typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS - { - D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; - } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS; - -typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS - { - D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM Bitstream; - D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; - D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; - } D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_s_ifspec; - -#ifndef __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ -#define __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ - -/* interface ID3D12VideoEncodeCommandList2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoEncodeCommandList2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("895491e2-e701-46a9-9a1f-8d3480ed867a") - ID3D12VideoEncodeCommandList2 : public ID3D12VideoEncodeCommandList1 - { - public: - virtual void STDMETHODCALLTYPE EncodeFrame( - _In_ ID3D12VideoEncoder *pEncoder, - _In_ ID3D12VideoEncoderHeap *pHeap, - _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments, - _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments) = 0; - - virtual void STDMETHODCALLTYPE ResolveEncoderOutputMetadata( - _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments, - _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoEncodeCommandList2Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoEncodeCommandList2 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoEncodeCommandList2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoEncodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoEncodeCommandList2 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoEncodeCommandList2 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoEncodeCommandList2 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoEncodeCommandList2 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoEncodeCommandList2 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoEncodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoEncodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoEncodeCommandList2 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoEncodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoEncodeCommandList2 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoEncodeCommandList2 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoEncodeCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoEncodeCommandList2 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoEncodeCommandList2 * 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 )( - ID3D12VideoEncodeCommandList2 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoEncodeCommandList2 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoEncodeCommandList2 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoEncodeCommandList2 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) - void ( STDMETHODCALLTYPE *EstimateMotion )( - ID3D12VideoEncodeCommandList2 * 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 )( - ID3D12VideoEncodeCommandList2 * 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 )( - ID3D12VideoEncodeCommandList2 * 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 )( - ID3D12VideoEncodeCommandList2 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand) - void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( - ID3D12VideoEncodeCommandList2 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand) - void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoEncodeCommandList2 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame) - void ( STDMETHODCALLTYPE *EncodeFrame )( - ID3D12VideoEncodeCommandList2 * 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 )( - ID3D12VideoEncodeCommandList2 * This, - _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments, - _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments); - - END_INTERFACE - } ID3D12VideoEncodeCommandList2Vtbl; - - interface ID3D12VideoEncodeCommandList2 - { - CONST_VTBL struct ID3D12VideoEncodeCommandList2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoEncodeCommandList2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoEncodeCommandList2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoEncodeCommandList2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoEncodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoEncodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoEncodeCommandList2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoEncodeCommandList2_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoEncodeCommandList2_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoEncodeCommandList2_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoEncodeCommandList2_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoEncodeCommandList2_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoEncodeCommandList2_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoEncodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoEncodeCommandList2_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoEncodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoEncodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoEncodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoEncodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoEncodeCommandList2_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoEncodeCommandList2_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoEncodeCommandList2_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoEncodeCommandList2_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoEncodeCommandList2_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoEncodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - -#define ID3D12VideoEncodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12VideoEncodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ - ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) - -#define ID3D12VideoEncodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) - - -#define ID3D12VideoEncodeCommandList2_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \ - ( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) ) - -#define ID3D12VideoEncodeCommandList2_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \ - ( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ -#define __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ - -/* interface ID3D12VideoEncodeCommandList3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12VideoEncodeCommandList3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7f027b22-1515-4e85-aa0d-026486580576") - ID3D12VideoEncodeCommandList3 : public ID3D12VideoEncodeCommandList2 - { - public: - virtual void STDMETHODCALLTYPE Barrier( - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12VideoEncodeCommandList3Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12VideoEncodeCommandList3 * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12VideoEncodeCommandList3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12VideoEncodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12VideoEncodeCommandList3 * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12VideoEncodeCommandList3 * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12VideoEncodeCommandList3 * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - DECLSPEC_XFGVIRT(ID3D12Object, SetName) - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12VideoEncodeCommandList3 * This, - _In_z_ LPCWSTR Name); - - DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12VideoEncodeCommandList3 * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12VideoEncodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12VideoEncodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12VideoEncodeCommandList3 * This, - _In_ ID3D12CommandAllocator *pAllocator); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12VideoEncodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12VideoEncodeCommandList3 * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) - void ( STDMETHODCALLTYPE *DiscardResource )( - ID3D12VideoEncodeCommandList3 * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12VideoEncodeCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12VideoEncodeCommandList3 * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12VideoEncodeCommandList3 * 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 )( - ID3D12VideoEncodeCommandList3 * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12VideoEncodeCommandList3 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12VideoEncodeCommandList3 * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12VideoEncodeCommandList3 * This); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) - void ( STDMETHODCALLTYPE *EstimateMotion )( - ID3D12VideoEncodeCommandList3 * 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 )( - ID3D12VideoEncodeCommandList3 * 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 )( - ID3D12VideoEncodeCommandList3 * 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 )( - ID3D12VideoEncodeCommandList3 * This, - _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand) - void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( - ID3D12VideoEncodeCommandList3 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand) - void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( - ID3D12VideoEncodeCommandList3 * This, - _In_ ID3D12VideoExtensionCommand *pExtensionCommand, - _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); - - DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame) - void ( STDMETHODCALLTYPE *EncodeFrame )( - ID3D12VideoEncodeCommandList3 * 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 )( - ID3D12VideoEncodeCommandList3 * 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 )( - ID3D12VideoEncodeCommandList3 * This, - UINT32 NumBarrierGroups, - _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); - - END_INTERFACE - } ID3D12VideoEncodeCommandList3Vtbl; - - interface ID3D12VideoEncodeCommandList3 - { - CONST_VTBL struct ID3D12VideoEncodeCommandList3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12VideoEncodeCommandList3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12VideoEncodeCommandList3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12VideoEncodeCommandList3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12VideoEncodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12VideoEncodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12VideoEncodeCommandList3_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12VideoEncodeCommandList3_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12VideoEncodeCommandList3_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12VideoEncodeCommandList3_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12VideoEncodeCommandList3_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12VideoEncodeCommandList3_Reset(This,pAllocator) \ - ( (This)->lpVtbl -> Reset(This,pAllocator) ) - -#define ID3D12VideoEncodeCommandList3_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D12VideoEncodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12VideoEncodeCommandList3_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12VideoEncodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoEncodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12VideoEncodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12VideoEncodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12VideoEncodeCommandList3_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12VideoEncodeCommandList3_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12VideoEncodeCommandList3_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12VideoEncodeCommandList3_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoEncodeCommandList3_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ - ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) - -#define ID3D12VideoEncodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ - ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) - -#define ID3D12VideoEncodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ - ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) - - -#define ID3D12VideoEncodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ - ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) - -#define ID3D12VideoEncodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ - ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) - - -#define ID3D12VideoEncodeCommandList3_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \ - ( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) ) - -#define ID3D12VideoEncodeCommandList3_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \ - ( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) ) - - -#define ID3D12VideoEncodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \ - ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12video_0000_0027 */ -/* [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); -DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4); -DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70); -DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38); -DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53); -DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09); -DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72); -DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67); -DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8); -DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05); -DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB); -DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23); -DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E); -DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26); -DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C); -DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4); -DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13); -DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29); -DEFINE_GUID(IID_ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13); -DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4); -DEFINE_GUID(IID_ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff); -DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc); -DEFINE_GUID(IID_ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37); -DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A); -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); - - -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; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12video.idl b/Juliet/src/Graphics/DX12/D3D12/directx/d3d12video.idl deleted file mode 100644 index 6e3fba3..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3d12video.idl +++ /dev/null @@ -1,3168 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ -import "oaidl.idl"; -import "ocidl.idl"; - -import "dxgicommon.idl"; -import "d3d12.idl"; - -cpp_quote("#include ") - -#pragma region App Family -cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") - -typedef enum D3D12_VIDEO_FIELD_TYPE -{ - D3D12_VIDEO_FIELD_TYPE_NONE = 0, - D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1, - D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2, -} D3D12_VIDEO_FIELD_TYPE; - -typedef enum D3D12_VIDEO_FRAME_STEREO_FORMAT -{ - D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0, - D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1, - D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2, - D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3, - D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4, -} D3D12_VIDEO_FRAME_STEREO_FORMAT; - -typedef struct D3D12_VIDEO_FORMAT -{ - DXGI_FORMAT Format; - DXGI_COLOR_SPACE_TYPE ColorSpace; -} D3D12_VIDEO_FORMAT; - -typedef struct D3D12_VIDEO_SAMPLE -{ - UINT Width; - UINT Height; - D3D12_VIDEO_FORMAT Format; -} D3D12_VIDEO_SAMPLE; - -typedef enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE -{ - D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0, - D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1, -} D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE; - -typedef enum D3D12_FEATURE_VIDEO -{ - D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0, - D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1, - D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2, - D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3, - D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5, - D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6, - D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7, - D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8, - D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9, - D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10, - D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11, - D3D12_FEATURE_VIDEO_ARCHITECTURE = 17, - D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18, - D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19, - D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20, - D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22, - D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26, - D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27, - D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28, - D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29, - D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30, - D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31, - D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32, - D3D12_FEATURE_VIDEO_ENCODER_CODEC = 33, - D3D12_FEATURE_VIDEO_ENCODER_PROFILE_LEVEL = 34, - D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 35, - D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION = 36, - D3D12_FEATURE_VIDEO_ENCODER_INPUT_FORMAT = 37, - D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_MODE = 38, - D3D12_FEATURE_VIDEO_ENCODER_INTRA_REFRESH_MODE = 39, - D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 40, - D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE = 41, - D3D12_FEATURE_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = 42, - D3D12_FEATURE_VIDEO_ENCODER_SUPPORT = 43, - 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; - -typedef enum D3D12_BITSTREAM_ENCRYPTION_TYPE -{ - D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0, -} D3D12_BITSTREAM_ENCRYPTION_TYPE; - -typedef struct D3D12_VIDEO_DECODE_CONFIGURATION -{ - GUID DecodeProfile; - D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption; - D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType; -} D3D12_VIDEO_DECODE_CONFIGURATION; - -typedef struct D3D12_VIDEO_DECODER_DESC -{ - UINT NodeMask; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; -} D3D12_VIDEO_DECODER_DESC; - -typedef struct D3D12_VIDEO_DECODER_HEAP_DESC -{ - UINT NodeMask; - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; - UINT DecodeWidth; - UINT DecodeHeight; - DXGI_FORMAT Format; - DXGI_RATIONAL FrameRate; - UINT BitRate; - UINT MaxDecodePictureBufferCount; -} D3D12_VIDEO_DECODER_HEAP_DESC; - -typedef struct D3D12_VIDEO_SIZE_RANGE -{ - UINT MaxWidth; - UINT MaxHeight; - UINT MinWidth; - UINT MinHeight; -} D3D12_VIDEO_SIZE_RANGE; - -typedef enum D3D12_VIDEO_PROCESS_FILTER -{ - D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0, - D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1, - D3D12_VIDEO_PROCESS_FILTER_HUE = 2, - D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3, - D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4, - D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5, - D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6, - D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7, -} D3D12_VIDEO_PROCESS_FILTER; - -typedef enum D3D12_VIDEO_PROCESS_FILTER_FLAGS -{ - D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0x0, - D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = (1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS), - D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = (1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST), - D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = (1 << D3D12_VIDEO_PROCESS_FILTER_HUE), - D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = (1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION), - D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = (1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION), - D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = (1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT), - D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = (1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING), - D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = (1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT), - -} D3D12_VIDEO_PROCESS_FILTER_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS )") - -typedef enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS -{ - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0x0, - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1, - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000, - -} D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS )") - -typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING -{ - BOOL Enable; - FLOAT Alpha; -} D3D12_VIDEO_PROCESS_ALPHA_BLENDING; - -typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY -{ - BOOL Enable; - FLOAT Lower; - FLOAT Upper; -} D3D12_VIDEO_PROCESS_LUMA_KEY; - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC -{ - DXGI_FORMAT Format; - DXGI_COLOR_SPACE_TYPE ColorSpace; - DXGI_RATIONAL SourceAspectRatio; - DXGI_RATIONAL DestinationAspectRatio; - DXGI_RATIONAL FrameRate; - D3D12_VIDEO_SIZE_RANGE SourceSizeRange; - D3D12_VIDEO_SIZE_RANGE DestinationSizeRange; - BOOL EnableOrientation; - D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags; - D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat; - D3D12_VIDEO_FIELD_TYPE FieldType; - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; - BOOL EnableAlphaBlending; - D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey; - UINT NumPastFrames; - UINT NumFutureFrames; - BOOL EnableAutoProcessing; -} D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC; - -typedef enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE -{ - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0, - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1, - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2, - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3, -} D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE; - -typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC -{ - DXGI_FORMAT Format; - DXGI_COLOR_SPACE_TYPE ColorSpace; - D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode; - UINT AlphaFillModeSourceStreamIndex; - FLOAT BackgroundColor[4]; - DXGI_RATIONAL FrameRate; - BOOL EnableStereo; -} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC; - -[uuid(0946B7C9-EBF6-4047-BB73-8683E27DBB1F), object, local, pointer_default(unique)] -interface ID3D12VideoDecoderHeap - : ID3D12Pageable -{ - D3D12_VIDEO_DECODER_HEAP_DESC GetDesc(); -} - -[uuid(1F052807-0B46-4ACC-8A89-364F793718A4), object, local, pointer_default(unique)] -interface ID3D12VideoDevice - : IUnknown -{ - HRESULT CheckFeatureSupport( - D3D12_FEATURE_VIDEO FeatureVideo, - [annotation("_Inout_updates_bytes_(FeatureSupportDataSize)")] void* pFeatureSupportData, - UINT FeatureSupportDataSize - ); - - HRESULT CreateVideoDecoder( - [annotation("_In_")] const D3D12_VIDEO_DECODER_DESC* pDesc, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoder, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoder - ); - - HRESULT CreateVideoDecoderHeap( - [annotation("_In_")]const D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoderHeap, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoderHeap - ); - - HRESULT CreateVideoProcessor( - UINT NodeMask, - [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc, - UINT NumInputStreamDescs, - [annotation("_In_reads_(NumInputStreamDescs)")]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoProcessor, - [out, iid_is(riid), annotation("_COM_Outptr_")] void **ppVideoProcessor - ); -} - -[uuid(C59B6BDC-7720-4074-A136-17A156037470), object, local, pointer_default(unique)] -interface ID3D12VideoDecoder - : ID3D12Pageable -{ - D3D12_VIDEO_DECODER_DESC GetDesc(); -} - -typedef enum D3D12_VIDEO_DECODE_TIER -{ - D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0, - D3D12_VIDEO_DECODE_TIER_1 = 1, - D3D12_VIDEO_DECODE_TIER_2 = 2, - D3D12_VIDEO_DECODE_TIER_3 = 3, -} D3D12_VIDEO_DECODE_TIER; - -typedef enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS -{ - D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0x0, - D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1, - -} D3D12_VIDEO_DECODE_SUPPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS )") - -typedef enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS -{ - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0x0, - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1, - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2, - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4, - D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8, - -} D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS )") - -typedef enum D3D12_VIDEO_DECODE_STATUS -{ - D3D12_VIDEO_DECODE_STATUS_OK = 0, - D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1, - D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2, - D3D12_VIDEO_DECODE_STATUS_RESTART = 3, - D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4, -} D3D12_VIDEO_DECODE_STATUS; - -typedef enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE -{ - D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0, - D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1, - D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2, - D3D12_VIDEO_DECODE_ARGUMENT_TYPE_HUFFMAN_TABLE = 3, -} D3D12_VIDEO_DECODE_ARGUMENT_TYPE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT -{ - UINT NodeIndex; // input - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input - UINT Width; // input - UINT Height; // input - DXGI_FORMAT DecodeFormat; // input - DXGI_RATIONAL FrameRate; // input - UINT BitRate; // input - D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags; // output - D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags; // output - D3D12_VIDEO_DECODE_TIER DecodeTier; // output -} D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT -{ - UINT NodeIndex; // input - UINT ProfileCount; // output -} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES -{ - UINT NodeIndex; // input - UINT ProfileCount; // input - [annotation("_Field_size_full_(ProfileCount)")] GUID *pProfiles; // output. The list of supported profiles. The caller allocates storage for the profile list before calling CheckFeatureSupport. -} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT -{ - UINT NodeIndex; // input - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input - UINT FormatCount; // output -} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS -{ - UINT NodeIndex; // input - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input - UINT FormatCount; // input - [annotation("_Field_size_full_(FormatCount)")] DXGI_FORMAT *pOutputFormats; // output. The list of supported video formats. The caller allocates storage for the format list before calling CheckFeatureSupport. -} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE -{ - BOOL IOCoherent; -} D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE; - -typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT -{ - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2, - - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1, - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2, - - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3, -} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT; - -typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS -{ - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0x0, - - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y), - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U), - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V), - - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R), - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G), - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B), - - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A), -} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS )") - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM -{ - UINT NodeIndex; // in - GUID DecodeProfile; // in - UINT Width; // in - UINT Height; // in - DXGI_FORMAT DecodeFormat; // in - D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components; // out - UINT BinCount; // out - UINT CounterBitDepth; // out -} D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM; - -typedef enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS -{ - D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0x0, - D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1, - -} D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS )") - -typedef enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS -{ - D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0x0, - D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1, - D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2, - -} D3D12_VIDEO_SCALE_SUPPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS )") - -typedef struct D3D12_VIDEO_SCALE_SUPPORT -{ - D3D12_VIDEO_SIZE_RANGE OutputSizeRange; - D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags; -} D3D12_VIDEO_SCALE_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT -{ - UINT NodeIndex; // input - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input - D3D12_VIDEO_SAMPLE DecodeSample; // input - D3D12_VIDEO_FORMAT OutputFormat; // input - DXGI_RATIONAL FrameRate; // input - UINT BitRate; // input - D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags; // output - D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; // output -} D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE -{ - D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; // input - UINT64 MemoryPoolL0Size; // output - UINT64 MemoryPoolL1Size; // output -} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE -{ - UINT NodeMask; - const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc; // input - UINT NumInputStreamDescs; // input - const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; // input - UINT64 MemoryPoolL0Size; // output - UINT64 MemoryPoolL1Size; // output -} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE; - -typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS -{ - UINT64 Status; // see D3D12_VIDEO_DECODE_STATUS - UINT64 NumMacroblocksAffected; - DXGI_RATIONAL FrameRate; - UINT BitRate; -} D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS; - -typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT -{ - D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type; - UINT Size; - [annotation("_Field_size_bytes_full_(Size)")] void *pData; -} D3D12_VIDEO_DECODE_FRAME_ARGUMENT; - -typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES -{ - UINT NumTexture2Ds; - [annotation("_Field_size_full_(NumTexture2Ds)")] ID3D12Resource** ppTexture2Ds; - [annotation("_Field_size_full_(NumTexture2Ds)")] UINT* pSubresources; - [annotation("_Field_size_full_opt_(NumTexture2Ds)")] ID3D12VideoDecoderHeap** ppHeaps; // If null, assume single decoder heap from input args. -} D3D12_VIDEO_DECODE_REFERENCE_FRAMES; - -typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM -{ - ID3D12Resource* pBuffer; - UINT64 Offset; - UINT64 Size; -} D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM; - -typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS -{ - BOOL Enable; - ID3D12Resource* pReferenceTexture2D; - UINT ReferenceSubresource; - DXGI_COLOR_SPACE_TYPE OutputColorSpace; - DXGI_COLOR_SPACE_TYPE DecodeColorSpace; -} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS; - -typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS -{ - UINT NumFrameArguments; - D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[D3D12_VIDEO_DECODE_MAX_ARGUMENTS]; - D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames; - D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream; - ID3D12VideoDecoderHeap *pHeap; -} D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS; - -typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS -{ - ID3D12Resource* pOutputTexture2D; - UINT OutputSubresource; - D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments; -} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS; - -[uuid(304FDB32-BEDE-410A-8545-943AC6A46138), object, local, pointer_default(unique)] -interface ID3D12VideoProcessor - : ID3D12Pageable -{ - UINT GetNodeMask(); - UINT GetNumInputStreamDescs(); - HRESULT GetInputStreamDescs(UINT NumInputStreamDescs, [annotation("_Out_writes_(NumInputStreamDescs)")] D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs); - D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC GetOutputStreamDesc(); -} - -typedef enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS -{ - D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0x0, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20, - D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40, - -} D3D12_VIDEO_PROCESS_FEATURE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS )") - -typedef enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS -{ - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0x0, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x01, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x02, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x04, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x08, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80, - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000, - -} D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS )") - -typedef enum D3D12_VIDEO_PROCESS_ORIENTATION -{ - D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0, - D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4, - D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6, - D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7, -} D3D12_VIDEO_PROCESS_ORIENTATION; - -typedef enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS -{ - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0x0, - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1, - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2, - -} D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS )") - -typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE -{ - INT Minimum; - INT Maximum; - INT Default; - FLOAT Multiplier; -} D3D12_VIDEO_PROCESS_FILTER_RANGE; - -typedef enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS -{ - D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0x0, - D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1, - -} D3D12_VIDEO_PROCESS_SUPPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS )") - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT -{ - UINT NodeIndex; // input - D3D12_VIDEO_SAMPLE InputSample; // input - D3D12_VIDEO_FIELD_TYPE InputFieldType; // input - D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat; // input - DXGI_RATIONAL InputFrameRate; // input - D3D12_VIDEO_FORMAT OutputFormat; // input - D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat; // input - DXGI_RATIONAL OutputFrameRate; // input - D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags; // output - D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; // output - D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; // output - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport; // output - D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport; // output - D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport; // output - D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[D3D12_VIDEO_PROCESS_MAX_FILTERS]; // output -} D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS -{ - UINT NodeIndex; // input - UINT MaxInputStreams; // output -} D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS; - -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO -{ - UINT NodeIndex; // input - D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; // input - D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters; // input - D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; // input - DXGI_RATIONAL InputFrameRate; // input - DXGI_RATIONAL OutputFrameRate; // input - BOOL EnableAutoProcessing; // input - UINT PastFrames; // output - UINT FutureFrames; // output -} D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO; - -typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET -{ - UINT NumPastFrames; - ID3D12Resource **ppPastFrames; - UINT *pPastSubresources; - UINT NumFutureFrames; - ID3D12Resource **ppFutureFrames; - UINT *pFutureSubresources; -} D3D12_VIDEO_PROCESS_REFERENCE_SET; - -typedef struct D3D12_VIDEO_PROCESS_TRANSFORM -{ - D3D12_RECT SourceRectangle; - D3D12_RECT DestinationRectangle; - D3D12_VIDEO_PROCESS_ORIENTATION Orientation; -} D3D12_VIDEO_PROCESS_TRANSFORM; - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE -{ - UINT OutputIndex; - UINT InputFrameOrField; -} D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE; - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM -{ - ID3D12Resource *pTexture2D; - UINT Subresource; - D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet; -} D3D12_VIDEO_PROCESS_INPUT_STREAM; - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS -{ - D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; - D3D12_VIDEO_PROCESS_TRANSFORM Transform; - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; - D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; - INT FilterLevels[D3D12_VIDEO_PROCESS_MAX_FILTERS]; - D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; -} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS; - -typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM -{ - ID3D12Resource* pTexture2D; - UINT Subresource; -} D3D12_VIDEO_PROCESS_OUTPUT_STREAM; - -typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS -{ - D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; - D3D12_RECT TargetRectangle; -} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS; - -[uuid(3B60536E-AD29-4E64-A269-F853837E5E53), object, local, pointer_default(unique)] -interface ID3D12VideoDecodeCommandList - : ID3D12CommandList -{ - HRESULT Close(); - - HRESULT Reset( - [annotation("_In_")] ID3D12CommandAllocator* pAllocator - ); - - void ClearState(); - - void ResourceBarrier( - [annotation("_In_")] UINT NumBarriers, - [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers - ); - - void DiscardResource( - [annotation("_In_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion - ); - - void BeginQuery( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT Index - ); - - void EndQuery( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT Index - ); - - void ResolveQueryData( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT StartIndex, - [annotation("_In_")] UINT NumQueries, - [annotation("_In_")] ID3D12Resource* pDestinationBuffer, - [annotation("_In_")] UINT64 AlignedDestinationBufferOffset - ); - - void SetPredication( - [annotation("_In_opt_")] ID3D12Resource* pBuffer, - [annotation("_In_")] UINT64 AlignedBufferOffset, - [annotation("_In_")] D3D12_PREDICATION_OP Operation - ); - - void SetMarker( - UINT Metadata, - [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, - UINT Size); - - void BeginEvent( - UINT Metadata, - [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, - UINT Size); - - void EndEvent(); - - void DecodeFrame( - [annotation("_In_")] ID3D12VideoDecoder* pDecoder, - [annotation("_In_")] const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - [annotation("_In_")] const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments - ); - - void WriteBufferImmediate( - UINT Count, - [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes - ); -} - -[uuid(AEB2543A-167F-4682-ACC8-D159ED4A6209), object, local, pointer_default(unique)] -interface ID3D12VideoProcessCommandList - : ID3D12CommandList -{ - HRESULT Close(); - - HRESULT Reset( - [annotation("_In_")] ID3D12CommandAllocator* pAllocator - ); - - void ClearState(); - - void ResourceBarrier( - [annotation("_In_")] UINT NumBarriers, - [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers - ); - - void DiscardResource( - [annotation("_In_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion - ); - - void BeginQuery( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT Index - ); - - void EndQuery( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT Index - ); - - void ResolveQueryData( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT StartIndex, - [annotation("_In_")] UINT NumQueries, - [annotation("_In_")] ID3D12Resource* pDestinationBuffer, - [annotation("_In_")] UINT64 AlignedDestinationBufferOffset - ); - - void SetPredication( - [annotation("_In_opt_")] ID3D12Resource* pBuffer, - [annotation("_In_")] UINT64 AlignedBufferOffset, - [annotation("_In_")] D3D12_PREDICATION_OP Operation - ); - - void SetMarker( - UINT Metadata, - [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, - UINT Size); - - void BeginEvent( - UINT Metadata, - [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, - UINT Size); - - void EndEvent(); - - void ProcessFrames( - [annotation("_In_")] ID3D12VideoProcessor* pVideoProcessor, - [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - [annotation("_In_reads_(NumInputStreams)")] const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments - ); - - void WriteBufferImmediate( - UINT Count, - [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes - ); -} - -typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM -{ - UINT64 Offset; - ID3D12Resource* pBuffer; -} D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM; - -typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 -{ - BOOL Enable; - ID3D12Resource* pReferenceTexture2D; - UINT ReferenceSubresource; - DXGI_COLOR_SPACE_TYPE OutputColorSpace; - DXGI_COLOR_SPACE_TYPE DecodeColorSpace; - UINT OutputWidth; - UINT OutputHeight; -} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1; - -typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 -{ - ID3D12Resource* pOutputTexture2D; - UINT OutputSubresource; - D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments; - D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS]; -} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1; - -[uuid(D52F011B-B56E-453C-A05A-A7F311C8F472), object, local, pointer_default(unique)] -interface ID3D12VideoDecodeCommandList1 - : ID3D12VideoDecodeCommandList -{ - void DecodeFrame1( - [annotation("_In_")] ID3D12VideoDecoder* pDecoder, - [annotation("_In_")] const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, - [annotation("_In_")] const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments - ); -} - -typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 -{ - D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; - D3D12_VIDEO_PROCESS_TRANSFORM Transform; - D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; - D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; - INT FilterLevels[D3D12_VIDEO_PROCESS_MAX_FILTERS]; - D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; - D3D12_VIDEO_FIELD_TYPE FieldType; -} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1; - -[uuid(542C5C4D-7596-434F-8C93-4EFA6766F267), object, local, pointer_default(unique)] -interface ID3D12VideoProcessCommandList1 : ID3D12VideoProcessCommandList -{ - void ProcessFrames1( - [annotation("_In_")] ID3D12VideoProcessor* pVideoProcessor, - [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, - UINT NumInputStreams, - [annotation("_In_reads_(NumInputStreams)")] const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments - ); -} - -typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE -{ - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0, - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 1, -} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE; - -typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS -{ - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0, - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8), - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16), - -} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS )" ) - -typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION -{ - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 0, -} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION; - -typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS -{ - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0, - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL), - -} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS; -cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS )" ) - -// D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT -typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT -{ - UINT NodeIndex; // input - BOOL VideoDecodeSupport; // output - BOOL VideoProcessSupport; // output - BOOL VideoEncodeSupport; // output -} D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT; - -// D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR -typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR -{ - UINT NodeIndex; // input - DXGI_FORMAT InputFormat; // input - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags; // output - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags; // output - D3D12_VIDEO_SIZE_RANGE SizeRange; // output -} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR; - -// D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE -typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE -{ - UINT NodeIndex; // input - DXGI_FORMAT InputFormat; // input - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; // input - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; // input - D3D12_VIDEO_SIZE_RANGE SizeRange; // input - BOOL Protected; // input - UINT64 MotionVectorHeapMemoryPoolL0Size; // output - UINT64 MotionVectorHeapMemoryPoolL1Size; // output - UINT64 MotionEstimatorMemoryPoolL0Size; // output - UINT64 MotionEstimatorMemoryPoolL1Size; // output -} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE; - -typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC -{ - UINT NodeMask; - DXGI_FORMAT InputFormat; - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; - D3D12_VIDEO_SIZE_RANGE SizeRange; - -} D3D12_VIDEO_MOTION_ESTIMATOR_DESC; - -[uuid(33FDAE0E-098B-428F-87BB-34B695DE08F8), object, local, pointer_default(unique)] -interface ID3D12VideoMotionEstimator - : ID3D12Pageable -{ - D3D12_VIDEO_MOTION_ESTIMATOR_DESC GetDesc(); - - HRESULT GetProtectedResourceSession( - [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); -} - -typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC -{ - UINT NodeMask; - DXGI_FORMAT InputFormat; - D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; - D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; - D3D12_VIDEO_SIZE_RANGE SizeRange; - -} D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC; - -[uuid(5BE17987-743A-4061-834B-23D22DAEA505), object, local, pointer_default(unique)] -interface ID3D12VideoMotionVectorHeap - : ID3D12Pageable -{ - D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC GetDesc(); - - HRESULT GetProtectedResourceSession( - [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); -} - -[uuid(981611AD-A144-4C83-9890-F30E26D658AB), object, local, pointer_default(unique)] -interface ID3D12VideoDevice1 - : ID3D12VideoDevice -{ - HRESULT CreateVideoMotionEstimator( - [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_DESC* pDesc, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoMotionEstimator, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoMotionEstimator - ); - - HRESULT CreateVideoMotionVectorHeap( - [annotation("_In_")] const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC* pDesc, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoMotionVectorHeap, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoMotionVectorHeap - ); -} - -typedef struct D3D12_RESOURCE_COORDINATE -{ - // Coordinate values below index pixels. - UINT64 X; // Used for buffer, 1D, 2D, 3D - UINT Y; // Used for 2D, 3D - UINT Z; // Used for 3D - UINT SubresourceIndex; // indexes into mips, arrays, and planes. Used for 1D, 2D, 3D -} D3D12_RESOURCE_COORDINATE; - -typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT -{ - ID3D12VideoMotionVectorHeap* pMotionVectorHeap; -} D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT; - -typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT -{ - ID3D12Resource* pInputTexture2D; - UINT InputSubresourceIndex; - ID3D12Resource* pReferenceTexture2D; - UINT ReferenceSubresourceIndex; - ID3D12VideoMotionVectorHeap* pHintMotionVectorHeap; -} D3D12_VIDEO_MOTION_ESTIMATOR_INPUT; - -typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT -{ - ID3D12Resource* pMotionVectorTexture2D; - D3D12_RESOURCE_COORDINATE MotionVectorCoordinate; -} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT; - -typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT -{ - ID3D12VideoMotionVectorHeap* pMotionVectorHeap; - UINT PixelWidth; - UINT PixelHeight; -} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT; - -[uuid(8455293A-0CBD-4831-9B39-FBDBAB724723), object, local, pointer_default(unique)] -interface ID3D12VideoEncodeCommandList - : ID3D12CommandList -{ - HRESULT Close(); - - HRESULT Reset( - [annotation("_In_")] ID3D12CommandAllocator* pAllocator - ); - - void ClearState(); - - void ResourceBarrier( - [annotation("_In_")] UINT NumBarriers, - [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers - ); - - void DiscardResource( - [annotation("_In_")] ID3D12Resource* pResource, - [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion - ); - - void BeginQuery( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT Index - ); - - void EndQuery( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT Index - ); - - void ResolveQueryData( - [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, - [annotation("_In_")] D3D12_QUERY_TYPE Type, - [annotation("_In_")] UINT StartIndex, - [annotation("_In_")] UINT NumQueries, - [annotation("_In_")] ID3D12Resource* pDestinationBuffer, - [annotation("_In_")] UINT64 AlignedDestinationBufferOffset - ); - - void SetPredication( - [annotation("_In_opt_")] ID3D12Resource* pBuffer, - [annotation("_In_")] UINT64 AlignedBufferOffset, - [annotation("_In_")] D3D12_PREDICATION_OP Operation - ); - - void SetMarker( - UINT Metadata, - [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, - UINT Size); - - void BeginEvent( - UINT Metadata, - [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, - UINT Size); - - void EndEvent(); - - void EstimateMotion( - [annotation("_In_")] ID3D12VideoMotionEstimator* pMotionEstimator, - [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT* pOutputArguments, - [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT* pInputArguments - ); - - void ResolveMotionVectorHeap( - const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT* pOutputArguments, - const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT* pInputArguments - ); - - void WriteBufferImmediate( - UINT Count, - [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, - [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes - ); - - void SetProtectedResourceSession( - [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession - ); -} - -typedef enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS -{ - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0x0, - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x1, - -} D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS )") - -// D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES -{ - UINT NodeIndex; // input - D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output -} D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES; - -// D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES -{ - UINT NodeIndex; // input - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output -} D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES; - -// D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES -typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES -{ - UINT NodeIndex; // input - D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output -} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES; - -//D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 -typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1 -{ - D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; // input - BOOL Protected; // input - UINT64 MemoryPoolL0Size; // output - UINT64 MemoryPoolL1Size; // output -} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1; - -// D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 -typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1 -{ - UINT NodeMask; - const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc; // input - UINT NumInputStreamDescs; // input - const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; // input - BOOL Protected; // input - UINT64 MemoryPoolL0Size; // output - UINT64 MemoryPoolL1Size; // output -} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1; - -typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE -{ - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 6, -} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE; - -typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE -{ - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 10, -} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE; - -typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS -{ - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0x00000000, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x00000001, - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x00000002 -} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS; - -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS )") - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT -{ - UINT NodeIndex; // in - UINT CommandCount; // out -} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT; - -typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO -{ - GUID CommandId; - LPCWSTR Name; - D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags; -} D3D12_VIDEO_EXTENSION_COMMAND_INFO; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS -{ - UINT NodeIndex; - UINT CommandCount; - [annotation("_Field_size_full_(CommandCount)")] D3D12_VIDEO_EXTENSION_COMMAND_INFO* pCommandInfos; -} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT -{ - GUID CommandId; // in - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; // in - UINT ParameterCount; // out - UINT ParameterPacking; // out -} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT; - -typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO -{ - LPCWSTR Name; - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type; - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags; -} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS -{ - GUID CommandId; // in - D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; // in - UINT ParameterCount; // in - [annotation("_Field_size_full_(ParameterCount)")] D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO* pParameterInfos; // out -} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT -{ - UINT NodeIndex; - GUID CommandId; - [annotation("_Field_size_bytes_full_opt_(InputDataSizeInBytes)")] const void *pInputData; - SIZE_T InputDataSizeInBytes; - [annotation("_Field_size_bytes_full_opt_(OutputDataSizeInBytes)")] void *pOutputData; - SIZE_T OutputDataSizeInBytes; -} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE -{ - UINT NodeIndex; - GUID CommandId; - [annotation("_Field_size_bytes_full_(CreationParametersDataSizeInBytes)")] const void* pCreationParameters; - SIZE_T CreationParametersSizeInBytes; - UINT64 MemoryPoolL0Size; // output - UINT64 MemoryPoolL1Size; // output -} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE; - -typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC -{ - UINT NodeMask; - GUID CommandId; -} D3D12_VIDEO_EXTENSION_COMMAND_DESC; - -[uuid(79A2E5FB-CCD2-469A-9FDE-195D10951F7E), object, local, pointer_default(unique)] -interface ID3D12VideoDecoder1 - : ID3D12VideoDecoder -{ - HRESULT GetProtectedResourceSession( - [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); -} - -[uuid(DA1D98C5-539F-41B2-BF6B-1198A03B6D26), object, local, pointer_default(unique)] -interface ID3D12VideoDecoderHeap1 - : ID3D12VideoDecoderHeap -{ - HRESULT GetProtectedResourceSession( - [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); -} - -[uuid(F3CFE615-553F-425C-86D8-EE8C1B1FB01C), object, local, pointer_default(unique)] -interface ID3D12VideoProcessor1 - : ID3D12VideoProcessor -{ - HRESULT GetProtectedResourceSession( - [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); -} - -[uuid(554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4), object, local, pointer_default(unique)] -interface ID3D12VideoExtensionCommand - : ID3D12Pageable -{ - D3D12_VIDEO_EXTENSION_COMMAND_DESC GetDesc(); - - HRESULT GetProtectedResourceSession( - [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession - [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); -} - -[uuid(F019AC49-F838-4A95-9B17-579437C8F513), object, local, pointer_default(unique)] -interface ID3D12VideoDevice2 - : ID3D12VideoDevice1 -{ - HRESULT CreateVideoDecoder1( - [annotation("_In_")] const D3D12_VIDEO_DECODER_DESC* pDesc, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoder1, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoder - ); - - HRESULT CreateVideoDecoderHeap1( - [annotation("_In_")] const D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoderHeap1, - [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoderHeap - ); - - HRESULT CreateVideoProcessor1( - UINT NodeMask, - [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc, - UINT NumInputStreamDescs, - [annotation("_In_reads_(NumInputStreamDescs)")]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoProcessor1, - [out, iid_is(riid), annotation("_COM_Outptr_")] void **ppVideoProcessor - ); - - HRESULT CreateVideoExtensionCommand( - [annotation("_In_")] const D3D12_VIDEO_EXTENSION_COMMAND_DESC* pDesc, - [annotation("_In_reads_bytes_(CreationParametersDataSizeInBytes)")] const void* pCreationParameters, - SIZE_T CreationParametersDataSizeInBytes, - [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedResourceSession, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoExtensionCommand, - [annotation("_COM_Outptr_")] void** ppVideoExtensionCommand); - - HRESULT ExecuteExtensionCommand( - [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, - [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes, - [annotation("_Out_writes_bytes_(OutputDataSizeInBytes)")] void *pOutputData, - SIZE_T OutputDataSizeInBytes - ); -} - -[uuid(6e120880-c114-4153-8036-d247051e1729), object, local, pointer_default(unique)] -interface ID3D12VideoDecodeCommandList2 - : ID3D12VideoDecodeCommandList1 -{ - void SetProtectedResourceSession( - [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession - ); - - void InitializeExtensionCommand( - [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, - [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - void ExecuteExtensionCommand( - [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, - [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); -} - -[uuid(2aee8c37-9562-42da-8abf-61efeb2e4513), object, local, pointer_default(unique)] -interface ID3D12VideoDecodeCommandList3 - : ID3D12VideoDecodeCommandList2 -{ - void Barrier( - UINT32 NumBarrierGroups, - [annotation("_In_reads_(NumBarrierGroups)")] const D3D12_BARRIER_GROUP *pBarrierGroups - ); -} - -[uuid(db525ae4-6ad6-473c-baa7-59b2e37082e4), object, local, pointer_default(unique)] -interface ID3D12VideoProcessCommandList2 - : ID3D12VideoProcessCommandList1 -{ - - void SetProtectedResourceSession( - [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession - ); - - void InitializeExtensionCommand( - [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, - [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - void ExecuteExtensionCommand( - [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, - [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); -} - -[uuid(1a0a4ca4-9f08-40ce-9558-b411fd2666ff), object, local, pointer_default(unique)] -interface ID3D12VideoProcessCommandList3 - : ID3D12VideoProcessCommandList2 -{ - void Barrier( - UINT32 NumBarrierGroups, - [annotation("_In_reads_(NumBarrierGroups)")] const D3D12_BARRIER_GROUP *pBarrierGroups - ); -} - -[uuid(94971eca-2bdb-4769-88cf-3675ea757ebc), object, local, pointer_default(unique)] -interface ID3D12VideoEncodeCommandList1 - : ID3D12VideoEncodeCommandList -{ - void InitializeExtensionCommand( - [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, - [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, - SIZE_T InitializationParametersSizeInBytes); - - void ExecuteExtensionCommand( - [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, - [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, - SIZE_T ExecutionParametersSizeInBytes); -} - -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9); ") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60); ") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME, 0x0685b993, 0x3d8c, 0x43a0, 0x8b, 0x28, 0xd7, 0x4c, 0x2d, 0x68, 0x99, 0xa4);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME10, 0x142a1d0f, 0x69dd, 0x4ec9, 0x85, 0x91, 0xb1, 0x2f, 0xfc, 0xb9, 0x1a, 0x29);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12, 0x1a72925f, 0x0c2c, 0x4f15, 0x96, 0xfb, 0xb1, 0x7d, 0x14, 0x73, 0x60, 0x3f);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_422, 0x0bac4fe5, 0x1532, 0x4429, 0xa8, 0x54, 0xf8, 0x4d, 0xe0, 0x49, 0x53, 0xdb);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_422, 0x55bcac81, 0xf311, 0x4093, 0xa7, 0xd0, 0x1c, 0xbc, 0x0b, 0x84, 0x9b, 0xee);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN_444, 0x4008018f, 0xf537, 0x4b36, 0x98, 0xcf, 0x61, 0xaf, 0x8a, 0x2c, 0x1a, 0x33);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_EXT, 0x9cc55490, 0xe37c, 0x4932, 0x86, 0x84, 0x49, 0x20, 0xf9, 0xf6, 0x40, 0x9c);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_444, 0x0dabeffa, 0x4458, 0x4602, 0xbc, 0x03, 0x07, 0x95, 0x65, 0x9d, 0x61, 0x7c);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_444, 0x9798634d, 0xfe9d, 0x48e5, 0xb4, 0xda, 0xdb, 0xec, 0x45, 0xb3, 0xdf, 0x01);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN16, 0xa4fbdbb0, 0xa113, 0x482b, 0xa2, 0x32, 0x63, 0x5c, 0xc0, 0x69, 0x7f, 0x6d);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_420, 0x725cb506, 0xc29, 0x43c4, 0x94, 0x40, 0x8e, 0x93, 0x97, 0x90, 0x3a, 0x4); ") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_422, 0x5b77b9cd, 0x1a35, 0x4c30, 0x9f, 0xd8, 0xef, 0x4b, 0x60, 0xc0, 0x35, 0xdd); ") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_444, 0xd95161f9, 0xd44, 0x47e6, 0xbc, 0xf5, 0x1b, 0xfb, 0xfb, 0x26, 0x8f, 0x97); ") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_4444, 0xc91748d5, 0xfd18, 0x4aca, 0x9d, 0xb3, 0x3a, 0x66, 0x34, 0xab, 0x54, 0x7d); ") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_420, 0xcf782c83, 0xbef5, 0x4a2c, 0x87, 0xcb, 0x60, 0x19, 0xe7, 0xb1, 0x75, 0xac); ") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_422, 0xf04df417, 0xeee2, 0x4067, 0xa7, 0x78, 0xf3, 0x5c, 0x15, 0xab, 0x97, 0x21); ") -cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_444, 0x4cd00e17, 0x89ba, 0x48ef, 0xb9, 0xf9, 0xed, 0xcb, 0x82, 0x71, 0x3f, 0x65);") - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Video Encoder -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -typedef enum D3D12_VIDEO_ENCODER_AV1_PROFILE -{ - D3D12_VIDEO_ENCODER_AV1_PROFILE_MAIN = 0, - D3D12_VIDEO_ENCODER_AV1_PROFILE_HIGH = 1, - D3D12_VIDEO_ENCODER_AV1_PROFILE_PROFESSIONAL = 2, -} D3D12_VIDEO_ENCODER_AV1_PROFILE; - -typedef enum D3D12_VIDEO_ENCODER_AV1_LEVELS -{ // These values are defined according to the AV1 codec standard spec - D3D12_VIDEO_ENCODER_AV1_LEVELS_2_0 = 0, - D3D12_VIDEO_ENCODER_AV1_LEVELS_2_1 = 1, - D3D12_VIDEO_ENCODER_AV1_LEVELS_2_2 = 2, - D3D12_VIDEO_ENCODER_AV1_LEVELS_2_3 = 3, - D3D12_VIDEO_ENCODER_AV1_LEVELS_3_0 = 4, - D3D12_VIDEO_ENCODER_AV1_LEVELS_3_1 = 5, - D3D12_VIDEO_ENCODER_AV1_LEVELS_3_2 = 6, - D3D12_VIDEO_ENCODER_AV1_LEVELS_3_3 = 7, - D3D12_VIDEO_ENCODER_AV1_LEVELS_4_0 = 8, - D3D12_VIDEO_ENCODER_AV1_LEVELS_4_1 = 9, - D3D12_VIDEO_ENCODER_AV1_LEVELS_4_2 = 10, - D3D12_VIDEO_ENCODER_AV1_LEVELS_4_3 = 11, - D3D12_VIDEO_ENCODER_AV1_LEVELS_5_0 = 12, - D3D12_VIDEO_ENCODER_AV1_LEVELS_5_1 = 13, - D3D12_VIDEO_ENCODER_AV1_LEVELS_5_2 = 14, - D3D12_VIDEO_ENCODER_AV1_LEVELS_5_3 = 15, - D3D12_VIDEO_ENCODER_AV1_LEVELS_6_0 = 16, - D3D12_VIDEO_ENCODER_AV1_LEVELS_6_1 = 17, - D3D12_VIDEO_ENCODER_AV1_LEVELS_6_2 = 18, - D3D12_VIDEO_ENCODER_AV1_LEVELS_6_3 = 19, - D3D12_VIDEO_ENCODER_AV1_LEVELS_7_0 = 20, - D3D12_VIDEO_ENCODER_AV1_LEVELS_7_1 = 21, - D3D12_VIDEO_ENCODER_AV1_LEVELS_7_2 = 22, - D3D12_VIDEO_ENCODER_AV1_LEVELS_7_3 = 23, -} D3D12_VIDEO_ENCODER_AV1_LEVELS; - -typedef enum D3D12_VIDEO_ENCODER_AV1_TIER -{ - D3D12_VIDEO_ENCODER_AV1_TIER_MAIN = 0, - D3D12_VIDEO_ENCODER_AV1_TIER_HIGH = 1, -} D3D12_VIDEO_ENCODER_AV1_TIER; - -typedef struct D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS -{ - D3D12_VIDEO_ENCODER_AV1_LEVELS Level; - D3D12_VIDEO_ENCODER_AV1_TIER Tier; -} D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS; - -typedef enum D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS -{ - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_128x128_SUPERBLOCK = 0x1, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FILTER_INTRA = 0x2, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_EDGE_FILTER = 0x4, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTERINTRA_COMPOUND = 0x8, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MASKED_COMPOUND = 0x10, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_WARPED_MOTION = 0x20, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DUAL_FILTER = 0x40, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_JNT_COMP = 0x80, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FORCED_INTEGER_MOTION_VECTORS = 0x100, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SUPER_RESOLUTION = 0x200, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_RESTORATION_FILTER = 0x400, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_PALETTE_ENCODING = 0x800, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CDEF_FILTERING = 0x1000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_BLOCK_COPY = 0x2000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x4000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ORDER_HINT_TOOLS = 0x8000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_AUTO_SEGMENTATION = 0x10000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CUSTOM_SEGMENTATION = 0x20000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_FILTER_DELTAS = 0x40000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_DELTAS = 0x80000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_MATRIX = 0x100000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_REDUCED_TX_SET = 0x200000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MOTION_MODE_SWITCHABLE = 0x400000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ALLOW_HIGH_PRECISION_MV = 0x800000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SKIP_MODE_PRESENT = 0x1000000, - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DELTA_LF_PARAMS = 0x2000000, -} D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_AV1_TX_MODE { - D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 = 0, - D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST = 1, - D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT = 2, -} D3D12_VIDEO_ENCODER_AV1_TX_MODE; - -typedef enum D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS { - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_ONLY4x4 = (1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4), - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_LARGEST = (1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST), - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_SELECT = (1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT), -} D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS { - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP = 0, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH = 1, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP = 2, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR = 3, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE = 4, -} D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS; - -typedef enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS { - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP), - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SMOOTH = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH), - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SHARP = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP), - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_BILINEAR = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR), - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_SWITCHABLE = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE), -} D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE { - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_4x4 = 0, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_8x8 = 1, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_16x16 = 2, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_32x32 = 3, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_64x64 = 4, -} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE; - -typedef enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE { - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED = 0, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q = 1, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V = 2, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H = 3, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U = 4, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V = 5, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME = 6, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP = 7, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV = 8, -} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE; - -typedef enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS { - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_DISABLED = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED), - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_Q = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q), - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_V = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V), - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_H = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H), - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_U = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U), - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_V = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V), - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_REF_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME), - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_SKIP = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP), - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_GLOBALMV = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV), -} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE { - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_DISABLED = 0, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SWITCHABLE = 1, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_WIENER = 2, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SGRPROJ = 3, -} D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE; - -typedef enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE { - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_DISABLED = 0, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_32x32 = 1, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_64x64 = 2, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_128x128 = 3, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_256x256 = 4, -} D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE; - -typedef enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS { - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_NOT_SUPPORTED = 0x0, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_32x32 = 0x1, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_64x64 = 0x2, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_128x128 = 0x4, - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_256x256 = 0x8, -} D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION -{ - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY = 0, - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION = 1, - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM = 2, - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE = 3, -} D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION; - -typedef enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS { - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_NONE = 0, // None is supported, reference warp motion arguments are ignored and is_global syntax is false for all references - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_IDENTITY = (1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY), - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_TRANSLATION = (1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION), - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_ROTZOOM = (1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM), - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_AFFINE = (1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE), -} D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS { - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_NONE = 0, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION = 0x1, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION_DELTA = 0x2, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER = 0x4, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER_DELTA = 0x8, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CDEF_DATA = 0x10, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CONTEXT_UPDATE_TILE_ID = 0x20, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_COMPOUND_PREDICTION_MODE = 0x40, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_PRIMARY_REF_FRAME = 0x80, - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_REFERENCE_INDICES = 0x100, -} D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT { - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS SupportedFeatureFlags; - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS RequiredFeatureFlags; - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS SupportedInterpolationFilters; - D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS SupportedRestorationParams[3][3]; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS SupportedSegmentationModes; - D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS SupportedTxModes[4]; // Different for D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE types - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE SegmentationBlockSize; - D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS PostEncodeValuesFlags; - UINT MaxTemporalLayers; - UINT MaxSpatialLayers; -} D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT; - -typedef enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE -{ - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME = 0, - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME = 1, - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME = 2, - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME = 3, -} D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE; - -typedef enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS { - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_KEY_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME), - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTER_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME), - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTRA_ONLY_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME), - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_SWITCH_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME), -} D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE -{ - D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_SINGLE_REFERENCE = 0, - D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_COMPOUND_REFERENCE = 1, -} D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT { - D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE PredictionMode; - UINT MaxUniqueReferencesPerFrame; - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS SupportedFrameTypes; - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS SupportedReferenceWarpedMotionFlags; -} D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT; - -typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION { - D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS FeatureFlags; - UINT OrderHintBitsMinus1; -} D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION; - -typedef struct D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE -{ - UINT IntraDistance; - UINT InterFramePeriod; -} D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE; - -typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO -{ - D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION TransformationType; - INT TransformationMatrix[8]; - BOOL InvalidAffineSet; // Valid or invalid on affine set -} D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO; - -typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR -{ - UINT ReconstructedPictureResourceIndex; - UINT TemporalLayerIndexPlus1; - UINT SpatialLayerIndexPlus1; - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType; - // Only used if supported in D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS, ignored by driver otherwise - D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO WarpedMotionInfo; - UINT OrderHint; - UINT PictureIndex; -} D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR; - -typedef enum D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS -{ - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_ERROR_RESILIENT_MODE = 0x1, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_CDF_UPDATE = 0x2, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_PALETTE_ENCODING = 0x4, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_SKIP_MODE = 0x8, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x10, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FORCE_INTEGER_MOTION_VECTORS = 0x20, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_INTRA_BLOCK_COPY = 0x40, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_USE_SUPER_RESOLUTION = 0x80, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_FRAME_END_UPDATE_CDF = 0x100, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO = 0x200, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM = 0x400, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_WARPED_MOTION = 0x800, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_REDUCED_TX_SET = 0x1000, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_MOTION_MODE_SWITCHABLE = 0x2000, - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_HIGH_PRECISION_MV = 0x4000, - -} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG { - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE FrameRestorationType[3]; - D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE LoopRestorationPixelSize[3]; -} D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA { - UINT64 EnabledFeatures; // D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS - // For the enabled features in EnabledFeatures, the array below - // is indexed by D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE - 1 - INT64 FeatureValue[8]; -} D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA; - -typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG { - UINT64 UpdateMap; - UINT64 TemporalUpdate; - UINT64 UpdateData; - UINT64 NumSegments; - D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA SegmentsData[8]; -} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP { - UINT SegmentsMapByteSize; - UINT8* pSegmentsMap; -} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG { - UINT64 LoopFilterLevel[2]; - UINT64 LoopFilterLevelU; - UINT64 LoopFilterLevelV; - UINT64 LoopFilterSharpnessLevel; - UINT64 LoopFilterDeltaEnabled; - // loop_filter_delta_update = UpdateRefDelta || UpdateModeDelta - UINT64 UpdateRefDelta; - INT64 RefDeltas[8]; - UINT64 UpdateModeDelta; - INT64 ModeDeltas[2]; -} D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG { - UINT64 DeltaLFPresent; - UINT64 DeltaLFMulti; - UINT64 DeltaLFRes; -} D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG { - UINT64 BaseQIndex; - INT64 YDCDeltaQ; - INT64 UDCDeltaQ; - INT64 UACDeltaQ; - INT64 VDCDeltaQ; - INT64 VACDeltaQ; - UINT64 UsingQMatrix; - UINT64 QMY; - UINT64 QMU; - UINT64 QMV; -} D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG { - UINT64 DeltaQPresent; - UINT64 DeltaQRes; -} D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG { - UINT64 CdefBits; - UINT64 CdefDampingMinus3; - UINT64 CdefYPriStrength[8]; - UINT64 CdefUVPriStrength[8]; - UINT64 CdefYSecStrength[8]; - UINT64 CdefUVSecStrength[8]; -} D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG; - -typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA -{ - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS Flags; - D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType; - D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE CompoundPredictionType; - D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS InterpolationFilter; - D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG FrameRestorationConfig; - D3D12_VIDEO_ENCODER_AV1_TX_MODE TxMode; - UINT SuperResDenominator; - UINT OrderHint; - UINT PictureIndex; - UINT TemporalLayerIndexPlus1; - UINT SpatialLayerIndexPlus1; - D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR ReferenceFramesReconPictureDescriptors[8]; - UINT ReferenceIndices[7]; - UINT PrimaryRefFrame; - UINT RefreshFrameFlags; - D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter; - D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta; - D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization; - D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta; - D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF; - UINT QPMapValuesCount; - [annotation("_Field_size_full_(QPMapValuesCount)")] INT16* pRateControlQPMap; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG CustomSegmentation; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP CustomSegmentsMap; -} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA; - -typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES -{ - UINT64 RowCount; - UINT64 ColCount; - UINT64 RowHeights[D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS]; - UINT64 ColWidths[D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS]; - UINT64 ContextUpdateTileId; -} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES; - -typedef struct D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES -{ - UINT64 CompoundPredictionType; // D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE - D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter; - D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta; - D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization; - D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta; - D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF; - D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG SegmentationConfig; - UINT64 PrimaryRefFrame; // Aligned to 64 for use of post encode metadata with predication - UINT64 ReferenceIndices[7]; // Aligned to 64 for use of post encode metadata with predication -} D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES; - -// -// Rate control API -// - -typedef enum D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE -{ - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_ABSOLUTE_QP_MAP = 0, - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CQP = 1, - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CBR = 2, - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_VBR = 3, - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_QVBR = 4, -} D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE; - -typedef enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS -{ - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_DELTA_QP = 0x1, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_FRAME_ANALYSIS = 0x2, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE = 0x4, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_INITIAL_QP = 0x8, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE = 0x10, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES = 0x20, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_EXTENSION1_SUPPORT = 0x40, - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QUALITY_VS_SPEED = 0x80, -} D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP { - UINT ConstantQP_FullIntracodedFrame; - UINT ConstantQP_InterPredictedFrame_PrevRefOnly; - UINT ConstantQP_InterPredictedFrame_BiDirectionalRef; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 { - UINT ConstantQP_FullIntracodedFrame; - UINT ConstantQP_InterPredictedFrame_PrevRefOnly; - UINT ConstantQP_InterPredictedFrame_BiDirectionalRef; - UINT QualityVsSpeed; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetBitRate; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetBitRate; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; - UINT QualityVsSpeed; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetAvgBitRate; - UINT64 PeakBitRate; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetAvgBitRate; - UINT64 PeakBitRate; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; - UINT QualityVsSpeed; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR { - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetAvgBitRate; - UINT64 PeakBitRate; - UINT ConstantQualityTarget; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 -{ - UINT InitialQP; - UINT MinQP; - UINT MaxQP; - UINT64 MaxFrameBitSize; - UINT64 TargetAvgBitRate; - UINT64 PeakBitRate; - UINT ConstantQualityTarget; - UINT64 VBVCapacity; - UINT64 InitialVBVFullness; - UINT QualityVsSpeed; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP { - UINT QualityVsSpeed; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS -{ - UINT DataSize; - union - { - const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP* pConfiguration_CQP; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR* pConfiguration_CBR; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR* pConfiguration_VBR; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR* pConfiguration_QVBR; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1* pConfiguration_CQP1; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1* pConfiguration_CBR1; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1* pConfiguration_VBR1; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1* pConfiguration_QVBR1; - const D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP* pConfiguration_AbsoluteQPMap; - }; -} D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS; - -typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL { - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE Mode; - D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS Flags; - D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS ConfigParams; - DXGI_RATIONAL TargetFrameRate; -} D3D12_VIDEO_ENCODER_RATE_CONTROL; - -// -// Video Encoder support API -// - -typedef enum D3D12_VIDEO_ENCODER_CODEC -{ - D3D12_VIDEO_ENCODER_CODEC_H264 = 0, - D3D12_VIDEO_ENCODER_CODEC_HEVC = 1, - D3D12_VIDEO_ENCODER_CODEC_AV1 = 2, -} D3D12_VIDEO_ENCODER_CODEC; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC -{ - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - BOOL IsSupported; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC; - -typedef enum D3D12_VIDEO_ENCODER_PROFILE_H264 -{ - D3D12_VIDEO_ENCODER_PROFILE_H264_MAIN = 0, - D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH = 1, - D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH_10 = 2, -} D3D12_VIDEO_ENCODER_PROFILE_H264; - -typedef enum D3D12_VIDEO_ENCODER_PROFILE_HEVC -{ - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN = 0, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10 = 1, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12 = 2, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_422 = 3, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_422 = 4, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN_444 = 5, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_444 = 6, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_444 = 7, - D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN16_444 = 8, -} D3D12_VIDEO_ENCODER_PROFILE_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_PROFILE_DESC -{ - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_PROFILE_H264* pH264Profile; - D3D12_VIDEO_ENCODER_PROFILE_HEVC* pHEVCProfile; - D3D12_VIDEO_ENCODER_AV1_PROFILE* pAV1Profile; - }; -} D3D12_VIDEO_ENCODER_PROFILE_DESC; - -typedef enum D3D12_VIDEO_ENCODER_LEVELS_H264 -{ - D3D12_VIDEO_ENCODER_LEVELS_H264_1 = 0, - D3D12_VIDEO_ENCODER_LEVELS_H264_1b = 1, - D3D12_VIDEO_ENCODER_LEVELS_H264_11 = 2, - D3D12_VIDEO_ENCODER_LEVELS_H264_12 = 3, - D3D12_VIDEO_ENCODER_LEVELS_H264_13 = 4, - D3D12_VIDEO_ENCODER_LEVELS_H264_2 = 5, - D3D12_VIDEO_ENCODER_LEVELS_H264_21 = 6, - D3D12_VIDEO_ENCODER_LEVELS_H264_22 = 7, - D3D12_VIDEO_ENCODER_LEVELS_H264_3 = 8, - D3D12_VIDEO_ENCODER_LEVELS_H264_31 = 9, - D3D12_VIDEO_ENCODER_LEVELS_H264_32 = 10, - D3D12_VIDEO_ENCODER_LEVELS_H264_4 = 11, - D3D12_VIDEO_ENCODER_LEVELS_H264_41 = 12, - D3D12_VIDEO_ENCODER_LEVELS_H264_42 = 13, - D3D12_VIDEO_ENCODER_LEVELS_H264_5 = 14, - D3D12_VIDEO_ENCODER_LEVELS_H264_51 = 15, - D3D12_VIDEO_ENCODER_LEVELS_H264_52 = 16, - D3D12_VIDEO_ENCODER_LEVELS_H264_6 = 17, - D3D12_VIDEO_ENCODER_LEVELS_H264_61 = 18, - D3D12_VIDEO_ENCODER_LEVELS_H264_62 = 19, -} D3D12_VIDEO_ENCODER_LEVELS_H264; - -typedef enum D3D12_VIDEO_ENCODER_TIER_HEVC -{ - D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = 0, - D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = 1, -} D3D12_VIDEO_ENCODER_TIER_HEVC; - -typedef enum D3D12_VIDEO_ENCODER_LEVELS_HEVC -{ - D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = 0, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = 1, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = 2, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = 3, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = 4, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = 5, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = 6, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = 7, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = 8, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = 9, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = 10, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = 11, - D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = 12, -} D3D12_VIDEO_ENCODER_LEVELS_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC -{ - D3D12_VIDEO_ENCODER_LEVELS_HEVC Level; - D3D12_VIDEO_ENCODER_TIER_HEVC Tier; -} D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_LEVEL_SETTING -{ - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_LEVELS_H264* pH264LevelSetting; - D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC* pHEVCLevelSetting; - D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS* pAV1LevelSetting; - }; -} D3D12_VIDEO_ENCODER_LEVEL_SETTING; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL -{ - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input - BOOL IsSupported; // output - D3D12_VIDEO_ENCODER_LEVEL_SETTING MinSupportedLevel; // output - D3D12_VIDEO_ENCODER_LEVEL_SETTING MaxSupportedLevel; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC -{ - UINT Width; - UINT Height; -} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC -{ - UINT WidthRatio; - UINT HeightRatio; -} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT -{ - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - UINT ResolutionRatiosCount; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION -{ - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - UINT ResolutionRatiosCount; // input - BOOL IsSupported; // output - D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MinResolutionSupported; // output - D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MaxResolutionSupported; // output - UINT ResolutionWidthMultipleRequirement; // output - UINT ResolutionHeightMultipleRequirement; // output - [annotation("_Field_size_full_(ResolutionRatiosCount)")] D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC* pResolutionRatios; -} D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT -{ - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input - DXGI_FORMAT Format; // input - BOOL IsSupported; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE -{ - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE RateControlMode; // input - BOOL IsSupported; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE; - -typedef enum D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE -{ - D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE = 0, - D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED = 1, -} D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE { - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input - D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; // input - D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefreshMode; // input - BOOL IsSupported; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE; - -typedef enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE -{ - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME = 0, - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION = 1, - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = 2, - 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; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE -{ - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input - D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; // input - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode; // input - BOOL IsSupported; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE; - -typedef enum D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS -{ - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NOT_SPECIFIED = 0x1, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_CODEC_CONSTRAINT = 0x2, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_HARDWARE_CONSTRAINT = 0x4, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_ROWS_COUNT = 0x8, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_COLS_COUNT = 0x10, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_WIDTH = 0x20, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_AREA = 0x40, - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_TOTAL_TILES = 0x80, - -} D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT -{ - BOOL Use128SuperBlocks; - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES TilesConfiguration; - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS ValidationFlags; - UINT MinTileRows; - UINT MaxTileRows; - UINT MinTileCols; - UINT MaxTileCols; - UINT MinTileWidth; - UINT MaxTileWidth; - UINT MinTileArea; - UINT MaxTileArea; - UINT TileSizeBytesMinus1; -} D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT; - -typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT* pAV1Support; - }; -} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG -{ - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input - D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; // input - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode; // input - D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC FrameResolution; // input - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT CodecSupport; // input/output - BOOL IsSupported; // output -} 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_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC -{ - UINT NodeMask; - D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags; - D3D12_VIDEO_ENCODER_CODEC EncodeCodec; - D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; - D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel; - UINT ResolutionsListCount; - [annotation("_Field_size_full_(ResolutionsListCount)")] const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList; -} D3D12_VIDEO_ENCODER_HEAP_DESC; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE { - D3D12_VIDEO_ENCODER_HEAP_DESC HeapDesc; // input - BOOL IsSupported; // output - UINT64 MemoryPoolL0Size; // output - UINT64 MemoryPoolL1Size; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE; - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS -{ - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CABAC_ENCODING_SUPPORT = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = 0x8, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_SPATIAL_ENCODING_SUPPORT = 0x10, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_TEMPORAL_ENCODING_SUPPORT = 0x20, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x40, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x80, -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES = 1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = 2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING = 3, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES = 4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = 5, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = 6, -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES; - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = (1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED), - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_1_DISABLE_ALL_SLICE_BLOCK_EDGES = (1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES), - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = (1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS), - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_3_USE_TWO_STAGE_DEBLOCKING = (1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING), - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_4_DISABLE_CHROMA_BLOCK_EDGES = (1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES), - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = (1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES), - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = (1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING), -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS SupportFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS DisableDeblockingFilterSupportedModes; -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264; - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS -{ - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_SAO_FILTER_SUPPORT = 0x8, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_SUPPORT = 0x10, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_REQUIRED = 0x20, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_SUPPORT = 0x40, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = 0x80, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = 0x100, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x200, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_SUPPORT = 0x400, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_REQUIRED = 0x800, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_SUPPORT = 0x1000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_REQUIRED = 0x2000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_SUPPORT = 0x4000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_REQUIRED = 0x8000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_SUPPORT = 0x10000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_REQUIRED = 0x20000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_SUPPORT = 0x40000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_REQUIRED = 0x80000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_SUPPORT = 0x100000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_REQUIRED = 0x200000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_SUPPORT = 0x400000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_REQUIRED = 0x800000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_SUPPORT = 0x1000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_REQUIRED = 0x2000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_SUPPORT = 0x4000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_REQUIRED = 0x8000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_SUPPORT = 0x10000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_REQUIRED = 0x20000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_SUPPORT = 0x40000000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_REQUIRED = 0x80000000, // 2^31 - 32 bit integer enum type - -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_8x8 = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_16x16 = 1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_32x32 = 2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_64x64 = 3, -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE; - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_4x4 = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_8x8 = 1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_16x16 = 2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_32x32 = 3, -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; - UCHAR max_transform_hierarchy_depth_inter; - UCHAR max_transform_hierarchy_depth_intra; -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC; - - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 -{ - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_NONE = 0x0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_SUPPORT = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_REQUIRED = 0x2, -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1)") - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1 { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; - UCHAR max_transform_hierarchy_depth_inter; - UCHAR max_transform_hierarchy_depth_intra; - UINT allowed_diff_cu_chroma_qp_offset_depth_values; - UINT allowed_log2_sao_offset_scale_luma_values; - UINT allowed_log2_sao_offset_scale_chroma_values; - UINT allowed_log2_max_transform_skip_block_size_minus2_values; - UINT allowed_chroma_qp_offset_list_len_minus1_values; - UINT allowed_cb_qp_offset_list_values[6]; - UINT allowed_cr_qp_offset_list_values[6]; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 SupportFlags1; -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264* pH264Support; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC* pHEVCSupport; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1* pHEVCSupport1; - D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT* pAV1Support; - }; -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT { - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input - BOOL IsSupported; // output - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT CodecSupportLimits; // input/output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 { - UINT MaxL0ReferencesForP; - UINT MaxL0ReferencesForB; - UINT MaxL1ReferencesForB; - UINT MaxLongTermReferences; - UINT MaxDPBCapacity; -} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC { - UINT MaxL0ReferencesForP; - UINT MaxL0ReferencesForB; - UINT MaxL1ReferencesForB; - UINT MaxLongTermReferences; - UINT MaxDPBCapacity; -} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT { - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264* pH264Support; - D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC* pHEVCSupport; - D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT* pAV1Support; - }; -} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT { - UINT NodeIndex; // input - D3D12_VIDEO_ENCODER_CODEC Codec; // input - D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input - BOOL IsSupported; // output - D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT PictureSupport; // output -} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT; - -typedef enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS -{ - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK = 0x1, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE = 0x2, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE = 0x4, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = 0x8, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = 0x10, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = 0x20, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE = 0x40, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = 0x80, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = 0x100, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_INITIAL_QP_AVAILABLE = 0x200, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = 0x400, - D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = 0x800, - 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_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS -{ - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_ADAPTIVE_8x8_TRANSFORM = 0x2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ENABLE_CABAC_ENCODING = 0x4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x8, -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS)") - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_DISABLED = 0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_TEMPORAL = 1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_SPATIAL = 2, -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 -{ - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS ConfigurationFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES DirectModeConfig; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES DisableDeblockingFilterConfig; -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264; - -typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS -{ - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES = 0x1, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x2, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_SAO_FILTER = 0x4, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES = 0x8, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_ASYMETRIC_MOTION_PARTITION = 0x10, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_TRANSFORM_SKIPPING = 0x20, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x40, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_ROTATION = 0x80, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT = 0x100, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_IMPLICIT_RDPCM = 0x200, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXPLICIT_RDPCM = 0x400, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING = 0x800, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_INTRA_SMOOTHING_DISABLED = 0x1000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_HIGH_PRECISION_OFFSETS = 0x2000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION = 0x4000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT = 0x8000, - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_SEPARATE_COLOUR_PLANE = 0x10000, -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS ConfigurationFlags; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; - UCHAR max_transform_hierarchy_depth_inter; - UCHAR max_transform_hierarchy_depth_intra; -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION -{ - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264* pH264Config; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC* pHEVCConfig; - D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION* pAV1Config; - }; -} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION; - -typedef struct D3D12_VIDEO_ENCODER_INTRA_REFRESH -{ - D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE Mode; - UINT IntraRefreshDuration; -} D3D12_VIDEO_ENCODER_INTRA_REFRESH; - - -typedef enum D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE -{ - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM = 0, - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_FULL_PIXEL = 1, - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_HALF_PIXEL = 2, - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL = 3, - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_EIGHTH_PIXEL = 4, -} D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS -{ - UINT MaxSubregionsNumber; - UINT MaxIntraRefreshFrameDuration; - UINT SubregionBlockPixelsSize; - UINT QPMapRegionPixelsSize; -} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS; - -typedef enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS -{ - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_NOT_SUPPORTED = 0x1, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INPUT_FORMAT_NOT_SUPPORTED = 0x8, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_CONFIGURATION_NOT_SUPPORTED = 0x10, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_MODE_NOT_SUPPORTED = 0x20, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = 0x40, - D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INTRA_REFRESH_MODE_NOT_SUPPORTED = 0x80, - 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_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 -{ - UINT GOPLength; - UINT PPicturePeriod; - UCHAR pic_order_cnt_type; - UCHAR log2_max_frame_num_minus4; - UCHAR log2_max_pic_order_cnt_lsb_minus4; -} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264; - -typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC -{ - UINT GOPLength; - UINT PPicturePeriod; - UCHAR log2_max_pic_order_cnt_lsb_minus4; -} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE -{ - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264* pH264GroupOfPictures; - D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC* pHEVCGroupOfPictures; - D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE* pAV1SequenceStructure; - }; -} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT -{ - // input - 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; - - // single value output - D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; - D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; - D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; - D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; // assuming max resolution from input list - - // resolution dependent output - [annotation("_Field_size_full_(ResolutionsListCount)")] D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS* pResolutionDependentSupport; -} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES -{ - // Mutually exclusive options according to selected mode - union - { - // Use with mode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION - UINT MaxBytesPerSlice; - - // Use with mode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED - UINT NumberOfCodingUnitsPerSlice; - - // Use with mode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION - UINT NumberOfRowsPerSlice; - - // Use with mode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME - UINT NumberOfSlicesPerFrame; - }; -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA -{ - UINT DataSize; - union - { - const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES* pSlicesPartition_H264; - const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES* pSlicesPartition_HEVC; - const D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES* pTilesPartition_AV1; - }; - -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1 -{ - /* Below match existing D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT */ - 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_LIMITS* pResolutionDependentSupport; - - /* Below are new arguments for D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1 */ - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; // input - UINT MaxQualityVsSpeed; -} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1; - -typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS -{ - 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_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS; - -// -// Video Encoder creation API -// - -typedef enum D3D12_VIDEO_ENCODER_FLAGS -{ - D3D12_VIDEO_ENCODER_FLAG_NONE = 0x0, -} D3D12_VIDEO_ENCODER_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_DESC -{ - UINT NodeMask; - D3D12_VIDEO_ENCODER_FLAGS Flags; - D3D12_VIDEO_ENCODER_CODEC EncodeCodec; - D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; - DXGI_FORMAT InputFormat; - D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE MaxMotionEstimationPrecision; -} D3D12_VIDEO_ENCODER_DESC; - -[uuid(2E0D212D-8DF9-44A6-A770-BB289B182737), object, local, pointer_default(unique)] -interface ID3D12VideoEncoder - : ID3D12Pageable -{ - UINT GetNodeMask(); - D3D12_VIDEO_ENCODER_FLAGS GetEncoderFlags(); - D3D12_VIDEO_ENCODER_CODEC GetCodec(); - HRESULT GetCodecProfile([annotation("_Inout_")] D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); - HRESULT GetCodecConfiguration([annotation("_Inout_")] D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig); - DXGI_FORMAT GetInputFormat(); - D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE GetMaxMotionEstimationPrecision(); -} - -[uuid(22B35D96-876A-44C0-B25E-FB8C9C7F1C4A), object, local, pointer_default(unique)] -interface ID3D12VideoEncoderHeap - : ID3D12Pageable -{ - UINT GetNodeMask(); - D3D12_VIDEO_ENCODER_HEAP_FLAGS GetEncoderHeapFlags(); - D3D12_VIDEO_ENCODER_CODEC GetCodec(); - HRESULT GetCodecProfile([annotation("_Inout_")] D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); - HRESULT GetCodecLevel([annotation("_Inout_")] D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel); - UINT GetResolutionListCount(); - HRESULT GetResolutionList( - const UINT ResolutionsListCount, - [annotation("_Out_writes_(ResolutionsListCount)")] D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList); -} - -[uuid(4243ADB4-3A32-4666-973C-0CCC5625DC44), object, local, pointer_default(unique)] -interface ID3D12VideoDevice3 - : ID3D12VideoDevice2 -{ - - HRESULT CreateVideoEncoder( - [annotation("_In_")] const D3D12_VIDEO_ENCODER_DESC* pDesc, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoEncoder, - [annotation("_COM_Outptr_")] void** ppVideoEncoder); - - HRESULT CreateVideoEncoderHeap( - [annotation("_In_")] const D3D12_VIDEO_ENCODER_HEAP_DESC* pDesc, - [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoEncoderHeap, - [annotation("_COM_Outptr_")] void** ppVideoEncoderHeap); - -} - -// -// Video Encoder operation API -// - - -typedef enum D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 -{ - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_I_FRAME = 0, - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_P_FRAME = 1, - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_B_FRAME = 2, - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_IDR_FRAME = 3, -} D3D12_VIDEO_ENCODER_FRAME_TYPE_H264; - - -typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 -{ - UINT ReconstructedPictureResourceIndex; - BOOL IsLongTermReference; - UINT LongTermPictureIdx; - UINT PictureOrderCountNumber; - UINT FrameDecodingOrderNumber; - UINT TemporalLayerIndex; -} D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264; - -typedef enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS -{ - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2, -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION -{ - UCHAR memory_management_control_operation; - UINT difference_of_pic_nums_minus1; - UINT long_term_pic_num; - UINT long_term_frame_idx; - UINT max_long_term_frame_idx_plus1; -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION -{ - UCHAR modification_of_pic_nums_idc; - UINT abs_diff_pic_num_minus1; - UINT long_term_pic_num; -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 -{ - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS Flags; - D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 FrameType; - UINT pic_parameter_set_id; - UINT idr_pic_id; - UINT PictureOrderCountNumber; - UINT FrameDecodingOrderNumber; - UINT TemporalLayerIndex; - UINT List0ReferenceFramesCount; - [annotation("_Field_size_full_(List0ReferenceFramesCount)")] UINT* pList0ReferenceFrames; - UINT List1ReferenceFramesCount; - [annotation("_Field_size_full_(List1ReferenceFramesCount)")] UINT* pList1ReferenceFrames; - UINT ReferenceFramesReconPictureDescriptorsCount; - [annotation("_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount)")] D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264* pReferenceFramesReconPictureDescriptors; - UCHAR adaptive_ref_pic_marking_mode_flag; - UINT RefPicMarkingOperationsCommandsCount; - [annotation("_Field_size_full_(RefPicMarkingOperationsCommandsCount)")] D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION* pRefPicMarkingOperationsCommands; - UINT List0RefPicModificationsCount; - [annotation("_Field_size_full_(List0RefPicModificationsCount)")] D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION* pList0RefPicModifications; - UINT List1RefPicModificationsCount; - [annotation("_Field_size_full_(List1RefPicModificationsCount)")] D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION* pList1RefPicModifications; - UINT QPMapValuesCount; - [annotation("_Field_size_full_(QPMapValuesCount)")] INT8 *pRateControlQPMap; -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264; - -typedef enum D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC -{ - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_I_FRAME = 0, - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_P_FRAME = 1, - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_B_FRAME = 2, - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_IDR_FRAME = 3, -} D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC -{ - UINT ReconstructedPictureResourceIndex; - BOOL IsRefUsedByCurrentPic; - BOOL IsLongTermReference; - UINT PictureOrderCountNumber; - UINT TemporalLayerIndex; -} D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC; - -typedef enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS -{ - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CROSS_COMPONENT_PREDICTION = 0x4, - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CHROMA_QP_OFFSET_LIST = 0x8, -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC -{ - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; - UINT slice_pic_parameter_set_id; - UINT PictureOrderCountNumber; - UINT TemporalLayerIndex; - UINT List0ReferenceFramesCount; - [annotation("_Field_size_full_(List0ReferenceFramesCount)")] UINT* pList0ReferenceFrames; - UINT List1ReferenceFramesCount; - [annotation("_Field_size_full_(List1ReferenceFramesCount)")] UINT* pList1ReferenceFrames; - UINT ReferenceFramesReconPictureDescriptorsCount; - [annotation("_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount)")] D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC* pReferenceFramesReconPictureDescriptors; - UINT List0RefPicModificationsCount; - [annotation("_Field_size_full_(List0RefPicModificationsCount)")] UINT* pList0RefPicModifications; - UINT List1RefPicModificationsCount; - [annotation("_Field_size_full_(List1RefPicModificationsCount)")] UINT* pList1RefPicModifications; - UINT QPMapValuesCount; - [annotation("_Field_size_full_(QPMapValuesCount)")] INT8 *pRateControlQPMap; -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1 -{ - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; - D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; - UINT slice_pic_parameter_set_id; - UINT PictureOrderCountNumber; - UINT TemporalLayerIndex; - UINT List0ReferenceFramesCount; - [annotation("_Field_size_full_(List0ReferenceFramesCount)")] UINT* pList0ReferenceFrames; - UINT List1ReferenceFramesCount; - [annotation("_Field_size_full_(List1ReferenceFramesCount)")] UINT* pList1ReferenceFrames; - UINT ReferenceFramesReconPictureDescriptorsCount; - [annotation("_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount)")] D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC* pReferenceFramesReconPictureDescriptors; - UINT List0RefPicModificationsCount; - [annotation("_Field_size_full_(List0RefPicModificationsCount)")] UINT* pList0RefPicModifications; - UINT List1RefPicModificationsCount; - [annotation("_Field_size_full_(List1RefPicModificationsCount)")] UINT* pList1RefPicModifications; - UINT QPMapValuesCount; - [annotation("_Field_size_full_(QPMapValuesCount)")] INT8* pRateControlQPMap; - UCHAR diff_cu_chroma_qp_offset_depth; - UCHAR log2_sao_offset_scale_luma; - UCHAR log2_sao_offset_scale_chroma; - UCHAR log2_max_transform_skip_block_size_minus2; - UCHAR chroma_qp_offset_list_len_minus1; - CHAR cb_qp_offset_list[6]; - CHAR cr_qp_offset_list[6]; -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1; - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA -{ - UINT DataSize; - union - { - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264* pH264PicData; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC* pHEVCPicData; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1* pHEVCPicData1; - D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA* pAV1PicData; - }; -} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA; - -typedef struct D3D12_VIDEO_ENCODE_REFERENCE_FRAMES -{ - UINT NumTexture2Ds; - [annotation("_Field_size_full_(NumTexture2Ds)")] ID3D12Resource** ppTexture2Ds; - [annotation("_Field_size_full_(NumTexture2Ds)")] UINT* pSubresources; -} D3D12_VIDEO_ENCODE_REFERENCE_FRAMES; - -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_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC -{ - 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_PICTURE_CONTROL_DESC; - -typedef enum D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS -{ - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_NONE = 0x0, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RESOLUTION_CHANGE = 0x1, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RATE_CONTROL_CHANGE = 0x2, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_SUBREGION_LAYOUT_CHANGE = 0x4, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH = 0x8, - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_GOP_SEQUENCE_CHANGE = 0x10, -} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC -{ - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags; - D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig; - D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; - D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; - D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData; - D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; -} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC; - -// -// Video Encoder operation commands API -// - -typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS -{ - D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; - D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC PictureControlDesc; - ID3D12Resource *pInputFrame; - UINT InputFrameSubresource; - UINT CurrentFrameBitstreamMetadataSize; -} D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS; - -typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM -{ - ID3D12Resource* pBuffer; - UINT64 FrameStartOffset; -} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM; - -typedef struct D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE -{ - ID3D12Resource *pReconstructedPicture; - UINT ReconstructedPictureSubresource; -} D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE; - -typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA -{ - UINT64 bSize; - UINT64 bStartOffset; - UINT64 bHeaderSize; -} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA; - -typedef enum D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS -{ - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_NO_ERROR = 0x0, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_CODEC_PICTURE_CONTROL_NOT_SUPPORTED = 0x1, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = 0x2, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_REFERENCE_PICTURES = 0x4, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_RECONFIGURATION_REQUEST_NOT_SUPPORTED = 0x8, - D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_METADATA_BUFFER_SOURCE = 0x10, -} D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS; -cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS)") - -typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS -{ - UINT64 AverageQP; - UINT64 IntraCodingUnitsCount; - UINT64 InterCodingUnitsCount; - UINT64 SkipCodingUnitsCount; - UINT64 AverageMotionEstimationXDirection; - UINT64 AverageMotionEstimationYDirection; -} D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS; - -typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA -{ - UINT64 EncodeErrorFlags; // D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS - D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS EncodeStats; - UINT64 EncodedBitstreamWrittenBytesCount; - UINT64 WrittenSubregionsCount; -} D3D12_VIDEO_ENCODER_OUTPUT_METADATA; - -typedef struct D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER -{ - ID3D12Resource* pBuffer; - UINT64 Offset; -} D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER; - -typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS -{ - 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_RESOLVE_METADATA_INPUT_ARGUMENTS; - -typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS -{ - D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; -} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS; - -typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS -{ - D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM Bitstream; - D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; - D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; -} D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS; - -[uuid(895491e2-e701-46a9-9a1f-8d3480ed867a), object, local, pointer_default(unique)] -interface ID3D12VideoEncodeCommandList2 - : ID3D12VideoEncodeCommandList1 -{ - void EncodeFrame( - [annotation("_In_")] ID3D12VideoEncoder* pEncoder, - [annotation("_In_")] ID3D12VideoEncoderHeap *pHeap, - [annotation("_In_")] const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments, - [annotation("_In_")] const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments); - - void ResolveEncoderOutputMetadata( - [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS* pInputArguments, - [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS* pOutputArguments); -} - - -[uuid(7f027b22-1515-4e85-aa0d-026486580576), object, local, pointer_default(unique)] -interface ID3D12VideoEncodeCommandList3 - : ID3D12VideoEncodeCommandList2 -{ - - void Barrier( - UINT32 NumBarrierGroups, - [annotation("_In_reads_(NumBarrierGroups)")] const D3D12_BARRIER_GROUP *pBarrierGroups - ); -} - -cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") -#pragma endregion - -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37);" ) -cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A);" ) -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);" ) diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dcommon.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dcommon.h deleted file mode 100644 index 2e2418d..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dcommon.h +++ /dev/null @@ -1,1133 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0628 */ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __d3dcommon_h__ -#define __d3dcommon_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -#ifndef DECLSPEC_XFGVIRT -#if defined(_CONTROL_FLOW_GUARD_XFG) -#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) -#else -#define DECLSPEC_XFGVIRT(base, func) -#endif -#endif - -/* Forward Declarations */ - -#ifndef __ID3D10Blob_FWD_DEFINED__ -#define __ID3D10Blob_FWD_DEFINED__ -typedef interface ID3D10Blob ID3D10Blob; - -#endif /* __ID3D10Blob_FWD_DEFINED__ */ - - -#ifndef __ID3DDestructionNotifier_FWD_DEFINED__ -#define __ID3DDestructionNotifier_FWD_DEFINED__ -typedef interface ID3DDestructionNotifier ID3DDestructionNotifier; - -#endif /* __ID3DDestructionNotifier_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3dcommon_0000_0000 */ -/* [local] */ - -typedef -enum D3D_DRIVER_TYPE - { - D3D_DRIVER_TYPE_UNKNOWN = 0, - D3D_DRIVER_TYPE_HARDWARE = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) , - D3D_DRIVER_TYPE_REFERENCE = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) , - D3D_DRIVER_TYPE_NULL = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) , - D3D_DRIVER_TYPE_SOFTWARE = ( D3D_DRIVER_TYPE_NULL + 1 ) , - D3D_DRIVER_TYPE_WARP = ( D3D_DRIVER_TYPE_SOFTWARE + 1 ) - } D3D_DRIVER_TYPE; - -typedef -enum D3D_FEATURE_LEVEL - { - D3D_FEATURE_LEVEL_1_0_GENERIC = 0x100, - D3D_FEATURE_LEVEL_1_0_CORE = 0x1000, - D3D_FEATURE_LEVEL_9_1 = 0x9100, - D3D_FEATURE_LEVEL_9_2 = 0x9200, - D3D_FEATURE_LEVEL_9_3 = 0x9300, - D3D_FEATURE_LEVEL_10_0 = 0xa000, - D3D_FEATURE_LEVEL_10_1 = 0xa100, - D3D_FEATURE_LEVEL_11_0 = 0xb000, - D3D_FEATURE_LEVEL_11_1 = 0xb100, - D3D_FEATURE_LEVEL_12_0 = 0xc000, - D3D_FEATURE_LEVEL_12_1 = 0xc100, - D3D_FEATURE_LEVEL_12_2 = 0xc200 - } D3D_FEATURE_LEVEL; - -#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048 -#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096 -#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048 -#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096 -#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512 -#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096 -#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256 -#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2 -#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535 -#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575 -#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1 -#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4 -#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128 -#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048 -#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192 -typedef -enum D3D_PRIMITIVE_TOPOLOGY - { - D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, - D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1, - D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2, - D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN = 6, - D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, - D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, - D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33, - D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34, - D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35, - D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36, - D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37, - D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38, - D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39, - D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40, - D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41, - D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42, - D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43, - D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44, - D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45, - D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46, - D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47, - D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48, - D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49, - D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50, - D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51, - D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52, - D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53, - D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54, - D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55, - D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56, - D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57, - D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58, - D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59, - D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60, - D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61, - D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62, - D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63, - D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64, - D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, - D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, - D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, - D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, - D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, - D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, - D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST - } D3D_PRIMITIVE_TOPOLOGY; - -typedef -enum D3D_PRIMITIVE - { - D3D_PRIMITIVE_UNDEFINED = 0, - D3D_PRIMITIVE_POINT = 1, - D3D_PRIMITIVE_LINE = 2, - D3D_PRIMITIVE_TRIANGLE = 3, - D3D_PRIMITIVE_LINE_ADJ = 6, - D3D_PRIMITIVE_TRIANGLE_ADJ = 7, - D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, - D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, - D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, - D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, - D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, - D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, - D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, - D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, - D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, - D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, - D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, - D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, - D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, - D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, - D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, - D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, - D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, - D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, - D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, - D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, - D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, - D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, - D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, - D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, - D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, - D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, - D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, - D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, - D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, - D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, - D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, - D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39, - D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, - D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, - D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, - D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, - D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, - D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, - D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, - D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, - D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, - D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, - D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, - D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, - D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH - } D3D_PRIMITIVE; - -typedef -enum D3D_SRV_DIMENSION - { - D3D_SRV_DIMENSION_UNKNOWN = 0, - D3D_SRV_DIMENSION_BUFFER = 1, - D3D_SRV_DIMENSION_TEXTURE1D = 2, - D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3, - D3D_SRV_DIMENSION_TEXTURE2D = 4, - D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5, - D3D_SRV_DIMENSION_TEXTURE2DMS = 6, - D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D_SRV_DIMENSION_TEXTURE3D = 8, - D3D_SRV_DIMENSION_TEXTURECUBE = 9, - D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10, - D3D_SRV_DIMENSION_BUFFEREX = 11, - D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, - D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, - D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX - } D3D_SRV_DIMENSION; - -#define D3D_SHADER_FEATURE_DOUBLES 0x00001 -#define D3D_SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X 0x00002 -#define D3D_SHADER_FEATURE_UAVS_AT_EVERY_STAGE 0x00004 -#define D3D_SHADER_FEATURE_64_UAVS 0x00008 -#define D3D_SHADER_FEATURE_MINIMUM_PRECISION 0x00010 -#define D3D_SHADER_FEATURE_11_1_DOUBLE_EXTENSIONS 0x00020 -#define D3D_SHADER_FEATURE_11_1_SHADER_EXTENSIONS 0x00040 -#define D3D_SHADER_FEATURE_LEVEL_9_COMPARISON_FILTERING 0x00080 -#define D3D_SHADER_FEATURE_TILED_RESOURCES 0x00100 -#define D3D_SHADER_FEATURE_STENCIL_REF 0x00200 -#define D3D_SHADER_FEATURE_INNER_COVERAGE 0x00400 -#define D3D_SHADER_FEATURE_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00800 -#define D3D_SHADER_FEATURE_ROVS 0x01000 -#define D3D_SHADER_FEATURE_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x02000 -#define D3D_SHADER_FEATURE_WAVE_OPS 0x04000 -#define D3D_SHADER_FEATURE_INT64_OPS 0x08000 -#define D3D_SHADER_FEATURE_VIEW_ID 0x10000 -#define D3D_SHADER_FEATURE_BARYCENTRICS 0x20000 -#define D3D_SHADER_FEATURE_NATIVE_16BIT_OPS 0x40000 -#define D3D_SHADER_FEATURE_SHADING_RATE 0x80000 -#define D3D_SHADER_FEATURE_RAYTRACING_TIER_1_1 0x100000 -#define D3D_SHADER_FEATURE_SAMPLER_FEEDBACK 0x200000 -#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_TYPED_RESOURCE 0x400000 -#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_GROUP_SHARED 0x800000 -#define D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x1000000 -#define D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x2000000 -#define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000 -#define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000 -#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000 -#define D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS 0x20000000 -#define D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES 0x40000000 -#define D3D_SHADER_FEATURE_SAMPLE_CMP_GRADIENT_OR_BIAS 0x80000000 -#define D3D_SHADER_FEATURE_EXTENDED_COMMAND_INFO 0x100000000ull -#define D3D_OPT_SHADER_FEATURE_USES_DERIVATIVES 0x0000010000000000ull -#define D3D_OPT_SHADER_FEATURE_REQUIRES_GROUP 0x0000020000000000ull -typedef struct _D3D_SHADER_MACRO - { - LPCSTR Name; - LPCSTR Definition; - } D3D_SHADER_MACRO; - -typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO; - -DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2); - - -extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D10Blob_INTERFACE_DEFINED__ -#define __ID3D10Blob_INTERFACE_DEFINED__ - -/* interface ID3D10Blob */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Blob; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8BA5FB08-5195-40e2-AC58-0D989C3A0102") - ID3D10Blob : public IUnknown - { - public: - virtual LPVOID STDMETHODCALLTYPE GetBufferPointer( void) = 0; - - virtual SIZE_T STDMETHODCALLTYPE GetBufferSize( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10BlobVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Blob * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Blob * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Blob * This); - - DECLSPEC_XFGVIRT(ID3D10Blob, GetBufferPointer) - LPVOID ( STDMETHODCALLTYPE *GetBufferPointer )( - ID3D10Blob * This); - - DECLSPEC_XFGVIRT(ID3D10Blob, GetBufferSize) - SIZE_T ( STDMETHODCALLTYPE *GetBufferSize )( - ID3D10Blob * This); - - END_INTERFACE - } ID3D10BlobVtbl; - - interface ID3D10Blob - { - CONST_VTBL struct ID3D10BlobVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Blob_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Blob_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Blob_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Blob_GetBufferPointer(This) \ - ( (This)->lpVtbl -> GetBufferPointer(This) ) - -#define ID3D10Blob_GetBufferSize(This) \ - ( (This)->lpVtbl -> GetBufferSize(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Blob_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3dcommon_0000_0001 */ -/* [local] */ - -typedef interface ID3D10Blob* LPD3D10BLOB; -typedef ID3D10Blob ID3DBlob; - -typedef ID3DBlob* LPD3DBLOB; -#define IID_ID3DBlob IID_ID3D10Blob -typedef void ( __stdcall *PFN_DESTRUCTION_CALLBACK )( - void *pData); - - - -extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3DDestructionNotifier_INTERFACE_DEFINED__ -#define __ID3DDestructionNotifier_INTERFACE_DEFINED__ - -/* interface ID3DDestructionNotifier */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3DDestructionNotifier; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a06eb39a-50da-425b-8c31-4eecd6c270f3") - ID3DDestructionNotifier : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE RegisterDestructionCallback( - /* [annotation] */ - _In_ PFN_DESTRUCTION_CALLBACK callbackFn, - /* [annotation] */ - _In_ void *pData, - /* [annotation] */ - _Out_ UINT *pCallbackID) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnregisterDestructionCallback( - /* [annotation] */ - _In_ UINT callbackID) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3DDestructionNotifierVtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3DDestructionNotifier * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3DDestructionNotifier * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ID3DDestructionNotifier * This); - - DECLSPEC_XFGVIRT(ID3DDestructionNotifier, RegisterDestructionCallback) - HRESULT ( STDMETHODCALLTYPE *RegisterDestructionCallback )( - ID3DDestructionNotifier * This, - /* [annotation] */ - _In_ PFN_DESTRUCTION_CALLBACK callbackFn, - /* [annotation] */ - _In_ void *pData, - /* [annotation] */ - _Out_ UINT *pCallbackID); - - DECLSPEC_XFGVIRT(ID3DDestructionNotifier, UnregisterDestructionCallback) - HRESULT ( STDMETHODCALLTYPE *UnregisterDestructionCallback )( - ID3DDestructionNotifier * This, - /* [annotation] */ - _In_ UINT callbackID); - - END_INTERFACE - } ID3DDestructionNotifierVtbl; - - interface ID3DDestructionNotifier - { - CONST_VTBL struct ID3DDestructionNotifierVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3DDestructionNotifier_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3DDestructionNotifier_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3DDestructionNotifier_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3DDestructionNotifier_RegisterDestructionCallback(This,callbackFn,pData,pCallbackID) \ - ( (This)->lpVtbl -> RegisterDestructionCallback(This,callbackFn,pData,pCallbackID) ) - -#define ID3DDestructionNotifier_UnregisterDestructionCallback(This,callbackID) \ - ( (This)->lpVtbl -> UnregisterDestructionCallback(This,callbackID) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3DDestructionNotifier_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3dcommon_0000_0002 */ -/* [local] */ - -typedef -enum _D3D_INCLUDE_TYPE - { - D3D_INCLUDE_LOCAL = 0, - D3D_INCLUDE_SYSTEM = ( D3D_INCLUDE_LOCAL + 1 ) , - D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL, - D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM, - D3D_INCLUDE_FORCE_DWORD = 0x7fffffff - } D3D_INCLUDE_TYPE; - -typedef interface ID3DInclude ID3DInclude; -#undef INTERFACE -#define INTERFACE ID3DInclude -DECLARE_INTERFACE(ID3DInclude) -{ - STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE; - STDMETHOD(Close)(THIS_ LPCVOID pData) PURE; -}; -typedef ID3DInclude* LPD3DINCLUDE; -typedef -enum _D3D_SHADER_VARIABLE_CLASS - { - D3D_SVC_SCALAR = 0, - D3D_SVC_VECTOR = ( D3D_SVC_SCALAR + 1 ) , - D3D_SVC_MATRIX_ROWS = ( D3D_SVC_VECTOR + 1 ) , - D3D_SVC_MATRIX_COLUMNS = ( D3D_SVC_MATRIX_ROWS + 1 ) , - D3D_SVC_OBJECT = ( D3D_SVC_MATRIX_COLUMNS + 1 ) , - D3D_SVC_STRUCT = ( D3D_SVC_OBJECT + 1 ) , - D3D_SVC_INTERFACE_CLASS = ( D3D_SVC_STRUCT + 1 ) , - D3D_SVC_INTERFACE_POINTER = ( D3D_SVC_INTERFACE_CLASS + 1 ) , - D3D10_SVC_SCALAR = D3D_SVC_SCALAR, - D3D10_SVC_VECTOR = D3D_SVC_VECTOR, - D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS, - D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS, - D3D10_SVC_OBJECT = D3D_SVC_OBJECT, - D3D10_SVC_STRUCT = D3D_SVC_STRUCT, - D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS, - D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER, - D3D_SVC_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_VARIABLE_CLASS; - -typedef -enum _D3D_SHADER_VARIABLE_FLAGS - { - D3D_SVF_USERPACKED = 1, - D3D_SVF_USED = 2, - D3D_SVF_INTERFACE_POINTER = 4, - D3D_SVF_INTERFACE_PARAMETER = 8, - D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED, - D3D10_SVF_USED = D3D_SVF_USED, - D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER, - D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER, - D3D_SVF_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_VARIABLE_FLAGS; - -typedef -enum _D3D_SHADER_VARIABLE_TYPE - { - D3D_SVT_VOID = 0, - D3D_SVT_BOOL = 1, - D3D_SVT_INT = 2, - D3D_SVT_FLOAT = 3, - D3D_SVT_STRING = 4, - D3D_SVT_TEXTURE = 5, - D3D_SVT_TEXTURE1D = 6, - D3D_SVT_TEXTURE2D = 7, - D3D_SVT_TEXTURE3D = 8, - D3D_SVT_TEXTURECUBE = 9, - D3D_SVT_SAMPLER = 10, - D3D_SVT_SAMPLER1D = 11, - D3D_SVT_SAMPLER2D = 12, - D3D_SVT_SAMPLER3D = 13, - D3D_SVT_SAMPLERCUBE = 14, - D3D_SVT_PIXELSHADER = 15, - D3D_SVT_VERTEXSHADER = 16, - D3D_SVT_PIXELFRAGMENT = 17, - D3D_SVT_VERTEXFRAGMENT = 18, - D3D_SVT_UINT = 19, - D3D_SVT_UINT8 = 20, - D3D_SVT_GEOMETRYSHADER = 21, - D3D_SVT_RASTERIZER = 22, - D3D_SVT_DEPTHSTENCIL = 23, - D3D_SVT_BLEND = 24, - D3D_SVT_BUFFER = 25, - D3D_SVT_CBUFFER = 26, - D3D_SVT_TBUFFER = 27, - D3D_SVT_TEXTURE1DARRAY = 28, - D3D_SVT_TEXTURE2DARRAY = 29, - D3D_SVT_RENDERTARGETVIEW = 30, - D3D_SVT_DEPTHSTENCILVIEW = 31, - D3D_SVT_TEXTURE2DMS = 32, - D3D_SVT_TEXTURE2DMSARRAY = 33, - D3D_SVT_TEXTURECUBEARRAY = 34, - D3D_SVT_HULLSHADER = 35, - D3D_SVT_DOMAINSHADER = 36, - D3D_SVT_INTERFACE_POINTER = 37, - D3D_SVT_COMPUTESHADER = 38, - D3D_SVT_DOUBLE = 39, - D3D_SVT_RWTEXTURE1D = 40, - D3D_SVT_RWTEXTURE1DARRAY = 41, - D3D_SVT_RWTEXTURE2D = 42, - D3D_SVT_RWTEXTURE2DARRAY = 43, - D3D_SVT_RWTEXTURE3D = 44, - D3D_SVT_RWBUFFER = 45, - D3D_SVT_BYTEADDRESS_BUFFER = 46, - D3D_SVT_RWBYTEADDRESS_BUFFER = 47, - D3D_SVT_STRUCTURED_BUFFER = 48, - D3D_SVT_RWSTRUCTURED_BUFFER = 49, - D3D_SVT_APPEND_STRUCTURED_BUFFER = 50, - D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51, - D3D_SVT_MIN8FLOAT = 52, - D3D_SVT_MIN10FLOAT = 53, - D3D_SVT_MIN16FLOAT = 54, - D3D_SVT_MIN12INT = 55, - D3D_SVT_MIN16INT = 56, - D3D_SVT_MIN16UINT = 57, - D3D_SVT_INT16 = 58, - D3D_SVT_UINT16 = 59, - D3D_SVT_FLOAT16 = 60, - D3D_SVT_INT64 = 61, - D3D_SVT_UINT64 = 62, - D3D10_SVT_VOID = D3D_SVT_VOID, - D3D10_SVT_BOOL = D3D_SVT_BOOL, - D3D10_SVT_INT = D3D_SVT_INT, - D3D10_SVT_FLOAT = D3D_SVT_FLOAT, - D3D10_SVT_STRING = D3D_SVT_STRING, - D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE, - D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D, - D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D, - D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D, - D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE, - D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER, - D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D, - D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D, - D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D, - D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE, - D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER, - D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER, - D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT, - D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT, - D3D10_SVT_UINT = D3D_SVT_UINT, - D3D10_SVT_UINT8 = D3D_SVT_UINT8, - D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER, - D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER, - D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL, - D3D10_SVT_BLEND = D3D_SVT_BLEND, - D3D10_SVT_BUFFER = D3D_SVT_BUFFER, - D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER, - D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER, - D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY, - D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY, - D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW, - D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW, - D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS, - D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY, - D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY, - D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER, - D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER, - D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER, - D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER, - D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE, - D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D, - D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY, - D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D, - D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY, - D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D, - D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER, - D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER, - D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER, - D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER, - D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER, - D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER, - D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER, - D3D_SVT_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_VARIABLE_TYPE; - -typedef -enum _D3D_SHADER_INPUT_FLAGS - { - D3D_SIF_USERPACKED = 0x1, - D3D_SIF_COMPARISON_SAMPLER = 0x2, - D3D_SIF_TEXTURE_COMPONENT_0 = 0x4, - D3D_SIF_TEXTURE_COMPONENT_1 = 0x8, - D3D_SIF_TEXTURE_COMPONENTS = 0xc, - D3D_SIF_UNUSED = 0x10, - D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED, - D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER, - D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0, - D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1, - D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS, - D3D_SIF_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_INPUT_FLAGS; - -typedef -enum _D3D_SHADER_INPUT_TYPE - { - D3D_SIT_CBUFFER = 0, - D3D_SIT_TBUFFER = ( D3D_SIT_CBUFFER + 1 ) , - D3D_SIT_TEXTURE = ( D3D_SIT_TBUFFER + 1 ) , - D3D_SIT_SAMPLER = ( D3D_SIT_TEXTURE + 1 ) , - D3D_SIT_UAV_RWTYPED = ( D3D_SIT_SAMPLER + 1 ) , - D3D_SIT_STRUCTURED = ( D3D_SIT_UAV_RWTYPED + 1 ) , - D3D_SIT_UAV_RWSTRUCTURED = ( D3D_SIT_STRUCTURED + 1 ) , - D3D_SIT_BYTEADDRESS = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) , - D3D_SIT_UAV_RWBYTEADDRESS = ( D3D_SIT_BYTEADDRESS + 1 ) , - D3D_SIT_UAV_APPEND_STRUCTURED = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) , - D3D_SIT_UAV_CONSUME_STRUCTURED = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) , - D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) , - D3D_SIT_RTACCELERATIONSTRUCTURE = ( D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER + 1 ) , - D3D_SIT_UAV_FEEDBACKTEXTURE = ( D3D_SIT_RTACCELERATIONSTRUCTURE + 1 ) , - D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER, - D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER, - D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE, - D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER, - D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED, - D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED, - D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED, - D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS, - D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS, - D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED, - D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED, - D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER - } D3D_SHADER_INPUT_TYPE; - -typedef -enum _D3D_SHADER_CBUFFER_FLAGS - { - D3D_CBF_USERPACKED = 1, - D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED, - D3D_CBF_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_CBUFFER_FLAGS; - -typedef -enum _D3D_CBUFFER_TYPE - { - D3D_CT_CBUFFER = 0, - D3D_CT_TBUFFER = ( D3D_CT_CBUFFER + 1 ) , - D3D_CT_INTERFACE_POINTERS = ( D3D_CT_TBUFFER + 1 ) , - D3D_CT_RESOURCE_BIND_INFO = ( D3D_CT_INTERFACE_POINTERS + 1 ) , - D3D10_CT_CBUFFER = D3D_CT_CBUFFER, - D3D10_CT_TBUFFER = D3D_CT_TBUFFER, - D3D11_CT_CBUFFER = D3D_CT_CBUFFER, - D3D11_CT_TBUFFER = D3D_CT_TBUFFER, - D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS, - D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO - } D3D_CBUFFER_TYPE; - -typedef -enum D3D_NAME - { - D3D_NAME_UNDEFINED = 0, - D3D_NAME_POSITION = 1, - D3D_NAME_CLIP_DISTANCE = 2, - D3D_NAME_CULL_DISTANCE = 3, - D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4, - D3D_NAME_VIEWPORT_ARRAY_INDEX = 5, - D3D_NAME_VERTEX_ID = 6, - D3D_NAME_PRIMITIVE_ID = 7, - D3D_NAME_INSTANCE_ID = 8, - D3D_NAME_IS_FRONT_FACE = 9, - D3D_NAME_SAMPLE_INDEX = 10, - D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11, - D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12, - D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13, - D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14, - D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15, - D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16, - D3D_NAME_BARYCENTRICS = 23, - D3D_NAME_SHADINGRATE = 24, - D3D_NAME_CULLPRIMITIVE = 25, - D3D_NAME_TARGET = 64, - D3D_NAME_DEPTH = 65, - D3D_NAME_COVERAGE = 66, - D3D_NAME_DEPTH_GREATER_EQUAL = 67, - D3D_NAME_DEPTH_LESS_EQUAL = 68, - D3D_NAME_STENCIL_REF = 69, - D3D_NAME_INNER_COVERAGE = 70, - D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED, - D3D10_NAME_POSITION = D3D_NAME_POSITION, - D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE, - D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE, - D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX, - D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX, - D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID, - D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID, - D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID, - D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE, - D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX, - D3D10_NAME_TARGET = D3D_NAME_TARGET, - D3D10_NAME_DEPTH = D3D_NAME_DEPTH, - D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE, - D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR, - D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR, - D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR, - D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR, - D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR, - D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR, - D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL, - D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL, - D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF, - D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE, - D3D12_NAME_BARYCENTRICS = D3D_NAME_BARYCENTRICS, - D3D12_NAME_SHADINGRATE = D3D_NAME_SHADINGRATE, - D3D12_NAME_CULLPRIMITIVE = D3D_NAME_CULLPRIMITIVE - } D3D_NAME; - -typedef -enum D3D_RESOURCE_RETURN_TYPE - { - D3D_RETURN_TYPE_UNORM = 1, - D3D_RETURN_TYPE_SNORM = 2, - D3D_RETURN_TYPE_SINT = 3, - D3D_RETURN_TYPE_UINT = 4, - D3D_RETURN_TYPE_FLOAT = 5, - D3D_RETURN_TYPE_MIXED = 6, - D3D_RETURN_TYPE_DOUBLE = 7, - D3D_RETURN_TYPE_CONTINUED = 8, - D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, - D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, - D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, - D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, - D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, - D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, - D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, - D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, - D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, - D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, - D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, - D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, - D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE, - D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED - } D3D_RESOURCE_RETURN_TYPE; - -typedef -enum D3D_REGISTER_COMPONENT_TYPE - { - D3D_REGISTER_COMPONENT_UNKNOWN = 0, - D3D_REGISTER_COMPONENT_UINT32 = 1, - D3D_REGISTER_COMPONENT_SINT32 = 2, - D3D_REGISTER_COMPONENT_FLOAT32 = 3, - D3D_REGISTER_COMPONENT_UINT16 = 4, - D3D_REGISTER_COMPONENT_SINT16 = 5, - D3D_REGISTER_COMPONENT_FLOAT16 = 6, - D3D_REGISTER_COMPONENT_UINT64 = 7, - D3D_REGISTER_COMPONENT_SINT64 = 8, - D3D_REGISTER_COMPONENT_FLOAT64 = 9, - D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN, - D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32, - D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32, - D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32, - D3D10_REGISTER_COMPONENT_UINT16 = D3D_REGISTER_COMPONENT_UINT16, - D3D10_REGISTER_COMPONENT_SINT16 = D3D_REGISTER_COMPONENT_SINT16, - D3D10_REGISTER_COMPONENT_FLOAT16 = D3D_REGISTER_COMPONENT_FLOAT16, - D3D10_REGISTER_COMPONENT_UINT64 = D3D_REGISTER_COMPONENT_UINT64, - D3D10_REGISTER_COMPONENT_SINT64 = D3D_REGISTER_COMPONENT_SINT64, - D3D10_REGISTER_COMPONENT_FLOAT64 = D3D_REGISTER_COMPONENT_FLOAT64 - } D3D_REGISTER_COMPONENT_TYPE; - -typedef -enum D3D_TESSELLATOR_DOMAIN - { - D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0, - D3D_TESSELLATOR_DOMAIN_ISOLINE = 1, - D3D_TESSELLATOR_DOMAIN_TRI = 2, - D3D_TESSELLATOR_DOMAIN_QUAD = 3, - D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED, - D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE, - D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI, - D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD - } D3D_TESSELLATOR_DOMAIN; - -typedef -enum D3D_TESSELLATOR_PARTITIONING - { - D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0, - D3D_TESSELLATOR_PARTITIONING_INTEGER = 1, - D3D_TESSELLATOR_PARTITIONING_POW2 = 2, - D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, - D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4, - D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED, - D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER, - D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2, - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN - } D3D_TESSELLATOR_PARTITIONING; - -typedef -enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE - { - D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0, - D3D_TESSELLATOR_OUTPUT_POINT = 1, - D3D_TESSELLATOR_OUTPUT_LINE = 2, - D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, - D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4, - D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED, - D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT, - D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE, - D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW, - D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW - } D3D_TESSELLATOR_OUTPUT_PRIMITIVE; - -typedef -enum D3D_MIN_PRECISION - { - D3D_MIN_PRECISION_DEFAULT = 0, - D3D_MIN_PRECISION_FLOAT_16 = 1, - D3D_MIN_PRECISION_FLOAT_2_8 = 2, - D3D_MIN_PRECISION_RESERVED = 3, - D3D_MIN_PRECISION_SINT_16 = 4, - D3D_MIN_PRECISION_UINT_16 = 5, - D3D_MIN_PRECISION_ANY_16 = 0xf0, - D3D_MIN_PRECISION_ANY_10 = 0xf1 - } D3D_MIN_PRECISION; - -typedef -enum D3D_INTERPOLATION_MODE - { - D3D_INTERPOLATION_UNDEFINED = 0, - D3D_INTERPOLATION_CONSTANT = 1, - D3D_INTERPOLATION_LINEAR = 2, - D3D_INTERPOLATION_LINEAR_CENTROID = 3, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, - D3D_INTERPOLATION_LINEAR_SAMPLE = 6, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7 - } D3D_INTERPOLATION_MODE; - -typedef -enum _D3D_PARAMETER_FLAGS - { - D3D_PF_NONE = 0, - D3D_PF_IN = 0x1, - D3D_PF_OUT = 0x2, - D3D_PF_FORCE_DWORD = 0x7fffffff - } D3D_PARAMETER_FLAGS; - -typedef -enum D3D_FORMAT_LAYOUT - { - D3DFL_STANDARD = 0, - D3DFL_CUSTOM = -1 - } D3D_FORMAT_LAYOUT; - -typedef -enum D3D_FORMAT_TYPE_LEVEL - { - D3DFTL_NO_TYPE = 0, - D3DFTL_PARTIAL_TYPE = -2, - D3DFTL_FULL_TYPE = -1 - } D3D_FORMAT_TYPE_LEVEL; - -typedef -enum D3D_FORMAT_COMPONENT_NAME - { - D3DFCN_R = -4, - D3DFCN_G = -3, - D3DFCN_B = -2, - D3DFCN_A = -1, - D3DFCN_D = 0, - D3DFCN_S = 1, - D3DFCN_X = 2 - } D3D_FORMAT_COMPONENT_NAME; - -typedef -enum D3D_FORMAT_COMPONENT_INTERPRETATION - { - D3DFCI_TYPELESS = 0, - D3DFCI_FLOAT = -4, - D3DFCI_SNORM = -3, - D3DFCI_UNORM = -2, - D3DFCI_SINT = -1, - D3DFCI_UINT = 1, - D3DFCI_UNORM_SRGB = 2, - D3DFCI_BIASED_FIXED_2_8 = 3 - } D3D_FORMAT_COMPONENT_INTERPRETATION; - -DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00); -DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41); -DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2); -DEFINE_GUID(WKPDID_D3D12UniqueObjectId, 0x1b39de15, 0xec04, 0x4bae, 0xba, 0x4d, 0x8c, 0xef, 0x79, 0xfc, 0x04, 0xc1); -#define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName) -#define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName) -#define D3D_SET_OBJECT_NAME_N_W(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectNameW, Chars*2, pName) -#define D3D_SET_OBJECT_NAME_W(pObject, pName) D3D_SET_OBJECT_NAME_N_W(pObject, wcslen(pName), pName) -#define D3D_COMPONENT_MASK_X 1 -#define D3D_COMPONENT_MASK_Y 2 -#define D3D_COMPONENT_MASK_Z 4 -#define D3D_COMPONENT_MASK_W 8 -DEFINE_GUID(D3D_TEXTURE_LAYOUT_ROW_MAJOR,0xb5dc234f,0x72bb,0x4bec,0x97,0x05,0x8c,0xf2,0x58,0xdf,0x6b,0x6c); -DEFINE_GUID(D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE,0x4c0f29e3,0x3f5f,0x4d35,0x84,0xc9,0xbc,0x09,0x83,0xb6,0x2c,0x28); - - -extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dcommon.idl b/Juliet/src/Graphics/DX12/D3D12/directx/d3dcommon.idl deleted file mode 100644 index bfa375d..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dcommon.idl +++ /dev/null @@ -1,991 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ -import "oaidl.idl"; -import "ocidl.idl"; - -//---------------------------------------------------------------------------- -// -// D3D-version-neutral runtime information. -// -//---------------------------------------------------------------------------- - -typedef enum D3D_DRIVER_TYPE -{ - D3D_DRIVER_TYPE_UNKNOWN, - D3D_DRIVER_TYPE_HARDWARE, - D3D_DRIVER_TYPE_REFERENCE, - D3D_DRIVER_TYPE_NULL, - D3D_DRIVER_TYPE_SOFTWARE, - D3D_DRIVER_TYPE_WARP, -} D3D_DRIVER_TYPE; - -typedef enum D3D_FEATURE_LEVEL -{ - D3D_FEATURE_LEVEL_1_0_GENERIC = 0x100, - D3D_FEATURE_LEVEL_1_0_CORE = 0x1000, - D3D_FEATURE_LEVEL_9_1 = 0x9100, - D3D_FEATURE_LEVEL_9_2 = 0x9200, - D3D_FEATURE_LEVEL_9_3 = 0x9300, - D3D_FEATURE_LEVEL_10_0 = 0xa000, - D3D_FEATURE_LEVEL_10_1 = 0xa100, - D3D_FEATURE_LEVEL_11_0 = 0xb000, - D3D_FEATURE_LEVEL_11_1 = 0xb100, - D3D_FEATURE_LEVEL_12_0 = 0xc000, - D3D_FEATURE_LEVEL_12_1 = 0xc100, - D3D_FEATURE_LEVEL_12_2 = 0xc200 -} D3D_FEATURE_LEVEL; - -cpp_quote("#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048") -cpp_quote("#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096") -cpp_quote("#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048") -cpp_quote("#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096") -cpp_quote("#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512") -cpp_quote("#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096") -cpp_quote("#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256") -cpp_quote("#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2") -cpp_quote("#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535") -cpp_quote("#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575") -cpp_quote("#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1") -cpp_quote("#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4") -cpp_quote("#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128") -cpp_quote("#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048") -cpp_quote("#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192") - -typedef enum D3D_PRIMITIVE_TOPOLOGY -{ - D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, - D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1, - D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2, - D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN = 6, - // Adjacency values should be equal to (0x8 & non-adjacency): - D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, - D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, - D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33, - D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34, - D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35, - D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36, - D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37, - D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38, - D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39, - D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40, - D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41, - D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42, - D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43, - D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44, - D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45, - D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46, - D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47, - D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48, - D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49, - D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50, - D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51, - D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52, - D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53, - D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54, - D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55, - D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56, - D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57, - D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58, - D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59, - D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60, - D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61, - D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62, - D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63, - D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64, - - D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, - D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, - D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, - D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, - - D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, - D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, - D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, - D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST -} D3D_PRIMITIVE_TOPOLOGY; - -typedef enum D3D_PRIMITIVE -{ - D3D_PRIMITIVE_UNDEFINED = 0, - D3D_PRIMITIVE_POINT = 1, - D3D_PRIMITIVE_LINE = 2, - D3D_PRIMITIVE_TRIANGLE = 3, - // Adjacency values should be equal to (0x4 & non-adjacency): - D3D_PRIMITIVE_LINE_ADJ = 6, - D3D_PRIMITIVE_TRIANGLE_ADJ = 7, - D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, - D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, - D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, - D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, - D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, - D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, - D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, - D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, - D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, - D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, - D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, - D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, - D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, - D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, - D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, - D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, - D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, - D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, - D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, - D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, - D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, - D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, - D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, - D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, - D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, - D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, - D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, - D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, - D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, - D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, - D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, - D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39, - - D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, - D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, - D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, - D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, - D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, - D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, - - D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, - D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, - D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, - D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, - D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, - D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, - D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH, -} D3D_PRIMITIVE; - -typedef enum D3D_SRV_DIMENSION -{ - D3D_SRV_DIMENSION_UNKNOWN = 0, - D3D_SRV_DIMENSION_BUFFER = 1, - D3D_SRV_DIMENSION_TEXTURE1D = 2, - D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3, - D3D_SRV_DIMENSION_TEXTURE2D = 4, - D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5, - D3D_SRV_DIMENSION_TEXTURE2DMS = 6, - D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D_SRV_DIMENSION_TEXTURE3D = 8, - D3D_SRV_DIMENSION_TEXTURECUBE = 9, - D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10, - D3D_SRV_DIMENSION_BUFFEREX = 11, - - D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - - D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, - - D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, - D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX, -} D3D_SRV_DIMENSION; - -// Bits in shaders indicating features they use which the runtime checks against current device support: -cpp_quote("#define D3D_SHADER_FEATURE_DOUBLES 0x00001") -cpp_quote("#define D3D_SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X 0x00002") -cpp_quote("#define D3D_SHADER_FEATURE_UAVS_AT_EVERY_STAGE 0x00004") -cpp_quote("#define D3D_SHADER_FEATURE_64_UAVS 0x00008") -cpp_quote("#define D3D_SHADER_FEATURE_MINIMUM_PRECISION 0x00010") -cpp_quote("#define D3D_SHADER_FEATURE_11_1_DOUBLE_EXTENSIONS 0x00020") -cpp_quote("#define D3D_SHADER_FEATURE_11_1_SHADER_EXTENSIONS 0x00040") -cpp_quote("#define D3D_SHADER_FEATURE_LEVEL_9_COMPARISON_FILTERING 0x00080") -cpp_quote("#define D3D_SHADER_FEATURE_TILED_RESOURCES 0x00100") -cpp_quote("#define D3D_SHADER_FEATURE_STENCIL_REF 0x00200") -cpp_quote("#define D3D_SHADER_FEATURE_INNER_COVERAGE 0x00400") -cpp_quote("#define D3D_SHADER_FEATURE_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00800") -cpp_quote("#define D3D_SHADER_FEATURE_ROVS 0x01000") -cpp_quote("#define D3D_SHADER_FEATURE_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x02000") -cpp_quote("#define D3D_SHADER_FEATURE_WAVE_OPS 0x04000") -cpp_quote("#define D3D_SHADER_FEATURE_INT64_OPS 0x08000") -cpp_quote("#define D3D_SHADER_FEATURE_VIEW_ID 0x10000") -cpp_quote("#define D3D_SHADER_FEATURE_BARYCENTRICS 0x20000") -cpp_quote("#define D3D_SHADER_FEATURE_NATIVE_16BIT_OPS 0x40000") -cpp_quote("#define D3D_SHADER_FEATURE_SHADING_RATE 0x80000") -cpp_quote("#define D3D_SHADER_FEATURE_RAYTRACING_TIER_1_1 0x100000") -cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_FEEDBACK 0x200000") -cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_TYPED_RESOURCE 0x400000") -cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_GROUP_SHARED 0x800000") -cpp_quote("#define D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x1000000") -cpp_quote("#define D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x2000000") -cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000") -cpp_quote("#define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000") -cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000") -cpp_quote("#define D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS 0x20000000") -cpp_quote("#define D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES 0x40000000") -cpp_quote("#define D3D_SHADER_FEATURE_SAMPLE_CMP_GRADIENT_OR_BIAS 0x80000000") -cpp_quote("#define D3D_SHADER_FEATURE_EXTENDED_COMMAND_INFO 0x100000000ull") - -// This section is for flags that do not directly indicate a required feature, -// but are used to indicate something about the shader. - -// Flag for any derivative use. This allows call-graph validation -// in the runtime to detect misuse of derivatives for an entry point that cannot -// support it, or to determine when the flag -// D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS is required. -cpp_quote("#define D3D_OPT_SHADER_FEATURE_USES_DERIVATIVES 0x0000010000000000ull") - -cpp_quote("#define D3D_OPT_SHADER_FEATURE_REQUIRES_GROUP 0x0000020000000000ull") - - -// Additional internal shader feature flags are listed in dxbcutils.h (not relevant/useful for public to see) -// When adding entries here, make sure they don't conflict with what's there. - -//---------------------------------------------------------------------------- -// -// Shader compilation information. -// -//---------------------------------------------------------------------------- - -//---------------------------------------------------------------------------- -// D3D_SHADER_MACRO: -// ---------- -// Preprocessor macro definition. The application pass in a NULL-terminated -// array of this structure to various D3D APIs. This enables the application -// to #define tokens at runtime, before the file is parsed. -//---------------------------------------------------------------------------- - -typedef struct _D3D_SHADER_MACRO -{ - LPCSTR Name; - LPCSTR Definition; -} D3D_SHADER_MACRO, *LPD3D_SHADER_MACRO; - -//---------------------------------------------------------------------------- -// ID3DBlob: -// ------------ -// The buffer object is used by D3D to return arbitrary size data. -// For compatibility with D3D10 this interface is also called ID3D10Blob, -// but the version-neutral form is preferred. -// -// GetBufferPointer - -// Returns a pointer to the beginning of the buffer. -// -// GetBufferSize - -// Returns the size of the buffer, in bytes. -//---------------------------------------------------------------------------- - -// {8BA5FB08-5195-40e2-AC58-0D989C3A0102} -cpp_quote("DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);") - -[ uuid( 8BA5FB08-5195-40e2-AC58-0D989C3A0102 ), object, local, pointer_default( unique ) ] -interface ID3D10Blob : IUnknown -{ - LPVOID GetBufferPointer(); - SIZE_T GetBufferSize(); -}; - -cpp_quote("typedef interface ID3D10Blob* LPD3D10BLOB;") - -typedef ID3D10Blob ID3DBlob; -cpp_quote("typedef ID3DBlob* LPD3DBLOB;") -cpp_quote("#define IID_ID3DBlob IID_ID3D10Blob") - -// ID3DDestructionNotifier: An interface to QI for, to set a callback which is triggered when the object is fully destroyed -typedef void(__stdcall *PFN_DESTRUCTION_CALLBACK)(void* pData); - -[uuid(a06eb39a-50da-425b-8c31-4eecd6c270f3), object, local, pointer_default(unique)] -interface ID3DDestructionNotifier - : IUnknown -{ - HRESULT RegisterDestructionCallback( - [annotation("_In_")] PFN_DESTRUCTION_CALLBACK callbackFn, - [annotation("_In_")] void* pData, - [annotation("_Out_")] UINT* pCallbackID - ); - HRESULT UnregisterDestructionCallback( - [annotation("_In_")] UINT callbackID - ); -}; - -typedef enum _D3D_INCLUDE_TYPE -{ - D3D_INCLUDE_LOCAL, - D3D_INCLUDE_SYSTEM, - - D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL, - D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM, - - // force 32-bit size enum - D3D_INCLUDE_FORCE_DWORD = 0x7fffffff -} D3D_INCLUDE_TYPE; - -//---------------------------------------------------------------------------- -// ID3DInclude: -// ------------- -// This interface is intended to be implemented by the application, and can -// be used by various D3D APIs. This enables application-specific handling -// of #include directives in source files. -// -// Open() -// Opens an include file. If successful, it should fill in ppData and -// pBytes. The data pointer returned must remain valid until Close is -// subsequently called. The name of the file is encoded in UTF-8 format. -// Close() -// Closes an include file. If Open was successful, Close is guaranteed -// to be called before the API using this interface returns. -//---------------------------------------------------------------------------- - -cpp_quote("typedef interface ID3DInclude ID3DInclude;") - -cpp_quote("#undef INTERFACE") -cpp_quote("#define INTERFACE ID3DInclude") - -cpp_quote("DECLARE_INTERFACE(ID3DInclude)") -cpp_quote("{") -cpp_quote(" STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;") -cpp_quote(" STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;") -cpp_quote("};") - -cpp_quote("typedef ID3DInclude* LPD3DINCLUDE;") - -//---------------------------------------------------------------------------- -// -// Shader reflection information. -// -//---------------------------------------------------------------------------- - -typedef enum _D3D_SHADER_VARIABLE_CLASS -{ - D3D_SVC_SCALAR, - D3D_SVC_VECTOR, - D3D_SVC_MATRIX_ROWS, - D3D_SVC_MATRIX_COLUMNS, - D3D_SVC_OBJECT, - D3D_SVC_STRUCT, - D3D_SVC_INTERFACE_CLASS, - D3D_SVC_INTERFACE_POINTER, - - D3D10_SVC_SCALAR = D3D_SVC_SCALAR, - D3D10_SVC_VECTOR = D3D_SVC_VECTOR, - D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS, - D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS, - D3D10_SVC_OBJECT = D3D_SVC_OBJECT, - D3D10_SVC_STRUCT = D3D_SVC_STRUCT, - - D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS, - D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER, - - // force 32-bit size enum - D3D_SVC_FORCE_DWORD = 0x7fffffff -} D3D_SHADER_VARIABLE_CLASS; - -typedef enum _D3D_SHADER_VARIABLE_FLAGS -{ - D3D_SVF_USERPACKED = 1, - D3D_SVF_USED = 2, - - D3D_SVF_INTERFACE_POINTER = 4, - D3D_SVF_INTERFACE_PARAMETER = 8, - - D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED, - D3D10_SVF_USED = D3D_SVF_USED, - - D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER, - D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER, - - // force 32-bit size enum - D3D_SVF_FORCE_DWORD = 0x7fffffff -} D3D_SHADER_VARIABLE_FLAGS; - -typedef enum _D3D_SHADER_VARIABLE_TYPE -{ - D3D_SVT_VOID = 0, - D3D_SVT_BOOL = 1, - D3D_SVT_INT = 2, - D3D_SVT_FLOAT = 3, - D3D_SVT_STRING = 4, - D3D_SVT_TEXTURE = 5, - D3D_SVT_TEXTURE1D = 6, - D3D_SVT_TEXTURE2D = 7, - D3D_SVT_TEXTURE3D = 8, - D3D_SVT_TEXTURECUBE = 9, - D3D_SVT_SAMPLER = 10, - D3D_SVT_SAMPLER1D = 11, - D3D_SVT_SAMPLER2D = 12, - D3D_SVT_SAMPLER3D = 13, - D3D_SVT_SAMPLERCUBE = 14, - D3D_SVT_PIXELSHADER = 15, - D3D_SVT_VERTEXSHADER = 16, - D3D_SVT_PIXELFRAGMENT = 17, - D3D_SVT_VERTEXFRAGMENT = 18, - D3D_SVT_UINT = 19, - D3D_SVT_UINT8 = 20, - D3D_SVT_GEOMETRYSHADER = 21, - D3D_SVT_RASTERIZER = 22, - D3D_SVT_DEPTHSTENCIL = 23, - D3D_SVT_BLEND = 24, - D3D_SVT_BUFFER = 25, - D3D_SVT_CBUFFER = 26, - D3D_SVT_TBUFFER = 27, - D3D_SVT_TEXTURE1DARRAY = 28, - D3D_SVT_TEXTURE2DARRAY = 29, - D3D_SVT_RENDERTARGETVIEW = 30, - D3D_SVT_DEPTHSTENCILVIEW = 31, - - D3D_SVT_TEXTURE2DMS = 32, - D3D_SVT_TEXTURE2DMSARRAY = 33, - - D3D_SVT_TEXTURECUBEARRAY = 34, - - D3D_SVT_HULLSHADER = 35, - D3D_SVT_DOMAINSHADER = 36, - - D3D_SVT_INTERFACE_POINTER = 37, - D3D_SVT_COMPUTESHADER = 38, - - D3D_SVT_DOUBLE = 39, - - D3D_SVT_RWTEXTURE1D = 40, - D3D_SVT_RWTEXTURE1DARRAY = 41, - D3D_SVT_RWTEXTURE2D = 42, - D3D_SVT_RWTEXTURE2DARRAY = 43, - D3D_SVT_RWTEXTURE3D = 44, - D3D_SVT_RWBUFFER = 45, - - D3D_SVT_BYTEADDRESS_BUFFER = 46, - D3D_SVT_RWBYTEADDRESS_BUFFER = 47, - D3D_SVT_STRUCTURED_BUFFER = 48, - D3D_SVT_RWSTRUCTURED_BUFFER = 49, - D3D_SVT_APPEND_STRUCTURED_BUFFER = 50, - D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51, - - D3D_SVT_MIN8FLOAT = 52, - D3D_SVT_MIN10FLOAT = 53, - D3D_SVT_MIN16FLOAT = 54, - D3D_SVT_MIN12INT = 55, - D3D_SVT_MIN16INT = 56, - D3D_SVT_MIN16UINT = 57, - - D3D_SVT_INT16 = 58, - D3D_SVT_UINT16 = 59, - D3D_SVT_FLOAT16 = 60, - D3D_SVT_INT64 = 61, - D3D_SVT_UINT64 = 62, - - D3D10_SVT_VOID = D3D_SVT_VOID, - D3D10_SVT_BOOL = D3D_SVT_BOOL, - D3D10_SVT_INT = D3D_SVT_INT, - D3D10_SVT_FLOAT = D3D_SVT_FLOAT, - D3D10_SVT_STRING = D3D_SVT_STRING, - D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE, - D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D, - D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D, - D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D, - D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE, - D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER, - D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D, - D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D, - D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D, - D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE, - D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER, - D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER, - D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT, - D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT, - D3D10_SVT_UINT = D3D_SVT_UINT, - D3D10_SVT_UINT8 = D3D_SVT_UINT8, - D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER, - D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER, - D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL, - D3D10_SVT_BLEND = D3D_SVT_BLEND, - D3D10_SVT_BUFFER = D3D_SVT_BUFFER, - D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER, - D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER, - D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY, - D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY, - D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW, - D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW, - - D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS, - D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY, - - D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY, - - D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER, - D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER, - - D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER, - D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER, - - D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE, - - D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D, - D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY, - D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D, - D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY, - D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D, - D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER, - - D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER, - D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER, - D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER, - D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER, - D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER, - D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER, - - // force 32-bit size enum - D3D_SVT_FORCE_DWORD = 0x7fffffff -} D3D_SHADER_VARIABLE_TYPE; - -typedef enum _D3D_SHADER_INPUT_FLAGS -{ - D3D_SIF_USERPACKED = 0x01, - D3D_SIF_COMPARISON_SAMPLER = 0x02, // is this a comparison sampler? - D3D_SIF_TEXTURE_COMPONENT_0 = 0x04, // this 2-bit value encodes c - 1, where c - D3D_SIF_TEXTURE_COMPONENT_1 = 0x08, // is the number of components in the texture - D3D_SIF_TEXTURE_COMPONENTS = 0x0c, - D3D_SIF_UNUSED = 0x10, - - D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED, - D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER, - D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0, - D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1, - D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS, - - // force 32-bit size enum - D3D_SIF_FORCE_DWORD = 0x7fffffff -} D3D_SHADER_INPUT_FLAGS; - -typedef enum _D3D_SHADER_INPUT_TYPE -{ - D3D_SIT_CBUFFER, - D3D_SIT_TBUFFER, - D3D_SIT_TEXTURE, - D3D_SIT_SAMPLER, - D3D_SIT_UAV_RWTYPED, - D3D_SIT_STRUCTURED, - D3D_SIT_UAV_RWSTRUCTURED, - D3D_SIT_BYTEADDRESS, - D3D_SIT_UAV_RWBYTEADDRESS, - D3D_SIT_UAV_APPEND_STRUCTURED, - D3D_SIT_UAV_CONSUME_STRUCTURED, - D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER, - D3D_SIT_RTACCELERATIONSTRUCTURE, - D3D_SIT_UAV_FEEDBACKTEXTURE, - - D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER, - D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER, - D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE, - D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER, - - D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED, - D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED, - D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED, - D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS, - D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS, - D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED, - D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED, - D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER, -} D3D_SHADER_INPUT_TYPE; - -typedef enum _D3D_SHADER_CBUFFER_FLAGS -{ - D3D_CBF_USERPACKED = 1, - - D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED, - - // force 32-bit size enum - D3D_CBF_FORCE_DWORD = 0x7fffffff -} D3D_SHADER_CBUFFER_FLAGS; - -typedef enum _D3D_CBUFFER_TYPE -{ - D3D_CT_CBUFFER, - D3D_CT_TBUFFER, - D3D_CT_INTERFACE_POINTERS, - D3D_CT_RESOURCE_BIND_INFO, - - D3D10_CT_CBUFFER = D3D_CT_CBUFFER, - D3D10_CT_TBUFFER = D3D_CT_TBUFFER, - - D3D11_CT_CBUFFER = D3D_CT_CBUFFER, - D3D11_CT_TBUFFER = D3D_CT_TBUFFER, - D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS, - D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO, -} D3D_CBUFFER_TYPE; - -typedef enum D3D_NAME -{ - D3D_NAME_UNDEFINED = 0, - - // Names meaningful to both HLSL and hardware - D3D_NAME_POSITION = 1, - D3D_NAME_CLIP_DISTANCE = 2, - D3D_NAME_CULL_DISTANCE = 3, - D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4, - D3D_NAME_VIEWPORT_ARRAY_INDEX = 5, - D3D_NAME_VERTEX_ID = 6, - D3D_NAME_PRIMITIVE_ID = 7, - D3D_NAME_INSTANCE_ID = 8, - D3D_NAME_IS_FRONT_FACE = 9, - D3D_NAME_SAMPLE_INDEX = 10, - D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11, - D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12, - D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13, - D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14, - D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15, - D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16, - D3D_NAME_BARYCENTRICS = 23, - D3D_NAME_SHADINGRATE = 24, - D3D_NAME_CULLPRIMITIVE = 25, - - // Names meaningful to HLSL only - D3D_NAME_TARGET = 64, - D3D_NAME_DEPTH = 65, - D3D_NAME_COVERAGE = 66, - D3D_NAME_DEPTH_GREATER_EQUAL = 67, - D3D_NAME_DEPTH_LESS_EQUAL = 68, - D3D_NAME_STENCIL_REF = 69, - D3D_NAME_INNER_COVERAGE = 70, - - D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED, - D3D10_NAME_POSITION = D3D_NAME_POSITION, - D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE, - D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE, - D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX, - D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX, - D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID, - D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID, - D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID, - D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE, - D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX, - D3D10_NAME_TARGET = D3D_NAME_TARGET, - D3D10_NAME_DEPTH = D3D_NAME_DEPTH, - D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE, - - D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR, - D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR, - D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR, - D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR, - D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR, - D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR, - D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL, - D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL, - - D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF, - D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE, - - D3D12_NAME_BARYCENTRICS = D3D_NAME_BARYCENTRICS, - D3D12_NAME_SHADINGRATE = D3D_NAME_SHADINGRATE, - D3D12_NAME_CULLPRIMITIVE = D3D_NAME_CULLPRIMITIVE, -} D3D_NAME; - -typedef enum D3D_RESOURCE_RETURN_TYPE -{ - D3D_RETURN_TYPE_UNORM = 1, - D3D_RETURN_TYPE_SNORM = 2, - D3D_RETURN_TYPE_SINT = 3, - D3D_RETURN_TYPE_UINT = 4, - D3D_RETURN_TYPE_FLOAT = 5, - D3D_RETURN_TYPE_MIXED = 6, - D3D_RETURN_TYPE_DOUBLE = 7, - D3D_RETURN_TYPE_CONTINUED = 8, - - D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, - D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, - D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, - D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, - D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, - D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, - - D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, - D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, - D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, - D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, - D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, - D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, - D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE, - D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED, -} D3D_RESOURCE_RETURN_TYPE; - -typedef enum D3D_REGISTER_COMPONENT_TYPE -{ - D3D_REGISTER_COMPONENT_UNKNOWN = 0, - D3D_REGISTER_COMPONENT_UINT32 = 1, - D3D_REGISTER_COMPONENT_SINT32 = 2, - D3D_REGISTER_COMPONENT_FLOAT32 = 3, - D3D_REGISTER_COMPONENT_UINT16 = 4, - D3D_REGISTER_COMPONENT_SINT16 = 5, - D3D_REGISTER_COMPONENT_FLOAT16 = 6, - D3D_REGISTER_COMPONENT_UINT64 = 7, - D3D_REGISTER_COMPONENT_SINT64 = 8, - D3D_REGISTER_COMPONENT_FLOAT64 = 9, - - D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN, - D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32, - D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32, - D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32, - D3D10_REGISTER_COMPONENT_UINT16 = D3D_REGISTER_COMPONENT_UINT16, - D3D10_REGISTER_COMPONENT_SINT16 = D3D_REGISTER_COMPONENT_SINT16, - D3D10_REGISTER_COMPONENT_FLOAT16 = D3D_REGISTER_COMPONENT_FLOAT16, - D3D10_REGISTER_COMPONENT_UINT64 = D3D_REGISTER_COMPONENT_UINT64, - D3D10_REGISTER_COMPONENT_SINT64 = D3D_REGISTER_COMPONENT_SINT64, - D3D10_REGISTER_COMPONENT_FLOAT64 = D3D_REGISTER_COMPONENT_FLOAT64, -} D3D_REGISTER_COMPONENT_TYPE; - -typedef enum D3D_TESSELLATOR_DOMAIN -{ - D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0, - D3D_TESSELLATOR_DOMAIN_ISOLINE = 1, - D3D_TESSELLATOR_DOMAIN_TRI = 2, - D3D_TESSELLATOR_DOMAIN_QUAD = 3, - - D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED, - D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE, - D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI, - D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD, -} D3D_TESSELLATOR_DOMAIN; - -typedef enum D3D_TESSELLATOR_PARTITIONING -{ - D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0, - D3D_TESSELLATOR_PARTITIONING_INTEGER = 1, - D3D_TESSELLATOR_PARTITIONING_POW2 = 2, - D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, - D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4, - - D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED, - D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER, - D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2, - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN, -} D3D_TESSELLATOR_PARTITIONING; - -typedef enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE -{ - D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0, - D3D_TESSELLATOR_OUTPUT_POINT = 1, - D3D_TESSELLATOR_OUTPUT_LINE = 2, - D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, - D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4, - - D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED, - D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT, - D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE, - D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW, - D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW, -} D3D_TESSELLATOR_OUTPUT_PRIMITIVE; - -typedef enum D3D_MIN_PRECISION -{ - D3D_MIN_PRECISION_DEFAULT = 0, // Default precision for the shader model - D3D_MIN_PRECISION_FLOAT_16 = 1, // Min 16 bit/component float - D3D_MIN_PRECISION_FLOAT_2_8 = 2, // Min 10(2.8)bit/comp. float - D3D_MIN_PRECISION_RESERVED = 3, // Reserved for future use - D3D_MIN_PRECISION_SINT_16 = 4, // Min 16 bit/comp. signed integer - D3D_MIN_PRECISION_UINT_16 = 5, // Min 16 bit/comp. unsigned integer - - // These values are abstractions of width only for use in situations - // where a general width is needed instead of specific types. They - // will never be used in shader operands. - D3D_MIN_PRECISION_ANY_16 = 0xf0, - D3D_MIN_PRECISION_ANY_10 = 0xf1, -} D3D_MIN_PRECISION; - -typedef enum D3D_INTERPOLATION_MODE -{ - D3D_INTERPOLATION_UNDEFINED = 0, - D3D_INTERPOLATION_CONSTANT = 1, - D3D_INTERPOLATION_LINEAR = 2, - D3D_INTERPOLATION_LINEAR_CENTROID = 3, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, - D3D_INTERPOLATION_LINEAR_SAMPLE = 6, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7, -} D3D_INTERPOLATION_MODE; - -// Parameter flags. -typedef enum _D3D_PARAMETER_FLAGS -{ - D3D_PF_NONE = 0x00000000, - D3D_PF_IN = 0x00000001, - D3D_PF_OUT = 0x00000002, - D3D_PF_FORCE_DWORD = 0x7fffffff -} D3D_PARAMETER_FLAGS; - -// Format Layout Properties -typedef enum D3D_FORMAT_LAYOUT -{ - D3DFL_STANDARD = 0, // standard layout - D3DFL_CUSTOM = -1 // custom layout - // Note, 1 bit allocated for this in FORMAT_DETAIL below. If you add fields here, add bits... - // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ -} D3D_FORMAT_LAYOUT; - -typedef enum D3D_FORMAT_TYPE_LEVEL -{ - D3DFTL_NO_TYPE = 0, - D3DFTL_PARTIAL_TYPE = -2, - D3DFTL_FULL_TYPE = -1, - // Note, 2 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits... - // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ -} D3D_FORMAT_TYPE_LEVEL; - -typedef enum D3D_FORMAT_COMPONENT_NAME -{ - D3DFCN_R = -4, - D3DFCN_G = -3, - D3DFCN_B = -2, - D3DFCN_A = -1, - D3DFCN_D = 0, - D3DFCN_S = 1, - D3DFCN_X = 2, - // Note, 3 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits... - // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ -} D3D_FORMAT_COMPONENT_NAME; - -typedef enum D3D_FORMAT_COMPONENT_INTERPRETATION -{ - D3DFCI_TYPELESS = 0, - D3DFCI_FLOAT = -4, - D3DFCI_SNORM = -3, - D3DFCI_UNORM = -2, - D3DFCI_SINT = -1, - D3DFCI_UINT = 1, - D3DFCI_UNORM_SRGB = 2, - D3DFCI_BIASED_FIXED_2_8 = 3, - // Note, 3 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits... - // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ -} D3D_FORMAT_COMPONENT_INTERPRETATION; - -// Well-Known Private Data IDs (WKPDID_*): - -// WKPDID_D3DDebugObjectName provides a unique name to objects in order to assist the developer during debugging. -// -// const char c_szName[] = "texture.jpg"; -// pObject->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName ); -cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);") -cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41);") -cpp_quote("DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2);") -cpp_quote("DEFINE_GUID(WKPDID_D3D12UniqueObjectId, 0x1b39de15, 0xec04, 0x4bae, 0xba, 0x4d, 0x8c, 0xef, 0x79, 0xfc, 0x04, 0xc1);") - -cpp_quote("#define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName)") -cpp_quote("#define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName)") -cpp_quote("#define D3D_SET_OBJECT_NAME_N_W(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectNameW, Chars*2, pName)") -cpp_quote("#define D3D_SET_OBJECT_NAME_W(pObject, pName) D3D_SET_OBJECT_NAME_N_W(pObject, wcslen(pName), pName)") - -cpp_quote("#define D3D_COMPONENT_MASK_X 1") -cpp_quote("#define D3D_COMPONENT_MASK_Y 2") -cpp_quote("#define D3D_COMPONENT_MASK_Z 4") -cpp_quote("#define D3D_COMPONENT_MASK_W 8") - -cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_ROW_MAJOR,0xb5dc234f,0x72bb,0x4bec,0x97,0x05,0x8c,0xf2,0x58,0xdf,0x6b,0x6c);") // Feature_D3D1XDisplayable -cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE,0x4c0f29e3,0x3f5f,0x4d35,0x84,0xc9,0xbc,0x09,0x83,0xb6,0x2c,0x28);") // Feature_D3D1XDisplayable - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12.h deleted file mode 100644 index 1187816..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12.h +++ /dev/null @@ -1,35 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#ifndef __D3DX12_H__ -#define __D3DX12_H__ - -#include "d3d12.h" - -#if defined( __cplusplus ) - -#include "d3dx12_barriers.h" -#include "d3dx12_core.h" -#include "d3dx12_default.h" -#include "d3dx12_pipeline_state_stream.h" -#include "d3dx12_render_pass.h" -#include "d3dx12_resource_helpers.h" -#include "d3dx12_root_signature.h" -#include "d3dx12_property_format_table.h" - -#ifndef D3DX12_NO_STATE_OBJECT_HELPERS -#include "d3dx12_state_object.h" -#endif // !D3DX12_NO_STATE_OBJECT_HELPERS - -#ifndef D3DX12_NO_CHECK_FEATURE_SUPPORT_CLASS -#include "d3dx12_check_feature_support.h" -#endif // !D3DX12_NO_CHECK_FEATURE_SUPPORT_CLASS - -#endif // defined( __cplusplus ) - -#endif //__D3DX12_H__ - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_barriers.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_barriers.h deleted file mode 100644 index 2c2b135..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_barriers.h +++ /dev/null @@ -1,192 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#ifndef __D3DX12_BARRIERS_H__ -#define __D3DX12_BARRIERS_H__ - -#if defined( __cplusplus ) - -#include "d3d12.h" - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER -{ - CD3DX12_RESOURCE_BARRIER() = default; - explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) noexcept : - D3D12_RESOURCE_BARRIER(o) - {} - static inline CD3DX12_RESOURCE_BARRIER Transition( - _In_ ID3D12Resource* pResource, - D3D12_RESOURCE_STATES stateBefore, - D3D12_RESOURCE_STATES stateAfter, - UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES, - D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) noexcept - { - CD3DX12_RESOURCE_BARRIER result = {}; - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - result.Flags = flags; - barrier.Transition.pResource = pResource; - barrier.Transition.StateBefore = stateBefore; - barrier.Transition.StateAfter = stateAfter; - barrier.Transition.Subresource = subresource; - return result; - } - static inline CD3DX12_RESOURCE_BARRIER Aliasing( - _In_opt_ ID3D12Resource* pResourceBefore, - _In_opt_ ID3D12Resource* pResourceAfter) noexcept - { - CD3DX12_RESOURCE_BARRIER result = {}; - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING; - barrier.Aliasing.pResourceBefore = pResourceBefore; - barrier.Aliasing.pResourceAfter = pResourceAfter; - return result; - } - static inline CD3DX12_RESOURCE_BARRIER UAV( - _In_opt_ ID3D12Resource* pResource) noexcept - { - CD3DX12_RESOURCE_BARRIER result = {}; - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; - barrier.UAV.pResource = pResource; - return result; - } -}; - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) - -//================================================================================================ -// D3DX12 Enhanced Barrier Helpers -//================================================================================================ - -class CD3DX12_BARRIER_SUBRESOURCE_RANGE : public D3D12_BARRIER_SUBRESOURCE_RANGE -{ -public: - CD3DX12_BARRIER_SUBRESOURCE_RANGE() = default; - CD3DX12_BARRIER_SUBRESOURCE_RANGE(const D3D12_BARRIER_SUBRESOURCE_RANGE &o) noexcept : - D3D12_BARRIER_SUBRESOURCE_RANGE(o) - {} - explicit CD3DX12_BARRIER_SUBRESOURCE_RANGE(UINT Subresource) noexcept : - D3D12_BARRIER_SUBRESOURCE_RANGE{ Subresource, 0, 0, 0, 0, 0 } - {} - CD3DX12_BARRIER_SUBRESOURCE_RANGE( - UINT firstMipLevel, - UINT numMips, - UINT firstArraySlice, - UINT numArraySlices, - UINT firstPlane = 0, - UINT numPlanes = 1) noexcept : - D3D12_BARRIER_SUBRESOURCE_RANGE - { - firstMipLevel, - numMips, - firstArraySlice, - numArraySlices, - firstPlane, - numPlanes - } - {} -}; - -class CD3DX12_GLOBAL_BARRIER : public D3D12_GLOBAL_BARRIER -{ -public: - CD3DX12_GLOBAL_BARRIER() = default; - CD3DX12_GLOBAL_BARRIER(const D3D12_GLOBAL_BARRIER &o) noexcept : D3D12_GLOBAL_BARRIER(o){} - CD3DX12_GLOBAL_BARRIER( - D3D12_BARRIER_SYNC syncBefore, - D3D12_BARRIER_SYNC syncAfter, - D3D12_BARRIER_ACCESS accessBefore, - D3D12_BARRIER_ACCESS accessAfter) noexcept : D3D12_GLOBAL_BARRIER { - syncBefore, - syncAfter, - accessBefore, - accessAfter - } - {} -}; - -class CD3DX12_BUFFER_BARRIER : public D3D12_BUFFER_BARRIER -{ -public: - CD3DX12_BUFFER_BARRIER() = default; - CD3DX12_BUFFER_BARRIER(const D3D12_BUFFER_BARRIER &o) noexcept : D3D12_BUFFER_BARRIER(o){} - CD3DX12_BUFFER_BARRIER( - D3D12_BARRIER_SYNC syncBefore, - D3D12_BARRIER_SYNC syncAfter, - D3D12_BARRIER_ACCESS accessBefore, - D3D12_BARRIER_ACCESS accessAfter, - ID3D12Resource *pRes) noexcept : D3D12_BUFFER_BARRIER { - syncBefore, - syncAfter, - accessBefore, - accessAfter, - pRes, - 0, ULLONG_MAX - } - {} -}; - -class CD3DX12_TEXTURE_BARRIER : public D3D12_TEXTURE_BARRIER -{ -public: - CD3DX12_TEXTURE_BARRIER() = default; - CD3DX12_TEXTURE_BARRIER(const D3D12_TEXTURE_BARRIER &o) noexcept : D3D12_TEXTURE_BARRIER(o){} - CD3DX12_TEXTURE_BARRIER( - D3D12_BARRIER_SYNC syncBefore, - D3D12_BARRIER_SYNC syncAfter, - D3D12_BARRIER_ACCESS accessBefore, - D3D12_BARRIER_ACCESS accessAfter, - D3D12_BARRIER_LAYOUT layoutBefore, - D3D12_BARRIER_LAYOUT layoutAfter, - ID3D12Resource *pRes, - const D3D12_BARRIER_SUBRESOURCE_RANGE &subresources, - D3D12_TEXTURE_BARRIER_FLAGS flag = D3D12_TEXTURE_BARRIER_FLAG_NONE) noexcept : D3D12_TEXTURE_BARRIER { - syncBefore, - syncAfter, - accessBefore, - accessAfter, - layoutBefore, - layoutAfter, - pRes, - subresources, - flag - } - {} -}; - -class CD3DX12_BARRIER_GROUP : public D3D12_BARRIER_GROUP -{ -public: - CD3DX12_BARRIER_GROUP() = default; - CD3DX12_BARRIER_GROUP(const D3D12_BARRIER_GROUP &o) noexcept : D3D12_BARRIER_GROUP(o){} - CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_BUFFER_BARRIER *pBarriers) noexcept - { - Type = D3D12_BARRIER_TYPE_BUFFER; - NumBarriers = numBarriers; - pBufferBarriers = pBarriers; - } - CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_TEXTURE_BARRIER *pBarriers) noexcept - { - Type = D3D12_BARRIER_TYPE_TEXTURE; - NumBarriers = numBarriers; - pTextureBarriers = pBarriers; - } - CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_GLOBAL_BARRIER *pBarriers) noexcept - { - Type = D3D12_BARRIER_TYPE_GLOBAL; - NumBarriers = numBarriers; - pGlobalBarriers = pBarriers; - } -}; -#endif // D3D12_SDK_VERSION >= 608 - - -#endif // defined( __cplusplus ) - -#endif // __D3DX12_BARRIERS_H__ diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_check_feature_support.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_check_feature_support.h deleted file mode 100644 index d6dd5c8..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_check_feature_support.h +++ /dev/null @@ -1,1138 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#pragma once - -#ifndef __cplusplus -#error D3DX12 requires C++ -#endif - -#include "d3d12.h" - -//================================================================================================ -// D3DX12 Check Feature Support -//================================================================================================ - -#include - -class CD3DX12FeatureSupport -{ -public: // Function declaration - // Default constructor that creates an empty object - CD3DX12FeatureSupport() noexcept; - - // Initialize data from the given device - HRESULT Init(ID3D12Device* pDevice); - - // Retreives the status of the object. If an error occurred in the initialization process, the function returns the error code. - HRESULT GetStatus() const noexcept { return m_hStatus; } - - // Getter functions for each feature class - // D3D12_OPTIONS - BOOL DoublePrecisionFloatShaderOps() const noexcept; - BOOL OutputMergerLogicOp() const noexcept; - D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport() const noexcept; - D3D12_TILED_RESOURCES_TIER TiledResourcesTier() const noexcept; - D3D12_RESOURCE_BINDING_TIER ResourceBindingTier() const noexcept; - BOOL PSSpecifiedStencilRefSupported() const noexcept; - BOOL TypedUAVLoadAdditionalFormats() const noexcept; - BOOL ROVsSupported() const noexcept; - D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier() const noexcept; - BOOL StandardSwizzle64KBSupported() const noexcept; - BOOL CrossAdapterRowMajorTextureSupported() const noexcept; - BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation() const noexcept; - D3D12_RESOURCE_HEAP_TIER ResourceHeapTier() const noexcept; - D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier() const noexcept; - UINT MaxGPUVirtualAddressBitsPerResource() const noexcept; - - // FEATURE_LEVELS - D3D_FEATURE_LEVEL MaxSupportedFeatureLevel() const noexcept; - - // FORMAT_SUPPORT - HRESULT FormatSupport(DXGI_FORMAT Format, D3D12_FORMAT_SUPPORT1& Support1, D3D12_FORMAT_SUPPORT2& Support2) const; - - // MUTLTISAMPLE_QUALITY_LEVELS - HRESULT MultisampleQualityLevels(DXGI_FORMAT Format, UINT SampleCount, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags, UINT& NumQualityLevels) const; - - // FORMAT_INFO - HRESULT FormatInfo(DXGI_FORMAT Format, UINT8& PlaneCount) const; - - // GPU_VIRTUAL_ADDRESS_SUPPORT - UINT MaxGPUVirtualAddressBitsPerProcess() const noexcept; - - // SHADER_MODEL - D3D_SHADER_MODEL HighestShaderModel() const noexcept; - - // D3D12_OPTIONS1 - BOOL WaveOps() const noexcept; - UINT WaveLaneCountMin() const noexcept; - UINT WaveLaneCountMax() const noexcept; - UINT TotalLaneCount() const noexcept; - BOOL ExpandedComputeResourceStates() const noexcept; - BOOL Int64ShaderOps() const noexcept; - - // PROTECTED_RESOURCE_SESSION_SUPPORT - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS ProtectedResourceSessionSupport(UINT NodeIndex = 0) const; - - // ROOT_SIGNATURE - D3D_ROOT_SIGNATURE_VERSION HighestRootSignatureVersion() const noexcept; - - // ARCHITECTURE1 - BOOL TileBasedRenderer(UINT NodeIndex = 0) const; - BOOL UMA(UINT NodeIndex = 0) const; - BOOL CacheCoherentUMA(UINT NodeIndex = 0) const; - BOOL IsolatedMMU(UINT NodeIndex = 0) const; - - // D3D12_OPTIONS2 - BOOL DepthBoundsTestSupported() const noexcept; - D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier() const noexcept; - - // SHADER_CACHE - D3D12_SHADER_CACHE_SUPPORT_FLAGS ShaderCacheSupportFlags() const noexcept; - - // COMMAND_QUEUE_PRIORITY - BOOL CommandQueuePrioritySupported(D3D12_COMMAND_LIST_TYPE CommandListType, UINT Priority); - - // D3D12_OPTIONS3 - BOOL CopyQueueTimestampQueriesSupported() const noexcept; - BOOL CastingFullyTypedFormatSupported() const noexcept; - D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags() const noexcept; - D3D12_VIEW_INSTANCING_TIER ViewInstancingTier() const noexcept; - BOOL BarycentricsSupported() const noexcept; - - // EXISTING_HEAPS - BOOL ExistingHeapsSupported() const noexcept; - - // D3D12_OPTIONS4 - BOOL MSAA64KBAlignedTextureSupported() const noexcept; - D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier() const noexcept; - BOOL Native16BitShaderOpsSupported() const noexcept; - - // SERIALIZATION - D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier(UINT NodeIndex = 0) const; - - // CROSS_NODE - // CrossNodeSharingTier handled in D3D12Options - BOOL CrossNodeAtomicShaderInstructions() const noexcept; - - // D3D12_OPTIONS5 - BOOL SRVOnlyTiledResourceTier3() const noexcept; - D3D12_RENDER_PASS_TIER RenderPassesTier() const noexcept; - D3D12_RAYTRACING_TIER RaytracingTier() const noexcept; - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) - // DISPLAYABLE - BOOL DisplayableTexture() const noexcept; - // SharedResourceCompatibilityTier handled in D3D12Options4 -#endif - - // D3D12_OPTIONS6 - BOOL AdditionalShadingRatesSupported() const noexcept; - BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing() const noexcept; - D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier() const noexcept; - UINT ShadingRateImageTileSize() const noexcept; - BOOL BackgroundProcessingSupported() const noexcept; - - // QUERY_META_COMMAND - HRESULT QueryMetaCommand(D3D12_FEATURE_DATA_QUERY_META_COMMAND& dQueryMetaCommand) const; - - // D3D12_OPTIONS7 - D3D12_MESH_SHADER_TIER MeshShaderTier() const noexcept; - D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier() const noexcept; - - // PROTECTED_RESOURCE_SESSION_TYPE_COUNT - UINT ProtectedResourceSessionTypeCount(UINT NodeIndex = 0) const; - - // PROTECTED_RESOURCE_SESSION_TYPES - std::vector ProtectedResourceSessionTypes(UINT NodeIndex = 0) const; - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) - // D3D12_OPTIONS8 - BOOL UnalignedBlockTexturesSupported() const noexcept; - - // D3D12_OPTIONS9 - BOOL MeshShaderPipelineStatsSupported() const noexcept; - BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex() const noexcept; - BOOL AtomicInt64OnTypedResourceSupported() const noexcept; - BOOL AtomicInt64OnGroupSharedSupported() const noexcept; - BOOL DerivativesInMeshAndAmplificationShadersSupported() const noexcept; - D3D12_WAVE_MMA_TIER WaveMMATier() const noexcept; -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) - // D3D12_OPTIONS10 - BOOL VariableRateShadingSumCombinerSupported() const noexcept; - BOOL MeshShaderPerPrimitiveShadingRateSupported() const noexcept; - - // D3D12_OPTIONS11 - BOOL AtomicInt64OnDescriptorHeapResourceSupported() const noexcept; -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) - // D3D12_OPTIONS12 - D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives() const noexcept; - BOOL EnhancedBarriersSupported() const noexcept; - BOOL RelaxedFormatCastingSupported() const noexcept; -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) - // D3D12_OPTIONS13 - BOOL UnrestrictedBufferTextureCopyPitchSupported() const noexcept; - BOOL UnrestrictedVertexElementAlignmentSupported() const noexcept; - BOOL InvertedViewportHeightFlipsYSupported() const noexcept; - BOOL InvertedViewportDepthFlipsZSupported() const noexcept; - BOOL TextureCopyBetweenDimensionsSupported() const noexcept; - BOOL AlphaBlendFactorSupported() const noexcept; -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) - // D3D12_OPTIONS14 - BOOL AdvancedTextureOpsSupported() const noexcept; - BOOL WriteableMSAATexturesSupported() const noexcept; - BOOL IndependentFrontAndBackStencilRefMaskSupported() const noexcept; - - // D3D12_OPTIONS15 - BOOL TriangleFanSupported() const noexcept; - BOOL DynamicIndexBufferStripCutSupported() const noexcept; -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) - // D3D12_OPTIONS16 - BOOL DynamicDepthBiasSupported() const noexcept; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - BOOL GPUUploadHeapSupported() const noexcept; - - // D3D12_OPTIONS17 - BOOL NonNormalizedCoordinateSamplersSupported() const noexcept; - BOOL ManualWriteTrackingResourceSupported() const noexcept; - - // D3D12_OPTIONS18 - BOOL RenderPassesValid() const noexcept; -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) - BOOL MismatchingOutputDimensionsSupported() const noexcept; - UINT SupportedSampleCountsWithNoOutputs() const noexcept; - BOOL PointSamplingAddressesNeverRoundUp() const noexcept; - BOOL RasterizerDesc2Supported() const noexcept; - BOOL NarrowQuadrilateralLinesSupported() const noexcept; - BOOL AnisoFilterWithPointMipSupported() const noexcept; - UINT MaxSamplerDescriptorHeapSize() const noexcept; - UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers() const noexcept; - UINT MaxViewDescriptorHeapSize() const noexcept; -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) - BOOL ComputeOnlyWriteWatchSupported() const noexcept; -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) - D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier() const noexcept; - D3D12_WORK_GRAPHS_TIER WorkGraphsTier() const noexcept; -#endif - -private: // Private structs and helpers declaration - struct ProtectedResourceSessionTypesLocal : D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES - { - std::vector TypeVec; - }; - - // Helper function to decide the highest shader model supported by the system - // Stores the result in m_dShaderModel - // Must be updated whenever a new shader model is added to the d3d12.h header - HRESULT QueryHighestShaderModel(); - - // Helper function to decide the highest root signature supported - // Must be updated whenever a new root signature version is added to the d3d12.h header - HRESULT QueryHighestRootSignatureVersion(); - - // Helper funcion to decide the highest feature level - HRESULT QueryHighestFeatureLevel(); - - // Helper function to initialize local protected resource session types structs - HRESULT QueryProtectedResourceSessionTypes(UINT NodeIndex, UINT Count); - -private: // Member data - // Pointer to the underlying device - ID3D12Device* m_pDevice; - - // Stores the error code from initialization - HRESULT m_hStatus; - - // Feature support data structs - D3D12_FEATURE_DATA_D3D12_OPTIONS m_dOptions; - D3D_FEATURE_LEVEL m_eMaxFeatureLevel; - D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT m_dGPUVASupport; - D3D12_FEATURE_DATA_SHADER_MODEL m_dShaderModel; - D3D12_FEATURE_DATA_D3D12_OPTIONS1 m_dOptions1; - std::vector m_dProtectedResourceSessionSupport; - D3D12_FEATURE_DATA_ROOT_SIGNATURE m_dRootSignature; - std::vector m_dArchitecture1; - D3D12_FEATURE_DATA_D3D12_OPTIONS2 m_dOptions2; - D3D12_FEATURE_DATA_SHADER_CACHE m_dShaderCache; - D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY m_dCommandQueuePriority; - D3D12_FEATURE_DATA_D3D12_OPTIONS3 m_dOptions3; - D3D12_FEATURE_DATA_EXISTING_HEAPS m_dExistingHeaps; - D3D12_FEATURE_DATA_D3D12_OPTIONS4 m_dOptions4; - std::vector m_dSerialization; // Cat2 NodeIndex - D3D12_FEATURE_DATA_CROSS_NODE m_dCrossNode; - D3D12_FEATURE_DATA_D3D12_OPTIONS5 m_dOptions5; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) - D3D12_FEATURE_DATA_DISPLAYABLE m_dDisplayable; -#endif - D3D12_FEATURE_DATA_D3D12_OPTIONS6 m_dOptions6; - D3D12_FEATURE_DATA_D3D12_OPTIONS7 m_dOptions7; - std::vector m_dProtectedResourceSessionTypeCount; // Cat2 NodeIndex - std::vector m_dProtectedResourceSessionTypes; // Cat3 -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) - D3D12_FEATURE_DATA_D3D12_OPTIONS8 m_dOptions8; - D3D12_FEATURE_DATA_D3D12_OPTIONS9 m_dOptions9; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) - D3D12_FEATURE_DATA_D3D12_OPTIONS10 m_dOptions10; - D3D12_FEATURE_DATA_D3D12_OPTIONS11 m_dOptions11; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) - D3D12_FEATURE_DATA_D3D12_OPTIONS12 m_dOptions12; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) - D3D12_FEATURE_DATA_D3D12_OPTIONS13 m_dOptions13; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) - D3D12_FEATURE_DATA_D3D12_OPTIONS14 m_dOptions14; - D3D12_FEATURE_DATA_D3D12_OPTIONS15 m_dOptions15; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) - D3D12_FEATURE_DATA_D3D12_OPTIONS16 m_dOptions16; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - D3D12_FEATURE_DATA_D3D12_OPTIONS17 m_dOptions17; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - D3D12_FEATURE_DATA_D3D12_OPTIONS18 m_dOptions18; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) - D3D12_FEATURE_DATA_D3D12_OPTIONS19 m_dOptions19; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) - D3D12_FEATURE_DATA_D3D12_OPTIONS20 m_dOptions20; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) - D3D12_FEATURE_DATA_D3D12_OPTIONS21 m_dOptions21; -#endif -}; - -// Implementations for CD3DX12FeatureSupport functions - -// Macro to set up a getter function for each entry in feature support data -// The getter function will have the same name as the feature option name -#define FEATURE_SUPPORT_GET(RETTYPE,FEATURE,OPTION) \ -inline RETTYPE CD3DX12FeatureSupport::OPTION() const noexcept \ -{ \ - return FEATURE.OPTION; \ -} - -// Macro to set up a getter function for each entry in feature support data -// Also specifies the name for the function which can be different from the feature name -#define FEATURE_SUPPORT_GET_NAME(RETTYPE,FEATURE,OPTION,NAME) \ -inline RETTYPE CD3DX12FeatureSupport::NAME() const noexcept \ -{\ - return FEATURE.OPTION; \ -} - -// Macro to set up a getter function for feature data indexed by the graphics node ID -// The default parameter is 0, or the first availabe graphics device node -#define FEATURE_SUPPORT_GET_NODE_INDEXED(RETTYPE,FEATURE,OPTION) \ -inline RETTYPE CD3DX12FeatureSupport::OPTION(UINT NodeIndex) const \ -{\ - return FEATURE[NodeIndex].OPTION; \ -} - -// Macro to set up a getter function for feature data indexed by NodeIndex -// Allows a custom name for the getter function -#define FEATURE_SUPPORT_GET_NODE_INDEXED_NAME(RETTYPE,FEATURE,OPTION,NAME) \ -inline RETTYPE CD3DX12FeatureSupport::NAME(UINT NodeIndex) const \ -{\ - return FEATURE[NodeIndex].OPTION; \ -} - -inline CD3DX12FeatureSupport::CD3DX12FeatureSupport() noexcept -: m_pDevice(nullptr) -, m_hStatus(E_INVALIDARG) -, m_dOptions{} -, m_eMaxFeatureLevel{} -, m_dGPUVASupport{} -, m_dShaderModel{} -, m_dOptions1{} -, m_dRootSignature{} -, m_dOptions2{} -, m_dShaderCache{} -, m_dCommandQueuePriority{} -, m_dOptions3{} -, m_dExistingHeaps{} -, m_dOptions4{} -, m_dCrossNode{} -, m_dOptions5{} -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) -, m_dDisplayable{} -#endif -, m_dOptions6{} -, m_dOptions7{} -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) -, m_dOptions8{} -, m_dOptions9{} -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) -, m_dOptions10{} -, m_dOptions11{} -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) -, m_dOptions12{} -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) -, m_dOptions13{} -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) -, m_dOptions14{} -, m_dOptions15{} -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) -, m_dOptions16{} -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) -, m_dOptions17{} -#endif -#if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) -, m_dOptions18{} -#endif -#if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) -, m_dOptions19{} -#endif -#if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) -, m_dOptions20{} -#endif -#if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) -, m_dOptions21{} -#endif -{} - -inline HRESULT CD3DX12FeatureSupport::Init(ID3D12Device* pDevice) -{ - if (!pDevice) - { - m_hStatus = E_INVALIDARG; - return m_hStatus; - } - - m_pDevice = pDevice; - - // Initialize static feature support data structures - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &m_dOptions, sizeof(m_dOptions)))) - { - m_dOptions = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT, &m_dGPUVASupport, sizeof(m_dGPUVASupport)))) - { - m_dGPUVASupport = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS1, &m_dOptions1, sizeof(m_dOptions1)))) - { - m_dOptions1 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS2, &m_dOptions2, sizeof(m_dOptions2)))) - { - m_dOptions2 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_SHADER_CACHE, &m_dShaderCache, sizeof(m_dShaderCache)))) - { - m_dShaderCache = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS3, &m_dOptions3, sizeof(m_dOptions3)))) - { - m_dOptions3 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_EXISTING_HEAPS, &m_dExistingHeaps, sizeof(m_dExistingHeaps)))) - { - m_dExistingHeaps = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS4, &m_dOptions4, sizeof(m_dOptions4)))) - { - m_dOptions4 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_CROSS_NODE, &m_dCrossNode, sizeof(m_dCrossNode)))) - { - m_dCrossNode = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS5, &m_dOptions5, sizeof(m_dOptions5)))) - { - m_dOptions5 = {}; - } - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_DISPLAYABLE, &m_dDisplayable, sizeof(m_dDisplayable)))) - { - m_dDisplayable = {}; - } -#endif - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS6, &m_dOptions6, sizeof(m_dOptions6)))) - { - m_dOptions6 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS7, &m_dOptions7, sizeof(m_dOptions7)))) - { - m_dOptions7 = {}; - } - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS8, &m_dOptions8, sizeof(m_dOptions8)))) - { - m_dOptions8 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS9, &m_dOptions9, sizeof(m_dOptions9)))) - { - m_dOptions9 = {}; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS10, &m_dOptions10, sizeof(m_dOptions10)))) - { - m_dOptions10 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS11, &m_dOptions11, sizeof(m_dOptions11)))) - { - m_dOptions11 = {}; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS12, &m_dOptions12, sizeof(m_dOptions12)))) - { - m_dOptions12 = {}; - m_dOptions12.MSPrimitivesPipelineStatisticIncludesCulledPrimitives = D3D12_TRI_STATE::D3D12_TRI_STATE_UNKNOWN; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS13, &m_dOptions13, sizeof(m_dOptions13)))) - { - m_dOptions13 = {}; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS14, &m_dOptions14, sizeof(m_dOptions14)))) - { - m_dOptions14 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS15, &m_dOptions15, sizeof(m_dOptions15)))) - { - m_dOptions15 = {}; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS16, &m_dOptions16, sizeof(m_dOptions16)))) - { - m_dOptions16 = {}; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS17, &m_dOptions17, sizeof(m_dOptions17)))) - { - m_dOptions17 = {}; - } - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS18, &m_dOptions18, sizeof(m_dOptions18)))) - { - m_dOptions18.RenderPassesValid = false; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS19, &m_dOptions19, sizeof(m_dOptions19)))) - { - m_dOptions19 = {}; - m_dOptions19.SupportedSampleCountsWithNoOutputs = 1; - m_dOptions19.MaxSamplerDescriptorHeapSize = D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE; - m_dOptions19.MaxSamplerDescriptorHeapSizeWithStaticSamplers = D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE; - m_dOptions19.MaxViewDescriptorHeapSize = D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS20, &m_dOptions20, sizeof(m_dOptions20)))) - { - m_dOptions20 = {}; - } -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS21, &m_dOptions21, sizeof(m_dOptions21)))) - { - m_dOptions21 = {}; - } -#endif - - // Initialize per-node feature support data structures - const UINT uNodeCount = m_pDevice->GetNodeCount(); - m_dProtectedResourceSessionSupport.resize(uNodeCount); - m_dArchitecture1.resize(uNodeCount); - m_dSerialization.resize(uNodeCount); - m_dProtectedResourceSessionTypeCount.resize(uNodeCount); - m_dProtectedResourceSessionTypes.resize(uNodeCount); - for (UINT NodeIndex = 0; NodeIndex < uNodeCount; NodeIndex++) - { - m_dProtectedResourceSessionSupport[NodeIndex].NodeIndex = NodeIndex; - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT, &m_dProtectedResourceSessionSupport[NodeIndex], sizeof(m_dProtectedResourceSessionSupport[NodeIndex])))) - { - m_dProtectedResourceSessionSupport[NodeIndex].Support = D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE; - } - - m_dArchitecture1[NodeIndex].NodeIndex = NodeIndex; - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_ARCHITECTURE1, &m_dArchitecture1[NodeIndex], sizeof(m_dArchitecture1[NodeIndex])))) - { - D3D12_FEATURE_DATA_ARCHITECTURE dArchLocal = {}; - dArchLocal.NodeIndex = NodeIndex; - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_ARCHITECTURE, &dArchLocal, sizeof(dArchLocal)))) - { - dArchLocal.TileBasedRenderer = false; - dArchLocal.UMA = false; - dArchLocal.CacheCoherentUMA = false; - } - - m_dArchitecture1[NodeIndex].TileBasedRenderer = dArchLocal.TileBasedRenderer; - m_dArchitecture1[NodeIndex].UMA = dArchLocal.UMA; - m_dArchitecture1[NodeIndex].CacheCoherentUMA = dArchLocal.CacheCoherentUMA; - m_dArchitecture1[NodeIndex].IsolatedMMU = false; - } - - m_dSerialization[NodeIndex].NodeIndex = NodeIndex; - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_SERIALIZATION, &m_dSerialization[NodeIndex], sizeof(m_dSerialization[NodeIndex])))) - { - m_dSerialization[NodeIndex].HeapSerializationTier = D3D12_HEAP_SERIALIZATION_TIER_0; - } - - m_dProtectedResourceSessionTypeCount[NodeIndex].NodeIndex = NodeIndex; - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT, &m_dProtectedResourceSessionTypeCount[NodeIndex], sizeof(m_dProtectedResourceSessionTypeCount[NodeIndex])))) - { - m_dProtectedResourceSessionTypeCount[NodeIndex].Count = 0; - } - - // Special procedure to initialize local protected resource session types structs - // Must wait until session type count initialized - QueryProtectedResourceSessionTypes(NodeIndex, m_dProtectedResourceSessionTypeCount[NodeIndex].Count); - } - - // Initialize features that requires highest version check - if (FAILED(m_hStatus = QueryHighestShaderModel())) - { - return m_hStatus; - } - - if (FAILED(m_hStatus = QueryHighestRootSignatureVersion())) - { - return m_hStatus; - } - - // Initialize Feature Levels data - if (FAILED(m_hStatus = QueryHighestFeatureLevel())) - { - return m_hStatus; - } - - return m_hStatus; -} - -// 0: D3D12_OPTIONS -FEATURE_SUPPORT_GET(BOOL, m_dOptions, DoublePrecisionFloatShaderOps); -FEATURE_SUPPORT_GET(BOOL, m_dOptions, OutputMergerLogicOp); -FEATURE_SUPPORT_GET(D3D12_SHADER_MIN_PRECISION_SUPPORT, m_dOptions, MinPrecisionSupport); -FEATURE_SUPPORT_GET(D3D12_TILED_RESOURCES_TIER, m_dOptions, TiledResourcesTier); -FEATURE_SUPPORT_GET(D3D12_RESOURCE_BINDING_TIER, m_dOptions, ResourceBindingTier); -FEATURE_SUPPORT_GET(BOOL, m_dOptions, PSSpecifiedStencilRefSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions, TypedUAVLoadAdditionalFormats); -FEATURE_SUPPORT_GET(BOOL, m_dOptions, ROVsSupported); -FEATURE_SUPPORT_GET(D3D12_CONSERVATIVE_RASTERIZATION_TIER, m_dOptions, ConservativeRasterizationTier); -FEATURE_SUPPORT_GET(BOOL, m_dOptions, StandardSwizzle64KBSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions, CrossAdapterRowMajorTextureSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions, VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation); -FEATURE_SUPPORT_GET(D3D12_RESOURCE_HEAP_TIER, m_dOptions, ResourceHeapTier); - -// Special procedure for handling caps that is also part of other features -inline D3D12_CROSS_NODE_SHARING_TIER CD3DX12FeatureSupport::CrossNodeSharingTier() const noexcept -{ - if (m_dCrossNode.SharingTier > D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED) - { - return m_dCrossNode.SharingTier; - } - else - { - return m_dOptions.CrossNodeSharingTier; - } -} - -inline UINT CD3DX12FeatureSupport::MaxGPUVirtualAddressBitsPerResource() const noexcept -{ - if (m_dOptions.MaxGPUVirtualAddressBitsPerResource > 0) - { - return m_dOptions.MaxGPUVirtualAddressBitsPerResource; - } - else - { - return m_dGPUVASupport.MaxGPUVirtualAddressBitsPerResource; - } -} - -// 1: Architecture -// Combined with Architecture1 - -// 2: Feature Levels -// Simply returns the highest supported feature level -inline D3D_FEATURE_LEVEL CD3DX12FeatureSupport::MaxSupportedFeatureLevel() const noexcept -{ - return m_eMaxFeatureLevel; -} - -// 3: Feature Format Support -inline HRESULT CD3DX12FeatureSupport::FormatSupport(DXGI_FORMAT Format, D3D12_FORMAT_SUPPORT1& Support1, D3D12_FORMAT_SUPPORT2& Support2) const -{ - D3D12_FEATURE_DATA_FORMAT_SUPPORT dFormatSupport; - dFormatSupport.Format = Format; - - // It is possible that the function call returns an error - HRESULT result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_SUPPORT, &dFormatSupport, sizeof(D3D12_FEATURE_DATA_FORMAT_SUPPORT)); - - Support1 = dFormatSupport.Support1; - Support2 = dFormatSupport.Support2; // Two outputs. Probably better just to take in the struct as an argument? - - return result; -} - -// 4: Multisample Quality Levels -inline HRESULT CD3DX12FeatureSupport::MultisampleQualityLevels(DXGI_FORMAT Format, UINT SampleCount, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags, UINT& NumQualityLevels) const -{ - D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS dMultisampleQualityLevels; - dMultisampleQualityLevels.Format = Format; - dMultisampleQualityLevels.SampleCount = SampleCount; - dMultisampleQualityLevels.Flags = Flags; - - HRESULT result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS, &dMultisampleQualityLevels, sizeof(D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS)); - - if (SUCCEEDED(result)) - { - NumQualityLevels = dMultisampleQualityLevels.NumQualityLevels; - } - else - { - NumQualityLevels = 0; - } - - return result; -} - -// 5: Format Info -inline HRESULT CD3DX12FeatureSupport::FormatInfo(DXGI_FORMAT Format, UINT8& PlaneCount) const -{ - D3D12_FEATURE_DATA_FORMAT_INFO dFormatInfo; - dFormatInfo.Format = Format; - - HRESULT result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &dFormatInfo, sizeof(D3D12_FEATURE_DATA_FORMAT_INFO)); - if (FAILED(result)) - { - PlaneCount = 0; - } - else - { - PlaneCount = dFormatInfo.PlaneCount; - } - return result; -} - -// 6: GPU Virtual Address Support -// MaxGPUVirtualAddressBitsPerResource handled in D3D12Options -FEATURE_SUPPORT_GET(UINT, m_dGPUVASupport, MaxGPUVirtualAddressBitsPerProcess); - -// 7: Shader Model -inline D3D_SHADER_MODEL CD3DX12FeatureSupport::HighestShaderModel() const noexcept -{ - return m_dShaderModel.HighestShaderModel; -} - -// 8: D3D12 Options1 -FEATURE_SUPPORT_GET(BOOL, m_dOptions1, WaveOps); -FEATURE_SUPPORT_GET(UINT, m_dOptions1, WaveLaneCountMin); -FEATURE_SUPPORT_GET(UINT, m_dOptions1, WaveLaneCountMax); -FEATURE_SUPPORT_GET(UINT, m_dOptions1, TotalLaneCount); -FEATURE_SUPPORT_GET(BOOL, m_dOptions1, ExpandedComputeResourceStates); -FEATURE_SUPPORT_GET(BOOL, m_dOptions1, Int64ShaderOps); - -// 10: Protected Resource Session Support -inline D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS CD3DX12FeatureSupport::ProtectedResourceSessionSupport(UINT NodeIndex) const -{ - return m_dProtectedResourceSessionSupport[NodeIndex].Support; -} - -// 12: Root Signature -inline D3D_ROOT_SIGNATURE_VERSION CD3DX12FeatureSupport::HighestRootSignatureVersion() const noexcept -{ - return m_dRootSignature.HighestVersion; -} - -// 16: Architecture1 -// Same data fields can be queried from m_dArchitecture -FEATURE_SUPPORT_GET_NODE_INDEXED(BOOL, m_dArchitecture1, TileBasedRenderer); -FEATURE_SUPPORT_GET_NODE_INDEXED(BOOL, m_dArchitecture1, UMA); -FEATURE_SUPPORT_GET_NODE_INDEXED(BOOL, m_dArchitecture1, CacheCoherentUMA); -FEATURE_SUPPORT_GET_NODE_INDEXED(BOOL, m_dArchitecture1, IsolatedMMU); - -// 18: D3D12 Options2 -FEATURE_SUPPORT_GET(BOOL, m_dOptions2, DepthBoundsTestSupported); -FEATURE_SUPPORT_GET(D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER, m_dOptions2, ProgrammableSamplePositionsTier); - -// 19: Shader Cache -FEATURE_SUPPORT_GET_NAME(D3D12_SHADER_CACHE_SUPPORT_FLAGS, m_dShaderCache, SupportFlags, ShaderCacheSupportFlags); - -// 20: Command Queue Priority -inline BOOL CD3DX12FeatureSupport::CommandQueuePrioritySupported(D3D12_COMMAND_LIST_TYPE CommandListType, UINT Priority) -{ - m_dCommandQueuePriority.CommandListType = CommandListType; - m_dCommandQueuePriority.Priority = Priority; - - if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_COMMAND_QUEUE_PRIORITY, &m_dCommandQueuePriority, sizeof(D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY)))) - { - return false; - } - - return m_dCommandQueuePriority.PriorityForTypeIsSupported; -} - -// 21: D3D12 Options3 -FEATURE_SUPPORT_GET(BOOL, m_dOptions3, CopyQueueTimestampQueriesSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions3, CastingFullyTypedFormatSupported); -FEATURE_SUPPORT_GET(D3D12_COMMAND_LIST_SUPPORT_FLAGS, m_dOptions3, WriteBufferImmediateSupportFlags); -FEATURE_SUPPORT_GET(D3D12_VIEW_INSTANCING_TIER, m_dOptions3, ViewInstancingTier); -FEATURE_SUPPORT_GET(BOOL, m_dOptions3, BarycentricsSupported); - -// 22: Existing Heaps -FEATURE_SUPPORT_GET_NAME(BOOL, m_dExistingHeaps, Supported, ExistingHeapsSupported); - -// 23: D3D12 Options4 -FEATURE_SUPPORT_GET(BOOL, m_dOptions4, MSAA64KBAlignedTextureSupported); -FEATURE_SUPPORT_GET(D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER, m_dOptions4, SharedResourceCompatibilityTier); -FEATURE_SUPPORT_GET(BOOL, m_dOptions4, Native16BitShaderOpsSupported); - -// 24: Serialization -FEATURE_SUPPORT_GET_NODE_INDEXED(D3D12_HEAP_SERIALIZATION_TIER, m_dSerialization, HeapSerializationTier); - -// 25: Cross Node -// CrossNodeSharingTier handled in D3D12Options -FEATURE_SUPPORT_GET_NAME(BOOL, m_dCrossNode, AtomicShaderInstructions, CrossNodeAtomicShaderInstructions); - -// 27: D3D12 Options5 -FEATURE_SUPPORT_GET(BOOL, m_dOptions5, SRVOnlyTiledResourceTier3); -FEATURE_SUPPORT_GET(D3D12_RENDER_PASS_TIER, m_dOptions5, RenderPassesTier); -FEATURE_SUPPORT_GET(D3D12_RAYTRACING_TIER, m_dOptions5, RaytracingTier); - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) -// 28: Displayable -FEATURE_SUPPORT_GET(BOOL, m_dDisplayable, DisplayableTexture); -// SharedResourceCompatibilityTier handled in D3D12Options4 -#endif - -// 30: D3D12 Options6 -FEATURE_SUPPORT_GET(BOOL, m_dOptions6, AdditionalShadingRatesSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions6, PerPrimitiveShadingRateSupportedWithViewportIndexing); -FEATURE_SUPPORT_GET(D3D12_VARIABLE_SHADING_RATE_TIER, m_dOptions6, VariableShadingRateTier); -FEATURE_SUPPORT_GET(UINT, m_dOptions6, ShadingRateImageTileSize); -FEATURE_SUPPORT_GET(BOOL, m_dOptions6, BackgroundProcessingSupported); - -// 31: Query Meta Command -// Keep the original call routine -inline HRESULT CD3DX12FeatureSupport::QueryMetaCommand(D3D12_FEATURE_DATA_QUERY_META_COMMAND& dQueryMetaCommand) const -{ - return m_pDevice->CheckFeatureSupport(D3D12_FEATURE_QUERY_META_COMMAND, &dQueryMetaCommand, sizeof(D3D12_FEATURE_DATA_QUERY_META_COMMAND)); -} - -// 32: D3D12 Options7 -FEATURE_SUPPORT_GET(D3D12_MESH_SHADER_TIER, m_dOptions7, MeshShaderTier); -FEATURE_SUPPORT_GET(D3D12_SAMPLER_FEEDBACK_TIER, m_dOptions7, SamplerFeedbackTier); - -// 33: Protected Resource Session Type Count -FEATURE_SUPPORT_GET_NODE_INDEXED_NAME(UINT, m_dProtectedResourceSessionTypeCount, Count, ProtectedResourceSessionTypeCount); - -// 34: Protected Resource Session Types -FEATURE_SUPPORT_GET_NODE_INDEXED_NAME(std::vector, m_dProtectedResourceSessionTypes, TypeVec, ProtectedResourceSessionTypes); - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) -// 36: Options8 -FEATURE_SUPPORT_GET(BOOL, m_dOptions8, UnalignedBlockTexturesSupported); - -// 37: Options9 -FEATURE_SUPPORT_GET(BOOL, m_dOptions9, MeshShaderPipelineStatsSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions9, MeshShaderSupportsFullRangeRenderTargetArrayIndex); -FEATURE_SUPPORT_GET(BOOL, m_dOptions9, AtomicInt64OnTypedResourceSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions9, AtomicInt64OnGroupSharedSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions9, DerivativesInMeshAndAmplificationShadersSupported); -FEATURE_SUPPORT_GET(D3D12_WAVE_MMA_TIER, m_dOptions9, WaveMMATier); -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) -// 39: Options10 -FEATURE_SUPPORT_GET(BOOL, m_dOptions10, VariableRateShadingSumCombinerSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions10, MeshShaderPerPrimitiveShadingRateSupported); - -// 40: Options11 -FEATURE_SUPPORT_GET(BOOL, m_dOptions11, AtomicInt64OnDescriptorHeapResourceSupported); -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) -// 41: Options12 -FEATURE_SUPPORT_GET(D3D12_TRI_STATE, m_dOptions12, MSPrimitivesPipelineStatisticIncludesCulledPrimitives); -FEATURE_SUPPORT_GET(BOOL, m_dOptions12, EnhancedBarriersSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions12, RelaxedFormatCastingSupported); -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) -// 42: Options13 -FEATURE_SUPPORT_GET(BOOL, m_dOptions13, UnrestrictedBufferTextureCopyPitchSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions13, UnrestrictedVertexElementAlignmentSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions13, InvertedViewportHeightFlipsYSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions13, InvertedViewportDepthFlipsZSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions13, TextureCopyBetweenDimensionsSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions13, AlphaBlendFactorSupported); -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) -// 43: Options14 -FEATURE_SUPPORT_GET(BOOL, m_dOptions14, AdvancedTextureOpsSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions14, WriteableMSAATexturesSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions14, IndependentFrontAndBackStencilRefMaskSupported); - -// 44: Options15 -FEATURE_SUPPORT_GET(BOOL, m_dOptions15, TriangleFanSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions15, DynamicIndexBufferStripCutSupported); -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) -// 45: Options16 -FEATURE_SUPPORT_GET(BOOL, m_dOptions16, DynamicDepthBiasSupported); -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) -FEATURE_SUPPORT_GET(BOOL, m_dOptions16, GPUUploadHeapSupported); - -// 46: Options17 -FEATURE_SUPPORT_GET(BOOL, m_dOptions17, NonNormalizedCoordinateSamplersSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions17, ManualWriteTrackingResourceSupported); - -// 47: Option18 -FEATURE_SUPPORT_GET(BOOL, m_dOptions18, RenderPassesValid); -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) -FEATURE_SUPPORT_GET(BOOL, m_dOptions19, MismatchingOutputDimensionsSupported); -FEATURE_SUPPORT_GET(UINT, m_dOptions19, SupportedSampleCountsWithNoOutputs); -FEATURE_SUPPORT_GET(BOOL, m_dOptions19, PointSamplingAddressesNeverRoundUp); -FEATURE_SUPPORT_GET(BOOL, m_dOptions19, RasterizerDesc2Supported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions19, NarrowQuadrilateralLinesSupported); -FEATURE_SUPPORT_GET(BOOL, m_dOptions19, AnisoFilterWithPointMipSupported); -FEATURE_SUPPORT_GET(UINT, m_dOptions19, MaxSamplerDescriptorHeapSize); -FEATURE_SUPPORT_GET(UINT, m_dOptions19, MaxSamplerDescriptorHeapSizeWithStaticSamplers); -FEATURE_SUPPORT_GET(UINT, m_dOptions19, MaxViewDescriptorHeapSize); -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) -// 49: Options20 -FEATURE_SUPPORT_GET(BOOL, m_dOptions20, ComputeOnlyWriteWatchSupported); -#endif - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) -// 50: Options21 -FEATURE_SUPPORT_GET(D3D12_EXECUTE_INDIRECT_TIER, m_dOptions21, ExecuteIndirectTier); -FEATURE_SUPPORT_GET(D3D12_WORK_GRAPHS_TIER, m_dOptions21, WorkGraphsTier); -#endif - -// Helper function to decide the highest shader model supported by the system -// Stores the result in m_dShaderModel -// Must be updated whenever a new shader model is added to the d3d12.h header -inline HRESULT CD3DX12FeatureSupport::QueryHighestShaderModel() -{ - // Check support in descending order - HRESULT result; - - const D3D_SHADER_MODEL allModelVersions[] = - { -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) - D3D_SHADER_MODEL_6_9, -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) - D3D_SHADER_MODEL_6_8, -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) - D3D_SHADER_MODEL_6_7, -#endif - D3D_SHADER_MODEL_6_6, - D3D_SHADER_MODEL_6_5, - D3D_SHADER_MODEL_6_4, - D3D_SHADER_MODEL_6_3, - D3D_SHADER_MODEL_6_2, - D3D_SHADER_MODEL_6_1, - D3D_SHADER_MODEL_6_0, - D3D_SHADER_MODEL_5_1 - }; - constexpr size_t numModelVersions = sizeof(allModelVersions) / sizeof(D3D_SHADER_MODEL); - - for (size_t i = 0; i < numModelVersions; i++) - { - m_dShaderModel.HighestShaderModel = allModelVersions[i]; - result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &m_dShaderModel, sizeof(D3D12_FEATURE_DATA_SHADER_MODEL)); - if (result != E_INVALIDARG) - { - // Indicates that the version is recognizable by the runtime and stored in the struct - // Also terminate on unexpected error code - if (FAILED(result)) - { - m_dShaderModel.HighestShaderModel = static_cast(0); - } - return result; - } - } - - // Shader model may not be supported. Continue the rest initializations - m_dShaderModel.HighestShaderModel = static_cast(0); - return S_OK; -} - -// Helper function to decide the highest root signature supported -// Must be updated whenever a new root signature version is added to the d3d12.h header -inline HRESULT CD3DX12FeatureSupport::QueryHighestRootSignatureVersion() -{ - HRESULT result; - - const D3D_ROOT_SIGNATURE_VERSION allRootSignatureVersions[] = - { -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - D3D_ROOT_SIGNATURE_VERSION_1_2, -#endif - D3D_ROOT_SIGNATURE_VERSION_1_1, - D3D_ROOT_SIGNATURE_VERSION_1_0, - D3D_ROOT_SIGNATURE_VERSION_1, - }; - constexpr size_t numRootSignatureVersions = sizeof(allRootSignatureVersions) / sizeof(D3D_ROOT_SIGNATURE_VERSION); - - for (size_t i = 0; i < numRootSignatureVersions; i++) - { - m_dRootSignature.HighestVersion = allRootSignatureVersions[i]; - result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_ROOT_SIGNATURE, &m_dRootSignature, sizeof(D3D12_FEATURE_DATA_ROOT_SIGNATURE)); - if (result != E_INVALIDARG) - { - if (FAILED(result)) - { - m_dRootSignature.HighestVersion = static_cast(0); - } - // If succeeded, the highest version is already written into the member struct - return result; - } - } - - // No version left. Set to invalid value and continue. - m_dRootSignature.HighestVersion = static_cast(0); - return S_OK; -} - -// Helper funcion to decide the highest feature level -inline HRESULT CD3DX12FeatureSupport::QueryHighestFeatureLevel() -{ - HRESULT result; - - // Check against a list of all feature levels present in d3dcommon.h - // Needs to be updated for future feature levels - const D3D_FEATURE_LEVEL allLevels[] = - { -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) - D3D_FEATURE_LEVEL_12_2, -#endif - D3D_FEATURE_LEVEL_12_1, - D3D_FEATURE_LEVEL_12_0, - D3D_FEATURE_LEVEL_11_1, - D3D_FEATURE_LEVEL_11_0, - D3D_FEATURE_LEVEL_10_1, - D3D_FEATURE_LEVEL_10_0, - D3D_FEATURE_LEVEL_9_3, - D3D_FEATURE_LEVEL_9_2, - D3D_FEATURE_LEVEL_9_1, -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 5) - D3D_FEATURE_LEVEL_1_0_CORE, -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) - D3D_FEATURE_LEVEL_1_0_GENERIC -#endif - }; - - D3D12_FEATURE_DATA_FEATURE_LEVELS dFeatureLevel; - dFeatureLevel.NumFeatureLevels = static_cast(sizeof(allLevels) / sizeof(D3D_FEATURE_LEVEL)); - dFeatureLevel.pFeatureLevelsRequested = allLevels; - - result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_FEATURE_LEVELS, &dFeatureLevel, sizeof(D3D12_FEATURE_DATA_FEATURE_LEVELS)); - if (SUCCEEDED(result)) - { - m_eMaxFeatureLevel = dFeatureLevel.MaxSupportedFeatureLevel; - } - else - { - m_eMaxFeatureLevel = static_cast(0); - - if (result == DXGI_ERROR_UNSUPPORTED) - { - // Indicates that none supported. Continue initialization - result = S_OK; - } - } - return result; -} - -// Helper function to initialize local protected resource session types structs -inline HRESULT CD3DX12FeatureSupport::QueryProtectedResourceSessionTypes(UINT NodeIndex, UINT Count) -{ - auto& CurrentPRSTypes = m_dProtectedResourceSessionTypes[NodeIndex]; - CurrentPRSTypes.NodeIndex = NodeIndex; - CurrentPRSTypes.Count = Count; - CurrentPRSTypes.TypeVec.resize(CurrentPRSTypes.Count); - CurrentPRSTypes.pTypes = CurrentPRSTypes.TypeVec.data(); - - HRESULT result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES, &m_dProtectedResourceSessionTypes[NodeIndex], sizeof(D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES)); - if (FAILED(result)) - { - // Resize TypeVec to empty - CurrentPRSTypes.TypeVec.clear(); - } - - return result; -} - -#undef FEATURE_SUPPORT_GET -#undef FEATURE_SUPPORT_GET_NAME -#undef FEATURE_SUPPORT_GET_NODE_INDEXED -#undef FEATURE_SUPPORT_GET_NODE_INDEXED_NAME - -// end CD3DX12FeatureSupport diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_core.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_core.h deleted file mode 100644 index 87814fb..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_core.h +++ /dev/null @@ -1,1537 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#pragma once - -#ifndef __cplusplus -#error D3DX12 requires C++ -#endif - -#include -#include "d3d12.h" -#include "d3dx12_default.h" - -//------------------------------------------------------------------------------------------------ -#ifndef D3DX12_ASSERT - #ifdef assert - #define D3DX12_ASSERT(x) assert(x) - #else - #define D3DX12_ASSERT(x) - #endif -#endif - -//------------------------------------------------------------------------------------------------ -template -inline ID3D12CommandList * const * CommandListCast(t_CommandListType * const * pp) noexcept -{ - // This cast is useful for passing strongly typed command list pointers into - // ExecuteCommandLists. - // This cast is valid as long as the const-ness is respected. D3D12 APIs do - // respect the const-ness of their arguments. - return reinterpret_cast(pp); -} - -//------------------------------------------------------------------------------------------------ -inline bool operator==( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) noexcept -{ - return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && - l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; -} - -//------------------------------------------------------------------------------------------------ -inline bool operator!=( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) noexcept -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RECT : public D3D12_RECT -{ - CD3DX12_RECT() = default; - explicit CD3DX12_RECT( const D3D12_RECT& o ) noexcept : - D3D12_RECT( o ) - {} - explicit CD3DX12_RECT( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom ) noexcept - { - left = Left; - top = Top; - right = Right; - bottom = Bottom; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_VIEWPORT : public D3D12_VIEWPORT -{ - CD3DX12_VIEWPORT() = default; - explicit CD3DX12_VIEWPORT( const D3D12_VIEWPORT& o ) noexcept : - D3D12_VIEWPORT( o ) - {} - explicit CD3DX12_VIEWPORT( - FLOAT topLeftX, - FLOAT topLeftY, - FLOAT width, - FLOAT height, - FLOAT minDepth = D3D12_MIN_DEPTH, - FLOAT maxDepth = D3D12_MAX_DEPTH ) noexcept - { - TopLeftX = topLeftX; - TopLeftY = topLeftY; - Width = width; - Height = height; - MinDepth = minDepth; - MaxDepth = maxDepth; - } - explicit CD3DX12_VIEWPORT( - _In_ ID3D12Resource* pResource, - UINT mipSlice = 0, - FLOAT topLeftX = 0.0f, - FLOAT topLeftY = 0.0f, - FLOAT minDepth = D3D12_MIN_DEPTH, - FLOAT maxDepth = D3D12_MAX_DEPTH ) noexcept - { -#if defined(_MSC_VER) || !defined(_WIN32) - const auto Desc = pResource->GetDesc(); -#else - D3D12_RESOURCE_DESC tmpDesc; - const auto& Desc = *pResource->GetDesc(&tmpDesc); -#endif - const UINT64 SubresourceWidth = Desc.Width >> mipSlice; - const UINT64 SubresourceHeight = Desc.Height >> mipSlice; - switch (Desc.Dimension) - { - case D3D12_RESOURCE_DIMENSION_BUFFER: - TopLeftX = topLeftX; - TopLeftY = 0.0f; - Width = float(Desc.Width) - topLeftX; - Height = 1.0f; - break; - case D3D12_RESOURCE_DIMENSION_TEXTURE1D: - TopLeftX = topLeftX; - TopLeftY = 0.0f; - Width = (SubresourceWidth ? float(SubresourceWidth) : 1.0f) - topLeftX; - Height = 1.0f; - break; - case D3D12_RESOURCE_DIMENSION_TEXTURE2D: - case D3D12_RESOURCE_DIMENSION_TEXTURE3D: - TopLeftX = topLeftX; - TopLeftY = topLeftY; - Width = (SubresourceWidth ? float(SubresourceWidth) : 1.0f) - topLeftX; - Height = (SubresourceHeight ? float(SubresourceHeight) : 1.0f) - topLeftY; - break; - default: break; - } - - MinDepth = minDepth; - MaxDepth = maxDepth; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_BOX : public D3D12_BOX -{ - CD3DX12_BOX() = default; - explicit CD3DX12_BOX( const D3D12_BOX& o ) noexcept : - D3D12_BOX( o ) - {} - explicit CD3DX12_BOX( - LONG Left, - LONG Right ) noexcept - { - left = static_cast(Left); - top = 0; - front = 0; - right = static_cast(Right); - bottom = 1; - back = 1; - } - explicit CD3DX12_BOX( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom ) noexcept - { - left = static_cast(Left); - top = static_cast(Top); - front = 0; - right = static_cast(Right); - bottom = static_cast(Bottom); - back = 1; - } - explicit CD3DX12_BOX( - LONG Left, - LONG Top, - LONG Front, - LONG Right, - LONG Bottom, - LONG Back ) noexcept - { - left = static_cast(Left); - top = static_cast(Top); - front = static_cast(Front); - right = static_cast(Right); - bottom = static_cast(Bottom); - back = static_cast(Back); - } -}; -inline bool operator==( const D3D12_BOX& l, const D3D12_BOX& r ) noexcept -{ - return l.left == r.left && l.top == r.top && l.front == r.front && - l.right == r.right && l.bottom == r.bottom && l.back == r.back; -} -inline bool operator!=( const D3D12_BOX& l, const D3D12_BOX& r ) noexcept -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC -{ - CD3DX12_DEPTH_STENCIL_DESC() = default; - explicit CD3DX12_DEPTH_STENCIL_DESC( const D3D12_DEPTH_STENCIL_DESC& o ) noexcept : - D3D12_DEPTH_STENCIL_DESC( o ) - {} - explicit CD3DX12_DEPTH_STENCIL_DESC( CD3DX12_DEFAULT ) noexcept - { - DepthEnable = TRUE; - DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - DepthFunc = D3D12_COMPARISON_FUNC_LESS; - StencilEnable = FALSE; - StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; - StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; - const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = - { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; - FrontFace = defaultStencilOp; - BackFace = defaultStencilOp; - } - explicit CD3DX12_DEPTH_STENCIL_DESC( - BOOL depthEnable, - D3D12_DEPTH_WRITE_MASK depthWriteMask, - D3D12_COMPARISON_FUNC depthFunc, - BOOL stencilEnable, - UINT8 stencilReadMask, - UINT8 stencilWriteMask, - D3D12_STENCIL_OP frontStencilFailOp, - D3D12_STENCIL_OP frontStencilDepthFailOp, - D3D12_STENCIL_OP frontStencilPassOp, - D3D12_COMPARISON_FUNC frontStencilFunc, - D3D12_STENCIL_OP backStencilFailOp, - D3D12_STENCIL_OP backStencilDepthFailOp, - D3D12_STENCIL_OP backStencilPassOp, - D3D12_COMPARISON_FUNC backStencilFunc ) noexcept - { - DepthEnable = depthEnable; - DepthWriteMask = depthWriteMask; - DepthFunc = depthFunc; - StencilEnable = stencilEnable; - StencilReadMask = stencilReadMask; - StencilWriteMask = stencilWriteMask; - FrontFace.StencilFailOp = frontStencilFailOp; - FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; - FrontFace.StencilPassOp = frontStencilPassOp; - FrontFace.StencilFunc = frontStencilFunc; - BackFace.StencilFailOp = backStencilFailOp; - BackFace.StencilDepthFailOp = backStencilDepthFailOp; - BackFace.StencilPassOp = backStencilPassOp; - BackFace.StencilFunc = backStencilFunc; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DEPTH_STENCIL_DESC1 : public D3D12_DEPTH_STENCIL_DESC1 -{ - CD3DX12_DEPTH_STENCIL_DESC1() = default; - explicit CD3DX12_DEPTH_STENCIL_DESC1( const D3D12_DEPTH_STENCIL_DESC1& o ) noexcept : - D3D12_DEPTH_STENCIL_DESC1( o ) - {} - explicit CD3DX12_DEPTH_STENCIL_DESC1( const D3D12_DEPTH_STENCIL_DESC& o ) noexcept - { - DepthEnable = o.DepthEnable; - DepthWriteMask = o.DepthWriteMask; - DepthFunc = o.DepthFunc; - StencilEnable = o.StencilEnable; - StencilReadMask = o.StencilReadMask; - StencilWriteMask = o.StencilWriteMask; - FrontFace.StencilFailOp = o.FrontFace.StencilFailOp; - FrontFace.StencilDepthFailOp = o.FrontFace.StencilDepthFailOp; - FrontFace.StencilPassOp = o.FrontFace.StencilPassOp; - FrontFace.StencilFunc = o.FrontFace.StencilFunc; - BackFace.StencilFailOp = o.BackFace.StencilFailOp; - BackFace.StencilDepthFailOp = o.BackFace.StencilDepthFailOp; - BackFace.StencilPassOp = o.BackFace.StencilPassOp; - BackFace.StencilFunc = o.BackFace.StencilFunc; - DepthBoundsTestEnable = FALSE; - } - explicit CD3DX12_DEPTH_STENCIL_DESC1( CD3DX12_DEFAULT ) noexcept - { - DepthEnable = TRUE; - DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - DepthFunc = D3D12_COMPARISON_FUNC_LESS; - StencilEnable = FALSE; - StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; - StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; - const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = - { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; - FrontFace = defaultStencilOp; - BackFace = defaultStencilOp; - DepthBoundsTestEnable = FALSE; - } - explicit CD3DX12_DEPTH_STENCIL_DESC1( - BOOL depthEnable, - D3D12_DEPTH_WRITE_MASK depthWriteMask, - D3D12_COMPARISON_FUNC depthFunc, - BOOL stencilEnable, - UINT8 stencilReadMask, - UINT8 stencilWriteMask, - D3D12_STENCIL_OP frontStencilFailOp, - D3D12_STENCIL_OP frontStencilDepthFailOp, - D3D12_STENCIL_OP frontStencilPassOp, - D3D12_COMPARISON_FUNC frontStencilFunc, - D3D12_STENCIL_OP backStencilFailOp, - D3D12_STENCIL_OP backStencilDepthFailOp, - D3D12_STENCIL_OP backStencilPassOp, - D3D12_COMPARISON_FUNC backStencilFunc, - BOOL depthBoundsTestEnable ) noexcept - { - DepthEnable = depthEnable; - DepthWriteMask = depthWriteMask; - DepthFunc = depthFunc; - StencilEnable = stencilEnable; - StencilReadMask = stencilReadMask; - StencilWriteMask = stencilWriteMask; - FrontFace.StencilFailOp = frontStencilFailOp; - FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; - FrontFace.StencilPassOp = frontStencilPassOp; - FrontFace.StencilFunc = frontStencilFunc; - BackFace.StencilFailOp = backStencilFailOp; - BackFace.StencilDepthFailOp = backStencilDepthFailOp; - BackFace.StencilPassOp = backStencilPassOp; - BackFace.StencilFunc = backStencilFunc; - DepthBoundsTestEnable = depthBoundsTestEnable; - } - operator D3D12_DEPTH_STENCIL_DESC() const noexcept - { - D3D12_DEPTH_STENCIL_DESC D; - D.DepthEnable = DepthEnable; - D.DepthWriteMask = DepthWriteMask; - D.DepthFunc = DepthFunc; - D.StencilEnable = StencilEnable; - D.StencilReadMask = StencilReadMask; - D.StencilWriteMask = StencilWriteMask; - D.FrontFace.StencilFailOp = FrontFace.StencilFailOp; - D.FrontFace.StencilDepthFailOp = FrontFace.StencilDepthFailOp; - D.FrontFace.StencilPassOp = FrontFace.StencilPassOp; - D.FrontFace.StencilFunc = FrontFace.StencilFunc; - D.BackFace.StencilFailOp = BackFace.StencilFailOp; - D.BackFace.StencilDepthFailOp = BackFace.StencilDepthFailOp; - D.BackFace.StencilPassOp = BackFace.StencilPassOp; - D.BackFace.StencilFunc = BackFace.StencilFunc; - return D; - } -}; - -//------------------------------------------------------------------------------------------------ -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) -struct CD3DX12_DEPTH_STENCIL_DESC2 : public D3D12_DEPTH_STENCIL_DESC2 -{ - CD3DX12_DEPTH_STENCIL_DESC2() = default; - explicit CD3DX12_DEPTH_STENCIL_DESC2( const D3D12_DEPTH_STENCIL_DESC2& o ) noexcept : - D3D12_DEPTH_STENCIL_DESC2( o ) - {} - explicit CD3DX12_DEPTH_STENCIL_DESC2( const D3D12_DEPTH_STENCIL_DESC1& o ) noexcept - { - DepthEnable = o.DepthEnable; - DepthWriteMask = o.DepthWriteMask; - DepthFunc = o.DepthFunc; - StencilEnable = o.StencilEnable; - FrontFace.StencilFailOp = o.FrontFace.StencilFailOp; - FrontFace.StencilDepthFailOp = o.FrontFace.StencilDepthFailOp; - FrontFace.StencilPassOp = o.FrontFace.StencilPassOp; - FrontFace.StencilFunc = o.FrontFace.StencilFunc; - FrontFace.StencilReadMask = o.StencilReadMask; - FrontFace.StencilWriteMask = o.StencilWriteMask; - - BackFace.StencilFailOp = o.BackFace.StencilFailOp; - BackFace.StencilDepthFailOp = o.BackFace.StencilDepthFailOp; - BackFace.StencilPassOp = o.BackFace.StencilPassOp; - BackFace.StencilFunc = o.BackFace.StencilFunc; - BackFace.StencilReadMask = o.StencilReadMask; - BackFace.StencilWriteMask = o.StencilWriteMask; - DepthBoundsTestEnable = o.DepthBoundsTestEnable; - } - explicit CD3DX12_DEPTH_STENCIL_DESC2( const D3D12_DEPTH_STENCIL_DESC& o ) noexcept - { - DepthEnable = o.DepthEnable; - DepthWriteMask = o.DepthWriteMask; - DepthFunc = o.DepthFunc; - StencilEnable = o.StencilEnable; - - FrontFace.StencilFailOp = o.FrontFace.StencilFailOp; - FrontFace.StencilDepthFailOp = o.FrontFace.StencilDepthFailOp; - FrontFace.StencilPassOp = o.FrontFace.StencilPassOp; - FrontFace.StencilFunc = o.FrontFace.StencilFunc; - FrontFace.StencilReadMask = o.StencilReadMask; - FrontFace.StencilWriteMask = o.StencilWriteMask; - - BackFace.StencilFailOp = o.BackFace.StencilFailOp; - BackFace.StencilDepthFailOp = o.BackFace.StencilDepthFailOp; - BackFace.StencilPassOp = o.BackFace.StencilPassOp; - BackFace.StencilFunc = o.BackFace.StencilFunc; - BackFace.StencilReadMask = o.StencilReadMask; - BackFace.StencilWriteMask = o.StencilWriteMask; - - DepthBoundsTestEnable = FALSE; - } - explicit CD3DX12_DEPTH_STENCIL_DESC2( CD3DX12_DEFAULT ) noexcept - { - DepthEnable = TRUE; - DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - DepthFunc = D3D12_COMPARISON_FUNC_LESS; - StencilEnable = FALSE; - const D3D12_DEPTH_STENCILOP_DESC1 defaultStencilOp = - { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS, D3D12_DEFAULT_STENCIL_READ_MASK, D3D12_DEFAULT_STENCIL_WRITE_MASK }; - FrontFace = defaultStencilOp; - BackFace = defaultStencilOp; - DepthBoundsTestEnable = FALSE; - } - explicit CD3DX12_DEPTH_STENCIL_DESC2( - BOOL depthEnable, - D3D12_DEPTH_WRITE_MASK depthWriteMask, - D3D12_COMPARISON_FUNC depthFunc, - BOOL stencilEnable, - D3D12_STENCIL_OP frontStencilFailOp, - D3D12_STENCIL_OP frontStencilDepthFailOp, - D3D12_STENCIL_OP frontStencilPassOp, - D3D12_COMPARISON_FUNC frontStencilFunc, - UINT8 frontStencilReadMask, - UINT8 frontStencilWriteMask, - D3D12_STENCIL_OP backStencilFailOp, - D3D12_STENCIL_OP backStencilDepthFailOp, - D3D12_STENCIL_OP backStencilPassOp, - D3D12_COMPARISON_FUNC backStencilFunc, - UINT8 backStencilReadMask, - UINT8 backStencilWriteMask, - BOOL depthBoundsTestEnable ) noexcept - { - DepthEnable = depthEnable; - DepthWriteMask = depthWriteMask; - DepthFunc = depthFunc; - StencilEnable = stencilEnable; - - FrontFace.StencilFailOp = frontStencilFailOp; - FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; - FrontFace.StencilPassOp = frontStencilPassOp; - FrontFace.StencilFunc = frontStencilFunc; - FrontFace.StencilReadMask = frontStencilReadMask; - FrontFace.StencilWriteMask = frontStencilWriteMask; - - BackFace.StencilFailOp = backStencilFailOp; - BackFace.StencilDepthFailOp = backStencilDepthFailOp; - BackFace.StencilPassOp = backStencilPassOp; - BackFace.StencilFunc = backStencilFunc; - BackFace.StencilReadMask = backStencilReadMask; - BackFace.StencilWriteMask = backStencilWriteMask; - - DepthBoundsTestEnable = depthBoundsTestEnable; - } - - operator D3D12_DEPTH_STENCIL_DESC() const noexcept - { - D3D12_DEPTH_STENCIL_DESC D; - D.DepthEnable = DepthEnable; - D.DepthWriteMask = DepthWriteMask; - D.DepthFunc = DepthFunc; - D.StencilEnable = StencilEnable; - D.StencilReadMask = FrontFace.StencilReadMask; - D.StencilWriteMask = FrontFace.StencilWriteMask; - D.FrontFace.StencilFailOp = FrontFace.StencilFailOp; - D.FrontFace.StencilDepthFailOp = FrontFace.StencilDepthFailOp; - D.FrontFace.StencilPassOp = FrontFace.StencilPassOp; - D.FrontFace.StencilFunc = FrontFace.StencilFunc; - D.BackFace.StencilFailOp = BackFace.StencilFailOp; - D.BackFace.StencilDepthFailOp = BackFace.StencilDepthFailOp; - D.BackFace.StencilPassOp = BackFace.StencilPassOp; - D.BackFace.StencilFunc = BackFace.StencilFunc; - return D; - } -}; -#endif // D3D12_SDK_VERSION >= 606 - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC -{ - CD3DX12_BLEND_DESC() = default; - explicit CD3DX12_BLEND_DESC( const D3D12_BLEND_DESC& o ) noexcept : - D3D12_BLEND_DESC( o ) - {} - explicit CD3DX12_BLEND_DESC( CD3DX12_DEFAULT ) noexcept - { - AlphaToCoverageEnable = FALSE; - IndependentBlendEnable = FALSE; - const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = - { - FALSE,FALSE, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_LOGIC_OP_NOOP, - D3D12_COLOR_WRITE_ENABLE_ALL, - }; - for (UINT i = 0; i < D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) - RenderTarget[ i ] = defaultRenderTargetBlendDesc; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC -{ - CD3DX12_RASTERIZER_DESC() = default; - explicit CD3DX12_RASTERIZER_DESC( const D3D12_RASTERIZER_DESC& o ) noexcept : - D3D12_RASTERIZER_DESC( o ) - {} - explicit CD3DX12_RASTERIZER_DESC( CD3DX12_DEFAULT ) noexcept - { - FillMode = D3D12_FILL_MODE_SOLID; - CullMode = D3D12_CULL_MODE_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D12_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - MultisampleEnable = FALSE; - AntialiasedLineEnable = FALSE; - ForcedSampleCount = 0; - ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; - } - explicit CD3DX12_RASTERIZER_DESC( - D3D12_FILL_MODE fillMode, - D3D12_CULL_MODE cullMode, - BOOL frontCounterClockwise, - INT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - BOOL multisampleEnable, - BOOL antialiasedLineEnable, - UINT forcedSampleCount, - D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) noexcept - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - MultisampleEnable = multisampleEnable; - AntialiasedLineEnable = antialiasedLineEnable; - ForcedSampleCount = forcedSampleCount; - ConservativeRaster = conservativeRaster; - } -}; - - -//------------------------------------------------------------------------------------------------ -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) -struct CD3DX12_RASTERIZER_DESC1 : public D3D12_RASTERIZER_DESC1 -{ - CD3DX12_RASTERIZER_DESC1() = default; - explicit CD3DX12_RASTERIZER_DESC1(const D3D12_RASTERIZER_DESC1& o) noexcept : - D3D12_RASTERIZER_DESC1(o) - - { - } - explicit CD3DX12_RASTERIZER_DESC1(const D3D12_RASTERIZER_DESC& o) noexcept - { - FillMode = o.FillMode; - CullMode = o.CullMode; - FrontCounterClockwise = o.FrontCounterClockwise; - DepthBias = static_cast(o.DepthBias); - DepthBiasClamp = o.DepthBiasClamp; - SlopeScaledDepthBias = o.SlopeScaledDepthBias; - DepthClipEnable = o.DepthClipEnable; - MultisampleEnable = o.MultisampleEnable; - AntialiasedLineEnable = o.AntialiasedLineEnable; - ForcedSampleCount = o.ForcedSampleCount; - ConservativeRaster = o.ConservativeRaster; - } - explicit CD3DX12_RASTERIZER_DESC1(CD3DX12_DEFAULT) noexcept - { - FillMode = D3D12_FILL_MODE_SOLID; - CullMode = D3D12_CULL_MODE_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D12_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - MultisampleEnable = FALSE; - AntialiasedLineEnable = FALSE; - ForcedSampleCount = 0; - ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; - } - explicit CD3DX12_RASTERIZER_DESC1( - D3D12_FILL_MODE fillMode, - D3D12_CULL_MODE cullMode, - BOOL frontCounterClockwise, - FLOAT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - BOOL multisampleEnable, - BOOL antialiasedLineEnable, - UINT forcedSampleCount, - D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) noexcept - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - MultisampleEnable = multisampleEnable; - AntialiasedLineEnable = antialiasedLineEnable; - ForcedSampleCount = forcedSampleCount; - ConservativeRaster = conservativeRaster; - } - - - operator D3D12_RASTERIZER_DESC() const noexcept - { - D3D12_RASTERIZER_DESC o; - - o.FillMode = FillMode; - o.CullMode = CullMode; - o.FrontCounterClockwise = FrontCounterClockwise; - o.DepthBias = static_cast(DepthBias); - o.DepthBiasClamp = DepthBiasClamp; - o.SlopeScaledDepthBias = SlopeScaledDepthBias; - o.DepthClipEnable = DepthClipEnable; - o.MultisampleEnable = MultisampleEnable; - o.AntialiasedLineEnable = AntialiasedLineEnable; - o.ForcedSampleCount = ForcedSampleCount; - o.ConservativeRaster = ConservativeRaster; - - return o; - } -}; -#endif // D3D12_SDK_VERSION >= 608 - -//------------------------------------------------------------------------------------------------ -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) -struct CD3DX12_RASTERIZER_DESC2 : public D3D12_RASTERIZER_DESC2 -{ - CD3DX12_RASTERIZER_DESC2() = default; - explicit CD3DX12_RASTERIZER_DESC2(const D3D12_RASTERIZER_DESC2& o) noexcept : - D3D12_RASTERIZER_DESC2(o) - - { - } - explicit CD3DX12_RASTERIZER_DESC2(const D3D12_RASTERIZER_DESC1& o) noexcept - { - FillMode = o.FillMode; - CullMode = o.CullMode; - FrontCounterClockwise = o.FrontCounterClockwise; - DepthBias = o.DepthBias; - DepthBiasClamp = o.DepthBiasClamp; - SlopeScaledDepthBias = o.SlopeScaledDepthBias; - DepthClipEnable = o.DepthClipEnable; - LineRasterizationMode = D3D12_LINE_RASTERIZATION_MODE_ALIASED; - if (o.MultisampleEnable) - { - LineRasterizationMode = D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE; - } - else if (o.AntialiasedLineEnable) - { - LineRasterizationMode = D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED; - } - ForcedSampleCount = o.ForcedSampleCount; - ConservativeRaster = o.ConservativeRaster; - } - explicit CD3DX12_RASTERIZER_DESC2(const D3D12_RASTERIZER_DESC& o) noexcept - : CD3DX12_RASTERIZER_DESC2(CD3DX12_RASTERIZER_DESC1(o)) - { - } - explicit CD3DX12_RASTERIZER_DESC2(CD3DX12_DEFAULT) noexcept - { - FillMode = D3D12_FILL_MODE_SOLID; - CullMode = D3D12_CULL_MODE_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D12_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - LineRasterizationMode = D3D12_LINE_RASTERIZATION_MODE_ALIASED; - ForcedSampleCount = 0; - ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; - } - explicit CD3DX12_RASTERIZER_DESC2( - D3D12_FILL_MODE fillMode, - D3D12_CULL_MODE cullMode, - BOOL frontCounterClockwise, - FLOAT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - D3D12_LINE_RASTERIZATION_MODE lineRasterizationMode, - UINT forcedSampleCount, - D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) noexcept - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - LineRasterizationMode = lineRasterizationMode; - ForcedSampleCount = forcedSampleCount; - ConservativeRaster = conservativeRaster; - } - - - operator D3D12_RASTERIZER_DESC1() const noexcept - { - D3D12_RASTERIZER_DESC1 o; - - o.FillMode = FillMode; - o.CullMode = CullMode; - o.FrontCounterClockwise = FrontCounterClockwise; - o.DepthBias = DepthBias; - o.DepthBiasClamp = DepthBiasClamp; - o.SlopeScaledDepthBias = SlopeScaledDepthBias; - o.DepthClipEnable = DepthClipEnable; - o.MultisampleEnable = FALSE; - o.AntialiasedLineEnable = FALSE; - if (LineRasterizationMode == D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED) - { - o.AntialiasedLineEnable = TRUE; - } - else if (LineRasterizationMode != D3D12_LINE_RASTERIZATION_MODE_ALIASED) - { - o.MultisampleEnable = TRUE; - } - o.ForcedSampleCount = ForcedSampleCount; - o.ConservativeRaster = ConservativeRaster; - - return o; - } - operator D3D12_RASTERIZER_DESC() const noexcept - { - return static_cast(CD3DX12_RASTERIZER_DESC1(static_cast(*this))); - } -}; -#endif // D3D12_SDK_VERSION >= 610 - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO -{ - CD3DX12_RESOURCE_ALLOCATION_INFO() = default; - explicit CD3DX12_RESOURCE_ALLOCATION_INFO( const D3D12_RESOURCE_ALLOCATION_INFO& o ) noexcept : - D3D12_RESOURCE_ALLOCATION_INFO( o ) - {} - CD3DX12_RESOURCE_ALLOCATION_INFO( - UINT64 size, - UINT64 alignment ) noexcept - { - SizeInBytes = size; - Alignment = alignment; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES -{ - CD3DX12_HEAP_PROPERTIES() = default; - explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) noexcept : - D3D12_HEAP_PROPERTIES(o) - {} - CD3DX12_HEAP_PROPERTIES( - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - UINT creationNodeMask = 1, - UINT nodeMask = 1 ) noexcept - { - Type = D3D12_HEAP_TYPE_CUSTOM; - CPUPageProperty = cpuPageProperty; - MemoryPoolPreference = memoryPoolPreference; - CreationNodeMask = creationNodeMask; - VisibleNodeMask = nodeMask; - } - explicit CD3DX12_HEAP_PROPERTIES( - D3D12_HEAP_TYPE type, - UINT creationNodeMask = 1, - UINT nodeMask = 1 ) noexcept - { - Type = type; - CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; - MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; - CreationNodeMask = creationNodeMask; - VisibleNodeMask = nodeMask; - } - bool IsCPUAccessible() const noexcept - { - return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - || Type == D3D12_HEAP_TYPE_GPU_UPLOAD -#endif - || (Type == D3D12_HEAP_TYPE_CUSTOM && - (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK)); - } -}; -inline bool operator==( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) noexcept -{ - return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty && - l.MemoryPoolPreference == r.MemoryPoolPreference && - l.CreationNodeMask == r.CreationNodeMask && - l.VisibleNodeMask == r.VisibleNodeMask; -} -inline bool operator!=( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) noexcept -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC -{ - CD3DX12_HEAP_DESC() = default; - explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) noexcept : - D3D12_HEAP_DESC(o) - {} - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_HEAP_PROPERTIES properties, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept - { - SizeInBytes = size; - Properties = properties; - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_HEAP_TYPE type, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept - { - SizeInBytes = size; - Properties = CD3DX12_HEAP_PROPERTIES( type ); - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept - { - SizeInBytes = size; - Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_HEAP_PROPERTIES properties, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = properties; - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_HEAP_TYPE type, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = CD3DX12_HEAP_PROPERTIES( type ); - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - bool IsCPUAccessible() const noexcept - { return static_cast< const CD3DX12_HEAP_PROPERTIES* >( &Properties )->IsCPUAccessible(); } -}; -inline bool operator==( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) noexcept -{ - return l.SizeInBytes == r.SizeInBytes && - l.Properties == r.Properties && - l.Alignment == r.Alignment && - l.Flags == r.Flags; -} -inline bool operator!=( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) noexcept -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE -{ - CD3DX12_CLEAR_VALUE() = default; - explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) noexcept : - D3D12_CLEAR_VALUE(o) - {} - CD3DX12_CLEAR_VALUE( - DXGI_FORMAT format, - const FLOAT color[4] ) noexcept - { - Format = format; - memcpy( Color, color, sizeof( Color ) ); - } - CD3DX12_CLEAR_VALUE( - DXGI_FORMAT format, - FLOAT depth, - UINT8 stencil ) noexcept - { - Format = format; - memset( &Color, 0, sizeof( Color ) ); - /* Use memcpy to preserve NAN values */ - memcpy( &DepthStencil.Depth, &depth, sizeof( depth ) ); - DepthStencil.Stencil = stencil; - } -}; - -//------------------------------------------------------------------------------------------------ -inline bool operator==( const D3D12_CLEAR_VALUE &a, const D3D12_CLEAR_VALUE &b) noexcept -{ - if (a.Format != b.Format) return false; - if (a.Format == DXGI_FORMAT_D24_UNORM_S8_UINT - || a.Format == DXGI_FORMAT_D16_UNORM - || a.Format == DXGI_FORMAT_D32_FLOAT - || a.Format == DXGI_FORMAT_D32_FLOAT_S8X24_UINT) - { - return (a.DepthStencil.Depth == b.DepthStencil.Depth) && - (a.DepthStencil.Stencil == b.DepthStencil.Stencil); - } else { - return (a.Color[0] == b.Color[0]) && - (a.Color[1] == b.Color[1]) && - (a.Color[2] == b.Color[2]) && - (a.Color[3] == b.Color[3]); - } -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RANGE : public D3D12_RANGE -{ - CD3DX12_RANGE() = default; - explicit CD3DX12_RANGE(const D3D12_RANGE &o) noexcept : - D3D12_RANGE(o) - {} - CD3DX12_RANGE( - SIZE_T begin, - SIZE_T end ) noexcept - { - Begin = begin; - End = end; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RANGE_UINT64 : public D3D12_RANGE_UINT64 -{ - CD3DX12_RANGE_UINT64() = default; - explicit CD3DX12_RANGE_UINT64(const D3D12_RANGE_UINT64 &o) noexcept : - D3D12_RANGE_UINT64(o) - {} - CD3DX12_RANGE_UINT64( - UINT64 begin, - UINT64 end ) noexcept - { - Begin = begin; - End = end; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_RANGE_UINT64 : public D3D12_SUBRESOURCE_RANGE_UINT64 -{ - CD3DX12_SUBRESOURCE_RANGE_UINT64() = default; - explicit CD3DX12_SUBRESOURCE_RANGE_UINT64(const D3D12_SUBRESOURCE_RANGE_UINT64 &o) noexcept : - D3D12_SUBRESOURCE_RANGE_UINT64(o) - {} - CD3DX12_SUBRESOURCE_RANGE_UINT64( - UINT subresource, - const D3D12_RANGE_UINT64& range ) noexcept - { - Subresource = subresource; - Range = range; - } - CD3DX12_SUBRESOURCE_RANGE_UINT64( - UINT subresource, - UINT64 begin, - UINT64 end ) noexcept - { - Subresource = subresource; - Range.Begin = begin; - Range.End = end; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SHADER_BYTECODE : public D3D12_SHADER_BYTECODE -{ - CD3DX12_SHADER_BYTECODE() = default; - explicit CD3DX12_SHADER_BYTECODE(const D3D12_SHADER_BYTECODE &o) noexcept : - D3D12_SHADER_BYTECODE(o) - {} - CD3DX12_SHADER_BYTECODE( - _In_ ID3DBlob* pShaderBlob ) noexcept - { - pShaderBytecode = pShaderBlob->GetBufferPointer(); - BytecodeLength = pShaderBlob->GetBufferSize(); - } - CD3DX12_SHADER_BYTECODE( - const void* _pShaderBytecode, - SIZE_T bytecodeLength ) noexcept - { - pShaderBytecode = _pShaderBytecode; - BytecodeLength = bytecodeLength; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE -{ - CD3DX12_TILED_RESOURCE_COORDINATE() = default; - explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) noexcept : - D3D12_TILED_RESOURCE_COORDINATE(o) - {} - CD3DX12_TILED_RESOURCE_COORDINATE( - UINT x, - UINT y, - UINT z, - UINT subresource ) noexcept - { - X = x; - Y = y; - Z = z; - Subresource = subresource; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE -{ - CD3DX12_TILE_REGION_SIZE() = default; - explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) noexcept : - D3D12_TILE_REGION_SIZE(o) - {} - CD3DX12_TILE_REGION_SIZE( - UINT numTiles, - BOOL useBox, - UINT width, - UINT16 height, - UINT16 depth ) noexcept - { - NumTiles = numTiles; - UseBox = useBox; - Width = width; - Height = height; - Depth = depth; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING -{ - CD3DX12_SUBRESOURCE_TILING() = default; - explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) noexcept : - D3D12_SUBRESOURCE_TILING(o) - {} - CD3DX12_SUBRESOURCE_TILING( - UINT widthInTiles, - UINT16 heightInTiles, - UINT16 depthInTiles, - UINT startTileIndexInOverallResource ) noexcept - { - WidthInTiles = widthInTiles; - HeightInTiles = heightInTiles; - DepthInTiles = depthInTiles; - StartTileIndexInOverallResource = startTileIndexInOverallResource; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE -{ - CD3DX12_TILE_SHAPE() = default; - explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) noexcept : - D3D12_TILE_SHAPE(o) - {} - CD3DX12_TILE_SHAPE( - UINT widthInTexels, - UINT heightInTexels, - UINT depthInTexels ) noexcept - { - WidthInTexels = widthInTexels; - HeightInTexels = heightInTexels; - DepthInTexels = depthInTexels; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO -{ - CD3DX12_PACKED_MIP_INFO() = default; - explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) noexcept : - D3D12_PACKED_MIP_INFO(o) - {} - CD3DX12_PACKED_MIP_INFO( - UINT8 numStandardMips, - UINT8 numPackedMips, - UINT numTilesForPackedMips, - UINT startTileIndexInOverallResource ) noexcept - { - NumStandardMips = numStandardMips; - NumPackedMips = numPackedMips; - NumTilesForPackedMips = numTilesForPackedMips; - StartTileIndexInOverallResource = startTileIndexInOverallResource; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT -{ - CD3DX12_SUBRESOURCE_FOOTPRINT() = default; - explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) noexcept : - D3D12_SUBRESOURCE_FOOTPRINT(o) - {} - CD3DX12_SUBRESOURCE_FOOTPRINT( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT depth, - UINT rowPitch ) noexcept - { - Format = format; - Width = width; - Height = height; - Depth = depth; - RowPitch = rowPitch; - } - explicit CD3DX12_SUBRESOURCE_FOOTPRINT( - const D3D12_RESOURCE_DESC& resDesc, - UINT rowPitch ) noexcept - { - Format = resDesc.Format; - Width = UINT( resDesc.Width ); - Height = resDesc.Height; - Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1u); - RowPitch = rowPitch; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION -{ - CD3DX12_TEXTURE_COPY_LOCATION() = default; - explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) noexcept : - D3D12_TEXTURE_COPY_LOCATION(o) - {} - CD3DX12_TEXTURE_COPY_LOCATION(_In_ ID3D12Resource* pRes) noexcept - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; - PlacedFootprint = {}; - } - CD3DX12_TEXTURE_COPY_LOCATION(_In_ ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint) noexcept - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; - PlacedFootprint = Footprint; - } - CD3DX12_TEXTURE_COPY_LOCATION(_In_ ID3D12Resource* pRes, UINT Sub) noexcept - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; - PlacedFootprint = {}; - SubresourceIndex = Sub; - } -}; - -//------------------------------------------------------------------------------------------------ -constexpr UINT D3D12CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize ) noexcept -{ - return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize; -} - -//------------------------------------------------------------------------------------------------ -inline UINT8 D3D12GetFormatPlaneCount( - _In_ ID3D12Device* pDevice, - DXGI_FORMAT Format - ) noexcept -{ - D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = { Format, 0 }; - if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo)))) - { - return 0; - } - return formatInfo.PlaneCount; -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC -{ - CD3DX12_RESOURCE_DESC() = default; - explicit CD3DX12_RESOURCE_DESC( const D3D12_RESOURCE_DESC& o ) noexcept : - D3D12_RESOURCE_DESC( o ) - {} - CD3DX12_RESOURCE_DESC( - D3D12_RESOURCE_DIMENSION dimension, - UINT64 alignment, - UINT64 width, - UINT height, - UINT16 depthOrArraySize, - UINT16 mipLevels, - DXGI_FORMAT format, - UINT sampleCount, - UINT sampleQuality, - D3D12_TEXTURE_LAYOUT layout, - D3D12_RESOURCE_FLAGS flags ) noexcept - { - Dimension = dimension; - Alignment = alignment; - Width = width; - Height = height; - DepthOrArraySize = depthOrArraySize; - MipLevels = mipLevels; - Format = format; - SampleDesc.Count = sampleCount; - SampleDesc.Quality = sampleQuality; - Layout = layout; - Flags = flags; - } - static inline CD3DX12_RESOURCE_DESC Buffer( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE ) noexcept - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, - 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); - } - static inline CD3DX12_RESOURCE_DESC Buffer( - UINT64 width, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - UINT64 alignment = 0 ) noexcept - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, - DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex1D( - DXGI_FORMAT format, - UINT64 width, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) noexcept - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, - mipLevels, format, 1, 0, layout, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex2D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - UINT sampleCount = 1, - UINT sampleQuality = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) noexcept - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, - mipLevels, format, sampleCount, sampleQuality, layout, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex3D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 depth, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) noexcept - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, - mipLevels, format, 1, 0, layout, flags ); - } - inline UINT16 Depth() const noexcept - { return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1u); } - inline UINT16 ArraySize() const noexcept - { return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1u); } - inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const noexcept - { return D3D12GetFormatPlaneCount(pDevice, Format); } - inline UINT Subresources(_In_ ID3D12Device* pDevice) const noexcept - { return static_cast(MipLevels) * ArraySize() * PlaneCount(pDevice); } - inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) noexcept - { return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); } -}; -inline bool operator==( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) noexcept -{ - return l.Dimension == r.Dimension && - l.Alignment == r.Alignment && - l.Width == r.Width && - l.Height == r.Height && - l.DepthOrArraySize == r.DepthOrArraySize && - l.MipLevels == r.MipLevels && - l.Format == r.Format && - l.SampleDesc.Count == r.SampleDesc.Count && - l.SampleDesc.Quality == r.SampleDesc.Quality && - l.Layout == r.Layout && - l.Flags == r.Flags; -} -inline bool operator!=( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) noexcept -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_DESC1 : public D3D12_RESOURCE_DESC1 -{ - CD3DX12_RESOURCE_DESC1() = default; - explicit CD3DX12_RESOURCE_DESC1( const D3D12_RESOURCE_DESC1& o ) noexcept : - D3D12_RESOURCE_DESC1( o ) - {} - explicit CD3DX12_RESOURCE_DESC1( const D3D12_RESOURCE_DESC& o ) noexcept - { - Dimension = o.Dimension; - Alignment = o.Alignment; - Width = o.Width; - Height = o.Height; - DepthOrArraySize = o.DepthOrArraySize; - MipLevels = o.MipLevels; - Format = o.Format; - SampleDesc = o.SampleDesc; - Layout = o.Layout; - Flags = o.Flags; - SamplerFeedbackMipRegion = {}; - } - CD3DX12_RESOURCE_DESC1( - D3D12_RESOURCE_DIMENSION dimension, - UINT64 alignment, - UINT64 width, - UINT height, - UINT16 depthOrArraySize, - UINT16 mipLevels, - DXGI_FORMAT format, - UINT sampleCount, - UINT sampleQuality, - D3D12_TEXTURE_LAYOUT layout, - D3D12_RESOURCE_FLAGS flags, - UINT samplerFeedbackMipRegionWidth = 0, - UINT samplerFeedbackMipRegionHeight = 0, - UINT samplerFeedbackMipRegionDepth = 0) noexcept - { - Dimension = dimension; - Alignment = alignment; - Width = width; - Height = height; - DepthOrArraySize = depthOrArraySize; - MipLevels = mipLevels; - Format = format; - SampleDesc.Count = sampleCount; - SampleDesc.Quality = sampleQuality; - Layout = layout; - Flags = flags; - SamplerFeedbackMipRegion.Width = samplerFeedbackMipRegionWidth; - SamplerFeedbackMipRegion.Height = samplerFeedbackMipRegionHeight; - SamplerFeedbackMipRegion.Depth = samplerFeedbackMipRegionDepth; - } - - static inline CD3DX12_RESOURCE_DESC1 Buffer( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE ) noexcept - { - return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, - 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags, 0, 0, 0 ); - } - static inline CD3DX12_RESOURCE_DESC1 Buffer( - UINT64 width, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - UINT64 alignment = 0 ) noexcept - { - return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, - DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags, 0, 0, 0 ); - } - static inline CD3DX12_RESOURCE_DESC1 Tex1D( - DXGI_FORMAT format, - UINT64 width, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) noexcept - { - return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, - mipLevels, format, 1, 0, layout, flags, 0, 0, 0 ); - } - static inline CD3DX12_RESOURCE_DESC1 Tex2D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - UINT sampleCount = 1, - UINT sampleQuality = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0, - UINT samplerFeedbackMipRegionWidth = 0, - UINT samplerFeedbackMipRegionHeight = 0, - UINT samplerFeedbackMipRegionDepth = 0) noexcept - { - return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, - mipLevels, format, sampleCount, sampleQuality, layout, flags, samplerFeedbackMipRegionWidth, - samplerFeedbackMipRegionHeight, samplerFeedbackMipRegionDepth ); - } - static inline CD3DX12_RESOURCE_DESC1 Tex3D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 depth, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) noexcept - { - return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, - mipLevels, format, 1, 0, layout, flags, 0, 0, 0 ); - } - inline UINT16 Depth() const noexcept - { return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1u); } - inline UINT16 ArraySize() const noexcept - { return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1u); } - inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const noexcept - { return D3D12GetFormatPlaneCount(pDevice, Format); } - inline UINT Subresources(_In_ ID3D12Device* pDevice) const noexcept - { return static_cast(MipLevels) * ArraySize() * PlaneCount(pDevice); } - inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) noexcept - { return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); } -}; -inline bool operator==( const D3D12_RESOURCE_DESC1& l, const D3D12_RESOURCE_DESC1& r ) noexcept -{ - return l.Dimension == r.Dimension && - l.Alignment == r.Alignment && - l.Width == r.Width && - l.Height == r.Height && - l.DepthOrArraySize == r.DepthOrArraySize && - l.MipLevels == r.MipLevels && - l.Format == r.Format && - l.SampleDesc.Count == r.SampleDesc.Count && - l.SampleDesc.Quality == r.SampleDesc.Quality && - l.Layout == r.Layout && - l.Flags == r.Flags && - l.SamplerFeedbackMipRegion.Width == r.SamplerFeedbackMipRegion.Width && - l.SamplerFeedbackMipRegion.Height == r.SamplerFeedbackMipRegion.Height && - l.SamplerFeedbackMipRegion.Depth == r.SamplerFeedbackMipRegion.Depth; -} -inline bool operator!=( const D3D12_RESOURCE_DESC1& l, const D3D12_RESOURCE_DESC1& r ) noexcept -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -// Fills in the mipmap and alignment values of pDesc when either members are zero -// Used to replace an implicit field to an explicit (0 mip map = max mip map level) -// If expansion has occured, returns LclDesc, else returns the original pDesc -inline const CD3DX12_RESOURCE_DESC1* D3DX12ConditionallyExpandAPIDesc( - CD3DX12_RESOURCE_DESC1& LclDesc, - const CD3DX12_RESOURCE_DESC1* pDesc) -{ - // Expand mip levels: - if (pDesc->MipLevels == 0 || pDesc->Alignment == 0) - { - LclDesc = *pDesc; - if (pDesc->MipLevels == 0) - { - auto MaxMipLevels = [](UINT64 uiMaxDimension) -> UINT16 - { - UINT16 uiRet = 0; - while (uiMaxDimension > 0) - { - uiRet++; - uiMaxDimension >>= 1; - } - return uiRet; - }; - auto Max = [](UINT64 const & a, UINT64 const & b) - { - return (a < b) ? b : a; - }; - - LclDesc.MipLevels = MaxMipLevels( - Max(LclDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? LclDesc.DepthOrArraySize : 1, - Max(LclDesc.Width, LclDesc.Height))); - } - if (pDesc->Alignment == 0) - { - if (pDesc->Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE - || pDesc->Layout == D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE - ) - { - LclDesc.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT; - } - else - { - LclDesc.Alignment = - (pDesc->SampleDesc.Count > 1 ? D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT : D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT); - } - } - return &LclDesc; - } - else - { - return pDesc; - } -} - - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_VIEW_INSTANCING_DESC : public D3D12_VIEW_INSTANCING_DESC -{ - CD3DX12_VIEW_INSTANCING_DESC() = default; - explicit CD3DX12_VIEW_INSTANCING_DESC( const D3D12_VIEW_INSTANCING_DESC& o ) noexcept : - D3D12_VIEW_INSTANCING_DESC( o ) - {} - explicit CD3DX12_VIEW_INSTANCING_DESC( CD3DX12_DEFAULT ) noexcept - { - ViewInstanceCount = 0; - pViewInstanceLocations = nullptr; - Flags = D3D12_VIEW_INSTANCING_FLAG_NONE; - } - explicit CD3DX12_VIEW_INSTANCING_DESC( - UINT InViewInstanceCount, - const D3D12_VIEW_INSTANCE_LOCATION* InViewInstanceLocations, - D3D12_VIEW_INSTANCING_FLAGS InFlags) noexcept - { - ViewInstanceCount = InViewInstanceCount; - pViewInstanceLocations = InViewInstanceLocations; - Flags = InFlags; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RT_FORMAT_ARRAY : public D3D12_RT_FORMAT_ARRAY -{ - CD3DX12_RT_FORMAT_ARRAY() = default; - explicit CD3DX12_RT_FORMAT_ARRAY(const D3D12_RT_FORMAT_ARRAY& o) noexcept - : D3D12_RT_FORMAT_ARRAY(o) - {} - explicit CD3DX12_RT_FORMAT_ARRAY(_In_reads_(NumFormats) const DXGI_FORMAT* pFormats, UINT NumFormats) noexcept - { - NumRenderTargets = NumFormats; - memcpy(RTFormats, pFormats, sizeof(RTFormats)); - // assumes ARRAY_SIZE(pFormats) == ARRAY_SIZE(RTFormats) - } -}; - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_default.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_default.h deleted file mode 100644 index 2b74d70..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_default.h +++ /dev/null @@ -1,12 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#pragma once - -struct CD3DX12_DEFAULT {}; -extern const DECLSPEC_SELECTANY CD3DX12_DEFAULT D3D12_DEFAULT; - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_pipeline_state_stream.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_pipeline_state_stream.h deleted file mode 100644 index a3ee813..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_pipeline_state_stream.h +++ /dev/null @@ -1,1497 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#pragma once - -#ifndef __cplusplus -#error D3DX12 requires C++ -#endif - -#include "d3dx12_default.h" -#include "d3d12.h" -#include "d3dx12_core.h" - -//------------------------------------------------------------------------------------------------ -// Pipeline State Stream Helpers -//------------------------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------------------------ -// Stream Subobjects, i.e. elements of a stream - -struct DefaultSampleMask { operator UINT() noexcept { return UINT_MAX; } }; -struct DefaultSampleDesc { operator DXGI_SAMPLE_DESC() noexcept { return DXGI_SAMPLE_DESC{1, 0}; } }; - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4324) -#endif -template -class alignas(void*) CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT -{ -private: - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE pssType; - InnerStructType pssInner; -public: - CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT() noexcept : pssType(Type), pssInner(DefaultArg()) {} - CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT(InnerStructType const& i) noexcept : pssType(Type), pssInner(i) {} - CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT& operator=(InnerStructType const& i) noexcept { pssType = Type; pssInner = i; return *this; } - operator InnerStructType const&() const noexcept { return pssInner; } - operator InnerStructType&() noexcept { return pssInner; } - InnerStructType* operator&() noexcept { return &pssInner; } - InnerStructType const* operator&() const noexcept { return &pssInner; } -}; -#ifdef _MSC_VER -#pragma warning(pop) -#endif -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_PIPELINE_STATE_FLAGS, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS> CD3DX12_PIPELINE_STATE_STREAM_FLAGS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< UINT, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK> CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< ID3D12RootSignature*, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE> CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_INPUT_LAYOUT_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT> CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_INDEX_BUFFER_STRIP_CUT_VALUE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE> CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_PRIMITIVE_TOPOLOGY_TYPE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY> CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS> CD3DX12_PIPELINE_STATE_STREAM_VS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS> CD3DX12_PIPELINE_STATE_STREAM_GS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_STREAM_OUTPUT_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT> CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS> CD3DX12_PIPELINE_STATE_STREAM_HS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS> CD3DX12_PIPELINE_STATE_STREAM_DS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS> CD3DX12_PIPELINE_STATE_STREAM_PS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS> CD3DX12_PIPELINE_STATE_STREAM_AS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS> CD3DX12_PIPELINE_STATE_STREAM_MS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS> CD3DX12_PIPELINE_STATE_STREAM_CS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_BLEND_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_DEPTH_STENCIL_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_DEPTH_STENCIL_DESC1, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_DEPTH_STENCIL_DESC2, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL2; -#endif -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< DXGI_FORMAT, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT> CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_RASTERIZER_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_RASTERIZER_DESC1, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER1; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_RASTERIZER_DESC2, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER2; -#endif -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_RT_FORMAT_ARRAY, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS> CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< DXGI_SAMPLE_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC, DefaultSampleDesc> CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< UINT, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK, DefaultSampleMask> CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_CACHED_PIPELINE_STATE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO> CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO; -typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_VIEW_INSTANCING_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING; - -//------------------------------------------------------------------------------------------------ -// Stream Parser Helpers - -struct ID3DX12PipelineParserCallbacks -{ - // Subobject Callbacks - virtual void FlagsCb(D3D12_PIPELINE_STATE_FLAGS) {} - virtual void NodeMaskCb(UINT) {} - virtual void RootSignatureCb(ID3D12RootSignature*) {} - virtual void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC&) {} - virtual void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE) {} - virtual void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE) {} - virtual void VSCb(const D3D12_SHADER_BYTECODE&) {} - virtual void GSCb(const D3D12_SHADER_BYTECODE&) {} - virtual void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC&) {} - virtual void HSCb(const D3D12_SHADER_BYTECODE&) {} - virtual void DSCb(const D3D12_SHADER_BYTECODE&) {} - virtual void PSCb(const D3D12_SHADER_BYTECODE&) {} - virtual void CSCb(const D3D12_SHADER_BYTECODE&) {} - virtual void ASCb(const D3D12_SHADER_BYTECODE&) {} - virtual void MSCb(const D3D12_SHADER_BYTECODE&) {} - virtual void BlendStateCb(const D3D12_BLEND_DESC&) {} - virtual void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC&) {} - virtual void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1&) {} -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) - virtual void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2&) {} -#endif - virtual void DSVFormatCb(DXGI_FORMAT) {} - virtual void RasterizerStateCb(const D3D12_RASTERIZER_DESC&) {} -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) - virtual void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1&) {} -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) - virtual void RasterizerState2Cb(const D3D12_RASTERIZER_DESC2&) {} -#endif - virtual void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY&) {} - virtual void SampleDescCb(const DXGI_SAMPLE_DESC&) {} - virtual void SampleMaskCb(UINT) {} - virtual void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC&) {} - virtual void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE&) {} - - // Error Callbacks - virtual void ErrorBadInputParameter(UINT /*ParameterIndex*/) {} - virtual void ErrorDuplicateSubobject(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE /*DuplicateType*/) {} - virtual void ErrorUnknownSubobject(UINT /*UnknownTypeValue*/) {} -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 613) - virtual void FinalizeCb() {} -#endif - - virtual ~ID3DX12PipelineParserCallbacks() = default; -}; - -struct D3DX12_MESH_SHADER_PIPELINE_STATE_DESC -{ - ID3D12RootSignature* pRootSignature; - D3D12_SHADER_BYTECODE AS; - D3D12_SHADER_BYTECODE MS; - D3D12_SHADER_BYTECODE PS; - D3D12_BLEND_DESC BlendState; - UINT SampleMask; - D3D12_RASTERIZER_DESC RasterizerState; - D3D12_DEPTH_STENCIL_DESC DepthStencilState; - D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; - UINT NumRenderTargets; - DXGI_FORMAT RTVFormats[ D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ]; - DXGI_FORMAT DSVFormat; - DXGI_SAMPLE_DESC SampleDesc; - UINT NodeMask; - D3D12_CACHED_PIPELINE_STATE CachedPSO; - D3D12_PIPELINE_STATE_FLAGS Flags; -}; - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) -// Use CD3DX12_PIPELINE_STATE_STREAM5 for D3D12_RASTERIZER_DESC2 when CheckFeatureSupport returns true for Options19::RasterizerDesc2Supported is true -// Use CD3DX12_PIPELINE_STATE_STREAM4 for D3D12_RASTERIZER_DESC1 when CheckFeatureSupport returns true for Options16::DynamicDepthBiasSupported is true -// Use CD3DX12_PIPELINE_STATE_STREAM3 for D3D12_DEPTH_STENCIL_DESC2 when CheckFeatureSupport returns true for Options14::IndependentFrontAndBackStencilSupported is true -// Use CD3DX12_PIPELINE_STATE_STREAM2 for OS Build 19041+ (where there is a new mesh shader pipeline). -// Use CD3DX12_PIPELINE_STATE_STREAM1 for OS Build 16299+ (where there is a new view instancing subobject). -// Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. -struct CD3DX12_PIPELINE_STATE_STREAM5 -{ - CD3DX12_PIPELINE_STATE_STREAM5() = default; - // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC - CD3DX12_PIPELINE_STATE_STREAM5(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , InputLayout(Desc.InputLayout) - , IBStripCutValue(Desc.IBStripCutValue) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , VS(Desc.VS) - , GS(Desc.GS) - , StreamOutput(Desc.StreamOutput) - , HS(Desc.HS) - , DS(Desc.DS) - , PS(Desc.PS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC2(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM5(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , PS(Desc.PS) - , AS(Desc.AS) - , MS(Desc.MS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC2(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM5(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) - , CachedPSO(Desc.CachedPSO) - { - static_cast(DepthStencilState).DepthEnable = false; - } - CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; - CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; - CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; - CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; - CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; - CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; - CD3DX12_PIPELINE_STATE_STREAM_VS VS; - CD3DX12_PIPELINE_STATE_STREAM_GS GS; - CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; - CD3DX12_PIPELINE_STATE_STREAM_HS HS; - CD3DX12_PIPELINE_STATE_STREAM_DS DS; - CD3DX12_PIPELINE_STATE_STREAM_PS PS; - CD3DX12_PIPELINE_STATE_STREAM_AS AS; - CD3DX12_PIPELINE_STATE_STREAM_MS MS; - CD3DX12_PIPELINE_STATE_STREAM_CS CS; - CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL2 DepthStencilState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; - CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER2 RasterizerState; - CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; - CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; - CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; - - D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept - { - D3D12_GRAPHICS_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.InputLayout = this->InputLayout; - D.IBStripCutValue = this->IBStripCutValue; - D.PrimitiveTopologyType = this->PrimitiveTopologyType; - D.VS = this->VS; - D.GS = this->GS; - D.StreamOutput = this->StreamOutput; - D.HS = this->HS; - D.DS = this->DS; - D.PS = this->PS; - D.BlendState = this->BlendState; - D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEPTH_STENCIL_DESC2(this->DepthStencilState)); - D.DSVFormat = this->DSVFormat; - D.RasterizerState = CD3DX12_RASTERIZER_DESC2(D3D12_RASTERIZER_DESC2(this->RasterizerState)); - D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; - memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); - D.SampleDesc = this->SampleDesc; - D.SampleMask = this->SampleMask; - D.CachedPSO = this->CachedPSO; - return D; - } - D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept - { - D3D12_COMPUTE_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.CS = this->CS; - D.CachedPSO = this->CachedPSO; - return D; - } -}; -#endif // D3D12_SDK_VERSION >= 610 - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) -// Use CD3DX12_PIPELINE_STATE_STREAM4 for D3D12_RASTERIZER_DESC1 when CheckFeatureSupport returns true for Options16::DynamicDepthBiasSupported is true -// Use CD3DX12_PIPELINE_STATE_STREAM3 for D3D12_DEPTH_STENCIL_DESC2 when CheckFeatureSupport returns true for Options14::IndependentFrontAndBackStencilSupported is true -// Use CD3DX12_PIPELINE_STATE_STREAM2 for OS Build 19041+ (where there is a new mesh shader pipeline). -// Use CD3DX12_PIPELINE_STATE_STREAM1 for OS Build 16299+ (where there is a new view instancing subobject). -// Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. -struct CD3DX12_PIPELINE_STATE_STREAM4 -{ - CD3DX12_PIPELINE_STATE_STREAM4() = default; - // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC - CD3DX12_PIPELINE_STATE_STREAM4(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , InputLayout(Desc.InputLayout) - , IBStripCutValue(Desc.IBStripCutValue) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , VS(Desc.VS) - , GS(Desc.GS) - , StreamOutput(Desc.StreamOutput) - , HS(Desc.HS) - , DS(Desc.DS) - , PS(Desc.PS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC1(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM4(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , PS(Desc.PS) - , AS(Desc.AS) - , MS(Desc.MS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC1(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM4(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) - , CachedPSO(Desc.CachedPSO) - { - static_cast(DepthStencilState).DepthEnable = false; - } - CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; - CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; - CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; - CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; - CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; - CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; - CD3DX12_PIPELINE_STATE_STREAM_VS VS; - CD3DX12_PIPELINE_STATE_STREAM_GS GS; - CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; - CD3DX12_PIPELINE_STATE_STREAM_HS HS; - CD3DX12_PIPELINE_STATE_STREAM_DS DS; - CD3DX12_PIPELINE_STATE_STREAM_PS PS; - CD3DX12_PIPELINE_STATE_STREAM_AS AS; - CD3DX12_PIPELINE_STATE_STREAM_MS MS; - CD3DX12_PIPELINE_STATE_STREAM_CS CS; - CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL2 DepthStencilState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; - CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER1 RasterizerState; - CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; - CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; - CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; - - D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept - { - D3D12_GRAPHICS_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.InputLayout = this->InputLayout; - D.IBStripCutValue = this->IBStripCutValue; - D.PrimitiveTopologyType = this->PrimitiveTopologyType; - D.VS = this->VS; - D.GS = this->GS; - D.StreamOutput = this->StreamOutput; - D.HS = this->HS; - D.DS = this->DS; - D.PS = this->PS; - D.BlendState = this->BlendState; - D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEPTH_STENCIL_DESC2(this->DepthStencilState)); - D.DSVFormat = this->DSVFormat; - D.RasterizerState = CD3DX12_RASTERIZER_DESC1(D3D12_RASTERIZER_DESC1(this->RasterizerState)); - D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; - memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); - D.SampleDesc = this->SampleDesc; - D.SampleMask = this->SampleMask; - D.CachedPSO = this->CachedPSO; - return D; - } - D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept - { - D3D12_COMPUTE_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.CS = this->CS; - D.CachedPSO = this->CachedPSO; - return D; - } -}; -#endif // D3D12_SDK_VERSION >= 608 - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) -// Use CD3DX12_PIPELINE_STATE_STREAM3 for D3D12_DEPTH_STENCIL_DESC2 when CheckFeatureSupport returns true for Options14::IndependentFrontAndBackStencilSupported is true -// Use CD3DX12_PIPELINE_STATE_STREAM2 for OS Build 19041+ (where there is a new mesh shader pipeline). -// Use CD3DX12_PIPELINE_STATE_STREAM1 for OS Build 16299+ (where there is a new view instancing subobject). -// Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. -struct CD3DX12_PIPELINE_STATE_STREAM3 -{ - CD3DX12_PIPELINE_STATE_STREAM3() = default; - // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC - CD3DX12_PIPELINE_STATE_STREAM3(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , InputLayout(Desc.InputLayout) - , IBStripCutValue(Desc.IBStripCutValue) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , VS(Desc.VS) - , GS(Desc.GS) - , StreamOutput(Desc.StreamOutput) - , HS(Desc.HS) - , DS(Desc.DS) - , PS(Desc.PS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM3(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , PS(Desc.PS) - , AS(Desc.AS) - , MS(Desc.MS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM3(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) - , CachedPSO(Desc.CachedPSO) - { - static_cast(DepthStencilState).DepthEnable = false; - } - CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; - CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; - CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; - CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; - CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; - CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; - CD3DX12_PIPELINE_STATE_STREAM_VS VS; - CD3DX12_PIPELINE_STATE_STREAM_GS GS; - CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; - CD3DX12_PIPELINE_STATE_STREAM_HS HS; - CD3DX12_PIPELINE_STATE_STREAM_DS DS; - CD3DX12_PIPELINE_STATE_STREAM_PS PS; - CD3DX12_PIPELINE_STATE_STREAM_AS AS; - CD3DX12_PIPELINE_STATE_STREAM_MS MS; - CD3DX12_PIPELINE_STATE_STREAM_CS CS; - CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL2 DepthStencilState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; - CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; - CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; - CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; - CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; - - D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept - { - D3D12_GRAPHICS_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.InputLayout = this->InputLayout; - D.IBStripCutValue = this->IBStripCutValue; - D.PrimitiveTopologyType = this->PrimitiveTopologyType; - D.VS = this->VS; - D.GS = this->GS; - D.StreamOutput = this->StreamOutput; - D.HS = this->HS; - D.DS = this->DS; - D.PS = this->PS; - D.BlendState = this->BlendState; - D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEPTH_STENCIL_DESC2(this->DepthStencilState)); - D.DSVFormat = this->DSVFormat; - D.RasterizerState = this->RasterizerState; - D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; - memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); - D.SampleDesc = this->SampleDesc; - D.SampleMask = this->SampleMask; - D.CachedPSO = this->CachedPSO; - return D; - } - D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept - { - D3D12_COMPUTE_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.CS = this->CS; - D.CachedPSO = this->CachedPSO; - return D; - } -}; -#endif // D3D12_SDK_VERSION >= 606 - -// CD3DX12_PIPELINE_STATE_STREAM2 Works on OS Build 19041+ (where there is a new mesh shader pipeline). -// Use CD3DX12_PIPELINE_STATE_STREAM1 for OS Build 16299+ (where there is a new view instancing subobject). -// Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. -struct CD3DX12_PIPELINE_STATE_STREAM2 -{ - CD3DX12_PIPELINE_STATE_STREAM2() = default; - // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC - CD3DX12_PIPELINE_STATE_STREAM2(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , InputLayout(Desc.InputLayout) - , IBStripCutValue(Desc.IBStripCutValue) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , VS(Desc.VS) - , GS(Desc.GS) - , StreamOutput(Desc.StreamOutput) - , HS(Desc.HS) - , DS(Desc.DS) - , PS(Desc.PS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM2(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , PS(Desc.PS) - , AS(Desc.AS) - , MS(Desc.MS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM2(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) - , CachedPSO(Desc.CachedPSO) - { - static_cast(DepthStencilState).DepthEnable = false; - } - CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; - CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; - CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; - CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; - CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; - CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; - CD3DX12_PIPELINE_STATE_STREAM_VS VS; - CD3DX12_PIPELINE_STATE_STREAM_GS GS; - CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; - CD3DX12_PIPELINE_STATE_STREAM_HS HS; - CD3DX12_PIPELINE_STATE_STREAM_DS DS; - CD3DX12_PIPELINE_STATE_STREAM_PS PS; - CD3DX12_PIPELINE_STATE_STREAM_AS AS; - CD3DX12_PIPELINE_STATE_STREAM_MS MS; - CD3DX12_PIPELINE_STATE_STREAM_CS CS; - CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1 DepthStencilState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; - CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; - CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; - CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; - CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; - D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept - { - D3D12_GRAPHICS_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.InputLayout = this->InputLayout; - D.IBStripCutValue = this->IBStripCutValue; - D.PrimitiveTopologyType = this->PrimitiveTopologyType; - D.VS = this->VS; - D.GS = this->GS; - D.StreamOutput = this->StreamOutput; - D.HS = this->HS; - D.DS = this->DS; - D.PS = this->PS; - D.BlendState = this->BlendState; - D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEPTH_STENCIL_DESC1(this->DepthStencilState)); - D.DSVFormat = this->DSVFormat; - D.RasterizerState = this->RasterizerState; - D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; - memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); - D.SampleDesc = this->SampleDesc; - D.SampleMask = this->SampleMask; - D.CachedPSO = this->CachedPSO; - return D; - } - D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept - { - D3D12_COMPUTE_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.CS = this->CS; - D.CachedPSO = this->CachedPSO; - return D; - } -}; - -// CD3DX12_PIPELINE_STATE_STREAM1 Works on OS Build 16299+ (where there is a new view instancing subobject). -// Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. -struct CD3DX12_PIPELINE_STATE_STREAM1 -{ - CD3DX12_PIPELINE_STATE_STREAM1() = default; - // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC - CD3DX12_PIPELINE_STATE_STREAM1(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , InputLayout(Desc.InputLayout) - , IBStripCutValue(Desc.IBStripCutValue) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , VS(Desc.VS) - , GS(Desc.GS) - , StreamOutput(Desc.StreamOutput) - , HS(Desc.HS) - , DS(Desc.DS) - , PS(Desc.PS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM1(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , PS(Desc.PS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM1(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) - , CachedPSO(Desc.CachedPSO) - { - static_cast(DepthStencilState).DepthEnable = false; - } - CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; - CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; - CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; - CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; - CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; - CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; - CD3DX12_PIPELINE_STATE_STREAM_VS VS; - CD3DX12_PIPELINE_STATE_STREAM_GS GS; - CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; - CD3DX12_PIPELINE_STATE_STREAM_HS HS; - CD3DX12_PIPELINE_STATE_STREAM_DS DS; - CD3DX12_PIPELINE_STATE_STREAM_PS PS; - CD3DX12_PIPELINE_STATE_STREAM_CS CS; - CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1 DepthStencilState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; - CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; - CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; - CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; - CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; - D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept - { - D3D12_GRAPHICS_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.InputLayout = this->InputLayout; - D.IBStripCutValue = this->IBStripCutValue; - D.PrimitiveTopologyType = this->PrimitiveTopologyType; - D.VS = this->VS; - D.GS = this->GS; - D.StreamOutput = this->StreamOutput; - D.HS = this->HS; - D.DS = this->DS; - D.PS = this->PS; - D.BlendState = this->BlendState; - D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEPTH_STENCIL_DESC1(this->DepthStencilState)); - D.DSVFormat = this->DSVFormat; - D.RasterizerState = this->RasterizerState; - D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; - memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); - D.SampleDesc = this->SampleDesc; - D.SampleMask = this->SampleMask; - D.CachedPSO = this->CachedPSO; - return D; - } - D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept - { - D3D12_COMPUTE_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.CS = this->CS; - D.CachedPSO = this->CachedPSO; - return D; - } -}; - - -struct CD3DX12_PIPELINE_MESH_STATE_STREAM -{ - CD3DX12_PIPELINE_MESH_STATE_STREAM() = default; - CD3DX12_PIPELINE_MESH_STATE_STREAM(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , PS(Desc.PS) - , AS(Desc.AS) - , MS(Desc.MS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) - {} - CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; - CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; - CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; - CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; - CD3DX12_PIPELINE_STATE_STREAM_PS PS; - CD3DX12_PIPELINE_STATE_STREAM_AS AS; - CD3DX12_PIPELINE_STATE_STREAM_MS MS; - CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1 DepthStencilState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; - CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; - CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; - CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; - CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; - D3DX12_MESH_SHADER_PIPELINE_STATE_DESC MeshShaderDescV0() const noexcept - { - D3DX12_MESH_SHADER_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.PrimitiveTopologyType = this->PrimitiveTopologyType; - D.PS = this->PS; - D.AS = this->AS; - D.MS = this->MS; - D.BlendState = this->BlendState; - D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEPTH_STENCIL_DESC1(this->DepthStencilState)); - D.DSVFormat = this->DSVFormat; - D.RasterizerState = this->RasterizerState; - D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; - memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); - D.SampleDesc = this->SampleDesc; - D.SampleMask = this->SampleMask; - D.CachedPSO = this->CachedPSO; - return D; - } -}; - -// CD3DX12_PIPELINE_STATE_STREAM works on OS Build 15063+ but does not support new subobject(s) added in OS Build 16299+. -// See CD3DX12_PIPELINE_STATE_STREAM1 for instance. -struct CD3DX12_PIPELINE_STATE_STREAM -{ - CD3DX12_PIPELINE_STATE_STREAM() = default; - CD3DX12_PIPELINE_STATE_STREAM(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , InputLayout(Desc.InputLayout) - , IBStripCutValue(Desc.IBStripCutValue) - , PrimitiveTopologyType(Desc.PrimitiveTopologyType) - , VS(Desc.VS) - , GS(Desc.GS) - , StreamOutput(Desc.StreamOutput) - , HS(Desc.HS) - , DS(Desc.DS) - , PS(Desc.PS) - , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) - , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) - , DSVFormat(Desc.DSVFormat) - , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) - , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) - , SampleDesc(Desc.SampleDesc) - , SampleMask(Desc.SampleMask) - , CachedPSO(Desc.CachedPSO) - {} - CD3DX12_PIPELINE_STATE_STREAM(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept - : Flags(Desc.Flags) - , NodeMask(Desc.NodeMask) - , pRootSignature(Desc.pRootSignature) - , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) - , CachedPSO(Desc.CachedPSO) - {} - CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; - CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; - CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; - CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; - CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; - CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; - CD3DX12_PIPELINE_STATE_STREAM_VS VS; - CD3DX12_PIPELINE_STATE_STREAM_GS GS; - CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; - CD3DX12_PIPELINE_STATE_STREAM_HS HS; - CD3DX12_PIPELINE_STATE_STREAM_DS DS; - CD3DX12_PIPELINE_STATE_STREAM_PS PS; - CD3DX12_PIPELINE_STATE_STREAM_CS CS; - CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1 DepthStencilState; - CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; - CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; - CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; - CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; - CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; - D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept - { - D3D12_GRAPHICS_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.InputLayout = this->InputLayout; - D.IBStripCutValue = this->IBStripCutValue; - D.PrimitiveTopologyType = this->PrimitiveTopologyType; - D.VS = this->VS; - D.GS = this->GS; - D.StreamOutput = this->StreamOutput; - D.HS = this->HS; - D.DS = this->DS; - D.PS = this->PS; - D.BlendState = this->BlendState; - D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEPTH_STENCIL_DESC1(this->DepthStencilState)); - D.DSVFormat = this->DSVFormat; - D.RasterizerState = this->RasterizerState; - D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; - memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); - D.SampleDesc = this->SampleDesc; - D.SampleMask = this->SampleMask; - D.CachedPSO = this->CachedPSO; - return D; - } - D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept - { - D3D12_COMPUTE_PIPELINE_STATE_DESC D; - D.Flags = this->Flags; - D.NodeMask = this->NodeMask; - D.pRootSignature = this->pRootSignature; - D.CS = this->CS; - D.CachedPSO = this->CachedPSO; - return D; - } -}; - -struct CD3DX12_PIPELINE_STATE_STREAM2_PARSE_HELPER : public ID3DX12PipelineParserCallbacks -{ - CD3DX12_PIPELINE_STATE_STREAM2 PipelineStream; - CD3DX12_PIPELINE_STATE_STREAM2_PARSE_HELPER() noexcept - : SeenDSS(false) - { - // Adjust defaults to account for absent members. - PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - - // Depth disabled if no DSV format specified. - static_cast(PipelineStream.DepthStencilState).DepthEnable = false; - } - - // ID3DX12PipelineParserCallbacks - void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override {PipelineStream.Flags = Flags;} - void NodeMaskCb(UINT NodeMask) override {PipelineStream.NodeMask = NodeMask;} - void RootSignatureCb(ID3D12RootSignature* pRootSignature) override {PipelineStream.pRootSignature = pRootSignature;} - void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override {PipelineStream.InputLayout = InputLayout;} - void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override {PipelineStream.IBStripCutValue = IBStripCutValue;} - void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override {PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType;} - void VSCb(const D3D12_SHADER_BYTECODE& VS) override {PipelineStream.VS = VS;} - void GSCb(const D3D12_SHADER_BYTECODE& GS) override {PipelineStream.GS = GS;} - void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override {PipelineStream.StreamOutput = StreamOutput;} - void HSCb(const D3D12_SHADER_BYTECODE& HS) override {PipelineStream.HS = HS;} - void DSCb(const D3D12_SHADER_BYTECODE& DS) override {PipelineStream.DS = DS;} - void PSCb(const D3D12_SHADER_BYTECODE& PS) override {PipelineStream.PS = PS;} - void CSCb(const D3D12_SHADER_BYTECODE& CS) override {PipelineStream.CS = CS;} - void ASCb(const D3D12_SHADER_BYTECODE& AS) override {PipelineStream.AS = AS;} - void MSCb(const D3D12_SHADER_BYTECODE& MS) override {PipelineStream.MS = MS;} - void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override {PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState);} - void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(DepthStencilState); - SeenDSS = true; - } - void DSVFormatCb(DXGI_FORMAT DSVFormat) override - { - PipelineStream.DSVFormat = DSVFormat; - if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) - { - // Re-enable depth for the default state. - static_cast(PipelineStream.DepthStencilState).DepthEnable = true; - } - } - void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override {PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC(RasterizerState);} - void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override {PipelineStream.RTVFormats = RTVFormats;} - void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override {PipelineStream.SampleDesc = SampleDesc;} - void SampleMaskCb(UINT SampleMask) override {PipelineStream.SampleMask = SampleMask;} - void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override {PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc);} - void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override {PipelineStream.CachedPSO = CachedPSO;} - -private: - bool SeenDSS; -}; - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) -struct CD3DX12_PIPELINE_STATE_STREAM3_PARSE_HELPER : public ID3DX12PipelineParserCallbacks -{ - CD3DX12_PIPELINE_STATE_STREAM3 PipelineStream; - CD3DX12_PIPELINE_STATE_STREAM3_PARSE_HELPER() noexcept - : SeenDSS(false) - { - // Adjust defaults to account for absent members. - PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - - // Depth disabled if no DSV format specified. - static_cast(PipelineStream.DepthStencilState).DepthEnable = false; - } - - // ID3DX12PipelineParserCallbacks - void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } - void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } - void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } - void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } - void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } - void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override { PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; } - void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } - void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } - void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } - void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } - void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } - void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } - void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } - void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } - void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; } - void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } - void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DSVFormatCb(DXGI_FORMAT DSVFormat) override - { - PipelineStream.DSVFormat = DSVFormat; - if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) - { - // Re-enable depth for the default state. - static_cast(PipelineStream.DepthStencilState).DepthEnable = true; - } - } - void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC(RasterizerState); } - void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } - void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } - void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } - void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } - void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } - -private: - bool SeenDSS; -}; -#endif // D3D12_SDK_VERSION >= 606 - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) -struct CD3DX12_PIPELINE_STATE_STREAM4_PARSE_HELPER : public ID3DX12PipelineParserCallbacks -{ - CD3DX12_PIPELINE_STATE_STREAM4 PipelineStream; - CD3DX12_PIPELINE_STATE_STREAM4_PARSE_HELPER() noexcept - : SeenDSS(false) - { - // Adjust defaults to account for absent members. - PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - - // Depth disabled if no DSV format specified. - static_cast(PipelineStream.DepthStencilState).DepthEnable = false; - } - - // ID3DX12PipelineParserCallbacks - void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } - void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } - void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } - void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } - void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } - void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override { PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; } - void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } - void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } - void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } - void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } - void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } - void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } - void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } - void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } - void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; } - void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } - void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DSVFormatCb(DXGI_FORMAT DSVFormat) override - { - PipelineStream.DSVFormat = DSVFormat; - if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) - { - // Re-enable depth for the default state. - static_cast(PipelineStream.DepthStencilState).DepthEnable = true; - } - } - void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC1(RasterizerState); } - void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC1(RasterizerState); } - void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } - void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } - void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } - void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } - void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } - -private: - bool SeenDSS; -}; -#endif // D3D12_SDK_VERSION >= 608 - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 613) -// This SDK 613 version has better primitive topology default handling than the v610 equivalent below. -struct CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER : public ID3DX12PipelineParserCallbacks -{ - CD3DX12_PIPELINE_STATE_STREAM5 PipelineStream; - CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER() noexcept - : SeenDSS(false), - SeenMS(false), - SeenTopology(false) - { - // Adjust defaults to account for absent members. - PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - - // Depth disabled if no DSV format specified. - static_cast(PipelineStream.DepthStencilState).DepthEnable = false; - } - - // ID3DX12PipelineParserCallbacks - void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } - void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } - void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } - void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } - void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } - void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override - { - PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; - SeenTopology = true; - } - void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } - void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } - void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } - void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } - void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } - void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } - void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } - void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } - void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; SeenMS = true; } - void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } - void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DSVFormatCb(DXGI_FORMAT DSVFormat) override {PipelineStream.DSVFormat = DSVFormat;} - void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } - void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } - void RasterizerState2Cb(const D3D12_RASTERIZER_DESC2& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } - void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } - void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } - void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } - void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } - void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } - void FinalizeCb() override - { - if (!SeenDSS && PipelineStream.DSVFormat != DXGI_FORMAT_UNKNOWN) - { - // Re-enable depth for the default state. - static_cast(PipelineStream.DepthStencilState).DepthEnable = true; - } - if (!SeenTopology && SeenMS) - { - PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED; - } - } - -private: - bool SeenDSS; - bool SeenMS; - bool SeenTopology; -}; -#elif defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) -struct CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER : public ID3DX12PipelineParserCallbacks -{ - CD3DX12_PIPELINE_STATE_STREAM5 PipelineStream; - CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER() noexcept - : SeenDSS(false) - { - // Adjust defaults to account for absent members. - PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - - // Depth disabled if no DSV format specified. - static_cast(PipelineStream.DepthStencilState).DepthEnable = false; - } - - // ID3DX12PipelineParserCallbacks - void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } - void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } - void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } - void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } - void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } - void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override { PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; } - void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } - void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } - void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } - void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } - void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } - void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } - void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } - void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } - void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; } - void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } - void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); - SeenDSS = true; - } - void DSVFormatCb(DXGI_FORMAT DSVFormat) override - { - PipelineStream.DSVFormat = DSVFormat; - if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) - { - // Re-enable depth for the default state. - static_cast(PipelineStream.DepthStencilState).DepthEnable = true; - } - } - void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } - void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } - void RasterizerState2Cb(const D3D12_RASTERIZER_DESC2& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } - void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } - void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } - void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } - void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } - void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } - -private: - bool SeenDSS; -}; -#endif // D3D12_SDK_VERSION >= 610 - -struct CD3DX12_PIPELINE_STATE_STREAM_PARSE_HELPER : public ID3DX12PipelineParserCallbacks -{ - CD3DX12_PIPELINE_STATE_STREAM1 PipelineStream; - CD3DX12_PIPELINE_STATE_STREAM_PARSE_HELPER() noexcept - : SeenDSS(false) - { - // Adjust defaults to account for absent members. - PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - - // Depth disabled if no DSV format specified. - static_cast(PipelineStream.DepthStencilState).DepthEnable = false; - } - - // ID3DX12PipelineParserCallbacks - void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override {PipelineStream.Flags = Flags;} - void NodeMaskCb(UINT NodeMask) override {PipelineStream.NodeMask = NodeMask;} - void RootSignatureCb(ID3D12RootSignature* pRootSignature) override {PipelineStream.pRootSignature = pRootSignature;} - void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override {PipelineStream.InputLayout = InputLayout;} - void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override {PipelineStream.IBStripCutValue = IBStripCutValue;} - void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override {PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType;} - void VSCb(const D3D12_SHADER_BYTECODE& VS) override {PipelineStream.VS = VS;} - void GSCb(const D3D12_SHADER_BYTECODE& GS) override {PipelineStream.GS = GS;} - void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override {PipelineStream.StreamOutput = StreamOutput;} - void HSCb(const D3D12_SHADER_BYTECODE& HS) override {PipelineStream.HS = HS;} - void DSCb(const D3D12_SHADER_BYTECODE& DS) override {PipelineStream.DS = DS;} - void PSCb(const D3D12_SHADER_BYTECODE& PS) override {PipelineStream.PS = PS;} - void CSCb(const D3D12_SHADER_BYTECODE& CS) override {PipelineStream.CS = CS;} - void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override {PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState);} - void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(DepthStencilState); - SeenDSS = true; - } - void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override - { - PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(DepthStencilState); - SeenDSS = true; - } - void DSVFormatCb(DXGI_FORMAT DSVFormat) override - { - PipelineStream.DSVFormat = DSVFormat; - if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) - { - // Re-enable depth for the default state. - static_cast(PipelineStream.DepthStencilState).DepthEnable = true; - } - } - void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override {PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC(RasterizerState);} - void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override {PipelineStream.RTVFormats = RTVFormats;} - void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override {PipelineStream.SampleDesc = SampleDesc;} - void SampleMaskCb(UINT SampleMask) override {PipelineStream.SampleMask = SampleMask;} - void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override {PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc);} - void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override {PipelineStream.CachedPSO = CachedPSO;} - -private: - bool SeenDSS; -}; - -inline D3D12_PIPELINE_STATE_SUBOBJECT_TYPE D3DX12GetBaseSubobjectType(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE SubobjectType) noexcept -{ - switch (SubobjectType) - { - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1: - return D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2: - return D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1: - return D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER; -#endif - default: - return SubobjectType; - } -} - -inline HRESULT D3DX12ParsePipelineStream(const D3D12_PIPELINE_STATE_STREAM_DESC& Desc, ID3DX12PipelineParserCallbacks* pCallbacks) -{ - if (pCallbacks == nullptr) - { - return E_INVALIDARG; - } - - if (Desc.SizeInBytes == 0 || Desc.pPipelineStateSubobjectStream == nullptr) - { - pCallbacks->ErrorBadInputParameter(1); // first parameter issue - return E_INVALIDARG; - } - - bool SubobjectSeen[D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID] = {}; - for (SIZE_T CurOffset = 0, SizeOfSubobject = 0; CurOffset < Desc.SizeInBytes; CurOffset += SizeOfSubobject) - { - BYTE* pStream = static_cast(Desc.pPipelineStateSubobjectStream)+CurOffset; - auto SubobjectType = *reinterpret_cast(pStream); - if (SubobjectType < 0 || SubobjectType >= D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID) - { - pCallbacks->ErrorUnknownSubobject(SubobjectType); - return E_INVALIDARG; - } - if (SubobjectSeen[D3DX12GetBaseSubobjectType(SubobjectType)]) - { - pCallbacks->ErrorDuplicateSubobject(SubobjectType); - return E_INVALIDARG; // disallow subobject duplicates in a stream - } - SubobjectSeen[SubobjectType] = true; - switch (SubobjectType) - { - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE: - pCallbacks->RootSignatureCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::pRootSignature); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS: - pCallbacks->VSCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::VS); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS: - pCallbacks->PSCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::PS); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS: - pCallbacks->DSCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::DS); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS: - pCallbacks->HSCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::HS); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS: - pCallbacks->GSCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::GS); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS: - pCallbacks->CSCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::CS); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS: - pCallbacks->ASCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM2::AS); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS: - pCallbacks->MSCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM2::MS); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT: - pCallbacks->StreamOutputCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::StreamOutput); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND: - pCallbacks->BlendStateCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::BlendState); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK: - pCallbacks->SampleMaskCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::SampleMask); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER: - pCallbacks->RasterizerStateCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::RasterizerState); - break; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1: - pCallbacks->RasterizerState1Cb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM4::RasterizerState); - break; -#endif -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2: - pCallbacks->RasterizerState2Cb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM5::RasterizerState); - break; -#endif - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL: - pCallbacks->DepthStencilStateCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1: - pCallbacks->DepthStencilState1Cb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::DepthStencilState); - break; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2: - pCallbacks->DepthStencilState2Cb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM3::DepthStencilState); - break; -#endif - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT: - pCallbacks->InputLayoutCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::InputLayout); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE: - pCallbacks->IBStripCutValueCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::IBStripCutValue); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY: - pCallbacks->PrimitiveTopologyTypeCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::PrimitiveTopologyType); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS: - pCallbacks->RTVFormatsCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::RTVFormats); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT: - pCallbacks->DSVFormatCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::DSVFormat); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC: - pCallbacks->SampleDescCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::SampleDesc); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK: - pCallbacks->NodeMaskCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::NodeMask); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO: - pCallbacks->CachedPSOCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::CachedPSO); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS: - pCallbacks->FlagsCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::Flags); - break; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING: - pCallbacks->ViewInstancingCb(*reinterpret_cast(pStream)); - SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM1::ViewInstancingDesc); - break; - default: - pCallbacks->ErrorUnknownSubobject(SubobjectType); - return E_INVALIDARG; - } - } -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 613) - pCallbacks->FinalizeCb(); -#endif - - return S_OK; -} - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_property_format_table.cpp b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_property_format_table.cpp deleted file mode 100644 index 34e874c..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_property_format_table.cpp +++ /dev/null @@ -1,7442 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* -#include - -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#ifndef NOMINMAX -#define NOMINMAX 1 -#endif -#ifdef __MINGW32__ -#include -#endif -#ifndef _WIN32 -#include -#endif -#include -#include -#include "D3D12TokenizedProgramFormat.hpp" -#include "d3dx12_property_format_table.h" -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) -#ifndef ASSUME -#define ASSUME(x) assert(x) -#endif - -#define R D3DFCN_R -#define G D3DFCN_G -#define B D3DFCN_B -#define A D3DFCN_A -#define D D3DFCN_D -#define S D3DFCN_S -#define X D3DFCN_X - -#define _TYPELESS D3DFCI_TYPELESS -#define _FLOAT D3DFCI_FLOAT -#define _SNORM D3DFCI_SNORM -#define _UNORM D3DFCI_UNORM -#define _SINT D3DFCI_SINT -#define _UINT D3DFCI_UINT -#define _UNORM_SRGB D3DFCI_UNORM_SRGB -#define _FIXED_2_8 D3DFCI_BIASED_FIXED_2_8 - -#ifndef INTSAFE_E_ARITHMETIC_OVERFLOW -#define INTSAFE_E_ARITHMETIC_OVERFLOW ((HRESULT)0x80070216L) -#endif - -// -// UINT addition -// -inline HRESULT Safe_UIntAdd(UINT uAugend, UINT uAddend, UINT* puResult) -{ - if ((uAugend + uAddend) >= uAugend) - { - *puResult = (uAugend + uAddend); - return S_OK; - } - *puResult = UINT_MAX; - return E_FAIL; -} - -// -// UINT multiplication -// -inline HRESULT Safe_UIntMult(UINT uMultiplicand, UINT uMultiplier, UINT* puResult) -{ - ULONGLONG ull64Result = (ULONGLONG)uMultiplicand * (ULONGLONG)uMultiplier; - - if (ull64Result <= UINT_MAX) - { - *puResult = (UINT)ull64Result; - return S_OK; - } - *puResult = UINT_MAX; - return E_FAIL; -} - -const LPCSTR D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::s_FormatNames[] = // separate from above structure so it can be compiled out of the runtime. - { - // Name - "UNKNOWN", - "R32G32B32A32_TYPELESS", - "R32G32B32A32_FLOAT", - "R32G32B32A32_UINT", - "R32G32B32A32_SINT", - "R32G32B32_TYPELESS", - "R32G32B32_FLOAT", - "R32G32B32_UINT", - "R32G32B32_SINT", - "R16G16B16A16_TYPELESS", - "R16G16B16A16_FLOAT", - "R16G16B16A16_UNORM", - "R16G16B16A16_UINT", - "R16G16B16A16_SNORM", - "R16G16B16A16_SINT", - "R32G32_TYPELESS", - "R32G32_FLOAT", - "R32G32_UINT", - "R32G32_SINT", - "R32G8X24_TYPELESS", - "D32_FLOAT_S8X24_UINT", - "R32_FLOAT_X8X24_TYPELESS", - "X32_TYPELESS_G8X24_UINT", - "R10G10B10A2_TYPELESS", - "R10G10B10A2_UNORM", - "R10G10B10A2_UINT", - "R11G11B10_FLOAT", - "R8G8B8A8_TYPELESS", - "R8G8B8A8_UNORM", - "R8G8B8A8_UNORM_SRGB", - "R8G8B8A8_UINT", - "R8G8B8A8_SNORM", - "R8G8B8A8_SINT", - "R16G16_TYPELESS", - "R16G16_FLOAT", - "R16G16_UNORM", - "R16G16_UINT", - "R16G16_SNORM", - "R16G16_SINT", - "R32_TYPELESS", - "D32_FLOAT", - "R32_FLOAT", - "R32_UINT", - "R32_SINT", - "R24G8_TYPELESS", - "D24_UNORM_S8_UINT", - "R24_UNORM_X8_TYPELESS", - "X24_TYPELESS_G8_UINT", - "R8G8_TYPELESS", - "R8G8_UNORM", - "R8G8_UINT", - "R8G8_SNORM", - "R8G8_SINT", - "R16_TYPELESS", - "R16_FLOAT", - "D16_UNORM", - "R16_UNORM", - "R16_UINT", - "R16_SNORM", - "R16_SINT", - "R8_TYPELESS", - "R8_UNORM", - "R8_UINT", - "R8_SNORM", - "R8_SINT", - "A8_UNORM", - "R1_UNORM", - "R9G9B9E5_SHAREDEXP", - "R8G8_B8G8_UNORM", - "G8R8_G8B8_UNORM", - "BC1_TYPELESS", - "BC1_UNORM", - "BC1_UNORM_SRGB", - "BC2_TYPELESS", - "BC2_UNORM", - "BC2_UNORM_SRGB", - "BC3_TYPELESS", - "BC3_UNORM", - "BC3_UNORM_SRGB", - "BC4_TYPELESS", - "BC4_UNORM", - "BC4_SNORM", - "BC5_TYPELESS", - "BC5_UNORM", - "BC5_SNORM", - "B5G6R5_UNORM", - "B5G5R5A1_UNORM", - "B8G8R8A8_UNORM", - "B8G8R8X8_UNORM", - "R10G10B10_XR_BIAS_A2_UNORM", - "B8G8R8A8_TYPELESS", - "B8G8R8A8_UNORM_SRGB", - "B8G8R8X8_TYPELESS", - "B8G8R8X8_UNORM_SRGB", - "BC6H_TYPELESS", - "BC6H_UF16", - "BC6H_SF16", - "BC7_TYPELESS", - "BC7_UNORM", - "BC7_UNORM_SRGB", - "AYUV", - "Y410", - "Y416", - "NV12", - "P010", - "P016", - "420_OPAQUE", - "YUY2", - "Y210", - "Y216", - "NV11", - "AI44", - "IA44", - "P8", - "A8P8", - }; - -// -------------------------------------------------------------------------------------------------------------------------------- -// Format Cast Sets -// -------------------------------------------------------------------------------------------------------------------------------- -constexpr DXGI_FORMAT D3DFCS_UNKNOWN[] = { - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R32G32B32A32[] = { - DXGI_FORMAT_R32G32B32A32_TYPELESS, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_UINT, DXGI_FORMAT_R32G32B32A32_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R32G32B32[] = { - DXGI_FORMAT_R32G32B32_TYPELESS, DXGI_FORMAT_R32G32B32_FLOAT, DXGI_FORMAT_R32G32B32_UINT, DXGI_FORMAT_R32G32B32_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R16G16B16A16[] = { - DXGI_FORMAT_R16G16B16A16_TYPELESS, - DXGI_FORMAT_R16G16B16A16_FLOAT, - DXGI_FORMAT_R16G16B16A16_UNORM, - DXGI_FORMAT_R16G16B16A16_UINT, - DXGI_FORMAT_R16G16B16A16_SNORM, - DXGI_FORMAT_R16G16B16A16_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R32G32[] = { - DXGI_FORMAT_R32G32_TYPELESS, DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_R32G32_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R32G8X24[] = { - DXGI_FORMAT_R32G8X24_TYPELESS, DXGI_FORMAT_D32_FLOAT_S8X24_UINT, DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, - DXGI_FORMAT_X32_TYPELESS_G8X24_UINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R11G11B10[] = { - DXGI_FORMAT_R11G11B10_FLOAT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R8G8B8A8[] = { - DXGI_FORMAT_R8G8B8A8_TYPELESS, - DXGI_FORMAT_R8G8B8A8_UNORM, - DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, - DXGI_FORMAT_R8G8B8A8_UINT, - DXGI_FORMAT_R8G8B8A8_SNORM, - DXGI_FORMAT_R8G8B8A8_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R16G16[] = { - DXGI_FORMAT_R16G16_TYPELESS, DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_R16G16_UNORM, - DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_R16G16_SNORM, DXGI_FORMAT_R16G16_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R32[] = { - DXGI_FORMAT_R32_TYPELESS, DXGI_FORMAT_D32_FLOAT, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R24G8[] = { - DXGI_FORMAT_R24G8_TYPELESS, DXGI_FORMAT_D24_UNORM_S8_UINT, DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_X24_TYPELESS_G8_UINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R8G8[] = { - DXGI_FORMAT_R8G8_TYPELESS, DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_R8G8_UINT, - DXGI_FORMAT_R8G8_SNORM, DXGI_FORMAT_R8G8_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R16[] = { - DXGI_FORMAT_R16_TYPELESS, DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_D16_UNORM, DXGI_FORMAT_R16_UNORM, - DXGI_FORMAT_R16_UINT, DXGI_FORMAT_R16_SNORM, DXGI_FORMAT_R16_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R8[] = { - DXGI_FORMAT_R8_TYPELESS, DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UINT, DXGI_FORMAT_R8_SNORM, DXGI_FORMAT_R8_SINT, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_A8[] = { - DXGI_FORMAT_A8_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R1[] = { - DXGI_FORMAT_R1_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R9G9B9E5[] = { - DXGI_FORMAT_R9G9B9E5_SHAREDEXP, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R8G8_B8G8[] = { - DXGI_FORMAT_R8G8_B8G8_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_G8R8_G8B8[] = { - DXGI_FORMAT_G8R8_G8B8_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_BC1[] = { - DXGI_FORMAT_BC1_TYPELESS, DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC1_UNORM_SRGB, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_BC2[] = { - DXGI_FORMAT_BC2_TYPELESS, DXGI_FORMAT_BC2_UNORM, DXGI_FORMAT_BC2_UNORM_SRGB, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_BC3[] = { - DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_BC3_UNORM, DXGI_FORMAT_BC3_UNORM_SRGB, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_BC4[] = { - DXGI_FORMAT_BC4_TYPELESS, DXGI_FORMAT_BC4_UNORM, DXGI_FORMAT_BC4_SNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_BC5[] = { - DXGI_FORMAT_BC5_TYPELESS, DXGI_FORMAT_BC5_UNORM, DXGI_FORMAT_BC5_SNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_B5G6R5[] = { - DXGI_FORMAT_B5G6R5_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_B5G5R5A1[] = { - DXGI_FORMAT_B5G5R5A1_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_B8G8R8A8[] = { - DXGI_FORMAT_B8G8R8A8_TYPELESS, DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM_SRGB, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_B8G8R8X8[] = { - DXGI_FORMAT_B8G8R8X8_TYPELESS, DXGI_FORMAT_B8G8R8X8_UNORM, DXGI_FORMAT_B8G8R8X8_UNORM_SRGB, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_R10G10B10A2[] = { - DXGI_FORMAT_R10G10B10A2_TYPELESS, DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_R10G10B10A2_UINT, DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_BC6H[] = { - DXGI_FORMAT_BC6H_TYPELESS, DXGI_FORMAT_BC6H_UF16, DXGI_FORMAT_BC6H_SF16, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_BC7[] = { - DXGI_FORMAT_BC7_TYPELESS, DXGI_FORMAT_BC7_UNORM, DXGI_FORMAT_BC7_UNORM_SRGB, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_AYUV[] = { - DXGI_FORMAT_AYUV, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_NV12[] = { - DXGI_FORMAT_NV12, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_YUY2[] = { - DXGI_FORMAT_YUY2, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_P010[] = { - DXGI_FORMAT_P010, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_P016[] = { - DXGI_FORMAT_P016, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_NV11[] = { - DXGI_FORMAT_NV11, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_420_OPAQUE[] = { - DXGI_FORMAT_420_OPAQUE, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_Y410[] = { - DXGI_FORMAT_Y410, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_Y416[] = { - DXGI_FORMAT_Y416, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_Y210[] = { - DXGI_FORMAT_Y210, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_Y216[] = { - DXGI_FORMAT_Y216, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_AI44[] = { - DXGI_FORMAT_AI44, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_IA44[] = { - DXGI_FORMAT_IA44, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_P8[] = { - DXGI_FORMAT_P8, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_A8P8[] = { - DXGI_FORMAT_A8P8, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_B4G4R4A4[] = { - DXGI_FORMAT_B4G4R4A4_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_P208[] = { - DXGI_FORMAT_P208, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_V208[] = { - DXGI_FORMAT_V208, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_V408[] = { - DXGI_FORMAT_V408, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr DXGI_FORMAT D3DFCS_A4B4G4R4[] = { - DXGI_FORMAT_A4B4G4R4_UNORM, - DXGI_FORMAT_UNKNOWN // not part of cast set, just the "null terminator" -}; - -constexpr D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FORMAT_DETAIL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::s_FormatDetail[] = { - // DXGI_FORMAT ParentFormat pDefaultFormatCastSet BitsPerComponent[4], - // BitsPerUnit, SRGB, WidthAlignment, HeightAlignment, DepthAlignment, Layout, TypeLevel, ComponentName[4],ComponentInterpretation[4], - // bDX9VertexOrIndexFormat bDX9TextureFormat, bFloatNormFormat, bPlanar, bYUV bDependantFormatCastSet bInternal - { - DXGI_FORMAT_UNKNOWN, - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32B32A32_TYPELESS, - DXGI_FORMAT_R32G32B32A32_TYPELESS, - D3DFCS_R32G32B32A32, - { 32, 32, 32, 32 }, - 128, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32B32A32_FLOAT, - DXGI_FORMAT_R32G32B32A32_TYPELESS, - D3DFCS_R32G32B32A32, - { 32, 32, 32, 32 }, - 128, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _FLOAT, - _FLOAT, - _FLOAT, - _FLOAT, - TRUE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32B32A32_UINT, - DXGI_FORMAT_R32G32B32A32_TYPELESS, - D3DFCS_R32G32B32A32, - { 32, 32, 32, 32 }, - 128, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UINT, - _UINT, - _UINT, - _UINT, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32B32A32_SINT, - DXGI_FORMAT_R32G32B32A32_TYPELESS, - D3DFCS_R32G32B32A32, - { 32, 32, 32, 32 }, - 128, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _SINT, - _SINT, - _SINT, - _SINT, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32B32_TYPELESS, - DXGI_FORMAT_R32G32B32_TYPELESS, - D3DFCS_R32G32B32, - { 32, 32, 32, 0 }, - 96, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32B32_FLOAT, - DXGI_FORMAT_R32G32B32_TYPELESS, - D3DFCS_R32G32B32, - { 32, 32, 32, 0 }, - 96, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _FLOAT, - _FLOAT, - _FLOAT, - _TYPELESS, - TRUE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32B32_UINT, - DXGI_FORMAT_R32G32B32_TYPELESS, - D3DFCS_R32G32B32, - { 32, 32, 32, 0 }, - 96, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _UINT, - _UINT, - _UINT, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32B32_SINT, - DXGI_FORMAT_R32G32B32_TYPELESS, - D3DFCS_R32G32B32, - { 32, 32, 32, 0 }, - 96, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _SINT, - _SINT, - _SINT, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16B16A16_TYPELESS, - DXGI_FORMAT_R16G16B16A16_TYPELESS, - D3DFCS_R16G16B16A16, - { 16, 16, 16, 16 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16B16A16_FLOAT, - DXGI_FORMAT_R16G16B16A16_TYPELESS, - D3DFCS_R16G16B16A16, - { 16, 16, 16, 16 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _FLOAT, - _FLOAT, - _FLOAT, - _FLOAT, - TRUE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16B16A16_UNORM, - DXGI_FORMAT_R16G16B16A16_TYPELESS, - D3DFCS_R16G16B16A16, - { 16, 16, 16, 16 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16B16A16_UINT, - DXGI_FORMAT_R16G16B16A16_TYPELESS, - D3DFCS_R16G16B16A16, - { 16, 16, 16, 16 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UINT, - _UINT, - _UINT, - _UINT, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16B16A16_SNORM, - DXGI_FORMAT_R16G16B16A16_TYPELESS, - D3DFCS_R16G16B16A16, - { 16, 16, 16, 16 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _SNORM, - _SNORM, - _SNORM, - _SNORM, - TRUE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16B16A16_SINT, - DXGI_FORMAT_R16G16B16A16_TYPELESS, - D3DFCS_R16G16B16A16, - { 16, 16, 16, 16 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _SINT, - _SINT, - _SINT, - _SINT, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32_TYPELESS, - DXGI_FORMAT_R32G32_TYPELESS, - D3DFCS_R32G32, - { 32, 32, 0, 0 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32_FLOAT, - DXGI_FORMAT_R32G32_TYPELESS, - D3DFCS_R32G32, - { 32, 32, 0, 0 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _FLOAT, - _FLOAT, - _TYPELESS, - _TYPELESS, - TRUE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32_UINT, - DXGI_FORMAT_R32G32_TYPELESS, - D3DFCS_R32G32, - { 32, 32, 0, 0 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _UINT, - _UINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G32_SINT, - DXGI_FORMAT_R32G32_TYPELESS, - D3DFCS_R32G32, - { 32, 32, 0, 0 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _SINT, - _SINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32G8X24_TYPELESS, - DXGI_FORMAT_R32G8X24_TYPELESS, - D3DFCS_R32G8X24, - { 32, 8, 24, 0 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_D32_FLOAT_S8X24_UINT, - DXGI_FORMAT_R32G8X24_TYPELESS, - D3DFCS_R32G8X24, - { 32, 8, 24, 0 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - D, - S, - X, - X, - _FLOAT, - _UINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, - DXGI_FORMAT_R32G8X24_TYPELESS, - D3DFCS_R32G8X24, - { 32, 8, 24, 0 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _FLOAT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_X32_TYPELESS_G8X24_UINT, - DXGI_FORMAT_R32G8X24_TYPELESS, - D3DFCS_R32G8X24, - { 32, 8, 24, 0 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - X, - G, - X, - X, - _TYPELESS, - _UINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R10G10B10A2_TYPELESS, - DXGI_FORMAT_R10G10B10A2_TYPELESS, - D3DFCS_R10G10B10A2, - { 10, 10, 10, 2 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - }, - { - DXGI_FORMAT_R10G10B10A2_UNORM, - DXGI_FORMAT_R10G10B10A2_TYPELESS, - D3DFCS_R10G10B10A2, - { 10, 10, 10, 2 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - }, - { - DXGI_FORMAT_R10G10B10A2_UINT, - DXGI_FORMAT_R10G10B10A2_TYPELESS, - D3DFCS_R10G10B10A2, - { 10, 10, 10, 2 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UINT, - _UINT, - _UINT, - _UINT, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - }, - { - DXGI_FORMAT_R11G11B10_FLOAT, - DXGI_FORMAT_R11G11B10_FLOAT, - D3DFCS_R11G11B10, - { 11, 11, 10, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _FLOAT, - _FLOAT, - _FLOAT, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8B8A8_TYPELESS, - DXGI_FORMAT_R8G8B8A8_TYPELESS, - D3DFCS_R8G8B8A8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8B8A8_UNORM, - DXGI_FORMAT_R8G8B8A8_TYPELESS, - D3DFCS_R8G8B8A8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, - DXGI_FORMAT_R8G8B8A8_TYPELESS, - D3DFCS_R8G8B8A8, - { 8, 8, 8, 8 }, - 32, - TRUE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8B8A8_UINT, - DXGI_FORMAT_R8G8B8A8_TYPELESS, - D3DFCS_R8G8B8A8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UINT, - _UINT, - _UINT, - _UINT, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8B8A8_SNORM, - DXGI_FORMAT_R8G8B8A8_TYPELESS, - D3DFCS_R8G8B8A8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _SNORM, - _SNORM, - _SNORM, - _SNORM, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8B8A8_SINT, - DXGI_FORMAT_R8G8B8A8_TYPELESS, - D3DFCS_R8G8B8A8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _SINT, - _SINT, - _SINT, - _SINT, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16_TYPELESS, - DXGI_FORMAT_R16G16_TYPELESS, - D3DFCS_R16G16, - { 16, 16, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16_FLOAT, - DXGI_FORMAT_R16G16_TYPELESS, - D3DFCS_R16G16, - { 16, 16, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _FLOAT, - _FLOAT, - _TYPELESS, - _TYPELESS, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16_UNORM, - DXGI_FORMAT_R16G16_TYPELESS, - D3DFCS_R16G16, - { 16, 16, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _UNORM, - _UNORM, - _TYPELESS, - _TYPELESS, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16_UINT, - DXGI_FORMAT_R16G16_TYPELESS, - D3DFCS_R16G16, - { 16, 16, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _UINT, - _UINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16_SNORM, - DXGI_FORMAT_R16G16_TYPELESS, - D3DFCS_R16G16, - { 16, 16, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _SNORM, - _SNORM, - _TYPELESS, - _TYPELESS, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16G16_SINT, - DXGI_FORMAT_R16G16_TYPELESS, - D3DFCS_R16G16, - { 16, 16, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _SINT, - _SINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32_TYPELESS, - DXGI_FORMAT_R32_TYPELESS, - D3DFCS_R32, - { 32, 0, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_D32_FLOAT, - DXGI_FORMAT_R32_TYPELESS, - D3DFCS_R32, - { 32, 0, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - D, - X, - X, - X, - _FLOAT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32_FLOAT, - DXGI_FORMAT_R32_TYPELESS, - D3DFCS_R32, - { 32, 0, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _FLOAT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32_UINT, - DXGI_FORMAT_R32_TYPELESS, - D3DFCS_R32, - { 32, 0, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UINT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R32_SINT, - DXGI_FORMAT_R32_TYPELESS, - D3DFCS_R32, - { 32, 0, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _SINT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R24G8_TYPELESS, - DXGI_FORMAT_R24G8_TYPELESS, - D3DFCS_R24G8, - { 24, 8, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_D24_UNORM_S8_UINT, - DXGI_FORMAT_R24G8_TYPELESS, - D3DFCS_R24G8, - { 24, 8, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - D, - S, - X, - X, - _UNORM, - _UINT, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R24_UNORM_X8_TYPELESS, - DXGI_FORMAT_R24G8_TYPELESS, - D3DFCS_R24G8, - { 24, 8, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_X24_TYPELESS_G8_UINT, - DXGI_FORMAT_R24G8_TYPELESS, - D3DFCS_R24G8, - { 24, 8, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - X, - G, - X, - X, - _TYPELESS, - _UINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8_TYPELESS, - DXGI_FORMAT_R8G8_TYPELESS, - D3DFCS_R8G8, - { 8, 8, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - G, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8_UNORM, - DXGI_FORMAT_R8G8_TYPELESS, - D3DFCS_R8G8, - { 8, 8, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _UNORM, - _UNORM, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8_UINT, - DXGI_FORMAT_R8G8_TYPELESS, - D3DFCS_R8G8, - { 8, 8, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _UINT, - _UINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8_SNORM, - DXGI_FORMAT_R8G8_TYPELESS, - D3DFCS_R8G8, - { 8, 8, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _SNORM, - _SNORM, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8_SINT, - DXGI_FORMAT_R8G8_TYPELESS, - D3DFCS_R8G8, - { 8, 8, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _SINT, - _SINT, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16_TYPELESS, - DXGI_FORMAT_R16_TYPELESS, - D3DFCS_R16, - { 16, 0, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16_FLOAT, - DXGI_FORMAT_R16_TYPELESS, - D3DFCS_R16, - { 16, 0, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _FLOAT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_D16_UNORM, - DXGI_FORMAT_R16_TYPELESS, - D3DFCS_R16, - { 16, 0, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - D, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16_UNORM, - DXGI_FORMAT_R16_TYPELESS, - D3DFCS_R16, - { 16, 0, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16_UINT, - DXGI_FORMAT_R16_TYPELESS, - D3DFCS_R16, - { 16, 0, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UINT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16_SNORM, - DXGI_FORMAT_R16_TYPELESS, - D3DFCS_R16, - { 16, 0, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _SNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R16_SINT, - DXGI_FORMAT_R16_TYPELESS, - D3DFCS_R16, - { 16, 0, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _SINT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8_TYPELESS, - DXGI_FORMAT_R8_TYPELESS, - D3DFCS_R8, - { 8, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - R, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8_UNORM, - DXGI_FORMAT_R8_TYPELESS, - D3DFCS_R8, - { 8, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8_UINT, - DXGI_FORMAT_R8_TYPELESS, - D3DFCS_R8, - { 8, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UINT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8_SNORM, - DXGI_FORMAT_R8_TYPELESS, - D3DFCS_R8, - { 8, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _SNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8_SINT, - DXGI_FORMAT_R8_TYPELESS, - D3DFCS_R8, - { 8, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _SINT, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_A8_UNORM, - DXGI_FORMAT_A8_UNORM, - D3DFCS_A8, - { 0, 0, 0, 8 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - X, - X, - X, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R1_UNORM, - DXGI_FORMAT_R1_UNORM, - D3DFCS_R1, - { 1, 0, 0, 0 }, - 1, - FALSE, - 8, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R9G9B9E5_SHAREDEXP, - DXGI_FORMAT_R9G9B9E5_SHAREDEXP, - D3DFCS_R9G9B9E5, - { 0, 0, 0, 0 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _FLOAT, - _FLOAT, - _FLOAT, - _FLOAT, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R8G8_B8G8_UNORM, - DXGI_FORMAT_R8G8_B8G8_UNORM, - D3DFCS_R8G8_B8G8, - { 0, 0, 0, 0 }, - 16, - FALSE, - 2, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _UNORM, - _UNORM, - _UNORM, - _TYPELESS, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_G8R8_G8B8_UNORM, - DXGI_FORMAT_G8R8_G8B8_UNORM, - D3DFCS_G8R8_G8B8, - { 0, 0, 0, 0 }, - 16, - FALSE, - 2, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _UNORM, - _UNORM, - _UNORM, - _TYPELESS, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC1_TYPELESS, - DXGI_FORMAT_BC1_TYPELESS, - D3DFCS_BC1, - { 0, 0, 0, 0 }, - 64, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC1_UNORM, - DXGI_FORMAT_BC1_TYPELESS, - D3DFCS_BC1, - { 0, 0, 0, 0 }, - 64, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC1_UNORM_SRGB, - DXGI_FORMAT_BC1_TYPELESS, - D3DFCS_BC1, - { 0, 0, 0, 0 }, - 64, - TRUE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC2_TYPELESS, - DXGI_FORMAT_BC2_TYPELESS, - D3DFCS_BC2, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC2_UNORM, - DXGI_FORMAT_BC2_TYPELESS, - D3DFCS_BC2, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC2_UNORM_SRGB, - DXGI_FORMAT_BC2_TYPELESS, - D3DFCS_BC2, - { 0, 0, 0, 0 }, - 128, - TRUE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC3_TYPELESS, - DXGI_FORMAT_BC3_TYPELESS, - D3DFCS_BC3, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC3_UNORM, - DXGI_FORMAT_BC3_TYPELESS, - D3DFCS_BC3, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC3_UNORM_SRGB, - DXGI_FORMAT_BC3_TYPELESS, - D3DFCS_BC3, - { 0, 0, 0, 0 }, - 128, - TRUE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC4_TYPELESS, - DXGI_FORMAT_BC4_TYPELESS, - D3DFCS_BC4, - { 0, 0, 0, 0 }, - 64, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_PARTIAL_TYPE, - R, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC4_UNORM, - DXGI_FORMAT_BC4_TYPELESS, - D3DFCS_BC4, - { 0, 0, 0, 0 }, - 64, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC4_SNORM, - DXGI_FORMAT_BC4_TYPELESS, - D3DFCS_BC4, - { 0, 0, 0, 0 }, - 64, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _SNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC5_TYPELESS, - DXGI_FORMAT_BC5_TYPELESS, - D3DFCS_BC5, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_PARTIAL_TYPE, - R, - G, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC5_UNORM, - DXGI_FORMAT_BC5_TYPELESS, - D3DFCS_BC5, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _UNORM, - _UNORM, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC5_SNORM, - DXGI_FORMAT_BC5_TYPELESS, - D3DFCS_BC5, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - X, - X, - _SNORM, - _SNORM, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B5G6R5_UNORM, - DXGI_FORMAT_B5G6R5_UNORM, - D3DFCS_B5G6R5, - { 5, 6, 5, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - X, - _UNORM, - _UNORM, - _UNORM, - _TYPELESS, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B5G5R5A1_UNORM, - DXGI_FORMAT_B5G5R5A1_UNORM, - D3DFCS_B5G5R5A1, - { 5, 5, 5, 1 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B8G8R8A8_UNORM, - DXGI_FORMAT_B8G8R8A8_TYPELESS, - D3DFCS_B8G8R8A8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B8G8R8X8_UNORM, - DXGI_FORMAT_B8G8R8X8_TYPELESS, - D3DFCS_B8G8R8X8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - X, - _UNORM, - _UNORM, - _UNORM, - _TYPELESS, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM, - DXGI_FORMAT_R10G10B10A2_TYPELESS, - D3DFCS_R10G10B10A2, - { 10, 10, 10, 2 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _FIXED_2_8, - _FIXED_2_8, - _FIXED_2_8, - _UNORM, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B8G8R8A8_TYPELESS, - DXGI_FORMAT_B8G8R8A8_TYPELESS, - D3DFCS_B8G8R8A8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - B, - G, - R, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B8G8R8A8_UNORM_SRGB, - DXGI_FORMAT_B8G8R8A8_TYPELESS, - D3DFCS_B8G8R8A8, - { 8, 8, 8, 8 }, - 32, - TRUE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - A, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B8G8R8X8_TYPELESS, - DXGI_FORMAT_B8G8R8X8_TYPELESS, - D3DFCS_B8G8R8X8, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_PARTIAL_TYPE, - B, - G, - R, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B8G8R8X8_UNORM_SRGB, - DXGI_FORMAT_B8G8R8X8_TYPELESS, - D3DFCS_B8G8R8X8, - { 8, 8, 8, 8 }, - 32, - TRUE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - X, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - _TYPELESS, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC6H_TYPELESS, - DXGI_FORMAT_BC6H_TYPELESS, - D3DFCS_BC6H, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC6H_UF16, - DXGI_FORMAT_BC6H_TYPELESS, - D3DFCS_BC6H, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _FLOAT, - _FLOAT, - _FLOAT, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC6H_SF16, - DXGI_FORMAT_BC6H_TYPELESS, - D3DFCS_BC6H, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _FLOAT, - _FLOAT, - _FLOAT, - _TYPELESS, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC7_TYPELESS, - DXGI_FORMAT_BC7_TYPELESS, - D3DFCS_BC7, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_PARTIAL_TYPE, - R, - G, - B, - A, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC7_UNORM, - DXGI_FORMAT_BC7_TYPELESS, - D3DFCS_BC7, - { 0, 0, 0, 0 }, - 128, - FALSE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_BC7_UNORM_SRGB, - DXGI_FORMAT_BC7_TYPELESS, - D3DFCS_BC7, - { 0, 0, 0, 0 }, - 128, - TRUE, - 4, - 4, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - A, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM_SRGB, - _UNORM, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - // YUV 4:4:4 formats - { - DXGI_FORMAT_AYUV, - DXGI_FORMAT_AYUV, - D3DFCS_AYUV, - { 8, 8, 8, 8 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_Y410, - DXGI_FORMAT_Y410, - D3DFCS_Y410, - { 10, 10, 10, 2 }, - 32, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_Y416, - DXGI_FORMAT_Y416, - D3DFCS_Y416, - { 16, 16, 16, 16 }, - 64, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - // YUV 4:2:0 formats - { - DXGI_FORMAT_NV12, - DXGI_FORMAT_NV12, - D3DFCS_NV12, - { 0, 0, 0, 0 }, - 8, - FALSE, - 2, - 2, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_P010, - DXGI_FORMAT_P010, - D3DFCS_P010, - { 0, 0, 0, 0 }, - 16, - FALSE, - 2, - 2, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_P016, - DXGI_FORMAT_P016, - D3DFCS_P016, - { 0, 0, 0, 0 }, - 16, - FALSE, - 2, - 2, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_420_OPAQUE, - DXGI_FORMAT_420_OPAQUE, - D3DFCS_420_OPAQUE, - { 0, 0, 0, 0 }, - 8, - FALSE, - 2, - 2, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - }, - // YUV 4:2:2 formats - { - DXGI_FORMAT_YUY2, - DXGI_FORMAT_YUY2, - D3DFCS_YUY2, - { 0, 0, 0, 0 }, - 16, - FALSE, - 2, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _UNORM, - _UNORM, - _UNORM, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_Y210, - DXGI_FORMAT_Y210, - D3DFCS_Y210, - { 0, 0, 0, 0 }, - 32, - FALSE, - 2, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _UNORM, - _UNORM, - _UNORM, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_Y216, - DXGI_FORMAT_Y216, - D3DFCS_Y216, - { 0, 0, 0, 0 }, - 32, - FALSE, - 2, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - G, - B, - X, - _UNORM, - _UNORM, - _UNORM, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - // YUV 4:1:1 formats - { - DXGI_FORMAT_NV11, - DXGI_FORMAT_NV11, - D3DFCS_NV11, - { 0, 0, 0, 0 }, - 8, - FALSE, - 4, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - }, - // Legacy substream formats - { - DXGI_FORMAT_AI44, - DXGI_FORMAT_AI44, - D3DFCS_AI44, - { 0, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_IA44, - DXGI_FORMAT_IA44, - D3DFCS_IA44, - { 0, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_P8, - DXGI_FORMAT_P8, - D3DFCS_P8, - { 0, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_A8P8, - DXGI_FORMAT_A8P8, - D3DFCS_A8P8, - { 0, 0, 0, 0 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_B4G4R4A4_UNORM, - DXGI_FORMAT_B4G4R4A4_UNORM, - D3DFCS_B4G4R4A4, - { 4, 4, 4, 4 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - B, - G, - R, - A, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT(116), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(117), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(118), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(119), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(120), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(121), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(122), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - - { - DXGI_FORMAT(123), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - - { - DXGI_FORMAT(124), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(125), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(126), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(127), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(128), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(129), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(DXGI_FORMAT_P208), - DXGI_FORMAT_P208, - D3DFCS_P208, - { 0, 0, 0, 0 }, - 8, - FALSE, - 2, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT(DXGI_FORMAT_V208), - DXGI_FORMAT_V208, - D3DFCS_V208, - { 0, 0, 0, 0 }, - 8, - FALSE, - 1, - 2, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT(DXGI_FORMAT_V408), - DXGI_FORMAT_V408, - D3DFCS_V408, - { 0, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - TRUE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - }, - - { - DXGI_FORMAT(133), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(134), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(135), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(136), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(137), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(138), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(139), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(140), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(141), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(142), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(143), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(144), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(145), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(146), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(147), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(148), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(149), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(150), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(151), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(152), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(153), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(154), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(155), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(156), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(157), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(158), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(159), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(160), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(161), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(162), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(163), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(164), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(165), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(166), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(167), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(168), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(169), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(170), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(171), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(172), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(173), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(174), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(175), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(176), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(177), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(178), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(179), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(180), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(181), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(182), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(183), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(184), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(185), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(186), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(187), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - { - DXGI_FORMAT(188), - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 0, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_NO_TYPE, - X, - X, - X, - X, - _TYPELESS, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - TRUE, - }, - - { - DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE, - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE, - DXGI_FORMAT_UNKNOWN, - D3DFCS_UNKNOWN, - { 0, 0, 0, 0 }, - 8, - FALSE, - 1, - 1, - 1, - D3DFL_CUSTOM, - D3DFTL_FULL_TYPE, - R, - X, - X, - X, - _UNORM, - _TYPELESS, - _TYPELESS, - _TYPELESS, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - { - DXGI_FORMAT_A4B4G4R4_UNORM, - DXGI_FORMAT_A4B4G4R4_UNORM, - D3DFCS_A4B4G4R4, - { 4, 4, 4, 4 }, - 16, - FALSE, - 1, - 1, - 1, - D3DFL_STANDARD, - D3DFTL_FULL_TYPE, - A, - B, - G, - R, - _UNORM, - _UNORM, - _UNORM, - _UNORM, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - FALSE, - }, - // DXGI_FORMAT ParentFormat pDefaultFormatCastSet BitsPerComponent[4], BitsPerUnit, - // SRGB, WidthAlignment, HeightAlignment, DepthAlignment, Layout, TypeLevel, ComponentName[4],ComponentInterpretation[4], - // bDX9VertexOrIndexFormat bDX9TextureFormat, bFloatNormFormat, bPlanar, bYUV bDependantFormatCastSet bInternal - -}; - -const UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::s_NumFormats = - (sizeof(D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::s_FormatDetail) / sizeof(D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FORMAT_DETAIL)); - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetHighestDefinedFeatureLevel -D3D_FEATURE_LEVEL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetHighestDefinedFeatureLevel() -{ - return D3D_FEATURE_LEVEL_12_2; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetNumFormats -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetNumFormats() -{ - return s_NumFormats; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetFormatTable -const D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FORMAT_DETAIL* D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetFormatTable() -{ - return &s_FormatDetail[0]; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetFormatTable -BOOL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Opaque(DXGI_FORMAT Format) -{ - return Format == DXGI_FORMAT_420_OPAQUE; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// FormatExists -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FormatExists(DXGI_FORMAT Format) -{ - return GetFormat(Format) != (DXGI_FORMAT)-1 ? true : false; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetDetailTableIndex -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndex(DXGI_FORMAT Format) -{ - if ((UINT)Format < _countof(s_FormatDetail)) - { - assert(s_FormatDetail[(UINT)Format].DXGIFormat == Format); - return static_cast(Format); - } - - return (UINT)-1; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// IsBlockCompressFormat - returns true if format is block compressed. This function is a helper function for -// GetBitsPerUnit and if this function returns true then GetBitsPerUnit returns block size. -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::IsBlockCompressFormat(DXGI_FORMAT Format) -{ - // Returns true if BC1, BC2, BC3, BC4, BC5, BC6, BC7, or ASTC - return (Format >= DXGI_FORMAT_BC1_TYPELESS && Format <= DXGI_FORMAT_BC5_SNORM) || - (Format >= DXGI_FORMAT_BC6H_TYPELESS && Format <= DXGI_FORMAT_BC7_UNORM_SRGB); -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetByteAlignment -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetByteAlignment(DXGI_FORMAT Format) -{ - UINT bits = GetBitsPerUnit(Format); - if (!IsBlockCompressFormat(Format)) - { - bits *= GetWidthAlignment(Format) * GetHeightAlignment(Format) * GetDepthAlignment(Format); - } - - assert((bits & 0x7) == 0); // Unit must be byte-aligned - return bits >> 3; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetBitsPerUnitThrow -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerUnitThrow(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexThrow(Format)].BitsPerUnit; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// FormatExistsInHeader -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FormatExistsInHeader(DXGI_FORMAT Format, bool bExternalHeader) -{ - const UINT Index = GetDetailTableIndex(Format); - if (UINT(-1) == Index || (bExternalHeader && GetFormatDetail(Format)->bInternal)) - { - return false; - } - else - { - return true; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetName -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)) - { - return "Unrecognized"; - } - else - { - return s_FormatNames[Index]; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// IsSRGBFormat -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::IsSRGBFormat(DXGI_FORMAT Format) -{ - const UINT Index = GetDetailTableIndex(Format); - if (UINT(-1) == Index) - { - return false; - } - - return s_FormatDetail[Index].SRGBFormat ? true : false; -} - -//---------------------------------------------------------------------------- -// DivideAndRoundUp -inline HRESULT DivideAndRoundUp(UINT dividend, UINT divisor, _Out_ UINT& result) -{ - HRESULT hr = S_OK; - - UINT adjustedDividend; - hr = Safe_UIntAdd(dividend, (divisor - 1), &adjustedDividend); - - result = SUCCEEDED(hr) ? (adjustedDividend / divisor) : 0; - - return hr; -} - -//---------------------------------------------------------------------------- -// CalculateExtraPlanarRows -HRESULT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateExtraPlanarRows(DXGI_FORMAT format, UINT plane0Height, _Out_ UINT& totalHeight) -{ - if (!D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Planar(format)) - { - totalHeight = plane0Height; - return S_OK; - } - - // blockWidth, blockHeight, and blockSize only reflect the size of plane 0. Each planar format has additonal planes - // that must be counted. Each format increases size by another 0.5x, 1x, or 2x. Grab the number of "half - // allocation" increments so integer math can be used to calculate the extra size. - UINT extraHalfHeight; - UINT round; - - switch (D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetParentFormat(format)) - { - case DXGI_FORMAT_NV12: - case DXGI_FORMAT_P010: - case DXGI_FORMAT_P016: - case DXGI_FORMAT_420_OPAQUE: - extraHalfHeight = 1; - round = 1; - break; - - case DXGI_FORMAT_NV11: - case DXGI_FORMAT_P208: - extraHalfHeight = 2; - round = 0; - break; - case DXGI_FORMAT_V208: - extraHalfHeight = 2; - round = 1; - break; - - case DXGI_FORMAT_V408: - extraHalfHeight = 4; - round = 0; - break; - - case DXGI_FORMAT_R24G8_TYPELESS: - case DXGI_FORMAT_R32G8X24_TYPELESS: totalHeight = plane0Height; return S_OK; - - default: assert(false); return S_OK; - } - - UINT extraPlaneHeight; - if (FAILED(Safe_UIntMult(plane0Height, extraHalfHeight, &extraPlaneHeight)) || - FAILED(Safe_UIntAdd(extraPlaneHeight, round, &extraPlaneHeight)) || - FAILED(Safe_UIntAdd(plane0Height, (extraPlaneHeight >> 1), &totalHeight))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - - return S_OK; -} - -//---------------------------------------------------------------------------- -// CalculateResourceSize -HRESULT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateResourceSize(UINT width, UINT height, UINT depth, DXGI_FORMAT format, - UINT mipLevels, UINT subresources, _Out_ SIZE_T& totalByteSize, - _Out_writes_opt_(subresources) D3D12_MEMCPY_DEST* pDst) -{ - UINT tableIndex = GetDetailTableIndexNoThrow(format); - const FORMAT_DETAIL& formatDetail = s_FormatDetail[tableIndex]; - - bool fIsBlockCompressedFormat = IsBlockCompressFormat(format); - - // No format currently requires depth alignment. - assert(formatDetail.DepthAlignment == 1); - - UINT subWidth = width; - UINT subHeight = height; - UINT subDepth = depth; - for (UINT s = 0, iM = 0; s < subresources; ++s) - { - UINT blockWidth; - if (FAILED(DivideAndRoundUp(subWidth, formatDetail.WidthAlignment, /*_Out_*/ blockWidth))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - - UINT blockSize, blockHeight; - if (fIsBlockCompressedFormat) - { - if (FAILED(DivideAndRoundUp(subHeight, formatDetail.HeightAlignment, /*_Out_*/ blockHeight))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - - // Block Compressed formats use BitsPerUnit as block size. - blockSize = formatDetail.BitsPerUnit; - } - else - { - // The height must *not* be aligned to HeightAlign. As there is no plane pitch/stride, the expectation is - // that the 2nd plane begins immediately after the first. The only formats with HeightAlignment other than - // 1 are planar or block compressed, and block compressed is handled above. - assert(formatDetail.bPlanar || formatDetail.HeightAlignment == 1); - blockHeight = subHeight; - - // Combined with the division os subWidth by the width alignment above, this helps achieve rounding the stride up to an even multiple of - // block width. This is especially important for formats like NV12 and P208 whose chroma plane is wider than the luma. - blockSize = formatDetail.BitsPerUnit * formatDetail.WidthAlignment; - } - - if (DXGI_FORMAT_UNKNOWN == formatDetail.DXGIFormat) - { - blockSize = 8; - } - - // Convert block width size to bytes. - assert((blockSize & 0x7) == 0); - blockSize = blockSize >> 3; - - if (formatDetail.bPlanar) - { - if (FAILED(CalculateExtraPlanarRows(format, blockHeight, /*_Out_*/ blockHeight))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - } - - // Calculate rowPitch, depthPitch, and total subresource size. - UINT rowPitch, depthPitch; - - if (FAILED(Safe_UIntMult(blockWidth, blockSize, &rowPitch)) || FAILED(Safe_UIntMult(blockHeight, rowPitch, &depthPitch))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - SIZE_T subresourceByteSize = subDepth * depthPitch; - - if (pDst) - { - D3D12_MEMCPY_DEST& dst = pDst[s]; - - // This data will be returned straight from the API to satisfy Map. So, strides/ alignment must be API-correct. - dst.pData = reinterpret_cast(totalByteSize); - assert(s != 0 || dst.pData == nullptr); - - dst.RowPitch = rowPitch; - dst.SlicePitch = depthPitch; - } - - // Align the subresource size. - static_assert((MAP_ALIGN_REQUIREMENT & (MAP_ALIGN_REQUIREMENT - 1)) == 0, - "This code expects MAP_ALIGN_REQUIREMENT to be a power of 2."); - - SIZE_T subresourceByteSizeAligned = subresourceByteSize + MAP_ALIGN_REQUIREMENT - 1; - subresourceByteSizeAligned = subresourceByteSizeAligned & ~(MAP_ALIGN_REQUIREMENT - 1); - totalByteSize = totalByteSize + subresourceByteSizeAligned; - - // Iterate over mip levels and array elements - if (++iM >= mipLevels) - { - iM = 0; - - subWidth = width; - subHeight = height; - subDepth = depth; - } - else - { - subWidth /= (1 == subWidth ? 1 : 2); - subHeight /= (1 == subHeight ? 1 : 2); - subDepth /= (1 == subDepth ? 1 : 2); - } - } - - return S_OK; -} - -inline bool IsPow2(UINT Val) -{ - return 0 == (Val & (Val - 1)); -} - -// This helper function calculates the Row Pitch for a given format. For Planar formats this function returns -// the row major RowPitch of the resource. The RowPitch is the same for all the planes. For Planar -// also use the CalculateExtraPlanarRows function to calculate the corresonding height or use the CalculateMinimumRowMajorSlicePitch -// function. For Block Compressed Formats, this function returns the RowPitch of a row of blocks. For packed subsampled formats and other formats, -// this function returns the row pitch of one single row of pixels. -HRESULT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateMinimumRowMajorRowPitch(DXGI_FORMAT Format, UINT Width, _Out_ UINT& RowPitch) -{ - // Early out for DXGI_FORMAT_UNKNOWN special case. - if (Format == DXGI_FORMAT_UNKNOWN) - { - RowPitch = Width; - return S_OK; - } - - UINT WidthAlignment = GetWidthAlignment(Format); - - UINT NumUnits; - if (IsBlockCompressFormat(Format)) - { - // This function calculates the minimum stride needed for a block row when the format - // is block compressed.The GetBitsPerUnit value stored in the format table indicates - // the size of a compressed block for block compressed formats. - assert(WidthAlignment != 0); - if (FAILED(DivideAndRoundUp(Width, WidthAlignment, NumUnits))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - } - else - { - // All other formats must have strides aligned to their width alignment requirements. - // The Width may not be aligned to the WidthAlignment. This is not an error for this - // function as we expect to allow formats like NV12 to have odd dimensions in the future. - - // The following alignement code expects only pow2 alignment requirements. Only block - // compressed formats currently have non-pow2 alignment requriements. - assert(IsPow2(WidthAlignment)); - - UINT Mask = WidthAlignment - 1; - if (FAILED(Safe_UIntAdd(Width, Mask, &NumUnits))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - - NumUnits &= ~Mask; - } - - if (FAILED(Safe_UIntMult(NumUnits, GetBitsPerUnit(Format), &RowPitch))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - - // This must to always be Byte aligned. - assert((RowPitch & 7) == 0); - RowPitch >>= 3; - - return S_OK; -} - -// This helper function calculates the SlicePitch for a given format. For Planar formats the slice pitch includes the -// extra planes. -HRESULT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateMinimumRowMajorSlicePitch(DXGI_FORMAT Format, UINT TightRowPitch, - UINT Height, _Out_ UINT& SlicePitch) -{ - if (Planar(Format)) - { - UINT PlanarHeight; - if (FAILED(CalculateExtraPlanarRows(Format, Height, PlanarHeight))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - - return Safe_UIntMult(TightRowPitch, PlanarHeight, &SlicePitch); - } - else if (Format == DXGI_FORMAT_UNKNOWN) - { - return Safe_UIntMult(TightRowPitch, Height, &SlicePitch); - } - - UINT HeightAlignment = GetHeightAlignment(Format); - - // Caution assert to make sure that no new format breaks this assumption that all HeightAlignment formats are BC or - // Planar. This is to make sure that Height handled correctly for this calculation. - assert(HeightAlignment == 1 || IsBlockCompressFormat(Format)); - - UINT HeightOfPacked; - if (FAILED(DivideAndRoundUp(Height, HeightAlignment, HeightOfPacked))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - - if (FAILED(Safe_UIntMult(HeightOfPacked, TightRowPitch, &SlicePitch))) - { - return INTSAFE_E_ARITHMETIC_OVERFLOW; - } - - return S_OK; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetBitsPerUnit - returns bits per pixel unless format is a block compress format then it returns bits per block. -// use IsBlockCompressFormat() to determine if block size is returned. -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerUnit(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].BitsPerUnit; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetWidthAlignment(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].WidthAlignment; -} - -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetHeightAlignment(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].HeightAlignment; -} - -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDepthAlignment(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].DepthAlignment; -} -//--------------------------------------------------------------------------------------------------------------------------------- -// GetFormat -DXGI_FORMAT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetFormat(SIZE_T Index) -{ - if (Index < GetNumFormats()) - { - return s_FormatDetail[Index].DXGIFormat; - } - return (DXGI_FORMAT)-1; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// CanBeCastEvenFullyTyped -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CanBeCastEvenFullyTyped(DXGI_FORMAT Format, D3D_FEATURE_LEVEL fl) -{ - // SRGB can be cast away/back, and XR_BIAS can be cast to/from UNORM - switch (fl) - { - case D3D_FEATURE_LEVEL_1_0_GENERIC: - case D3D_FEATURE_LEVEL_1_0_CORE: return false; - default: break; - } - switch (Format) - { - case DXGI_FORMAT_R8G8B8A8_UNORM: - case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: - case DXGI_FORMAT_B8G8R8A8_UNORM: - case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return true; - case DXGI_FORMAT_R10G10B10A2_UNORM: - case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: return fl >= D3D_FEATURE_LEVEL_10_0; - default: return false; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetFormatDetail -const D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FORMAT_DETAIL* D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetFormatDetail(DXGI_FORMAT Format) -{ - const UINT Index = GetDetailTableIndex(Format); - if (UINT(-1) == Index) - { - return nullptr; - } - - return &s_FormatDetail[Index]; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetBitsPerStencil -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerStencil(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_S) - { - return s_FormatDetail[Index].BitsPerComponent[comp]; - } - } - return 0; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetFormatReturnTypes -void D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetFormatReturnTypes(DXGI_FORMAT Format, - D3D_FORMAT_COMPONENT_INTERPRETATION* pInterpretations) // return array with 4 entries -{ - const UINT Index = GetDetailTableIndexThrow(Format); - pInterpretations[D3D10_SB_4_COMPONENT_R] = s_FormatDetail[Index].ComponentInterpretation0; - pInterpretations[D3D10_SB_4_COMPONENT_G] = s_FormatDetail[Index].ComponentInterpretation1; - pInterpretations[D3D10_SB_4_COMPONENT_B] = s_FormatDetail[Index].ComponentInterpretation2; - pInterpretations[D3D10_SB_4_COMPONENT_A] = s_FormatDetail[Index].ComponentInterpretation3; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetAddressingBitsPerAlignedSize -UINT8 D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetAddressingBitsPerAlignedSize(DXGI_FORMAT Format) -{ - UINT byteAlignment = GetByteAlignment(Format); - UINT8 addressBitsPerElement = 0; - - switch (byteAlignment) - { - case 1: addressBitsPerElement = 0; break; - case 2: addressBitsPerElement = 1; break; - case 4: addressBitsPerElement = 2; break; - case 8: addressBitsPerElement = 3; break; - case 16: addressBitsPerElement = 4; break; - - // The format is not supported - default: return UINT8(-1); - } - - return addressBitsPerElement; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetNumComponentsInFormat -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetNumComponentsInFormat(DXGI_FORMAT Format) -{ - UINT n = 0; - const UINT Index = GetDetailTableIndexThrow(Format); - 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_X) - { - n++; - } - } - return n; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Sequential2AbsoluteComponentIndex -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Sequential2AbsoluteComponentIndex(DXGI_FORMAT Format, UINT SequentialComponentIndex) -{ - UINT n = 0; - const UINT Index = GetDetailTableIndexThrow(Format); - for (UINT comp = 0; comp < 4; comp++) - { - auto name = static_cast(0); - 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_X) - { - if (SequentialComponentIndex == n) - { - return comp; - } - n++; - } - } - return UINT(-1); -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Depth Only Format -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::DepthOnlyFormat(DXGI_FORMAT Format) -{ - switch (Format) - { - case DXGI_FORMAT_D32_FLOAT: - case DXGI_FORMAT_D16_UNORM: return true; - default: return false; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SupportsSamplerFeedback(DXGI_FORMAT Format) -{ - switch (Format) - { - case DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE: - case DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE: return true; - default: return false; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetParentFormat -DXGI_FORMAT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetParentFormat(DXGI_FORMAT Format) -{ - return s_FormatDetail[Format].ParentFormat; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetFormatCastSet -const DXGI_FORMAT* D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetFormatCastSet(DXGI_FORMAT Format) -{ - return s_FormatDetail[Format].pDefaultFormatCastSet; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetTypeLevel -D3D_FORMAT_TYPE_LEVEL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetTypeLevel(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].TypeLevel; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetLayout -D3D_FORMAT_LAYOUT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetLayout(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].Layout; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetComponentName -D3D_FORMAT_COMPONENT_NAME D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetComponentName(DXGI_FORMAT Format, UINT AbsoluteComponentIndex) -{ - 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: Assert(false); - } - return name; -} -//--------------------------------------------------------------------------------------------------------------------------------- -// GetBitsPerComponent -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetBitsPerComponent(DXGI_FORMAT Format, UINT AbsoluteComponentIndex) -{ - if (AbsoluteComponentIndex > 3) - { - Assert(false); - } - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].BitsPerComponent[AbsoluteComponentIndex]; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetFormatComponentInterpretation -D3D_FORMAT_COMPONENT_INTERPRETATION D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetFormatComponentInterpretation(DXGI_FORMAT Format, UINT AbsoluteComponentIndex) -{ - D3D_FORMAT_COMPONENT_INTERPRETATION interp{}; - - switch (AbsoluteComponentIndex) - { - case 0: interp = s_FormatDetail[GetDetailTableIndexNoThrow(Format)].ComponentInterpretation0; break; - 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; - } - return interp; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Planar -BOOL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Planar(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].bPlanar; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Non-opaque Planar -BOOL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::NonOpaquePlanar(DXGI_FORMAT Format) -{ - return Planar(Format) && !Opaque(Format); -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// YUV -BOOL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::YUV(DXGI_FORMAT Format) -{ - return s_FormatDetail[GetDetailTableIndexNoThrow(Format)].bYUV; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Format family supports stencil -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FamilySupportsStencil(DXGI_FORMAT Format) -{ - switch (GetParentFormat(Format)) - { - case DXGI_FORMAT_R32G8X24_TYPELESS: - case DXGI_FORMAT_R24G8_TYPELESS: return true; - default: return false; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetDetailTableIndexThrow -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexThrow(DXGI_FORMAT Format) -{ - UINT Index = GetDetailTableIndex(Format); - if (UINT(-1) == Index) - { - Assert(false && E_FAIL); - } - return Index; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetDetailTableIndexNoThrow -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexNoThrow(DXGI_FORMAT Format) -{ - UINT Index = GetDetailTableIndex(Format); - assert(UINT(-1) != Index); // Needs to be validated externally. - return Index; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetYCbCrChromaSubsampling -void D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetYCbCrChromaSubsampling(DXGI_FORMAT Format, _Out_ UINT& HorizontalSubsampling, - _Out_ UINT& VerticalSubsampling) -{ - switch (Format) - { - // YCbCr 4:2:0 - case DXGI_FORMAT_NV12: - case DXGI_FORMAT_P010: - case DXGI_FORMAT_P016: - case DXGI_FORMAT_420_OPAQUE: - HorizontalSubsampling = 2; - VerticalSubsampling = 2; - break; - - // YCbCr 4:2:2 - case DXGI_FORMAT_P208: - case DXGI_FORMAT_YUY2: - case DXGI_FORMAT_Y210: - HorizontalSubsampling = 2; - VerticalSubsampling = 1; - break; - - // YCbCr 4:4:0 - case DXGI_FORMAT_V208: - HorizontalSubsampling = 1; - VerticalSubsampling = 2; - break; - - // YCbCr 4:4:4 - case DXGI_FORMAT_AYUV: - case DXGI_FORMAT_V408: - case DXGI_FORMAT_Y410: - case DXGI_FORMAT_Y416: - // Fallthrough - - // YCbCr palletized 4:4:4: - case DXGI_FORMAT_AI44: - case DXGI_FORMAT_IA44: - case DXGI_FORMAT_P8: - case DXGI_FORMAT_A8P8: - HorizontalSubsampling = 1; - VerticalSubsampling = 1; - break; - - // YCbCr 4:1:1 - case DXGI_FORMAT_NV11: - HorizontalSubsampling = 4; - VerticalSubsampling = 1; - break; - - default: - // All YCbCr formats should be in this list. - assert(!YUV(Format)); - HorizontalSubsampling = 1; - VerticalSubsampling = 1; - break; - }; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Plane count for non-opaque planar formats -UINT D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::NonOpaquePlaneCount(DXGI_FORMAT Format) -{ - if (!D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::NonOpaquePlanar(Format)) - { - return 1; - } - - // V208 and V408 are the only 3-plane formats. - return (Format == DXGI_FORMAT_V208 || Format == DXGI_FORMAT_V408) ? 3 : 2; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetTileShape -// -// Retrieve 64K Tiled Resource tile shape -void D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetTileShape(D3D12_TILE_SHAPE* pTileShape, DXGI_FORMAT Format, - D3D12_RESOURCE_DIMENSION Dimension, UINT SampleCount) -{ - UINT BPU = GetBitsPerUnit(Format); - - switch (Dimension) - { - case D3D12_RESOURCE_DIMENSION_UNKNOWN: - case D3D12_RESOURCE_DIMENSION_BUFFER: - case D3D12_RESOURCE_DIMENSION_TEXTURE1D: - { - assert(!IsBlockCompressFormat(Format)); - pTileShape->WidthInTexels = - (BPU == 0) ? D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES : D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES * 8 / BPU; - pTileShape->HeightInTexels = 1; - pTileShape->DepthInTexels = 1; - } - break; - case D3D12_RESOURCE_DIMENSION_TEXTURE2D: - { - if (IsBlockCompressFormat(Format)) - { - // Currently only supported block sizes are 64 and 128. - // These equations calculate the size in texels for a tile. It relies on the fact that 64 * 64 blocks fit in a tile if the block size is 128 bits. - assert(BPU == 64 || BPU == 128); - pTileShape->WidthInTexels = 64 * GetWidthAlignment(Format); - pTileShape->HeightInTexels = 64 * GetHeightAlignment(Format); - pTileShape->DepthInTexels = 1; - if (BPU == 64) - { - // If bits per block are 64 we double width so it takes up the full tile size. - // This is only true for BC1 and BC4 - assert((Format >= DXGI_FORMAT_BC1_TYPELESS && Format <= DXGI_FORMAT_BC1_UNORM_SRGB) || - (Format >= DXGI_FORMAT_BC4_TYPELESS && Format <= DXGI_FORMAT_BC4_SNORM)); - pTileShape->WidthInTexels *= 2; - } - } - else - { - pTileShape->DepthInTexels = 1; - if (BPU <= 8) - { - pTileShape->WidthInTexels = 256; - pTileShape->HeightInTexels = 256; - } - else if (BPU <= 16) - { - pTileShape->WidthInTexels = 256; - pTileShape->HeightInTexels = 128; - } - else if (BPU <= 32) - { - pTileShape->WidthInTexels = 128; - pTileShape->HeightInTexels = 128; - } - else if (BPU <= 64) - { - pTileShape->WidthInTexels = 128; - pTileShape->HeightInTexels = 64; - } - else if (BPU <= 128) - { - pTileShape->WidthInTexels = 64; - pTileShape->HeightInTexels = 64; - } - else - { - ASSUME(FALSE); - } - - if (SampleCount <= 1) - { /* Do nothing */ - } - else if (SampleCount <= 2) - { - pTileShape->WidthInTexels /= 2; - pTileShape->HeightInTexels /= 1; - } - else if (SampleCount <= 4) - { - pTileShape->WidthInTexels /= 2; - pTileShape->HeightInTexels /= 2; - } - else if (SampleCount <= 8) - { - pTileShape->WidthInTexels /= 4; - pTileShape->HeightInTexels /= 2; - } - else if (SampleCount <= 16) - { - pTileShape->WidthInTexels /= 4; - pTileShape->HeightInTexels /= 4; - } - else - { - ASSUME(FALSE); - } - } - } - break; - case D3D12_RESOURCE_DIMENSION_TEXTURE3D: - { - if (IsBlockCompressFormat(Format)) - { - // Currently only supported block sizes are 64 and 128. - // These equations calculate the size in texels for a tile. It relies on the fact that 16*16*16 blocks fit in a tile if the block size is 128 bits. - assert(BPU == 64 || BPU == 128); - pTileShape->WidthInTexels = 16 * GetWidthAlignment(Format); - pTileShape->HeightInTexels = 16 * GetHeightAlignment(Format); - pTileShape->DepthInTexels = 16 * GetDepthAlignment(Format); - if (BPU == 64) - { - // If bits per block are 64 we double width so it takes up the full tile size. - // This is only true for BC1 and BC4 - assert((Format >= DXGI_FORMAT_BC1_TYPELESS && Format <= DXGI_FORMAT_BC1_UNORM_SRGB) || - (Format >= DXGI_FORMAT_BC4_TYPELESS && Format <= DXGI_FORMAT_BC4_SNORM)); - pTileShape->WidthInTexels *= 2; - } - } - else if (Format == DXGI_FORMAT_R8G8_B8G8_UNORM || Format == DXGI_FORMAT_G8R8_G8B8_UNORM) - { - // RGBG and GRGB are treated as 2x1 block format - pTileShape->WidthInTexels = 64; - pTileShape->HeightInTexels = 32; - pTileShape->DepthInTexels = 16; - } - else - { - // Not a block format so BPU is bits per pixel. - assert(GetWidthAlignment(Format) == 1 && GetHeightAlignment(Format) == 1 && GetDepthAlignment(Format)); - switch (BPU) - { - case 8: - pTileShape->WidthInTexels = 64; - pTileShape->HeightInTexels = 32; - pTileShape->DepthInTexels = 32; - break; - case 16: - pTileShape->WidthInTexels = 32; - pTileShape->HeightInTexels = 32; - pTileShape->DepthInTexels = 32; - break; - case 32: - pTileShape->WidthInTexels = 32; - pTileShape->HeightInTexels = 32; - pTileShape->DepthInTexels = 16; - break; - case 64: - pTileShape->WidthInTexels = 32; - pTileShape->HeightInTexels = 16; - pTileShape->DepthInTexels = 16; - break; - case 128: - pTileShape->WidthInTexels = 16; - pTileShape->HeightInTexels = 16; - pTileShape->DepthInTexels = 16; - break; - } - } - break; - } - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Get4KTileShape -// -// Retrieve 4K Tiled Resource tile shape -void D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Get4KTileShape(D3D12_TILE_SHAPE* pTileShape, DXGI_FORMAT Format, - D3D12_RESOURCE_DIMENSION Dimension, UINT SampleCount) -{ - UINT BPU = GetBitsPerUnit(Format); - - switch (Dimension) - { - case D3D12_RESOURCE_DIMENSION_UNKNOWN: - case D3D12_RESOURCE_DIMENSION_BUFFER: - case D3D12_RESOURCE_DIMENSION_TEXTURE1D: - { - assert(!IsBlockCompressFormat(Format)); - pTileShape->WidthInTexels = (BPU == 0) ? 4096 : 4096 * 8 / BPU; - pTileShape->HeightInTexels = 1; - pTileShape->DepthInTexels = 1; - } - break; - case D3D12_RESOURCE_DIMENSION_TEXTURE2D: - { - pTileShape->DepthInTexels = 1; - if (IsBlockCompressFormat(Format)) - { - // Currently only supported block sizes are 64 and 128. - // These equations calculate the size in texels for a tile. It relies on the fact that 16*16*16 blocks fit in a tile if the block size is 128 bits. - assert(BPU == 64 || BPU == 128); - pTileShape->WidthInTexels = 16 * GetWidthAlignment(Format); - pTileShape->HeightInTexels = 16 * GetHeightAlignment(Format); - if (BPU == 64) - { - // If bits per block are 64 we double width so it takes up the full tile size. - // This is only true for BC1 and BC4 - assert((Format >= DXGI_FORMAT_BC1_TYPELESS && Format <= DXGI_FORMAT_BC1_UNORM_SRGB) || - (Format >= DXGI_FORMAT_BC4_TYPELESS && Format <= DXGI_FORMAT_BC4_SNORM)); - pTileShape->WidthInTexels *= 2; - } - } - else - { - if (BPU <= 8) - { - pTileShape->WidthInTexels = 64; - pTileShape->HeightInTexels = 64; - } - else if (BPU <= 16) - { - pTileShape->WidthInTexels = 64; - pTileShape->HeightInTexels = 32; - } - else if (BPU <= 32) - { - pTileShape->WidthInTexels = 32; - pTileShape->HeightInTexels = 32; - } - else if (BPU <= 64) - { - pTileShape->WidthInTexels = 32; - pTileShape->HeightInTexels = 16; - } - else if (BPU <= 128) - { - pTileShape->WidthInTexels = 16; - pTileShape->HeightInTexels = 16; - } - else - { - ASSUME(FALSE); - } - - if (SampleCount <= 1) - { /* Do nothing */ - } - else if (SampleCount <= 2) - { - pTileShape->WidthInTexels /= 2; - pTileShape->HeightInTexels /= 1; - } - else if (SampleCount <= 4) - { - pTileShape->WidthInTexels /= 2; - pTileShape->HeightInTexels /= 2; - } - else if (SampleCount <= 8) - { - pTileShape->WidthInTexels /= 4; - pTileShape->HeightInTexels /= 2; - } - else if (SampleCount <= 16) - { - pTileShape->WidthInTexels /= 4; - pTileShape->HeightInTexels /= 4; - } - else - { - ASSUME(FALSE); - } - - assert(GetWidthAlignment(Format) == 1); - assert(GetHeightAlignment(Format) == 1); - assert(GetDepthAlignment(Format) == 1); - } - - break; - } - case D3D12_RESOURCE_DIMENSION_TEXTURE3D: - { - if (IsBlockCompressFormat(Format)) - { - // Currently only supported block sizes are 64 and 128. - // These equations calculate the size in texels for a tile. It relies on the fact that 16*16*16 blocks fit in a tile if the block size is 128 bits. - assert(BPU == 64 || BPU == 128); - pTileShape->WidthInTexels = 8 * GetWidthAlignment(Format); - pTileShape->HeightInTexels = 8 * GetHeightAlignment(Format); - pTileShape->DepthInTexels = 4; - if (BPU == 64) - { - // If bits per block are 64 we double width so it takes up the full tile size. - // This is only true for BC1 and BC4 - assert((Format >= DXGI_FORMAT_BC1_TYPELESS && Format <= DXGI_FORMAT_BC1_UNORM_SRGB) || - (Format >= DXGI_FORMAT_BC4_TYPELESS && Format <= DXGI_FORMAT_BC4_SNORM)); - pTileShape->DepthInTexels *= 2; - } - } - else - { - if (BPU <= 8) - { - pTileShape->WidthInTexels = 16; - pTileShape->HeightInTexels = 16; - pTileShape->DepthInTexels = 16; - } - else if (BPU <= 16) - { - pTileShape->WidthInTexels = 16; - pTileShape->HeightInTexels = 16; - pTileShape->DepthInTexels = 8; - } - else if (BPU <= 32) - { - pTileShape->WidthInTexels = 16; - pTileShape->HeightInTexels = 8; - pTileShape->DepthInTexels = 8; - } - else if (BPU <= 64) - { - pTileShape->WidthInTexels = 8; - pTileShape->HeightInTexels = 8; - pTileShape->DepthInTexels = 8; - } - else if (BPU <= 128) - { - pTileShape->WidthInTexels = 8; - pTileShape->HeightInTexels = 8; - pTileShape->DepthInTexels = 4; - } - else - { - ASSUME(FALSE); - } - - assert(GetWidthAlignment(Format) == 1); - assert(GetHeightAlignment(Format) == 1); - assert(GetDepthAlignment(Format) == 1); - } - } - break; - } -} - -//---------------------------------------------------------------------------------------------------------------------------------- -// GetPlaneSliceFromViewFormat -// Maps resource format + view format to a plane index for resource formats where the plane index can be inferred from -// this information. For planar formats where the plane index is ambiguous given this information (examples: V208, -// V408), this function returns 0. This function returns 0 for non-planar formats. -UINT8 D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetPlaneSliceFromViewFormat(DXGI_FORMAT ResourceFormat, DXGI_FORMAT ViewFormat) -{ - switch (GetParentFormat(ResourceFormat)) - { - case DXGI_FORMAT_R24G8_TYPELESS: - switch (ViewFormat) - { - case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: return 0; - case DXGI_FORMAT_X24_TYPELESS_G8_UINT: return 1; - default: ASSUME(false); - } - break; - case DXGI_FORMAT_R32G8X24_TYPELESS: - switch (ViewFormat) - { - case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: return 0; - case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: return 1; - default: ASSUME(false); - } - break; - case DXGI_FORMAT_NV12: - case DXGI_FORMAT_NV11: - case DXGI_FORMAT_P208: - switch (ViewFormat) - { - case DXGI_FORMAT_R8_UNORM: - case DXGI_FORMAT_R8_UINT: return 0; - case DXGI_FORMAT_R8G8_UNORM: - case DXGI_FORMAT_R8G8_UINT: return 1; - default: ASSUME(false); - } - break; - case DXGI_FORMAT_P016: - case DXGI_FORMAT_P010: - switch (ViewFormat) - { - case DXGI_FORMAT_R16_UNORM: - case DXGI_FORMAT_R16_UINT: return 0; - case DXGI_FORMAT_R16G16_UNORM: - case DXGI_FORMAT_R16G16_UINT: - case DXGI_FORMAT_R32_UINT: return 1; - default: ASSUME(false); - } - break; - default: break; - } - return 0; -} - -//---------------------------------------------------------------------------------------------------------------------------------- -void D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetPlaneSubsampledSizeAndFormatForCopyableLayout( - UINT PlaneSlice, DXGI_FORMAT Format, UINT Width, UINT Height, _Out_ DXGI_FORMAT& PlaneFormat, - _Out_ UINT& MinPlanePitchWidth, _Out_ UINT& PlaneWidth, _Out_ UINT& PlaneHeight) -{ - DXGI_FORMAT ParentFormat = GetParentFormat(Format); - - if (Planar(ParentFormat)) - { - switch (ParentFormat) - { - // YCbCr 4:2:0 - case DXGI_FORMAT_NV12: - switch (PlaneSlice) - { - case 0: - PlaneFormat = DXGI_FORMAT_R8_TYPELESS; - PlaneWidth = Width; - PlaneHeight = Height; - break; - case 1: - PlaneFormat = DXGI_FORMAT_R8G8_TYPELESS; - PlaneWidth = (Width + 1) >> 1; - PlaneHeight = (Height + 1) >> 1; - break; - default: ASSUME(FALSE); - }; - - MinPlanePitchWidth = PlaneWidth; - break; - - case DXGI_FORMAT_P010: - case DXGI_FORMAT_P016: - switch (PlaneSlice) - { - case 0: - PlaneFormat = DXGI_FORMAT_R16_TYPELESS; - PlaneWidth = Width; - PlaneHeight = Height; - break; - case 1: - PlaneFormat = DXGI_FORMAT_R16G16_TYPELESS; - PlaneWidth = (Width + 1) >> 1; - PlaneHeight = (Height + 1) >> 1; - break; - default: ASSUME(FALSE); - }; - - MinPlanePitchWidth = PlaneWidth; - break; - - // YCbCr 4:2:2 - case DXGI_FORMAT_P208: - switch (PlaneSlice) - { - case 0: - PlaneFormat = DXGI_FORMAT_R8_TYPELESS; - PlaneWidth = Width; - PlaneHeight = Height; - break; - case 1: - PlaneFormat = DXGI_FORMAT_R8G8_TYPELESS; - PlaneWidth = (Width + 1) >> 1; - PlaneHeight = Height; - break; - default: ASSUME(FALSE); - }; - - MinPlanePitchWidth = PlaneWidth; - break; - - // YCbCr 4:4:0 - case DXGI_FORMAT_V208: - PlaneFormat = DXGI_FORMAT_R8_TYPELESS; - switch (PlaneSlice) - { - case 0: - PlaneWidth = Width; - PlaneHeight = Height; - break; - case 1: - case 2: - PlaneWidth = Width; - PlaneHeight = (Height + 1) >> 1; - break; - default: ASSUME(FALSE); - }; - - MinPlanePitchWidth = PlaneWidth; - break; - - // YCbCr 4:4:4 - case DXGI_FORMAT_V408: - - switch (PlaneSlice) - { - case 0: - case 1: - case 2: - PlaneFormat = DXGI_FORMAT_R8_TYPELESS; - PlaneWidth = Width; - PlaneHeight = Height; - MinPlanePitchWidth = PlaneWidth; - break; - default: ASSUME(FALSE); - }; - break; - - // YCbCr 4:1:1 - case DXGI_FORMAT_NV11: - switch (PlaneSlice) - { - case 0: - PlaneFormat = DXGI_FORMAT_R8_TYPELESS; - PlaneWidth = Width; - PlaneHeight = Height; - MinPlanePitchWidth = Width; - break; - case 1: - PlaneFormat = DXGI_FORMAT_R8G8_TYPELESS; - PlaneWidth = (Width + 3) >> 2; - PlaneHeight = Height; - - // NV11 has unused padding to the right of the chroma plane in the RowMajor (linear) copyable layout. - MinPlanePitchWidth = (Width + 1) >> 1; - break; - default: ASSUME(FALSE); - }; - - break; - - case DXGI_FORMAT_R32G8X24_TYPELESS: - case DXGI_FORMAT_R24G8_TYPELESS: - switch (PlaneSlice) - { - case 0: - PlaneFormat = DXGI_FORMAT_R32_TYPELESS; - PlaneWidth = Width; - PlaneHeight = Height; - MinPlanePitchWidth = Width; - break; - case 1: - PlaneFormat = DXGI_FORMAT_R8_TYPELESS; - PlaneWidth = Width; - PlaneHeight = Height; - MinPlanePitchWidth = Width; - break; - default: ASSUME(FALSE); - }; - break; - - default: ASSUME(FALSE); - }; - } - else - { - assert(PlaneSlice == 0); - PlaneFormat = Format; - PlaneWidth = Width; - PlaneHeight = Height; - MinPlanePitchWidth = PlaneWidth; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// GetPlaneCount -UINT8 D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetPlaneCount(DXGI_FORMAT Format) -{ - switch (GetParentFormat(Format)) - { - case DXGI_FORMAT_NV12: - case DXGI_FORMAT_NV11: - case DXGI_FORMAT_P208: - case DXGI_FORMAT_P016: - case DXGI_FORMAT_P010: - case DXGI_FORMAT_R24G8_TYPELESS: - case DXGI_FORMAT_R32G8X24_TYPELESS: return 2; - case DXGI_FORMAT_V208: - case DXGI_FORMAT_V408: return 3; - default: return 1; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -void D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetMipDimensions(UINT8 mipSlice, _Inout_ UINT64* pWidth, - _Inout_opt_ UINT64* pHeight, _Inout_opt_ UINT64* pDepth) -{ - UINT denominator = (1 << mipSlice); // 2 ^ subresource - UINT64 mipWidth = *pWidth / denominator; - UINT64 mipHeight = pHeight ? *pHeight / denominator : 1; - UINT64 mipDepth = pDepth ? *pDepth / denominator : 1; - - // Adjust dimensions for degenerate mips - if (mipHeight == 0) - { - mipHeight = 1; - } - if (mipWidth == 0) - { - mipWidth = 1; - } - if (mipDepth == 0) - { - mipDepth = 1; - } - - *pWidth = mipWidth; - if (pHeight) - { - *pHeight = mipHeight; - } - if (pDepth) - { - *pDepth = mipDepth; - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// DX9VertexOrIndexFormat -BOOL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::DX9VertexOrIndexFormat(DXGI_FORMAT Format) -{ - return s_FormatDetail[D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexThrow(Format)].bDX9VertexOrIndexFormat; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// DX9TextureFormat -BOOL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::DX9TextureFormat(DXGI_FORMAT Format) -{ - return s_FormatDetail[D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexThrow(Format)].bDX9TextureFormat; -} -//--------------------------------------------------------------------------------------------------------------------------------- -// FloatNormTextureFormat -BOOL D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FloatNormTextureFormat(DXGI_FORMAT Format) -{ - return s_FormatDetail[D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDetailTableIndexThrow(Format)].bFloatNormFormat; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// ValidCastToR32UAV -// -// D3D11 has a limitation on typed UAVs (e.g. Texture1D/2D/3D) whereby the only format that can be read is R32_*. Lots of formats -// can be written though, with type conversion (e.g. R8G8B8A8_*). If an API user wants to do image processing in-place, in either -// the Compute Shader or the Pixel Shader, the only format available is R32_* (since it can be read and written at the same time). -// -// We were able to allow resources (Texture1D/2D/3D), created with a format from a small set of families that have 32 bits per element -// (such as R8G8B8A8_TYPELESS), to be cast to R32_* when creating a UAV. This means the Compute Shader or Pixel Shader can -// do simultaneous read+write on the resource when bound as an R32_* UAV, with the caveat that the shader code has to do manual -// type conversion manually, but later on the resource can be used as an SRV or RT as the desired type (e.g. R8G8B8A8_UNORM), and -// thus have access to filtering/blending where the hardware knows what the format is. -// -// If we didn't have this ability to cast some formats to R32_* UAVs, applications would have to keep an extra allocation around -// and do a rendering pass that copies from the R32_* UAV to whatever typed resource they really wanted. For formats not included -// in this list, such as any format that doesn't have 32-bits per component, as well as some 32-bit per component formats like -// R24G8 or R11G11B10_FLOAT there is no alternative for an application but to do the extra copy as mentioned, or avoid in-place -// image editing in favor of ping-ponging between buffers with multiple passes. -// -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::ValidCastToR32UAV(DXGI_FORMAT from, DXGI_FORMAT to) -{ - // Allow casting of 32 bit formats to R32_* - if (((to == DXGI_FORMAT_R32_UINT) || (to == DXGI_FORMAT_R32_SINT) || (to == DXGI_FORMAT_R32_FLOAT)) && - ((from == DXGI_FORMAT_R10G10B10A2_TYPELESS) || (from == DXGI_FORMAT_R8G8B8A8_TYPELESS) || - (from == DXGI_FORMAT_B8G8R8A8_TYPELESS) || (from == DXGI_FORMAT_B8G8R8X8_TYPELESS) || - (from == DXGI_FORMAT_R16G16_TYPELESS) || (from == DXGI_FORMAT_R32_TYPELESS))) - { - return true; - } - return false; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// IsSupportedTextureDisplayableFormat -// -// List of formats associated with Feature_D3D1XDisplayable -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::IsSupportedTextureDisplayableFormat(DXGI_FORMAT Format, bool bMediaFormatOnly) -{ - if (bMediaFormatOnly) - { - return (false || (Format == DXGI_FORMAT_NV12 || Format == DXGI_FORMAT_YUY2)); - } - else - { - return (false // eases evolution - || (Format == DXGI_FORMAT_B8G8R8A8_UNORM || Format == DXGI_FORMAT_R8G8B8A8_UNORM || Format == DXGI_FORMAT_R16G16B16A16_FLOAT || - Format == DXGI_FORMAT_R10G10B10A2_UNORM || Format == DXGI_FORMAT_NV12 || Format == DXGI_FORMAT_YUY2)); - } -} - -//--------------------------------------------------------------------------------------------------------------------------------- -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FloatAndNotFloatFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB) -{ - UINT NumComponents = (std::min)(GetNumComponentsInFormat(FormatA), GetNumComponentsInFormat(FormatB)); - for (UINT c = 0; c < NumComponents; c++) - { - D3D_FORMAT_COMPONENT_INTERPRETATION fciA = GetFormatComponentInterpretation(FormatA, c); - D3D_FORMAT_COMPONENT_INTERPRETATION fciB = GetFormatComponentInterpretation(FormatB, c); - if ((fciA != fciB) && ((fciA == D3DFCI_FLOAT) || (fciB == D3DFCI_FLOAT))) - { - return true; - } - } - return false; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::SNORMAndUNORMFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB) -{ - UINT NumComponents = (std::min)(GetNumComponentsInFormat(FormatA), GetNumComponentsInFormat(FormatB)); - for (UINT c = 0; c < NumComponents; c++) - { - D3D_FORMAT_COMPONENT_INTERPRETATION fciA = GetFormatComponentInterpretation(FormatA, c); - D3D_FORMAT_COMPONENT_INTERPRETATION fciB = GetFormatComponentInterpretation(FormatB, c); - if (((fciA == D3DFCI_SNORM) && (fciB == D3DFCI_UNORM)) || ((fciB == D3DFCI_SNORM) && (fciA == D3DFCI_UNORM))) - { - return true; - } - } - return false; -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Formats allowed by runtime for decode histogram. -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::DecodeHistogramAllowedForOutputFormatSupport(DXGI_FORMAT Format) -{ - return ( - /* YUV 4:2:0 */ - Format == DXGI_FORMAT_NV12 || Format == DXGI_FORMAT_P010 || - Format == DXGI_FORMAT_P016 - /* YUV 4:2:2 */ - || Format == DXGI_FORMAT_YUY2 || Format == DXGI_FORMAT_Y210 || - Format == DXGI_FORMAT_Y216 - /* YUV 4:4:4 */ - || Format == DXGI_FORMAT_AYUV || Format == DXGI_FORMAT_Y410 || Format == DXGI_FORMAT_Y416); -} - -//--------------------------------------------------------------------------------------------------------------------------------- -// Formats allowed by runtime for decode histogram. Scopes to tested formats. -bool D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::MotionEstimatorAllowedInputFormat(DXGI_FORMAT Format) -{ - return Format == DXGI_FORMAT_NV12; -} - -#undef R -#undef G -#undef B -#undef A -#undef D -#undef S -#undef X - -#undef _TYPELESS -#undef _FLOAT -#undef _SNORM -#undef _UNORM -#undef _SINT -#undef _UINT -#undef _UNORM_SRGB -#undef _FIXED_2_8 - -#endif // D3D12_SDK_VERSION >= 606 diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_property_format_table.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_property_format_table.h deleted file mode 100644 index 301100c..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_property_format_table.h +++ /dev/null @@ -1,124 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* -#ifndef __D3D12_PROPERTY_LAYOUT_FORMAT_TABLE_H__ -#define __D3D12_PROPERTY_LAYOUT_FORMAT_TABLE_H__ -#include "d3d12.h" -#define MAP_ALIGN_REQUIREMENT 16 // Map is required to return 16-byte aligned addresses - -struct D3D12_PROPERTY_LAYOUT_FORMAT_TABLE -{ -public: - // ---------------------------------------------------------------------------- - // Information describing everything about a D3D Resource Format - // ---------------------------------------------------------------------------- - typedef struct FORMAT_DETAIL - { - DXGI_FORMAT DXGIFormat; - DXGI_FORMAT ParentFormat; - const DXGI_FORMAT* pDefaultFormatCastSet; // This is dependent on FL/driver version, but is here to save a lot of space - UINT8 BitsPerComponent[4]; // only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE - UINT8 BitsPerUnit; - BYTE SRGBFormat : 1; - UINT WidthAlignment : 4; // number of texels to align to in a mip level. - UINT HeightAlignment : 4; // Top level dimensions must be a multiple of these - UINT DepthAlignment : 1; // values. - D3D_FORMAT_LAYOUT Layout : 1; - D3D_FORMAT_TYPE_LEVEL TypeLevel : 2; - D3D_FORMAT_COMPONENT_NAME ComponentName0 : 3; // RED ... only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE - D3D_FORMAT_COMPONENT_NAME ComponentName1 : 3; // GREEN ... only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE - D3D_FORMAT_COMPONENT_NAME ComponentName2 : 3; // BLUE ... only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE - D3D_FORMAT_COMPONENT_NAME ComponentName3 : 3; // ALPHA ... only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE - D3D_FORMAT_COMPONENT_INTERPRETATION ComponentInterpretation0 : 3; // only used for D3DFTL_FULL_TYPE - D3D_FORMAT_COMPONENT_INTERPRETATION ComponentInterpretation1 : 3; // only used for D3DFTL_FULL_TYPE - D3D_FORMAT_COMPONENT_INTERPRETATION ComponentInterpretation2 : 3; // only used for D3DFTL_FULL_TYPE - D3D_FORMAT_COMPONENT_INTERPRETATION ComponentInterpretation3 : 3; // only used for D3DFTL_FULL_TYPE - bool bDX9VertexOrIndexFormat : 1; - bool bDX9TextureFormat : 1; - bool bFloatNormFormat : 1; - bool bPlanar : 1; - bool bYUV : 1; - bool bDependantFormatCastSet : 1; // This indicates that the format cast set is dependent on FL/driver version - bool bInternal : 1; - } FORMAT_DETAIL; - -private: - static const FORMAT_DETAIL s_FormatDetail[]; - static const UINT s_NumFormats; - static const LPCSTR s_FormatNames[]; // separate from above structure so it can be compiled out of runtime. -public: - static UINT GetNumFormats(); - static const FORMAT_DETAIL* GetFormatTable(); - static D3D_FEATURE_LEVEL GetHighestDefinedFeatureLevel(); - - static DXGI_FORMAT GetFormat (SIZE_T Index); - static bool FormatExists (DXGI_FORMAT Format); - static bool FormatExistsInHeader (DXGI_FORMAT Format, bool bExternalHeader = true); - static UINT GetByteAlignment (DXGI_FORMAT Format); - static bool IsBlockCompressFormat (DXGI_FORMAT Format); - static LPCSTR GetName (DXGI_FORMAT Format, bool bHideInternalFormats = true); - static bool IsSRGBFormat (DXGI_FORMAT Format); - static UINT GetBitsPerStencil (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); - - // Converts the sequential component index (range from 0 to GetNumComponentsInFormat()) to - // the absolute component index (range 0 to 3). - static UINT Sequential2AbsoluteComponentIndex (DXGI_FORMAT Format, UINT SequentialComponentIndex); - static bool CanBeCastEvenFullyTyped (DXGI_FORMAT Format, D3D_FEATURE_LEVEL fl); - static UINT8 GetAddressingBitsPerAlignedSize (DXGI_FORMAT Format); - static DXGI_FORMAT GetParentFormat (DXGI_FORMAT Format); - static const DXGI_FORMAT* GetFormatCastSet (DXGI_FORMAT Format); - static D3D_FORMAT_LAYOUT GetLayout (DXGI_FORMAT Format); - static D3D_FORMAT_TYPE_LEVEL GetTypeLevel (DXGI_FORMAT Format); - static UINT GetBitsPerUnit (DXGI_FORMAT Format); - static UINT GetBitsPerUnitThrow (DXGI_FORMAT Format); - static UINT GetBitsPerElement (DXGI_FORMAT Format); // Legacy function used to support D3D10on9 only. Do not use. - static UINT GetWidthAlignment (DXGI_FORMAT Format); - static UINT GetHeightAlignment (DXGI_FORMAT Format); - static UINT GetDepthAlignment (DXGI_FORMAT Format); - static BOOL Planar (DXGI_FORMAT Format); - static BOOL NonOpaquePlanar (DXGI_FORMAT Format); - static BOOL YUV (DXGI_FORMAT Format); - static BOOL Opaque (DXGI_FORMAT Format); - static bool FamilySupportsStencil (DXGI_FORMAT Format); - static UINT NonOpaquePlaneCount (DXGI_FORMAT Format); - static BOOL DX9VertexOrIndexFormat (DXGI_FORMAT Format); - static BOOL DX9TextureFormat (DXGI_FORMAT Format); - static BOOL FloatNormTextureFormat (DXGI_FORMAT Format); - static bool DepthOnlyFormat (DXGI_FORMAT format); - static UINT8 GetPlaneCount (DXGI_FORMAT Format); - static bool MotionEstimatorAllowedInputFormat (DXGI_FORMAT Format); - static bool SupportsSamplerFeedback (DXGI_FORMAT Format); - static bool DecodeHistogramAllowedForOutputFormatSupport(DXGI_FORMAT Format); - static UINT8 GetPlaneSliceFromViewFormat (DXGI_FORMAT ResourceFormat, DXGI_FORMAT ViewFormat); - static bool FloatAndNotFloatFormats (DXGI_FORMAT FormatA, DXGI_FORMAT FormatB); - static bool SNORMAndUNORMFormats (DXGI_FORMAT FormatA, DXGI_FORMAT FormatB); - static bool ValidCastToR32UAV (DXGI_FORMAT from, DXGI_FORMAT to); - static bool IsSupportedTextureDisplayableFormat (DXGI_FORMAT, bool bMediaFormatOnly); - static D3D_FORMAT_COMPONENT_INTERPRETATION GetFormatComponentInterpretation (DXGI_FORMAT Format, UINT AbsoluteComponentIndex); - static UINT GetBitsPerComponent (DXGI_FORMAT Format, UINT AbsoluteComponentIndex); - static D3D_FORMAT_COMPONENT_NAME GetComponentName (DXGI_FORMAT Format, UINT AbsoluteComponentIndex); - static HRESULT CalculateExtraPlanarRows (DXGI_FORMAT format, UINT plane0Height, _Out_ UINT& totalHeight); - static HRESULT CalculateMinimumRowMajorRowPitch (DXGI_FORMAT Format, UINT Width, _Out_ UINT& RowPitch); - static HRESULT CalculateMinimumRowMajorSlicePitch (DXGI_FORMAT Format, UINT ContextBasedRowPitch, UINT Height, _Out_ UINT& SlicePitch); - static void GetYCbCrChromaSubsampling (DXGI_FORMAT Format, _Out_ UINT& HorizontalSubsampling, _Out_ UINT& VerticalSubsampling); - - static HRESULT CalculateResourceSize (UINT width, UINT height, UINT depth, DXGI_FORMAT format, UINT mipLevels, UINT subresources, _Out_ SIZE_T& totalByteSize, _Out_writes_opt_(subresources) D3D12_MEMCPY_DEST* pDst = nullptr); - static void GetTileShape (D3D12_TILE_SHAPE* pTileShape, DXGI_FORMAT Format, D3D12_RESOURCE_DIMENSION Dimension, UINT SampleCount); - static void Get4KTileShape (D3D12_TILE_SHAPE* pTileShape, DXGI_FORMAT Format, D3D12_RESOURCE_DIMENSION Dimension, UINT SampleCount); - static void GetMipDimensions (UINT8 mipSlice, _Inout_ UINT64* pWidth, _Inout_opt_ UINT64* pHeight = nullptr, _Inout_opt_ UINT64* pDepth = nullptr); - static void GetPlaneSubsampledSizeAndFormatForCopyableLayout(UINT PlaneSlice, DXGI_FORMAT Format, UINT Width, UINT Height, _Out_ DXGI_FORMAT& PlaneFormat, _Out_ UINT& MinPlanePitchWidth, _Out_ UINT& PlaneWidth, _Out_ UINT& PlaneHeight); - - static UINT GetDetailTableIndex (DXGI_FORMAT Format); - static UINT GetDetailTableIndexNoThrow (DXGI_FORMAT Format); - static UINT GetDetailTableIndexThrow (DXGI_FORMAT Format); -private: - static const FORMAT_DETAIL* GetFormatDetail (DXGI_FORMAT Format); - -}; - -#endif \ No newline at end of file diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_render_pass.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_render_pass.h deleted file mode 100644 index c88fbdf..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_render_pass.h +++ /dev/null @@ -1,105 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#pragma once - -#ifndef __cplusplus -#error D3DX12 requires C++ -#endif - -#include "d3d12.h" -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) -inline bool operator==(const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& a, const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& b) noexcept -{ - return ((a.AdditionalWidth == b.AdditionalWidth) && (a.AdditionalHeight == b.AdditionalHeight)); -} - -inline bool operator==(const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& a, const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& b) noexcept -{ - return ((a.AdditionalWidth == b.AdditionalWidth) && (a.AdditionalHeight == b.AdditionalHeight)); -} - -inline bool operator==(const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& a, const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& b) noexcept -{ - return ((a.AdditionalWidth == b.AdditionalWidth) && (a.AdditionalHeight == b.AdditionalHeight)); -} -#endif - -inline bool operator==( const D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS &a, const D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS &b) noexcept -{ - return a.ClearValue == b.ClearValue; -} - -inline bool operator==( const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS &a, const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS &b) noexcept -{ - if (a.pSrcResource != b.pSrcResource) return false; - if (a.pDstResource != b.pDstResource) return false; - if (a.SubresourceCount != b.SubresourceCount) return false; - if (a.Format != b.Format) return false; - if (a.ResolveMode != b.ResolveMode) return false; - if (a.PreserveResolveSource != b.PreserveResolveSource) return false; - return true; -} - -inline bool operator==( const D3D12_RENDER_PASS_BEGINNING_ACCESS &a, const D3D12_RENDER_PASS_BEGINNING_ACCESS &b) noexcept -{ - if (a.Type != b.Type) return false; - switch (a.Type) - { - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR: - if (!(a.Clear == b.Clear)) return false; - break; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: - if (!(a.PreserveLocal == b.PreserveLocal)) return false; - break; -#endif - default: - break; - } - return true; -} - -inline bool operator==(const D3D12_RENDER_PASS_ENDING_ACCESS& a, const D3D12_RENDER_PASS_ENDING_ACCESS& b) noexcept -{ - if (a.Type != b.Type) return false; - switch (a.Type) - { - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE: - if (!(a.Resolve == b.Resolve)) return false; - break; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: - if (!(a.PreserveLocal == b.PreserveLocal)) return false; - break; -#endif - default: - break; - } - return true; -} - -inline bool operator==( const D3D12_RENDER_PASS_RENDER_TARGET_DESC &a, const D3D12_RENDER_PASS_RENDER_TARGET_DESC &b) noexcept -{ - if (a.cpuDescriptor.ptr != b.cpuDescriptor.ptr) return false; - if (!(a.BeginningAccess == b.BeginningAccess)) return false; - if (!(a.EndingAccess == b.EndingAccess)) return false; - return true; -} -inline bool operator==( const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC &a, const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC &b) noexcept -{ - if (a.cpuDescriptor.ptr != b.cpuDescriptor.ptr) return false; - if (!(a.DepthBeginningAccess == b.DepthBeginningAccess)) return false; - if (!(a.StencilBeginningAccess == b.StencilBeginningAccess)) return false; - if (!(a.DepthEndingAccess == b.DepthEndingAccess)) return false; - if (!(a.StencilEndingAccess == b.StencilEndingAccess)) return false; - return true; -} diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_resource_helpers.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_resource_helpers.h deleted file mode 100644 index c0c540c..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_resource_helpers.h +++ /dev/null @@ -1,602 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#pragma once - -#ifndef __cplusplus -#error D3DX12 requires C++ -#endif - -#include "d3dx12_property_format_table.h" -#include "d3d12.h" -#include "d3dx12_core.h" -//------------------------------------------------------------------------------------------------ -template -inline void D3D12DecomposeSubresource( UINT Subresource, UINT MipLevels, UINT ArraySize, _Out_ T& MipSlice, _Out_ U& ArraySlice, _Out_ V& PlaneSlice ) noexcept -{ - MipSlice = static_cast(Subresource % MipLevels); - ArraySlice = static_cast((Subresource / MipLevels) % ArraySize); - PlaneSlice = static_cast(Subresource / (MipLevels * ArraySize)); -} - -//------------------------------------------------------------------------------------------------ -// Row-by-row memcpy -inline void MemcpySubresource( - _In_ const D3D12_MEMCPY_DEST* pDest, - _In_ const D3D12_SUBRESOURCE_DATA* pSrc, - SIZE_T RowSizeInBytes, - UINT NumRows, - UINT NumSlices) noexcept -{ - for (UINT z = 0; z < NumSlices; ++z) - { - auto pDestSlice = static_cast(pDest->pData) + pDest->SlicePitch * z; - auto pSrcSlice = static_cast(pSrc->pData) + pSrc->SlicePitch * LONG_PTR(z); - for (UINT y = 0; y < NumRows; ++y) - { - memcpy(pDestSlice + pDest->RowPitch * y, - pSrcSlice + pSrc->RowPitch * LONG_PTR(y), - RowSizeInBytes); - } - } -} - -//------------------------------------------------------------------------------------------------ -// Row-by-row memcpy -inline void MemcpySubresource( - _In_ const D3D12_MEMCPY_DEST* pDest, - _In_ const void* pResourceData, - _In_ const D3D12_SUBRESOURCE_INFO* pSrc, - SIZE_T RowSizeInBytes, - UINT NumRows, - UINT NumSlices) noexcept -{ - for (UINT z = 0; z < NumSlices; ++z) - { - auto pDestSlice = static_cast(pDest->pData) + pDest->SlicePitch * z; - auto pSrcSlice = (static_cast(pResourceData) + pSrc->Offset) + pSrc->DepthPitch * ULONG_PTR(z); - for (UINT y = 0; y < NumRows; ++y) - { - memcpy(pDestSlice + pDest->RowPitch * y, - pSrcSlice + pSrc->RowPitch * ULONG_PTR(y), - RowSizeInBytes); - } - } -} - -//------------------------------------------------------------------------------------------------ -// Returns required size of a buffer to be used for data upload -inline UINT64 GetRequiredIntermediateSize( - _In_ ID3D12Resource* pDestinationResource, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources) noexcept -{ -#if defined(_MSC_VER) || !defined(_WIN32) - const auto Desc = pDestinationResource->GetDesc(); -#else - D3D12_RESOURCE_DESC tmpDesc; - const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); -#endif - UINT64 RequiredSize = 0; - - ID3D12Device* pDevice = nullptr; - pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize); - pDevice->Release(); - - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// All arrays must be populated (e.g. by calling GetCopyableFootprints) -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 RequiredSize, - _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - _In_reads_(NumSubresources) const UINT* pNumRows, - _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) noexcept -{ - // Minor validation -#if defined(_MSC_VER) || !defined(_WIN32) - const auto IntermediateDesc = pIntermediate->GetDesc(); - const auto DestinationDesc = pDestinationResource->GetDesc(); -#else - D3D12_RESOURCE_DESC tmpDesc1, tmpDesc2; - const auto& IntermediateDesc = *pIntermediate->GetDesc(&tmpDesc1); - const auto& DestinationDesc = *pDestinationResource->GetDesc(&tmpDesc2); -#endif - if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || - IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || - RequiredSize > SIZE_T(-1) || - (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && - (FirstSubresource != 0 || NumSubresources != 1))) - { - return 0; - } - - BYTE* pData; - HRESULT hr = pIntermediate->Map(0, nullptr, reinterpret_cast(&pData)); - if (FAILED(hr)) - { - return 0; - } - - for (UINT i = 0; i < NumSubresources; ++i) - { - if (pRowSizesInBytes[i] > SIZE_T(-1)) return 0; - D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, SIZE_T(pLayouts[i].Footprint.RowPitch) * SIZE_T(pNumRows[i]) }; - MemcpySubresource(&DestData, &pSrcData[i], static_cast(pRowSizesInBytes[i]), pNumRows[i], pLayouts[i].Footprint.Depth); - } - pIntermediate->Unmap(0, nullptr); - - if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) - { - pCmdList->CopyBufferRegion( - pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); - } - else - { - for (UINT i = 0; i < NumSubresources; ++i) - { - const CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); - const CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); - pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); - } - } - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// All arrays must be populated (e.g. by calling GetCopyableFootprints) -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 RequiredSize, - _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - _In_reads_(NumSubresources) const UINT* pNumRows, - _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, - _In_ const void* pResourceData, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_INFO* pSrcData) noexcept -{ - // Minor validation -#if defined(_MSC_VER) || !defined(_WIN32) - const auto IntermediateDesc = pIntermediate->GetDesc(); - const auto DestinationDesc = pDestinationResource->GetDesc(); -#else - D3D12_RESOURCE_DESC tmpDesc1, tmpDesc2; - const auto& IntermediateDesc = *pIntermediate->GetDesc(&tmpDesc1); - const auto& DestinationDesc = *pDestinationResource->GetDesc(&tmpDesc2); -#endif - if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || - IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || - RequiredSize > SIZE_T(-1) || - (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && - (FirstSubresource != 0 || NumSubresources != 1))) - { - return 0; - } - - BYTE* pData; - HRESULT hr = pIntermediate->Map(0, nullptr, reinterpret_cast(&pData)); - if (FAILED(hr)) - { - return 0; - } - - for (UINT i = 0; i < NumSubresources; ++i) - { - if (pRowSizesInBytes[i] > SIZE_T(-1)) return 0; - D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, SIZE_T(pLayouts[i].Footprint.RowPitch) * SIZE_T(pNumRows[i]) }; - MemcpySubresource(&DestData, pResourceData, &pSrcData[i], static_cast(pRowSizesInBytes[i]), pNumRows[i], pLayouts[i].Footprint.Depth); - } - pIntermediate->Unmap(0, nullptr); - - if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) - { - pCmdList->CopyBufferRegion( - pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); - } - else - { - for (UINT i = 0; i < NumSubresources; ++i) - { - const CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); - const CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); - pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); - } - } - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// Heap-allocating UpdateSubresources implementation -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) noexcept -{ - UINT64 RequiredSize = 0; - const auto MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; - if (MemToAlloc > SIZE_MAX) - { - return 0; - } - void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc)); - if (pMem == nullptr) - { - return 0; - } - auto pLayouts = static_cast(pMem); - auto pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources); - auto pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources); - -#if defined(_MSC_VER) || !defined(_WIN32) - const auto Desc = pDestinationResource->GetDesc(); -#else - D3D12_RESOURCE_DESC tmpDesc; - const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); -#endif - ID3D12Device* pDevice = nullptr; - pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); - pDevice->Release(); - - const UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData); - HeapFree(GetProcessHeap(), 0, pMem); - return Result; -} - -//------------------------------------------------------------------------------------------------ -// Heap-allocating UpdateSubresources implementation -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - _In_ const void* pResourceData, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_INFO* pSrcData) noexcept -{ - UINT64 RequiredSize = 0; - const auto MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; - if (MemToAlloc > SIZE_MAX) - { - return 0; - } - void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc)); - if (pMem == nullptr) - { - return 0; - } - auto pLayouts = static_cast(pMem); - auto pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources); - auto pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources); - -#if defined(_MSC_VER) || !defined(_WIN32) - const auto Desc = pDestinationResource->GetDesc(); -#else - D3D12_RESOURCE_DESC tmpDesc; - const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); -#endif - ID3D12Device* pDevice = nullptr; - pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); - pDevice->Release(); - - const UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pResourceData, pSrcData); - HeapFree(GetProcessHeap(), 0, pMem); - return Result; -} - -//------------------------------------------------------------------------------------------------ -// Stack-allocating UpdateSubresources implementation -template -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0,MaxSubresources) UINT FirstSubresource, - _In_range_(1,MaxSubresources-FirstSubresource) UINT NumSubresources, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) noexcept -{ - UINT64 RequiredSize = 0; - D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; - UINT NumRows[MaxSubresources]; - UINT64 RowSizesInBytes[MaxSubresources]; - -#if defined(_MSC_VER) || !defined(_WIN32) - const auto Desc = pDestinationResource->GetDesc(); -#else - D3D12_RESOURCE_DESC tmpDesc; - const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); -#endif - ID3D12Device* pDevice = nullptr; - pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); - pDevice->Release(); - - return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData); -} - -//------------------------------------------------------------------------------------------------ -// Stack-allocating UpdateSubresources implementation -template -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0,MaxSubresources) UINT FirstSubresource, - _In_range_(1,MaxSubresources-FirstSubresource) UINT NumSubresources, - _In_ const void* pResourceData, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_INFO* pSrcData) noexcept -{ - UINT64 RequiredSize = 0; - D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; - UINT NumRows[MaxSubresources]; - UINT64 RowSizesInBytes[MaxSubresources]; - -#if defined(_MSC_VER) || !defined(_WIN32) - const auto Desc = pDestinationResource->GetDesc(); -#else - D3D12_RESOURCE_DESC tmpDesc; - const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); -#endif - ID3D12Device* pDevice = nullptr; - pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); - pDevice->Release(); - - return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pResourceData, pSrcData); -} - -//------------------------------------------------------------------------------------------------ -constexpr bool D3D12IsLayoutOpaque( D3D12_TEXTURE_LAYOUT Layout ) noexcept -{ return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; } - -//------------------------------------------------------------------------------------------------ -template< typename T > -inline T D3DX12Align(T uValue, T uAlign) -{ - // Assert power of 2 alignment - D3DX12_ASSERT(0 == (uAlign & (uAlign - 1))); - T uMask = uAlign - 1; - T uResult = (uValue + uMask) & ~uMask; - D3DX12_ASSERT(uResult >= uValue); - D3DX12_ASSERT(0 == (uResult % uAlign)); - return uResult; -} - -//------------------------------------------------------------------------------------------------ -template< typename T > -inline T D3DX12AlignAtLeast(T uValue, T uAlign) -{ - T aligned = D3DX12Align(uValue, uAlign); - return aligned > uAlign ? aligned : uAlign; -} - -inline const CD3DX12_RESOURCE_DESC1* D3DX12ConditionallyExpandAPIDesc( - D3D12_RESOURCE_DESC1& LclDesc, - const D3D12_RESOURCE_DESC1* pDesc) -{ - return D3DX12ConditionallyExpandAPIDesc(static_cast(LclDesc), static_cast(pDesc)); -} - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) -//------------------------------------------------------------------------------------------------ -// The difference between D3DX12GetCopyableFootprints and ID3D12Device::GetCopyableFootprints -// is that this one loses a lot of error checking by assuming the arguments are correct -inline bool D3DX12GetCopyableFootprints( - _In_ const D3D12_RESOURCE_DESC1& ResourceDesc, - _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - _Out_writes_opt_(NumSubresources) UINT* pNumRows, - _Out_writes_opt_(NumSubresources) UINT64* pRowSizeInBytes, - _Out_opt_ UINT64* pTotalBytes) -{ - constexpr UINT64 uint64_max = ~0ull; - UINT64 TotalBytes = uint64_max; - UINT uSubRes = 0; - - bool bResourceOverflow = false; - TotalBytes = 0; - - const DXGI_FORMAT Format = ResourceDesc.Format; - - CD3DX12_RESOURCE_DESC1 LresourceDesc; - const CD3DX12_RESOURCE_DESC1& resourceDesc = *D3DX12ConditionallyExpandAPIDesc(LresourceDesc, &ResourceDesc); - - // Check if its a valid format - D3DX12_ASSERT(D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FormatExists(Format)); - - const UINT WidthAlignment = D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetWidthAlignment( Format ); - const UINT HeightAlignment = D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetHeightAlignment( Format ); - const UINT16 DepthAlignment = UINT16( D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDepthAlignment( Format ) ); - - for (; uSubRes < NumSubresources; ++uSubRes) - { - bool bOverflow = false; - UINT Subresource = FirstSubresource + uSubRes; - - D3DX12_ASSERT(resourceDesc.MipLevels != 0); - UINT subresourceCount = resourceDesc.MipLevels * resourceDesc.ArraySize() * D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetPlaneCount(resourceDesc.Format); - - if (Subresource > subresourceCount) - { - break; - } - - TotalBytes = D3DX12Align< UINT64 >( TotalBytes, D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ); - - UINT MipLevel, ArraySlice, PlaneSlice; - D3D12DecomposeSubresource(Subresource, resourceDesc.MipLevels, resourceDesc.ArraySize(), /*_Out_*/MipLevel, /*_Out_*/ArraySlice, /*_Out_*/PlaneSlice); - - const UINT64 Width = D3DX12AlignAtLeast(resourceDesc.Width >> MipLevel, WidthAlignment); - const UINT Height = D3DX12AlignAtLeast(resourceDesc.Height >> MipLevel, HeightAlignment); - const UINT16 Depth = D3DX12AlignAtLeast(resourceDesc.Depth() >> MipLevel, DepthAlignment); - - // Adjust for the current PlaneSlice. Most formats have only one plane. - DXGI_FORMAT PlaneFormat; - 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; - auto& Placement = pLayouts ? pLayouts[uSubRes].Footprint : LocalPlacement; - Placement.Format = PlaneFormat; - Placement.Width = PlaneWidth; - Placement.Height = PlaneHeight; - Placement.Depth = Depth; - - // Calculate row pitch - UINT MinPlaneRowPitch = 0; - D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateMinimumRowMajorRowPitch(PlaneFormat, MinPlanePitchWidth, MinPlaneRowPitch); - - // Formats with more than one plane choose a larger pitch alignment to ensure that each plane begins on the row - // immediately following the previous plane while still adhering to subresource alignment restrictions. - static_assert( D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT >= D3D12_TEXTURE_DATA_PITCH_ALIGNMENT - && ((D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT % D3D12_TEXTURE_DATA_PITCH_ALIGNMENT) == 0), - "D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT must be >= and evenly divisible by D3D12_TEXTURE_DATA_PITCH_ALIGNMENT." ); - - Placement.RowPitch = D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Planar(Format) - ? D3DX12Align< UINT >( MinPlaneRowPitch, D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ) - : D3DX12Align< UINT >( MinPlaneRowPitch, D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ); - - if (pRowSizeInBytes) - { - UINT PlaneRowSize = 0; - D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateMinimumRowMajorRowPitch(PlaneFormat, PlaneWidth, PlaneRowSize); - - pRowSizeInBytes[uSubRes] = PlaneRowSize; - } - - // Number of rows (accounting for block compression and additional planes) - UINT NumRows = 0; - if (D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Planar(Format)) - { - NumRows = PlaneHeight; - } - else - { - D3DX12_ASSERT(Height % HeightAlignment == 0); - NumRows = Height / HeightAlignment; - } - - if (pNumRows) - { - pNumRows[uSubRes] = NumRows; - } - - // Offsetting - if (pLayouts) - { - pLayouts[uSubRes].Offset = (bOverflow ? uint64_max : TotalBytes + BaseOffset); - } - - const UINT16 NumSlices = Depth; - const UINT64 SubresourceSize = (NumRows * NumSlices - 1) * Placement.RowPitch + MinPlaneRowPitch; - - // uint64 addition with overflow checking - TotalBytes = TotalBytes + SubresourceSize; - if(TotalBytes < SubresourceSize) - { - TotalBytes = uint64_max; - } - bResourceOverflow = bResourceOverflow || bOverflow; - } - - // Overflow error - if (bResourceOverflow) - { - TotalBytes = uint64_max; - } - - - if (pLayouts) - { - memset( pLayouts + uSubRes, -1, sizeof( *pLayouts ) * (NumSubresources - uSubRes) ); - } - if (pNumRows) - { - memset(pNumRows + uSubRes, -1, sizeof(*pNumRows) * (NumSubresources - uSubRes)); - } - if (pRowSizeInBytes) - { - memset(pRowSizeInBytes + uSubRes, -1, sizeof(*pRowSizeInBytes) * (NumSubresources - uSubRes)); - } - if (pTotalBytes) - { - *pTotalBytes = TotalBytes; - } - if(TotalBytes == uint64_max) - { - return false; - } - return true; -} - -//------------------------------------------------------------------------------------------------ -inline D3D12_RESOURCE_DESC1 D3DX12ResourceDesc0ToDesc1(D3D12_RESOURCE_DESC const& desc0) -{ - D3D12_RESOURCE_DESC1 desc1; - desc1.Dimension = desc0.Dimension; - desc1.Alignment = desc0.Alignment; - desc1.Width = desc0.Width; - desc1.Height = desc0.Height; - desc1.DepthOrArraySize = desc0.DepthOrArraySize; - desc1.MipLevels = desc0.MipLevels; - desc1.Format = desc0.Format; - desc1.SampleDesc.Count = desc0.SampleDesc.Count; - desc1.SampleDesc.Quality = desc0.SampleDesc.Quality; - desc1.Layout = desc0.Layout; - desc1.Flags = desc0.Flags; - desc1.SamplerFeedbackMipRegion.Width = 0; - desc1.SamplerFeedbackMipRegion.Height = 0; - desc1.SamplerFeedbackMipRegion.Depth = 0; - return desc1; -} - -//------------------------------------------------------------------------------------------------ -inline bool D3DX12GetCopyableFootprints( - _In_ const D3D12_RESOURCE_DESC& pResourceDesc, - _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources, - UINT64 BaseOffset, - _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - _Out_writes_opt_(NumSubresources) UINT* pNumRows, - _Out_writes_opt_(NumSubresources) UINT64* pRowSizeInBytes, - _Out_opt_ UINT64* pTotalBytes) -{ - // From D3D12_RESOURCE_DESC to D3D12_RESOURCE_DESC1 - D3D12_RESOURCE_DESC1 desc = D3DX12ResourceDesc0ToDesc1(pResourceDesc); - return D3DX12GetCopyableFootprints( - *static_cast(&desc),// From D3D12_RESOURCE_DESC1 to CD3DX12_RESOURCE_DESC1 - FirstSubresource, - NumSubresources, - BaseOffset, - pLayouts, - pNumRows, - pRowSizeInBytes, - pTotalBytes); -} - -#endif // D3D12_SDK_VERSION >= 606 diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_root_signature.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_root_signature.h deleted file mode 100644 index e194d30..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_root_signature.h +++ /dev/null @@ -1,1227 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#pragma once - -#ifndef __cplusplus -#error D3DX12 requires C++ -#endif - -#include "d3d12.h" -#include "d3dx12_default.h" - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE -{ - CD3DX12_DESCRIPTOR_RANGE() = default; - explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) noexcept : - D3D12_DESCRIPTOR_RANGE(o) - {} - CD3DX12_DESCRIPTOR_RANGE( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept - { - Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); - } - - inline void Init( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept - { - Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); - } - - static inline void Init( - _Out_ D3D12_DESCRIPTOR_RANGE &range, - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept - { - range.RangeType = rangeType; - range.NumDescriptors = numDescriptors; - range.BaseShaderRegister = baseShaderRegister; - range.RegisterSpace = registerSpace; - range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE -{ - CD3DX12_ROOT_DESCRIPTOR_TABLE() = default; - explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) noexcept : - D3D12_ROOT_DESCRIPTOR_TABLE(o) - {} - CD3DX12_ROOT_DESCRIPTOR_TABLE( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) noexcept - { - Init(numDescriptorRanges, _pDescriptorRanges); - } - - inline void Init( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) noexcept - { - Init(*this, numDescriptorRanges, _pDescriptorRanges); - } - - static inline void Init( - _Out_ D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable, - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) noexcept - { - rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; - rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS -{ - CD3DX12_ROOT_CONSTANTS() = default; - explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) noexcept : - D3D12_ROOT_CONSTANTS(o) - {} - CD3DX12_ROOT_CONSTANTS( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) noexcept - { - Init(num32BitValues, shaderRegister, registerSpace); - } - - inline void Init( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) noexcept - { - Init(*this, num32BitValues, shaderRegister, registerSpace); - } - - static inline void Init( - _Out_ D3D12_ROOT_CONSTANTS &rootConstants, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) noexcept - { - rootConstants.Num32BitValues = num32BitValues; - rootConstants.ShaderRegister = shaderRegister; - rootConstants.RegisterSpace = registerSpace; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR -{ - CD3DX12_ROOT_DESCRIPTOR() = default; - explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) noexcept : - D3D12_ROOT_DESCRIPTOR(o) - {} - CD3DX12_ROOT_DESCRIPTOR( - UINT shaderRegister, - UINT registerSpace = 0) noexcept - { - Init(shaderRegister, registerSpace); - } - - inline void Init( - UINT shaderRegister, - UINT registerSpace = 0) noexcept - { - Init(*this, shaderRegister, registerSpace); - } - - static inline void Init(_Out_ D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0) noexcept - { - table.ShaderRegister = shaderRegister; - table.RegisterSpace = registerSpace; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER -{ - CD3DX12_ROOT_PARAMETER() = default; - explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) noexcept : - D3D12_ROOT_PARAMETER(o) - {} - - static inline void InitAsDescriptorTable( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); - } - - static inline void InitAsConstants( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); - } - - static inline void InitAsConstantBufferView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - static inline void InitAsShaderResourceView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - static inline void InitAsUnorderedAccessView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - inline void InitAsDescriptorTable( - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); - } - - inline void InitAsConstants( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); - } - - inline void InitAsConstantBufferView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility); - } - - inline void InitAsShaderResourceView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility); - } - - inline void InitAsUnorderedAccessView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility); - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC -{ - CD3DX12_STATIC_SAMPLER_DESC() = default; - explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) noexcept : - D3D12_STATIC_SAMPLER_DESC(o) - {} - CD3DX12_STATIC_SAMPLER_DESC( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) noexcept - { - Init( - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace); - } - - static inline void Init( - _Out_ D3D12_STATIC_SAMPLER_DESC &samplerDesc, - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) noexcept - { - samplerDesc.ShaderRegister = shaderRegister; - samplerDesc.Filter = filter; - samplerDesc.AddressU = addressU; - samplerDesc.AddressV = addressV; - samplerDesc.AddressW = addressW; - samplerDesc.MipLODBias = mipLODBias; - samplerDesc.MaxAnisotropy = maxAnisotropy; - samplerDesc.ComparisonFunc = comparisonFunc; - samplerDesc.BorderColor = borderColor; - samplerDesc.MinLOD = minLOD; - samplerDesc.MaxLOD = maxLOD; - samplerDesc.ShaderVisibility = shaderVisibility; - samplerDesc.RegisterSpace = registerSpace; - } - inline void Init( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) noexcept - { - Init( - *this, - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace); - } -}; - -//------------------------------------------------------------------------------------------------ -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) -struct CD3DX12_STATIC_SAMPLER_DESC1 : public D3D12_STATIC_SAMPLER_DESC1 -{ - CD3DX12_STATIC_SAMPLER_DESC1() = default; - explicit CD3DX12_STATIC_SAMPLER_DESC1(const D3D12_STATIC_SAMPLER_DESC &o) noexcept - { - memcpy(this, &o, sizeof(D3D12_STATIC_SAMPLER_DESC)); - Flags = D3D12_SAMPLER_FLAGS::D3D12_SAMPLER_FLAG_NONE; - } - explicit CD3DX12_STATIC_SAMPLER_DESC1(const D3D12_STATIC_SAMPLER_DESC1 & o) noexcept : - D3D12_STATIC_SAMPLER_DESC1(o) - {} - CD3DX12_STATIC_SAMPLER_DESC1( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0, - D3D12_SAMPLER_FLAGS flags = D3D12_SAMPLER_FLAGS::D3D12_SAMPLER_FLAG_NONE) noexcept - { - Init( - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace, - flags); - } - - static inline void Init( - _Out_ D3D12_STATIC_SAMPLER_DESC1 &samplerDesc, - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0, - D3D12_SAMPLER_FLAGS flags = D3D12_SAMPLER_FLAGS::D3D12_SAMPLER_FLAG_NONE) noexcept - { - samplerDesc.ShaderRegister = shaderRegister; - samplerDesc.Filter = filter; - samplerDesc.AddressU = addressU; - samplerDesc.AddressV = addressV; - samplerDesc.AddressW = addressW; - samplerDesc.MipLODBias = mipLODBias; - samplerDesc.MaxAnisotropy = maxAnisotropy; - samplerDesc.ComparisonFunc = comparisonFunc; - samplerDesc.BorderColor = borderColor; - samplerDesc.MinLOD = minLOD; - samplerDesc.MaxLOD = maxLOD; - samplerDesc.ShaderVisibility = shaderVisibility; - samplerDesc.RegisterSpace = registerSpace; - samplerDesc.Flags = flags; - } - inline void Init( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0, - D3D12_SAMPLER_FLAGS flags = D3D12_SAMPLER_FLAGS::D3D12_SAMPLER_FLAG_NONE) noexcept - { - Init( - *this, - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace, - flags); - } -}; -#endif // D3D12_SDK_VERSION >= 609 - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC -{ - CD3DX12_ROOT_SIGNATURE_DESC() = default; - explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) noexcept : - D3D12_ROOT_SIGNATURE_DESC(o) - {} - CD3DX12_ROOT_SIGNATURE_DESC( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) noexcept - { - Init(0, nullptr, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_NONE); - } - - inline void Init( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - - static inline void Init( - _Out_ D3D12_ROOT_SIGNATURE_DESC &desc, - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - desc.NumParameters = numParameters; - desc.pParameters = _pParameters; - desc.NumStaticSamplers = numStaticSamplers; - desc.pStaticSamplers = _pStaticSamplers; - desc.Flags = flags; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DESCRIPTOR_RANGE1 : public D3D12_DESCRIPTOR_RANGE1 -{ - CD3DX12_DESCRIPTOR_RANGE1() = default; - explicit CD3DX12_DESCRIPTOR_RANGE1(const D3D12_DESCRIPTOR_RANGE1 &o) noexcept : - D3D12_DESCRIPTOR_RANGE1(o) - {} - CD3DX12_DESCRIPTOR_RANGE1( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept - { - Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart); - } - - inline void Init( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept - { - Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart); - } - - static inline void Init( - _Out_ D3D12_DESCRIPTOR_RANGE1 &range, - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept - { - range.RangeType = rangeType; - range.NumDescriptors = numDescriptors; - range.BaseShaderRegister = baseShaderRegister; - range.RegisterSpace = registerSpace; - range.Flags = flags; - range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR_TABLE1 : public D3D12_ROOT_DESCRIPTOR_TABLE1 -{ - CD3DX12_ROOT_DESCRIPTOR_TABLE1() = default; - explicit CD3DX12_ROOT_DESCRIPTOR_TABLE1(const D3D12_ROOT_DESCRIPTOR_TABLE1 &o) noexcept : - D3D12_ROOT_DESCRIPTOR_TABLE1(o) - {} - CD3DX12_ROOT_DESCRIPTOR_TABLE1( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) noexcept - { - Init(numDescriptorRanges, _pDescriptorRanges); - } - - inline void Init( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) noexcept - { - Init(*this, numDescriptorRanges, _pDescriptorRanges); - } - - static inline void Init( - _Out_ D3D12_ROOT_DESCRIPTOR_TABLE1 &rootDescriptorTable, - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) noexcept - { - rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; - rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR1 : public D3D12_ROOT_DESCRIPTOR1 -{ - CD3DX12_ROOT_DESCRIPTOR1() = default; - explicit CD3DX12_ROOT_DESCRIPTOR1(const D3D12_ROOT_DESCRIPTOR1 &o) noexcept : - D3D12_ROOT_DESCRIPTOR1(o) - {} - CD3DX12_ROOT_DESCRIPTOR1( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) noexcept - { - Init(shaderRegister, registerSpace, flags); - } - - inline void Init( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) noexcept - { - Init(*this, shaderRegister, registerSpace, flags); - } - - static inline void Init( - _Out_ D3D12_ROOT_DESCRIPTOR1 &table, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) noexcept - { - table.ShaderRegister = shaderRegister; - table.RegisterSpace = registerSpace; - table.Flags = flags; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_PARAMETER1 : public D3D12_ROOT_PARAMETER1 -{ - CD3DX12_ROOT_PARAMETER1() = default; - explicit CD3DX12_ROOT_PARAMETER1(const D3D12_ROOT_PARAMETER1 &o) noexcept : - D3D12_ROOT_PARAMETER1(o) - {} - - static inline void InitAsDescriptorTable( - _Out_ D3D12_ROOT_PARAMETER1 &rootParam, - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR_TABLE1::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); - } - - static inline void InitAsConstants( - _Out_ D3D12_ROOT_PARAMETER1 &rootParam, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); - } - - static inline void InitAsConstantBufferView( - _Out_ D3D12_ROOT_PARAMETER1 &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); - } - - static inline void InitAsShaderResourceView( - _Out_ D3D12_ROOT_PARAMETER1 &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); - } - - static inline void InitAsUnorderedAccessView( - _Out_ D3D12_ROOT_PARAMETER1 &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); - } - - inline void InitAsDescriptorTable( - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); - } - - inline void InitAsConstants( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); - } - - inline void InitAsConstantBufferView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsConstantBufferView(*this, shaderRegister, registerSpace, flags, visibility); - } - - inline void InitAsShaderResourceView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsShaderResourceView(*this, shaderRegister, registerSpace, flags, visibility); - } - - inline void InitAsUnorderedAccessView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept - { - InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, flags, visibility); - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC : public D3D12_VERSIONED_ROOT_SIGNATURE_DESC -{ - CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC() = default; - explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC &o) noexcept : - D3D12_VERSIONED_ROOT_SIGNATURE_DESC(o) - {} - explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) noexcept - { - Version = D3D_ROOT_SIGNATURE_VERSION_1_0; - Desc_1_0 = o; - } - explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC1 &o) noexcept - { - Version = D3D_ROOT_SIGNATURE_VERSION_1_1; - Desc_1_1 = o; - } -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC2& o) noexcept - { - Version = D3D_ROOT_SIGNATURE_VERSION_1_2; - Desc_1_2 = o; - } -#endif - CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - Init_1_0(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - Init_1_1(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) noexcept - { - Init_1_1(0, nullptr, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_NONE); - } - - inline void Init_1_0( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - Init_1_0(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - - static inline void Init_1_0( - _Out_ D3D12_VERSIONED_ROOT_SIGNATURE_DESC &desc, - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_0; - desc.Desc_1_0.NumParameters = numParameters; - desc.Desc_1_0.pParameters = _pParameters; - desc.Desc_1_0.NumStaticSamplers = numStaticSamplers; - desc.Desc_1_0.pStaticSamplers = _pStaticSamplers; - desc.Desc_1_0.Flags = flags; - } - - inline void Init_1_1( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - Init_1_1(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - - static inline void Init_1_1( - _Out_ D3D12_VERSIONED_ROOT_SIGNATURE_DESC &desc, - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_1; - desc.Desc_1_1.NumParameters = numParameters; - desc.Desc_1_1.pParameters = _pParameters; - desc.Desc_1_1.NumStaticSamplers = numStaticSamplers; - desc.Desc_1_1.pStaticSamplers = _pStaticSamplers; - desc.Desc_1_1.Flags = flags; - } - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - static inline void Init_1_2( - _Out_ D3D12_VERSIONED_ROOT_SIGNATURE_DESC& desc, - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1* _pStaticSamplers = nullptr, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept - { - desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_2; - desc.Desc_1_2.NumParameters = numParameters; - desc.Desc_1_2.pParameters = _pParameters; - desc.Desc_1_2.NumStaticSamplers = numStaticSamplers; - desc.Desc_1_2.pStaticSamplers = _pStaticSamplers; - desc.Desc_1_2.Flags = flags; - } -#endif -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE -{ - CD3DX12_CPU_DESCRIPTOR_HANDLE() = default; - explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) noexcept : - D3D12_CPU_DESCRIPTOR_HANDLE(o) - {} - CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) noexcept { ptr = 0; } - CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) noexcept - { - InitOffsetted(other, offsetScaledByIncrementSize); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept - { - InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept - { - ptr = SIZE_T(INT64(ptr) + INT64(offsetInDescriptors) * INT64(descriptorIncrementSize)); - return *this; - } - CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) noexcept - { - ptr = SIZE_T(INT64(ptr) + INT64(offsetScaledByIncrementSize)); - return *this; - } - bool operator==(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) const noexcept - { - return (ptr == other.ptr); - } - bool operator!=(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) const noexcept - { - return (ptr != other.ptr); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other) noexcept - { - ptr = other.ptr; - return *this; - } - - inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) noexcept - { - InitOffsetted(*this, base, offsetScaledByIncrementSize); - } - - inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept - { - InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); - } - - static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) noexcept - { - handle.ptr = SIZE_T(INT64(base.ptr) + INT64(offsetScaledByIncrementSize)); - } - - static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept - { - handle.ptr = SIZE_T(INT64(base.ptr) + INT64(offsetInDescriptors) * INT64(descriptorIncrementSize)); - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE -{ - CD3DX12_GPU_DESCRIPTOR_HANDLE() = default; - explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) noexcept : - D3D12_GPU_DESCRIPTOR_HANDLE(o) - {} - CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) noexcept { ptr = 0; } - CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) noexcept - { - InitOffsetted(other, offsetScaledByIncrementSize); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept - { - InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept - { - ptr = UINT64(INT64(ptr) + INT64(offsetInDescriptors) * INT64(descriptorIncrementSize)); - return *this; - } - CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) noexcept - { - ptr = UINT64(INT64(ptr) + INT64(offsetScaledByIncrementSize)); - return *this; - } - inline bool operator==(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) const noexcept - { - return (ptr == other.ptr); - } - inline bool operator!=(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) const noexcept - { - return (ptr != other.ptr); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other) noexcept - { - ptr = other.ptr; - return *this; - } - - inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) noexcept - { - InitOffsetted(*this, base, offsetScaledByIncrementSize); - } - - inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept - { - InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); - } - - static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) noexcept - { - handle.ptr = UINT64(INT64(base.ptr) + INT64(offsetScaledByIncrementSize)); - } - - static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept - { - handle.ptr = UINT64(INT64(base.ptr) + INT64(offsetInDescriptors) * INT64(descriptorIncrementSize)); - } -}; - -//------------------------------------------------------------------------------------------------ -// D3D12 exports a new method for serializing root signatures in the Windows 10 Anniversary Update. -// To help enable root signature 1.1 features when they are available and not require maintaining -// two code paths for building root signatures, this helper method reconstructs a 1.0 signature when -// 1.1 is not supported. -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wcovered-switch-default" -#endif - -inline HRESULT D3DX12SerializeVersionedRootSignature( - _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignatureDesc, - D3D_ROOT_SIGNATURE_VERSION MaxVersion, - _Outptr_ ID3DBlob** ppBlob, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob) noexcept -{ - if (ppErrorBlob != nullptr) - { - *ppErrorBlob = nullptr; - } - - switch (MaxVersion) - { - case D3D_ROOT_SIGNATURE_VERSION_1_0: - switch (pRootSignatureDesc->Version) - { - case D3D_ROOT_SIGNATURE_VERSION_1_0: - return D3D12SerializeRootSignature(&pRootSignatureDesc->Desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob); - - case D3D_ROOT_SIGNATURE_VERSION_1_1: -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - case D3D_ROOT_SIGNATURE_VERSION_1_2: -#endif - { - HRESULT hr = S_OK; - const D3D12_ROOT_SIGNATURE_DESC1& desc_1_1 = pRootSignatureDesc->Desc_1_1; - - const SIZE_T ParametersSize = sizeof(D3D12_ROOT_PARAMETER) * desc_1_1.NumParameters; - void* pParameters = (ParametersSize > 0) ? HeapAlloc(GetProcessHeap(), 0, ParametersSize) : nullptr; - if (ParametersSize > 0 && pParameters == nullptr) - { - hr = E_OUTOFMEMORY; - } - auto pParameters_1_0 = static_cast(pParameters); - - if (SUCCEEDED(hr)) - { - for (UINT n = 0; n < desc_1_1.NumParameters; n++) - { - __analysis_assume(ParametersSize == sizeof(D3D12_ROOT_PARAMETER) * desc_1_1.NumParameters); - pParameters_1_0[n].ParameterType = desc_1_1.pParameters[n].ParameterType; - pParameters_1_0[n].ShaderVisibility = desc_1_1.pParameters[n].ShaderVisibility; - - switch (desc_1_1.pParameters[n].ParameterType) - { - case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: - pParameters_1_0[n].Constants.Num32BitValues = desc_1_1.pParameters[n].Constants.Num32BitValues; - pParameters_1_0[n].Constants.RegisterSpace = desc_1_1.pParameters[n].Constants.RegisterSpace; - pParameters_1_0[n].Constants.ShaderRegister = desc_1_1.pParameters[n].Constants.ShaderRegister; - break; - - case D3D12_ROOT_PARAMETER_TYPE_CBV: - case D3D12_ROOT_PARAMETER_TYPE_SRV: - case D3D12_ROOT_PARAMETER_TYPE_UAV: - pParameters_1_0[n].Descriptor.RegisterSpace = desc_1_1.pParameters[n].Descriptor.RegisterSpace; - pParameters_1_0[n].Descriptor.ShaderRegister = desc_1_1.pParameters[n].Descriptor.ShaderRegister; - break; - - case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: - { - const D3D12_ROOT_DESCRIPTOR_TABLE1& table_1_1 = desc_1_1.pParameters[n].DescriptorTable; - - const SIZE_T DescriptorRangesSize = sizeof(D3D12_DESCRIPTOR_RANGE) * table_1_1.NumDescriptorRanges; - void* pDescriptorRanges = (DescriptorRangesSize > 0 && SUCCEEDED(hr)) ? HeapAlloc(GetProcessHeap(), 0, DescriptorRangesSize) : nullptr; - if (DescriptorRangesSize > 0 && pDescriptorRanges == nullptr) - { - hr = E_OUTOFMEMORY; - } - auto pDescriptorRanges_1_0 = static_cast(pDescriptorRanges); - - if (SUCCEEDED(hr)) - { - for (UINT x = 0; x < table_1_1.NumDescriptorRanges; x++) - { - __analysis_assume(DescriptorRangesSize == sizeof(D3D12_DESCRIPTOR_RANGE) * table_1_1.NumDescriptorRanges); - pDescriptorRanges_1_0[x].BaseShaderRegister = table_1_1.pDescriptorRanges[x].BaseShaderRegister; - pDescriptorRanges_1_0[x].NumDescriptors = table_1_1.pDescriptorRanges[x].NumDescriptors; - pDescriptorRanges_1_0[x].OffsetInDescriptorsFromTableStart = table_1_1.pDescriptorRanges[x].OffsetInDescriptorsFromTableStart; - pDescriptorRanges_1_0[x].RangeType = table_1_1.pDescriptorRanges[x].RangeType; - pDescriptorRanges_1_0[x].RegisterSpace = table_1_1.pDescriptorRanges[x].RegisterSpace; - } - } - - D3D12_ROOT_DESCRIPTOR_TABLE& table_1_0 = pParameters_1_0[n].DescriptorTable; - table_1_0.NumDescriptorRanges = table_1_1.NumDescriptorRanges; - table_1_0.pDescriptorRanges = pDescriptorRanges_1_0; - } - break; - - default: - break; - } - } - } - - D3D12_STATIC_SAMPLER_DESC* pStaticSamplers = nullptr; -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - if (desc_1_1.NumStaticSamplers > 0 && pRootSignatureDesc->Version == D3D_ROOT_SIGNATURE_VERSION_1_2) - { - const SIZE_T SamplersSize = sizeof(D3D12_STATIC_SAMPLER_DESC) * desc_1_1.NumStaticSamplers; - pStaticSamplers = static_cast(HeapAlloc(GetProcessHeap(), 0, SamplersSize)); - - if (pStaticSamplers == nullptr) - { - hr = E_OUTOFMEMORY; - } - else - { - const D3D12_ROOT_SIGNATURE_DESC2& desc_1_2 = pRootSignatureDesc->Desc_1_2; - for (UINT n = 0; n < desc_1_1.NumStaticSamplers; ++n) - { - if ((desc_1_2.pStaticSamplers[n].Flags & ~D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR) != 0) - { - hr = E_INVALIDARG; - break; - } - memcpy(pStaticSamplers + n, desc_1_2.pStaticSamplers + n, sizeof(D3D12_STATIC_SAMPLER_DESC)); - } - } - } -#endif - - if (SUCCEEDED(hr)) - { - const CD3DX12_ROOT_SIGNATURE_DESC desc_1_0(desc_1_1.NumParameters, pParameters_1_0, desc_1_1.NumStaticSamplers, pStaticSamplers == nullptr ? desc_1_1.pStaticSamplers : pStaticSamplers, desc_1_1.Flags); - hr = D3D12SerializeRootSignature(&desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob); - } - - if (pParameters) - { - for (UINT n = 0; n < desc_1_1.NumParameters; n++) - { - if (desc_1_1.pParameters[n].ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE) - { - auto pDescriptorRanges_1_0 = pParameters_1_0[n].DescriptorTable.pDescriptorRanges; - HeapFree(GetProcessHeap(), 0, reinterpret_cast(const_cast(pDescriptorRanges_1_0))); - } - } - HeapFree(GetProcessHeap(), 0, pParameters); - } - - if (pStaticSamplers) - { - HeapFree(GetProcessHeap(), 0, pStaticSamplers); - } - - return hr; - } - - default: - break; - } - break; - - case D3D_ROOT_SIGNATURE_VERSION_1_1: - switch (pRootSignatureDesc->Version) - { - case D3D_ROOT_SIGNATURE_VERSION_1_0: - case D3D_ROOT_SIGNATURE_VERSION_1_1: - return D3D12SerializeVersionedRootSignature(pRootSignatureDesc, ppBlob, ppErrorBlob); - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - case D3D_ROOT_SIGNATURE_VERSION_1_2: - { - HRESULT hr = S_OK; - const D3D12_ROOT_SIGNATURE_DESC1& desc_1_1 = pRootSignatureDesc->Desc_1_1; - - D3D12_STATIC_SAMPLER_DESC* pStaticSamplers = nullptr; - if (desc_1_1.NumStaticSamplers > 0) - { - const SIZE_T SamplersSize = sizeof(D3D12_STATIC_SAMPLER_DESC) * desc_1_1.NumStaticSamplers; - pStaticSamplers = static_cast(HeapAlloc(GetProcessHeap(), 0, SamplersSize)); - - if (pStaticSamplers == nullptr) - { - hr = E_OUTOFMEMORY; - } - else - { - const D3D12_ROOT_SIGNATURE_DESC2& desc_1_2 = pRootSignatureDesc->Desc_1_2; - for (UINT n = 0; n < desc_1_1.NumStaticSamplers; ++n) - { - if ((desc_1_2.pStaticSamplers[n].Flags & ~D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR) != 0) - { - hr = E_INVALIDARG; - break; - } - memcpy(pStaticSamplers + n, desc_1_2.pStaticSamplers + n, sizeof(D3D12_STATIC_SAMPLER_DESC)); - } - } - } - - if (SUCCEEDED(hr)) - { - const CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC desc(desc_1_1.NumParameters, desc_1_1.pParameters, desc_1_1.NumStaticSamplers, pStaticSamplers == nullptr ? desc_1_1.pStaticSamplers : pStaticSamplers, desc_1_1.Flags); - hr = D3D12SerializeVersionedRootSignature(&desc, ppBlob, ppErrorBlob); - } - - if (pStaticSamplers) - { - HeapFree(GetProcessHeap(), 0, pStaticSamplers); - } - - return hr; - } -#endif - - default: - break; - } - break; - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) - case D3D_ROOT_SIGNATURE_VERSION_1_2: -#endif - default: - return D3D12SerializeVersionedRootSignature(pRootSignatureDesc, ppBlob, ppErrorBlob); - } - - return E_INVALIDARG; -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_state_object.h b/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_state_object.h deleted file mode 100644 index b460c76..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/d3dx12_state_object.h +++ /dev/null @@ -1,2210 +0,0 @@ -//********************************************************* -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License (MIT). -// -//********************************************************* - -#pragma once - -#ifndef __cplusplus -#error D3DX12 requires C++ -#endif - -#include "d3dx12_default.h" -#include "d3d12.h" -#include "d3dx12_core.h" - -//================================================================================================ -// D3DX12 State Object Creation Helpers -// -// Helper classes for creating new style state objects out of an arbitrary set of subobjects. -// Uses STL -// -// Start by instantiating CD3DX12_STATE_OBJECT_DESC (see its public methods). -// One of its methods is CreateSubobject(), which has a comment showing a couple of options for -// defining subobjects using the helper classes for each subobject (CD3DX12_DXIL_LIBRARY_SUBOBJECT -// etc.). The subobject helpers each have methods specific to the subobject for configuring its -// contents. -// -//================================================================================================ -#include -#include -#include -#include -#include -#include -#ifndef D3DX12_USE_ATL -#include -#define D3DX12_COM_PTR Microsoft::WRL::ComPtr -#define D3DX12_COM_PTR_GET(x) x.Get() -#define D3DX12_COM_PTR_ADDRESSOF(x) x.GetAddressOf() -#else -#include -#define D3DX12_COM_PTR ATL::CComPtr -#define D3DX12_COM_PTR_GET(x) x.p -#define D3DX12_COM_PTR_ADDRESSOF(x) &x.p -#endif - -//------------------------------------------------------------------------------------------------ -class CD3DX12_STATE_OBJECT_DESC -{ -public: - CD3DX12_STATE_OBJECT_DESC() noexcept - { - Init(D3D12_STATE_OBJECT_TYPE_COLLECTION); - } - CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE Type) noexcept - { - Init(Type); - } - void SetStateObjectType(D3D12_STATE_OBJECT_TYPE Type) noexcept { m_Desc.Type = Type; } - CD3DX12_STATE_OBJECT_DESC(const CD3DX12_STATE_OBJECT_DESC& other) = delete; - CD3DX12_STATE_OBJECT_DESC& operator=(const CD3DX12_STATE_OBJECT_DESC& other) = delete; - CD3DX12_STATE_OBJECT_DESC(CD3DX12_STATE_OBJECT_DESC&& other) = default; - CD3DX12_STATE_OBJECT_DESC& operator=(CD3DX12_STATE_OBJECT_DESC&& other) = default; - operator const D3D12_STATE_OBJECT_DESC& () - { - // Do final preparation work - for (auto& ownedSubobject : m_OwnedSubobjectHelpers) - { - 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); - // Flatten subobjects into an array (each flattened subobject still has a - // member that's a pointer to its desc that's not flattened) - for (auto Iter = m_SubobjectList.begin(); - Iter != m_SubobjectList.end(); Iter++) - { - m_SubobjectArray.push_back(*Iter); - // Store new location in array so we can redirect pointers contained in subobjects - Iter->pSubobjectArrayLocation = &m_SubobjectArray.back(); - } - // For subobjects with pointer fields, create a new copy of those subobject definitions - // with fixed pointers - for (UINT i = 0; i < m_Desc.NumSubobjects; i++) - { - if (m_SubobjectArray[i].Type == D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION) - { - auto pOriginalSubobjectAssociation = - static_cast(m_SubobjectArray[i].pDesc); - D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION Repointed = *pOriginalSubobjectAssociation; - auto pWrapper = - static_cast(pOriginalSubobjectAssociation->pSubobjectToAssociate); - Repointed.pSubobjectToAssociate = pWrapper->pSubobjectArrayLocation; - 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 = - static_cast(m_SubobjectArray[i].pDesc); - D3D12_GENERIC_PROGRAM_DESC Repointed = *originalGenericProgramDesc; - if (originalGenericProgramDesc->NumSubobjects > 0) - { - m_RepointedSubobjectVectors.emplace_back(std::vector()); - std::vector& repointedGenericProgramSubobjects = m_RepointedSubobjectVectors.back(); - repointedGenericProgramSubobjects.resize(originalGenericProgramDesc->NumSubobjects); - for (UINT s = 0; s < originalGenericProgramDesc->NumSubobjects; s++) - { - auto pWrapper = - static_cast(originalGenericProgramDesc->ppSubobjects[s]); - repointedGenericProgramSubobjects[s] = pWrapper->pSubobjectArrayLocation; - } - // Below: using ugly way to get pointer in case .data() is not defined - Repointed.ppSubobjects = &repointedGenericProgramSubobjects[0]; - } - 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; - return m_Desc; - } - operator const D3D12_STATE_OBJECT_DESC* () - { - // Cast calls the above final preparation work - return &static_cast(*this); - } - - // CreateSubobject creates a sububject helper (e.g. CD3DX12_HIT_GROUP_SUBOBJECT) - // whose lifetime is owned by this class. - // e.g. - // - // CD3DX12_STATE_OBJECT_DESC Collection1(D3D12_STATE_OBJECT_TYPE_COLLECTION); - // auto Lib0 = Collection1.CreateSubobject(); - // Lib0->SetDXILLibrary(&pMyAppDxilLibs[0]); - // Lib0->DefineExport(L"rayGenShader0"); // in practice these export listings might be - // // data/engine driven - // etc. - // - // Alternatively, users can instantiate sububject helpers explicitly, such as via local - // variables instead, passing the state object desc that should point to it into the helper - // constructor (or call mySubobjectHelper.AddToStateObject(Collection1)). - // In this alternative scenario, the user must keep the subobject alive as long as the state - // object it is associated with is alive, else its pointer references will be stale. - // e.g. - // - // CD3DX12_STATE_OBJECT_DESC RaytracingState2(D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE); - // CD3DX12_DXIL_LIBRARY_SUBOBJECT LibA(RaytracingState2); - // LibA.SetDXILLibrary(&pMyAppDxilLibs[4]); // not manually specifying exports - // // - meaning all exports in the libraries - // // are exported - // etc. - - template - T* CreateSubobject() - { - T* pSubobject = new T(*this); - m_OwnedSubobjectHelpers.emplace_back(pSubobject); - return pSubobject; - } - -private: - D3D12_STATE_SUBOBJECT* TrackSubobject(D3D12_STATE_SUBOBJECT_TYPE Type, void* pDesc) - { - SUBOBJECT_WRAPPER Subobject; - Subobject.pSubobjectArrayLocation = nullptr; - Subobject.Type = Type; - Subobject.pDesc = pDesc; - m_SubobjectList.push_back(Subobject); - m_Desc.NumSubobjects++; - return &m_SubobjectList.back(); - } - void Init(D3D12_STATE_OBJECT_TYPE Type) noexcept - { - SetStateObjectType(Type); - m_Desc.pSubobjects = nullptr; - m_Desc.NumSubobjects = 0; - 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 - { - D3D12_STATE_SUBOBJECT* pSubobjectArrayLocation; // new location when flattened into array - // for repointing pointers in subobjects - } SUBOBJECT_WRAPPER; - D3D12_STATE_OBJECT_DESC m_Desc; - std::list m_SubobjectList; // Pointers to list nodes handed out so - // these can be edited live - std::vector m_SubobjectArray; // Built at the end, copying list contents - - std::list - 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 - { - public: - CStr LocalCopy(CStr string, bool bSingleString = false) - { - if (string) - { - if (bSingleString) - { - m_Strings.clear(); - m_Strings.push_back(string); - } - else - { - m_Strings.push_back(string); - } - return m_Strings.back().c_str(); - } - else - { - return nullptr; - } - } - void clear() noexcept { m_Strings.clear(); } - private: - std::list m_Strings; - }; - -public: - class SUBOBJECT_HELPER_BASE - { - public: - SUBOBJECT_HELPER_BASE() noexcept { Init(); } - virtual ~SUBOBJECT_HELPER_BASE() = default; - virtual D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept = 0; - SUBOBJECT_HELPER_BASE(const SUBOBJECT_HELPER_BASE& other) = delete; - SUBOBJECT_HELPER_BASE& operator=(const SUBOBJECT_HELPER_BASE& other) = delete; - SUBOBJECT_HELPER_BASE(SUBOBJECT_HELPER_BASE&& other) = default; - SUBOBJECT_HELPER_BASE& operator=(SUBOBJECT_HELPER_BASE&& other) = default; - void AddToStateObject(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - m_pSubobject = ContainingStateObject.TrackSubobject(Type(), Data()); - } - virtual void Finalize() {}; - operator const D3D12_STATE_SUBOBJECT& () const noexcept { return *m_pSubobject; } - protected: - virtual void* Data() noexcept = 0; - void Init() noexcept { m_pSubobject = nullptr; } - D3D12_STATE_SUBOBJECT* m_pSubobject; - }; - -private: - std::list> m_OwnedSubobjectHelpers; - - friend class CD3DX12_DXIL_LIBRARY_SUBOBJECT; - friend class CD3DX12_EXISTING_COLLECTION_SUBOBJECT; - friend class CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT; - friend class CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; - friend class CD3DX12_HIT_GROUP_SUBOBJECT; - friend class CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT; - friend class CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT; - friend class CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT; - friend class CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT; - friend class CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT; - friend class CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT; - friend class CD3DX12_NODE_MASK_SUBOBJECT; - //TODO: SDK Version check should include all the newly added subobject type for the public release. - // The SDK version check will be changed based on when we release state objects. -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) - friend class CD3DX12_GENERIC_PROGRAM_SUBOBJECT; - friend class CD3DX12_WORK_GRAPH_SUBOBJECT; - friend class CD3DX12_STREAM_OUTPUT_SUBOBJECT; - friend class CD3DX12_BLEND_SUBOBJECT; - friend class CD3DX12_RASTERIZER_SUBOBJECT; - friend class CD3DX12_DEPTH_STENCIL2_SUBOBJECT; - friend class CD3DX12_INPUT_LAYOUT_SUBOBJECT; - friend class CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT; - friend class CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT; - friend class CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT; - friend class CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT; - friend class CD3DX12_SAMPLE_DESC_SUBOBJECT; - friend class CD3DX12_FLAGS_SUBOBJECT; - friend class CD3DX12_VIEW_INSTANCING_SUBOBJECT; - friend class CD3DX12_DEPTH_STENCIL_SUBOBJECT; - friend class CD3DX12_DEPTH_STENCIL1_SUBOBJECT; - friend class CD3DX12_SAMPLE_MASK_SUBOBJECT; - friend class CD3DX12_NODE_OUTPUT_OVERRIDES; - friend class CD3DX12_SHADER_NODE; - friend class CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES; - friend class CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES; - friend class CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES; - friend class CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES; -#endif // D3D12_SDK_VERSION >= 612 -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_DXIL_LIBRARY_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_DXIL_LIBRARY_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_DXIL_LIBRARY_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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 = {}; - m_Desc.DXILLibrary = pCode ? *pCode : Default; - } - void DefineExport( - LPCWSTR Name, - LPCWSTR ExportToRename = nullptr, - D3D12_EXPORT_FLAGS Flags = D3D12_EXPORT_FLAG_NONE) - { - D3D12_EXPORT_DESC Export; - Export.Name = m_Strings.LocalCopy(Name); - Export.ExportToRename = m_Strings.LocalCopy(ExportToRename); - Export.Flags = Flags; - m_Exports.push_back(Export); - m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined - m_Desc.NumExports = static_cast(m_Exports.size()); - } - template - void DefineExports(LPCWSTR(&Exports)[N]) - { - for (UINT i = 0; i < N; i++) - { - DefineExport(Exports[i]); - } - } - void DefineExports(const LPCWSTR* Exports, UINT N) - { - for (UINT i = 0; i < N; i++) - { - DefineExport(Exports[i]); - } - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY; - } - operator const D3D12_DXIL_LIBRARY_DESC&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - m_Strings.clear(); - m_Exports.clear(); - } - void* Data() noexcept override { return &m_Desc; } - D3D12_DXIL_LIBRARY_DESC m_Desc; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::vector m_Exports; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_EXISTING_COLLECTION_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_EXISTING_COLLECTION_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_EXISTING_COLLECTION_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - m_CollectionRef = pExistingCollection; - } - void DefineExport( - LPCWSTR Name, - LPCWSTR ExportToRename = nullptr, - D3D12_EXPORT_FLAGS Flags = D3D12_EXPORT_FLAG_NONE) - { - D3D12_EXPORT_DESC Export; - Export.Name = m_Strings.LocalCopy(Name); - Export.ExportToRename = m_Strings.LocalCopy(ExportToRename); - Export.Flags = Flags; - m_Exports.push_back(Export); - m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined - m_Desc.NumExports = static_cast(m_Exports.size()); - } - template - void DefineExports(LPCWSTR(&Exports)[N]) - { - for (UINT i = 0; i < N; i++) - { - DefineExport(Exports[i]); - } - } - void DefineExports(const LPCWSTR* Exports, UINT N) - { - for (UINT i = 0; i < N; i++) - { - DefineExport(Exports[i]); - } - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION; - } - operator const D3D12_EXISTING_COLLECTION_DESC&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - m_CollectionRef = nullptr; - m_Strings.clear(); - m_Exports.clear(); - } - void* Data() noexcept override { return &m_Desc; } - D3D12_EXISTING_COLLECTION_DESC m_Desc; - D3DX12_COM_PTR m_CollectionRef; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::vector m_Exports; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - } - void AddExport(LPCWSTR Export) - { - m_Desc.NumExports++; - m_Exports.push_back(m_Strings.LocalCopy(Export)); - m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined - } - template - void AddExports(LPCWSTR (&Exports)[N]) - { - for (UINT i = 0; i < N; i++) - { - AddExport(Exports[i]); - } - } - void AddExports(const LPCWSTR* Exports, UINT N) - { - for (UINT i = 0; i < N; i++) - { - AddExport(Exports[i]); - } - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION; - } - operator const D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - m_Strings.clear(); - m_Exports.clear(); - } - void* Data() noexcept override { return &m_Desc; } - D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION m_Desc; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::vector m_Exports; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION() noexcept - { - Init(); - } - CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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); - } - void AddExport(LPCWSTR Export) - { - m_Desc.NumExports++; - m_Exports.push_back(m_Strings.LocalCopy(Export)); - m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined - } - template - void AddExports(LPCWSTR (&Exports)[N]) - { - for (UINT i = 0; i < N; i++) - { - AddExport(Exports[i]); - } - } - void AddExports(const LPCWSTR* Exports, UINT N) - { - for (UINT i = 0; i < N; i++) - { - AddExport(Exports[i]); - } - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; - } - operator const D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - m_Strings.clear(); - m_SubobjectName.clear(); - m_Exports.clear(); - } - void* Data() noexcept override { return &m_Desc; } - D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION m_Desc; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_SubobjectName; - std::vector m_Exports; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_HIT_GROUP_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_HIT_GROUP_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_HIT_GROUP_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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); - } - void SetHitGroupType(D3D12_HIT_GROUP_TYPE Type) noexcept { m_Desc.Type = Type; } - void SetAnyHitShaderImport(LPCWSTR importName) - { - m_Desc.AnyHitShaderImport = m_Strings[1].LocalCopy(importName, true); - } - void SetClosestHitShaderImport(LPCWSTR importName) - { - m_Desc.ClosestHitShaderImport = m_Strings[2].LocalCopy(importName, true); - } - void SetIntersectionShaderImport(LPCWSTR importName) - { - m_Desc.IntersectionShaderImport = m_Strings[3].LocalCopy(importName, true); - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP; - } - operator const D3D12_HIT_GROUP_DESC&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - for (UINT i = 0; i < m_NumStrings; i++) - { - m_Strings[i].clear(); - } - } - void* Data() noexcept override { return &m_Desc; } - D3D12_HIT_GROUP_DESC m_Desc; - static constexpr UINT m_NumStrings = 4; - CD3DX12_STATE_OBJECT_DESC::StringContainer - m_Strings[m_NumStrings]; // one string for every entrypoint name -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - m_Desc.MaxAttributeSizeInBytes = MaxAttributeSizeInBytes; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG; - } - operator const D3D12_RAYTRACING_SHADER_CONFIG&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_RAYTRACING_SHADER_CONFIG m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG; - } - operator const D3D12_RAYTRACING_PIPELINE_CONFIG&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_RAYTRACING_PIPELINE_CONFIG m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - m_Desc.Flags = Flags; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1; - } - operator const D3D12_RAYTRACING_PIPELINE_CONFIG1&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_RAYTRACING_PIPELINE_CONFIG1 m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE; - } - operator ID3D12RootSignature*() const noexcept { return D3DX12_COM_PTR_GET(m_pRootSig); } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_pRootSig = nullptr; - } - void* Data() noexcept override { return D3DX12_COM_PTR_ADDRESSOF(m_pRootSig); } - D3DX12_COM_PTR m_pRootSig; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE; - } - operator ID3D12RootSignature*() const noexcept { return D3DX12_COM_PTR_GET(m_pRootSig); } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_pRootSig = nullptr; - } - void* Data() noexcept override { return D3DX12_COM_PTR_ADDRESSOF(m_pRootSig); } - D3DX12_COM_PTR m_pRootSig; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG; - } - operator const D3D12_STATE_OBJECT_CONFIG&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_STATE_OBJECT_CONFIG m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_NODE_MASK_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_NODE_MASK_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_NODE_MASK_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - 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; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK; - } - operator const D3D12_NODE_MASK&() const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_NODE_MASK m_Desc; -}; - -#if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) -//------------------------------------------------------------------------------------------------ -class CD3DX12_STREAM_OUTPUT_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_STREAM_OUTPUT_SUBOBJECT() - { - Init(); - } - CD3DX12_STREAM_OUTPUT_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetSODeclEntries(const D3D12_SO_DECLARATION_ENTRY* soDeclEntries, UINT numEntries) - { - m_soDecalEntries.resize(numEntries); - for (UINT i = 0; i < numEntries; i++) - { - m_soDecalEntries[i] = D3D12_SO_DECLARATION_ENTRY{ - soDeclEntries[i].Stream, - m_Strings.LocalCopy(soDeclEntries[i].SemanticName), - soDeclEntries[i].SemanticIndex, - soDeclEntries[i].StartComponent, - soDeclEntries[i].ComponentCount, - soDeclEntries[i].OutputSlot - }; - } - // Below: using ugly way to get pointer in case .data() is not defined - m_Desc.pSODeclaration = &m_soDecalEntries[0]; - m_Desc.NumEntries = numEntries; - } - void SetBufferStrides(const UINT* bufferStrides, UINT numStrides) - { - m_Desc.pBufferStrides = bufferStrides; - m_Desc.NumStrides = numStrides; - } - void SetRasterizedStream(UINT rasterizedStream) - { - m_Desc.RasterizedStream = rasterizedStream; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT; - } - operator const D3D12_STREAM_OUTPUT_DESC& () const noexcept { return m_Desc; } - -private: - void Init() - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_STREAM_OUTPUT_DESC m_Desc; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::vector m_soDecalEntries; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_BLEND_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_BLEND_SUBOBJECT() - { - Init(); - } - CD3DX12_BLEND_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetAlphaToCoverageEnable(bool alphaToCoverageEnable) - { - m_Desc.AlphaToCoverageEnable = alphaToCoverageEnable; - } - void SetIndependentBlendEnable(bool independentBlendEnable) - { - m_Desc.IndependentBlendEnable = independentBlendEnable; - } - void SetRenderTarget(UINT renderTargetIndex, const D3D12_RENDER_TARGET_BLEND_DESC& renderTargetBlendDesc) - { - m_Desc.RenderTarget[renderTargetIndex].BlendEnable = renderTargetBlendDesc.BlendEnable; - m_Desc.RenderTarget[renderTargetIndex].BlendOp = renderTargetBlendDesc.BlendOp; - m_Desc.RenderTarget[renderTargetIndex].BlendOpAlpha = renderTargetBlendDesc.BlendOpAlpha; - m_Desc.RenderTarget[renderTargetIndex].DestBlend = renderTargetBlendDesc.DestBlend; - m_Desc.RenderTarget[renderTargetIndex].DestBlendAlpha = renderTargetBlendDesc.DestBlendAlpha; - m_Desc.RenderTarget[renderTargetIndex].LogicOp = renderTargetBlendDesc.LogicOp; - m_Desc.RenderTarget[renderTargetIndex].LogicOpEnable = renderTargetBlendDesc.LogicOpEnable; - m_Desc.RenderTarget[renderTargetIndex].RenderTargetWriteMask = renderTargetBlendDesc.RenderTargetWriteMask; - m_Desc.RenderTarget[renderTargetIndex].SrcBlend = renderTargetBlendDesc.SrcBlend; - m_Desc.RenderTarget[renderTargetIndex].SrcBlendAlpha = renderTargetBlendDesc.SrcBlendAlpha; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_BLEND; - } - operator const D3D12_BLEND_DESC& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = CD3DX12_BLEND_DESC(D3D12_DEFAULT); - } - void* Data() noexcept override { return &m_Desc; } - CD3DX12_BLEND_DESC m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_RASTERIZER_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_RASTERIZER_SUBOBJECT() - { - Init(); - } - CD3DX12_RASTERIZER_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetFillMode(D3D12_FILL_MODE fillMode) - { - m_Desc.FillMode = fillMode; - } - void SetCullMode(D3D12_CULL_MODE cullMode) - { - m_Desc.CullMode = cullMode; - } - void SetFrontCounterClockwise(BOOL frontCounterClockwise) - { - m_Desc.FrontCounterClockwise = frontCounterClockwise; - } - void SetDepthBias(FLOAT depthBias) - { - m_Desc.DepthBias = depthBias; - } - void SetDepthBiasClamp(FLOAT depthBiasClamp) - { - m_Desc.DepthBiasClamp = depthBiasClamp; - } - void SetSlopeScaledDepthBias(FLOAT slopeScaledDepthBias) - { - m_Desc.SlopeScaledDepthBias = slopeScaledDepthBias; - } - void SetDepthClipEnable(BOOL depthClipEnable) - { - m_Desc.DepthClipEnable = depthClipEnable; - } - void SetLineRasterizationMode(D3D12_LINE_RASTERIZATION_MODE lineRasterizationMode) - { - m_Desc.LineRasterizationMode = lineRasterizationMode; - } - void SetForcedSampleCount(UINT forcedSampleCount) - { - m_Desc.ForcedSampleCount = forcedSampleCount; - } - void SetConservativeRaster(D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) - { - m_Desc.ConservativeRaster = conservativeRaster; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER; - } - operator const D3D12_RASTERIZER_DESC2& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = CD3DX12_RASTERIZER_DESC2(D3D12_DEFAULT); - } - void* Data() noexcept override { return &m_Desc; } - CD3DX12_RASTERIZER_DESC2 m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_DEPTH_STENCIL2_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_DEPTH_STENCIL2_SUBOBJECT() - { - Init(); - } - CD3DX12_DEPTH_STENCIL2_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetDepthEnable(BOOL depthEnable) - { - m_Desc.DepthEnable = depthEnable; - } - void SetDepthWriteMask(D3D12_DEPTH_WRITE_MASK depthWriteMask) - { - m_Desc.DepthWriteMask = depthWriteMask; - } - void SetDepthFunc(D3D12_COMPARISON_FUNC depthFunc) - { - m_Desc.DepthFunc = depthFunc; - } - void SetStencilEnable(BOOL stencilEnable) - { - m_Desc.StencilEnable = stencilEnable; - } - void SetFrontFace(D3D12_DEPTH_STENCILOP_DESC1 frontFace) - { - m_Desc.FrontFace = { - frontFace.StencilFailOp, - frontFace.StencilDepthFailOp, - frontFace.StencilPassOp, - frontFace.StencilFunc, - frontFace.StencilReadMask, - frontFace.StencilWriteMask - }; - } - void SetBackFace(D3D12_DEPTH_STENCILOP_DESC1 backFace) - { - m_Desc.BackFace = { - backFace.StencilFailOp, - backFace.StencilDepthFailOp, - backFace.StencilPassOp, - backFace.StencilFunc, - backFace.StencilReadMask, - backFace.StencilWriteMask - }; - } - void SetDepthBoundsTestEnable(BOOL depthBoundsTestEnable) - { - m_Desc.DepthBoundsTestEnable = depthBoundsTestEnable; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2; - } - operator const D3D12_DEPTH_STENCIL_DESC2& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEFAULT); - } - void* Data() noexcept override { return &m_Desc; } - CD3DX12_DEPTH_STENCIL_DESC2 m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_INPUT_LAYOUT_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_INPUT_LAYOUT_SUBOBJECT() - { - Init(); - } - CD3DX12_INPUT_LAYOUT_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void AddInputLayoutElementDesc(D3D12_INPUT_ELEMENT_DESC inputLayoutElementDesc) - { - m_inputLayoutElements.emplace_back( - D3D12_INPUT_ELEMENT_DESC{ - m_Strings.LocalCopy(inputLayoutElementDesc.SemanticName), - inputLayoutElementDesc.SemanticIndex, - inputLayoutElementDesc.Format, - inputLayoutElementDesc.InputSlot, - inputLayoutElementDesc.AlignedByteOffset, - inputLayoutElementDesc.InputSlotClass, - inputLayoutElementDesc.InstanceDataStepRate - }); - ++m_numElements; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT; - } - operator const D3D12_INPUT_LAYOUT_DESC& () const noexcept { return m_Desc; } - virtual void Finalize() override - { - if (m_numElements > 0) - { - std::list::iterator inputLayoutIt = m_inputLayoutElements.begin(); - m_inputLayoutElementsVector.resize(m_numElements); - for (UINT i = 0; inputLayoutIt != m_inputLayoutElements.end(); i++, inputLayoutIt++) - { - m_inputLayoutElementsVector[i] = *inputLayoutIt; - } - // Below: using ugly way to get pointer in case .data() is not defined - m_Desc.pInputElementDescs = &m_inputLayoutElementsVector[0]; - } - m_Desc.NumElements = m_numElements; - } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - m_Desc.pInputElementDescs = nullptr; - m_numElements = 0; - m_inputLayoutElements.clear(); - m_inputLayoutElementsVector.clear(); - } - void* Data() noexcept override { return &m_Desc; } - D3D12_INPUT_LAYOUT_DESC m_Desc; - std::list m_inputLayoutElements; - std::vector m_inputLayoutElementsVector; - UINT m_numElements; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT() - { - Init(); - } - CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetIBStripCutValue(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE ibStripCutValue) - { - m_Desc = ibStripCutValue; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE; - } - operator const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - } - void* Data() noexcept override { return &m_Desc; } - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT() - { - Init(); - } - CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetPrimitiveTopologyType(D3D12_PRIMITIVE_TOPOLOGY_TYPE primitiveTopologytype) - { - m_Desc = primitiveTopologytype; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY; - } - operator const D3D12_PRIMITIVE_TOPOLOGY_TYPE& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - } - void* Data() noexcept override { return &m_Desc; } - D3D12_PRIMITIVE_TOPOLOGY_TYPE m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT() - { - Init(); - } - CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetNumRenderTargets(UINT numRenderTargets) - { - m_Desc.NumRenderTargets = numRenderTargets; - } - void SetRenderTargetFormat(UINT renderTarget, DXGI_FORMAT renderTargetFormat) - { - m_Desc.RTFormats[renderTarget] = renderTargetFormat; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS; - } - operator const D3D12_RT_FORMAT_ARRAY& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_RT_FORMAT_ARRAY m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT() - { - Init(); - } - CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetDepthStencilFormat(DXGI_FORMAT depthStencilFormat) - { - m_Desc = depthStencilFormat; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT; - } - operator const DXGI_FORMAT& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - } - void* Data() noexcept override { return &m_Desc; } - DXGI_FORMAT m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_SAMPLE_DESC_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_SAMPLE_DESC_SUBOBJECT() - { - Init(); - } - CD3DX12_SAMPLE_DESC_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetCount(UINT count) - { - m_Desc.Count = count; - } - void SetQuality(UINT quality) - { - m_Desc.Quality = quality; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC; - } - operator const DXGI_SAMPLE_DESC& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - DXGI_SAMPLE_DESC m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_FLAGS_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_FLAGS_SUBOBJECT() - { - Init(); - } - CD3DX12_FLAGS_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetFlags(D3D12_PIPELINE_STATE_FLAGS flags) - { - m_Desc = flags; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_FLAGS; - } - operator const D3D12_PIPELINE_STATE_FLAGS& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_PIPELINE_STATE_FLAGS m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_VIEW_INSTANCING_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_VIEW_INSTANCING_SUBOBJECT() - { - Init(); - } - CD3DX12_VIEW_INSTANCING_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void AddViewInstanceLocation(D3D12_VIEW_INSTANCE_LOCATION viewInstanceLocation) - { - m_viewInstanceCount++; - m_viewInstanceLocations.emplace_back( - D3D12_VIEW_INSTANCE_LOCATION - { - viewInstanceLocation.ViewportArrayIndex, - viewInstanceLocation.RenderTargetArrayIndex - } - ); - } - void SetFlags(D3D12_VIEW_INSTANCING_FLAGS flags) - { - m_Desc.Flags = flags; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING; - } - operator const D3D12_VIEW_INSTANCING_DESC& () const noexcept { return m_Desc; } - virtual void Finalize() override - { - if (m_viewInstanceCount > 0) - { - m_viewInstanceLocationsVector.resize(m_viewInstanceCount); - std::list::iterator viewInstancingLocationIt = m_viewInstanceLocations.begin(); - for (UINT i = 0; viewInstancingLocationIt != m_viewInstanceLocations.end(); i++, viewInstancingLocationIt++) - { - m_viewInstanceLocationsVector[i] = *viewInstancingLocationIt; - } - // Below: using ugly way to get pointer in case .data() is not defined - m_Desc.pViewInstanceLocations = &m_viewInstanceLocationsVector[0]; - } - m_Desc.ViewInstanceCount = m_viewInstanceCount; - } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = CD3DX12_VIEW_INSTANCING_DESC(D3D12_DEFAULT); - m_viewInstanceCount = 0; - m_viewInstanceLocations.clear(); - m_viewInstanceLocationsVector.clear(); - } - void* Data() noexcept override { return &m_Desc; } - CD3DX12_VIEW_INSTANCING_DESC m_Desc; - UINT m_viewInstanceCount; - std::list m_viewInstanceLocations; - std::vector m_viewInstanceLocationsVector; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_DEPTH_STENCIL_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_DEPTH_STENCIL_SUBOBJECT() - { - Init(); - } - CD3DX12_DEPTH_STENCIL_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetDepthEnable(BOOL depthEnable) - { - m_Desc.DepthEnable = depthEnable; - } - void SetDepthWriteMask(D3D12_DEPTH_WRITE_MASK depthWriteMask) - { - m_Desc.DepthWriteMask = depthWriteMask; - } - void SetDepthFunc(D3D12_COMPARISON_FUNC depthFunc) - { - m_Desc.DepthFunc = depthFunc; - } - void SetStencilEnable(BOOL stencilEnable) - { - m_Desc.StencilEnable = stencilEnable; - } - void SetStencilReadMask(UINT8 stencilReadMask) - { - m_Desc.StencilReadMask = stencilReadMask; - } - void SetStencilWriteMask(UINT8 stencilWriteMask) - { - m_Desc.StencilWriteMask = stencilWriteMask; - } - void SetFrontFace(D3D12_DEPTH_STENCILOP_DESC frontFace) - { - m_Desc.FrontFace = { - frontFace.StencilFailOp, - frontFace.StencilDepthFailOp, - frontFace.StencilPassOp, - frontFace.StencilFunc - }; - } - void SetBackFace(D3D12_DEPTH_STENCILOP_DESC backFace) - { - m_Desc.BackFace = { - backFace.StencilFailOp, - backFace.StencilDepthFailOp, - backFace.StencilPassOp, - backFace.StencilFunc - }; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL; - } - operator const D3D12_DEPTH_STENCIL_DESC& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); - } - void* Data() noexcept override { return &m_Desc; } - CD3DX12_DEPTH_STENCIL_DESC m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_DEPTH_STENCIL1_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_DEPTH_STENCIL1_SUBOBJECT() - { - Init(); - } - CD3DX12_DEPTH_STENCIL1_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetDepthEnable(BOOL depthEnable) - { - m_Desc.DepthEnable = depthEnable; - } - void SetDepthWriteMask(D3D12_DEPTH_WRITE_MASK depthWriteMask) - { - m_Desc.DepthWriteMask = depthWriteMask; - } - void SetDepthFunc(D3D12_COMPARISON_FUNC depthFunc) - { - m_Desc.DepthFunc = depthFunc; - } - void SetStencilEnable(BOOL stencilEnable) - { - m_Desc.StencilEnable = stencilEnable; - } - void SetStencilReadMask(UINT8 stencilReadMask) - { - m_Desc.StencilReadMask = stencilReadMask; - } - void SetStencilWriteMask(UINT8 stencilWriteMask) - { - m_Desc.StencilWriteMask = stencilWriteMask; - } - void SetFrontFace(D3D12_DEPTH_STENCILOP_DESC frontFace) - { - m_Desc.FrontFace = { - frontFace.StencilFailOp, - frontFace.StencilDepthFailOp, - frontFace.StencilPassOp, - frontFace.StencilFunc - }; - } - void SetBackFace(D3D12_DEPTH_STENCILOP_DESC backFace) - { - m_Desc.BackFace = { - backFace.StencilFailOp, - backFace.StencilDepthFailOp, - backFace.StencilPassOp, - backFace.StencilFunc - }; - } - void SetDepthBoundsTestEnable(BOOL depthBoundsTestEnable) - { - m_Desc.DepthBoundsTestEnable = depthBoundsTestEnable; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1; - } - operator const D3D12_DEPTH_STENCIL_DESC1& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEFAULT); - } - void* Data() noexcept override { return &m_Desc; } - CD3DX12_DEPTH_STENCIL_DESC1 m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_SAMPLE_MASK_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_SAMPLE_MASK_SUBOBJECT() - { - Init(); - } - CD3DX12_SAMPLE_MASK_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetSampleMask(UINT sampleMask) - { - m_Desc = sampleMask; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK; - } - operator const UINT& () const noexcept { return m_Desc; } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - } - void* Data() noexcept override { return &m_Desc; } - UINT m_Desc; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_GENERIC_PROGRAM_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_GENERIC_PROGRAM_SUBOBJECT() - { - Init(); - } - CD3DX12_GENERIC_PROGRAM_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - void SetProgramName(LPCWSTR ProgramName) - { - m_Desc.ProgramName = m_Strings.LocalCopy(ProgramName); - } - void AddExport(LPCWSTR exportName) - { - m_Exports.emplace_back(m_Strings.LocalCopy(exportName)); - m_numExports++; - } - void AddSubobject(const D3D12_STATE_SUBOBJECT& subobject) - { - m_Subobjects.emplace_back(&subobject); - m_numSubobjects++; - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM; - } - operator const D3D12_GENERIC_PROGRAM_DESC& () const noexcept { return m_Desc; } - virtual void Finalize() override - { - // Set exports - if (m_numExports > 0) - { - m_ExportsVector.resize(m_numExports); - std::list::iterator exportIt = m_Exports.begin(); - for (UINT i = 0; exportIt != m_Exports.end(); i++, exportIt++) - { - m_ExportsVector[i] = *exportIt; - } - // Below: using ugly way to get pointer in case .data() is not defined - m_Desc.pExports = &m_ExportsVector[0]; - } - else - { - m_Desc.pExports = nullptr; - } - m_Desc.NumExports = m_numExports; - - // Set subobjects - if (m_numSubobjects > 0) - { - m_SubobjectsVector.resize(m_numSubobjects); - std::list::iterator subobjectIt = m_Subobjects.begin(); - for (UINT i = 0; subobjectIt != m_Subobjects.end(); i++, subobjectIt++) - { - m_SubobjectsVector[i] = *subobjectIt; - } - // Below: using ugly way to get pointer in case .data() is not defined - m_Desc.ppSubobjects = &m_SubobjectsVector[0]; - } - else - { - m_Desc.ppSubobjects = nullptr; - } - m_Desc.NumSubobjects = m_numSubobjects; - } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - m_numExports = 0; - m_numSubobjects = 0; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_GENERIC_PROGRAM_DESC m_Desc; - std::list m_Exports; - std::vector m_ExportsVector; - UINT m_numExports; - std::list m_Subobjects; - std::vector m_SubobjectsVector; - UINT m_numSubobjects; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_NODE_OUTPUT_OVERRIDES -{ -public: - CD3DX12_NODE_OUTPUT_OVERRIDES(const D3D12_NODE_OUTPUT_OVERRIDES** ppOwner, UINT* pNumOutputOverrides) noexcept - { - m_Desc.clear(); - m_ppOwner = ppOwner; - *m_ppOwner = nullptr; - m_pNumOutputOverrides = pNumOutputOverrides; - *m_pNumOutputOverrides = 0; - } - void NewOutputOverride() - { - m_Desc.emplace_back(D3D12_NODE_OUTPUT_OVERRIDES{}); - *m_ppOwner = m_Desc.data(); - (*m_pNumOutputOverrides)++; - } - void OutputIndex(UINT index) - { - m_Desc.back().OutputIndex = index; - } - void NewName(LPCWSTR Name, UINT ArrayIndex = 0) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(Name),ArrayIndex }); - m_Desc.back().pNewName = &m_NodeIDs.front(); - } - void AllowSparseNodes(BOOL bAllow) - { - m_UINTs.emplace_front((UINT)bAllow); - m_Desc.back().pAllowSparseNodes = (BOOL*)&m_UINTs.front(); - } - void MaxOutputRecords(UINT maxOutputRecords) noexcept - { - m_UINTs.emplace_front(maxOutputRecords); - m_Desc.back().pMaxRecords = &m_UINTs.front(); - } - void MaxOutputRecordsSharedWith(UINT outputIndex) noexcept - { - m_UINTs.emplace_front(outputIndex); - m_Desc.back().pMaxRecordsSharedWithOutputIndex = &m_UINTs.front(); - } -private: - std::vector m_Desc; - // Cached parameters - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::forward_list m_UINTs; - std::forward_list m_NodeIDs; - const D3D12_NODE_OUTPUT_OVERRIDES** m_ppOwner; - UINT* m_pNumOutputOverrides; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_NODE_HELPER_BASE -{ -public: - virtual ~CD3DX12_NODE_HELPER_BASE() = default; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_SHADER_NODE // Not specifying launch mode. - // Don't need to distinguish if no parameter overriding is happening - : public CD3DX12_NODE_HELPER_BASE -{ -public: - CD3DX12_SHADER_NODE( - D3D12_NODE* pNode, - LPCWSTR _Shader = nullptr) - { - m_pDesc = pNode; - m_pDesc->NodeType = D3D12_NODE_TYPE_SHADER; - Shader(_Shader); - } - void Shader(LPCWSTR _Shader) - { - m_pDesc->Shader.Shader = m_Strings.LocalCopy(_Shader); - } - D3D12_NODE* m_pDesc; -private: - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; -}; - -//------------------------------------------------------------------------------------------------ -// Use this class when defining a broadcasting launch node where configuration parameters -// need to be overridden. If overrides are not needed, just use CD3DX12_COMPUTE_SHADER_NODE -class CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES - : public CD3DX12_NODE_HELPER_BASE -{ -public: - CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES( - D3D12_NODE* pNode, - LPCWSTR _Shader = nullptr) : - m_NodeOutputOverrides(&Overrides.pOutputOverrides, &Overrides.NumOutputOverrides) - { - Overrides = {}; - m_pDesc = pNode; - m_pDesc->NodeType = D3D12_NODE_TYPE_SHADER; - m_pDesc->Shader.OverridesType = D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH; - m_pDesc->Shader.pBroadcastingLaunchOverrides = &Overrides; - Shader(_Shader); - } - void Shader(LPCWSTR _Shader) - { - m_pDesc->Shader.Shader = m_Strings.LocalCopy(_Shader); - } - void LocalRootArgumentsTableIndex(UINT index) - { - m_UINTs.emplace_front(index); - Overrides.pLocalRootArgumentsTableIndex = &m_UINTs.front(); - } - void ProgramEntry(BOOL bIsProgramEntry) - { - m_UINTs.emplace_front(bIsProgramEntry); - Overrides.pProgramEntry = (BOOL*)&m_UINTs.front(); - } - void NewName(D3D12_NODE_ID NodeID) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); - Overrides.pNewName = &m_NodeIDs.front(); - } - void ShareInputOf(D3D12_NODE_ID NodeID) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); - Overrides.pShareInputOf = &m_NodeIDs.front(); - } - void DispatchGrid(UINT x, UINT y, UINT z) - { - m_UINT3s.emplace_front(UINT3{ x,y,z }); - Overrides.pDispatchGrid = (UINT*)&m_UINT3s.front(); - } - void MaxDispatchGrid(UINT x, UINT y, UINT z) - { - m_UINT3s.emplace_front(UINT3{x,y,z}); - Overrides.pMaxDispatchGrid = (UINT*)&m_UINT3s.front(); - } - CD3DX12_NODE_OUTPUT_OVERRIDES& NodeOutputOverrides() - { - return m_NodeOutputOverrides; - } - D3D12_BROADCASTING_LAUNCH_OVERRIDES Overrides; - D3D12_NODE* m_pDesc; -private: - // Cached parameters - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::forward_list m_UINTs; - struct UINT3 - { - UINT x; - UINT y; - UINT z; - }; - std::forward_list m_UINT3s; - std::forward_list m_NodeIDs; - CD3DX12_NODE_OUTPUT_OVERRIDES m_NodeOutputOverrides; -}; - -//------------------------------------------------------------------------------------------------ -// Use this class when defining a coalescing launch node where configuration parameters -// need to be overridden. If overrides are not needed, just use CD3DX12_COMPUTE_SHADER_NODE -class CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES - : public CD3DX12_NODE_HELPER_BASE -{ -public: - CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES( - D3D12_NODE* pNode, - LPCWSTR _Shader = nullptr) : - m_NodeOutputOverrides(&Overrides.pOutputOverrides, &Overrides.NumOutputOverrides) - { - Overrides = {}; - m_pDesc = pNode; - m_pDesc->NodeType = D3D12_NODE_TYPE_SHADER; - m_pDesc->Shader.OverridesType = D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH; - m_pDesc->Shader.pCoalescingLaunchOverrides = &Overrides; - Shader(_Shader); - } - void Shader(LPCWSTR _Shader) - { - m_pDesc->Shader.Shader = m_Strings.LocalCopy(_Shader); - } - void LocalRootArgumentsTableIndex(UINT index) - { - m_UINTs.emplace_front(index); - Overrides.pLocalRootArgumentsTableIndex = &m_UINTs.front(); - } - void ProgramEntry(BOOL bIsProgramEntry) - { - m_UINTs.emplace_front(bIsProgramEntry); - Overrides.pProgramEntry = (BOOL*)&m_UINTs.front(); - } - void NewName(D3D12_NODE_ID NodeID) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); - Overrides.pNewName = &m_NodeIDs.front(); - } - void ShareInputOf(D3D12_NODE_ID NodeID) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); - Overrides.pShareInputOf = &m_NodeIDs.front(); - } - CD3DX12_NODE_OUTPUT_OVERRIDES& NodeOutputOverrides() - { - return m_NodeOutputOverrides; - } - D3D12_COALESCING_LAUNCH_OVERRIDES Overrides; - D3D12_NODE* m_pDesc; -private: - // Cached parameters - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::forward_list m_UINTs; - struct UINT3 - { - UINT x; - UINT y; - UINT z; - }; - std::forward_list m_UINT3s; - std::forward_list m_NodeIDs; - CD3DX12_NODE_OUTPUT_OVERRIDES m_NodeOutputOverrides; -}; - -//------------------------------------------------------------------------------------------------ -// Use this class when defining a thread launch node where configuration parameters -// need to be overridden. If overrides are not needed, just use CD3DX12_COMPUTE_SHADER_NODE -class CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES - : public CD3DX12_NODE_HELPER_BASE -{ -public: - CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES( - D3D12_NODE* pNode, - LPCWSTR _Shader = nullptr) : - m_NodeOutputOverrides(&Overrides.pOutputOverrides, &Overrides.NumOutputOverrides) - { - Overrides = {}; - m_pDesc = pNode; - m_pDesc->NodeType = D3D12_NODE_TYPE_SHADER; - m_pDesc->Shader.OverridesType = D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH; - m_pDesc->Shader.pThreadLaunchOverrides = &Overrides; - Shader(_Shader); - } - void Shader(LPCWSTR _Shader) - { - m_pDesc->Shader.Shader = m_Strings.LocalCopy(_Shader); - } - void LocalRootArgumentsTableIndex(UINT index) - { - m_UINTs.emplace_front(index); - Overrides.pLocalRootArgumentsTableIndex = &m_UINTs.front(); - } - void ProgramEntry(BOOL bIsProgramEntry) - { - m_UINTs.emplace_front(bIsProgramEntry); - Overrides.pProgramEntry = (BOOL*)&m_UINTs.front(); - } - void NewName(D3D12_NODE_ID NodeID) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); - Overrides.pNewName = &m_NodeIDs.front(); - } - void ShareInputOf(D3D12_NODE_ID NodeID) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); - Overrides.pShareInputOf = &m_NodeIDs.front(); - } - CD3DX12_NODE_OUTPUT_OVERRIDES& NodeOutputOverrides() - { - return m_NodeOutputOverrides; - } - D3D12_THREAD_LAUNCH_OVERRIDES Overrides; - D3D12_NODE* m_pDesc; -private: - // Cached parameters - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::forward_list m_UINTs; - std::forward_list m_NodeIDs; - CD3DX12_NODE_OUTPUT_OVERRIDES m_NodeOutputOverrides; -}; - -//------------------------------------------------------------------------------------------------ -// Use this class when defining a node where configuration parameters -// need to be overridden for parameters that are common to all launch node types. -// This option is a convenience if you don't want to determine what the launch mode is -// and just want to override a setting that isn't specific to launch mode. -// If overrides are not needed, just use CD3DX12_COMPUTE_SHADER_NODE -class CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES - : public CD3DX12_NODE_HELPER_BASE -{ -public: - CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES( - D3D12_NODE* pNode, - LPCWSTR _Shader = nullptr) : - m_NodeOutputOverrides(&Overrides.pOutputOverrides, &Overrides.NumOutputOverrides) - { - Overrides = {}; - m_pDesc = pNode; - m_pDesc->NodeType = D3D12_NODE_TYPE_SHADER; - m_pDesc->Shader.OverridesType = D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE; - m_pDesc->Shader.pThreadLaunchOverrides = &Overrides; - Shader(_Shader); - } - void Shader(LPCWSTR _Shader) - { - m_pDesc->Shader.Shader = m_Strings.LocalCopy(_Shader); - } - void LocalRootArgumentsTableIndex(UINT index) - { - m_UINTs.emplace_front(index); - Overrides.pLocalRootArgumentsTableIndex = &m_UINTs.front(); - } - void ProgramEntry(BOOL bIsProgramEntry) - { - m_UINTs.emplace_front(bIsProgramEntry); - Overrides.pProgramEntry = (BOOL*)&m_UINTs.front(); - } - void NewName(D3D12_NODE_ID NodeID) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); - Overrides.pNewName = &m_NodeIDs.front(); - } - void ShareInputOf(D3D12_NODE_ID NodeID) - { - m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); - Overrides.pShareInputOf = &m_NodeIDs.front(); - } - CD3DX12_NODE_OUTPUT_OVERRIDES& NodeOutputOverrides() - { - return m_NodeOutputOverrides; - } - D3D12_THREAD_LAUNCH_OVERRIDES Overrides; - D3D12_NODE* m_pDesc; -private: - // Cached parameters - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::forward_list m_UINTs; - std::forward_list m_NodeIDs; - CD3DX12_NODE_OUTPUT_OVERRIDES m_NodeOutputOverrides; -}; - -//------------------------------------------------------------------------------------------------ -class CD3DX12_WORK_GRAPH_SUBOBJECT - : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE -{ -public: - CD3DX12_WORK_GRAPH_SUBOBJECT() noexcept - { - Init(); - } - CD3DX12_WORK_GRAPH_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) - { - Init(); - AddToStateObject(ContainingStateObject); - } - D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override - { - return D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH; - } - void IncludeAllAvailableNodes() - { - m_Desc.Flags |= D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES; - } - void SetProgramName(LPCWSTR ProgramName) - { - m_Desc.ProgramName = m_Strings.LocalCopy(ProgramName); - } - void AddEntrypoint(D3D12_NODE_ID Entrypoint) - { - m_Entrypoints.emplace_back(D3D12_NODE_ID{ m_Strings.LocalCopy(Entrypoint.Name),Entrypoint.ArrayIndex }); - m_NumEntrypoints++; - } - - template - T* CreateNode() - { - m_NodeDescs.push_back({}); - m_NumNodes++; - T* pNodeHelper = new T(&m_NodeDescs.back()); - m_OwnedNodeHelpers.emplace_back(pNodeHelper); - return pNodeHelper; - } - CD3DX12_SHADER_NODE* CreateShaderNode(LPCWSTR Shader = nullptr) - { - auto pNode = CreateNode(); - pNode->Shader(Shader); - return pNode; - } - CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES* CreateBroadcastingLaunchNodeOverrides(LPCWSTR Shader = nullptr) - { - auto pNode = CreateNode(); - pNode->Shader(Shader); - return pNode; - } - CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES* CreateCoalescingLaunchNodeOverrides(LPCWSTR Shader = nullptr) - { - auto pNode = CreateNode(); - pNode->Shader(Shader); - return pNode; - } - CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES* CreateThreadLaunchNodeOverrides(LPCWSTR Shader = nullptr) - { - auto pNode = CreateNode(); - pNode->Shader(Shader); - return pNode; - } - CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES* CreateCommonComputeNodeOverrides(LPCWSTR Shader = nullptr) - { - auto pNode = CreateNode(); - pNode->Shader(Shader); - return pNode; - } - operator const D3D12_WORK_GRAPH_DESC& () noexcept - { - return m_Desc; - } - virtual void Finalize() override - { - m_EntrypointsVector.resize(m_NumEntrypoints); - std::list::iterator entryIt = m_Entrypoints.begin(); - for (UINT n = 0; n < m_NumEntrypoints; n++, entryIt++) - { - m_EntrypointsVector[n] = *entryIt; - } - m_Desc.NumEntrypoints = m_NumEntrypoints; - m_Desc.pEntrypoints = m_EntrypointsVector.data(); - - m_NodeDescsVector.resize(m_NumNodes); - std::list::iterator nodeIt = m_NodeDescs.begin(); - for (UINT n = 0; n < m_NumNodes; n++, nodeIt++) - { - m_NodeDescsVector[n] = *nodeIt; - } - m_Desc.NumExplicitlyDefinedNodes = m_NumNodes; - m_Desc.pExplicitlyDefinedNodes = m_NodeDescsVector.data(); - } -private: - void Init() noexcept - { - SUBOBJECT_HELPER_BASE::Init(); - m_Desc = {}; - m_NodeDescs.clear(); - m_NodeDescsVector.clear(); - m_NumNodes = 0; - m_NumEntrypoints = 0; - } - void* Data() noexcept override { return &m_Desc; } - D3D12_WORK_GRAPH_DESC m_Desc; - std::list m_Entrypoints; - UINT m_NumEntrypoints; - std::vector m_EntrypointsVector; - std::list m_NodeDescs; - UINT m_NumNodes; - std::vector m_NodeDescsVector; - CD3DX12_STATE_OBJECT_DESC::StringContainer m_Strings; - std::list> m_OwnedNodeHelpers; -}; -#endif // D3D12_SDK_VERSION >= 612 - -#undef D3DX12_COM_PTR -#undef D3DX12_COM_PTR_GET -#undef D3DX12_COM_PTR_ADDRESSOF - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/dxcore.h b/Juliet/src/Graphics/DX12/D3D12/directx/dxcore.h deleted file mode 100644 index 4244eaa..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/dxcore.h +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************ -* * -* Copyright (c) Microsoft Corporation. * -* Licensed under the MIT license. * -* * -************************************************************/ - -#ifndef _DXCOREEXTMODULE_H_ -#define _DXCOREEXTMODULE_H_ - -#include -#include "dxcore_interface.h" - -#pragma region Application Family or OneCore Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) - -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN10) - -STDAPI -DXCoreCreateAdapterFactory( - REFIID riid, - _COM_Outptr_ void** ppvFactory -); - -template -HRESULT -DXCoreCreateAdapterFactory( - _COM_Outptr_ T** ppvFactory -) -{ - return DXCoreCreateAdapterFactory(IID_PPV_ARGS(ppvFactory)); -} - -#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN10) - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ -#pragma endregion - -#endif // _DXCOREEXTMODULE_H_ - - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/dxcore_interface.h b/Juliet/src/Graphics/DX12/D3D12/directx/dxcore_interface.h deleted file mode 100644 index 318208e..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/dxcore_interface.h +++ /dev/null @@ -1,497 +0,0 @@ -// -// DXCore Interface -// Copyright (C) Microsoft Corporation. -// Licensed under the MIT license. -// - -#ifndef __dxcore_interface_h__ -#define __dxcore_interface_h__ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#include - -#ifdef __cplusplus - -#define _FACDXCORE 0x880 -#define MAKE_DXCORE_HRESULT( code ) MAKE_HRESULT( 1, _FACDXCORE, code ) - -enum class DXCoreAdapterProperty : uint32_t -{ - InstanceLuid = 0, - DriverVersion = 1, - DriverDescription = 2, - HardwareID = 3, // Use HardwareIDParts instead, if available. - KmdModelVersion = 4, - ComputePreemptionGranularity = 5, - GraphicsPreemptionGranularity = 6, - DedicatedAdapterMemory = 7, - DedicatedSystemMemory = 8, - SharedSystemMemory = 9, - AcgCompatible = 10, - IsHardware = 11, - IsIntegrated = 12, - IsDetachable = 13, - HardwareIDParts = 14, - PhysicalAdapterCount = 15, - AdapterEngineCount = 16, - AdapterEngineName = 17, -}; - -enum class DXCoreAdapterState : uint32_t -{ - IsDriverUpdateInProgress = 0, - AdapterMemoryBudget = 1, - AdapterMemoryUsageBytes = 2, - AdapterMemoryUsageByProcessBytes = 3, - AdapterEngineRunningTimeMicroseconds = 4, - AdapterEngineRunningTimeByProcessMicroseconds = 5, - AdapterTemperatureCelsius = 6, - AdapterInUseProcessCount = 7, - AdapterInUseProcessSet = 8, - AdapterEngineFrequencyHertz = 9, - AdapterMemoryFrequencyHertz = 10 -}; - -enum class DXCoreSegmentGroup : uint32_t -{ - Local = 0, - NonLocal = 1 -}; - -enum class DXCoreNotificationType : uint32_t -{ - AdapterListStale = 0, - AdapterNoLongerValid = 1, - AdapterBudgetChange = 2, - AdapterHardwareContentProtectionTeardown = 3 -}; - -enum class DXCoreAdapterPreference : uint32_t -{ - Hardware = 0, - MinimumPower = 1, - HighPerformance = 2 -}; - -enum class DXCoreWorkload : uint32_t -{ - Graphics = 0, - Compute = 1, - Media = 2, - MachineLearning = 3, -}; - -enum class DXCoreRuntimeFilterFlags : uint32_t -{ - None = 0x0, - D3D11 = 0x1, - D3D12 = 0x2 -}; - -DEFINE_ENUM_FLAG_OPERATORS(DXCoreRuntimeFilterFlags) - -enum class DXCoreHardwareTypeFilterFlags : uint32_t -{ - None = 0x0, - GPU = 0x1, - ComputeAccelerator = 0x2, - NPU = 0x4, - MediaAccelerator = 0x8 -}; - -DEFINE_ENUM_FLAG_OPERATORS(DXCoreHardwareTypeFilterFlags) - -struct DXCoreHardwareID -{ - uint32_t vendorID; - uint32_t deviceID; - uint32_t subSysID; - uint32_t revision; -}; - -struct DXCoreHardwareIDParts -{ - uint32_t vendorID; - uint32_t deviceID; - uint32_t subSystemID; - uint32_t subVendorID; - uint32_t revisionID; -}; - -struct DXCoreAdapterMemoryBudgetNodeSegmentGroup -{ - uint32_t nodeIndex; - DXCoreSegmentGroup segmentGroup; -}; - -struct DXCoreAdapterMemoryBudget -{ - uint64_t budget; - uint64_t currentUsage; - uint64_t availableForReservation; - uint64_t currentReservation; -}; - -struct DXCoreAdapterEngineIndex -{ - uint32_t physicalAdapterIndex; - uint32_t engineIndex; -}; - -struct DXCoreEngineQueryInput -{ - DXCoreAdapterEngineIndex adapterEngineIndex; - uint32_t processId; -}; - -struct DXCoreEngineQueryOutput -{ - uint64_t runningTime; - bool processQuerySucceeded; -}; - -enum class DXCoreMemoryType : uint32_t -{ - Dedicated = 0, - Shared = 1 -}; - -struct DXCoreMemoryUsage -{ - uint64_t committed; - uint64_t resident; -}; - -struct DXCoreMemoryQueryInput -{ - uint32_t physicalAdapterIndex; - DXCoreMemoryType memoryType; -}; - -struct DXCoreProcessMemoryQueryInput -{ - uint32_t physicalAdapterIndex; - DXCoreMemoryType memoryType; - uint32_t processId; -}; - -struct DXCoreProcessMemoryQueryOutput -{ - DXCoreMemoryUsage memoryUsage; - bool processQuerySucceeded; -}; - -struct DXCoreAdapterProcessSetQueryInput -{ - uint32_t arraySize; - _Field_size_(arraySize) uint32_t* processIds; -}; - -struct DXCoreAdapterProcessSetQueryOutput -{ - uint32_t processesWritten; - uint32_t processesTotal; -}; - -struct DXCoreEngineNamePropertyInput -{ - DXCoreAdapterEngineIndex adapterEngineIndex; - uint32_t engineNameLength; - _Field_size_(engineNameLength) wchar_t *engineName; -}; - -struct DXCoreEngineNamePropertyOutput -{ - uint32_t engineNameLength; -}; - -struct DXCoreFrequencyQueryOutput -{ - uint64_t frequency; - uint64_t maxFrequency; - uint64_t maxOverclockedFrequency; -}; - -typedef void (STDMETHODCALLTYPE *PFN_DXCORE_NOTIFICATION_CALLBACK)( - DXCoreNotificationType notificationType, - _In_ IUnknown *object, - _In_opt_ void *context); - -static_assert(sizeof(bool) == 1, "bool assumed as one byte"); - -DEFINE_GUID(IID_IDXCoreAdapterFactory, 0x78ee5945, 0xc36e, 0x4b13, 0xa6, 0x69, 0x00, 0x5d, 0xd1, 0x1c, 0x0f, 0x06); -DEFINE_GUID(IID_IDXCoreAdapterFactory1, 0xd5682e19, 0x6d21, 0x401c, 0x82, 0x7a, 0x9a, 0x51, 0xa4, 0xea, 0x35, 0xd7); -DEFINE_GUID(IID_IDXCoreAdapterList, 0x526c7776, 0x40e9, 0x459b, 0xb7, 0x11, 0xf3, 0x2a, 0xd7, 0x6d, 0xfc, 0x28); -DEFINE_GUID(IID_IDXCoreAdapter, 0xf0db4c7f, 0xfe5a, 0x42a2, 0xbd, 0x62, 0xf2, 0xa6, 0xcf, 0x6f, 0xc8, 0x3e); -DEFINE_GUID(IID_IDXCoreAdapter1, 0xa0783366, 0xcfa3, 0x43be, 0x9d, 0x79, 0x55, 0xb2, 0xda, 0x97, 0xc6, 0x3c); - -DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D11_GRAPHICS, 0x8c47866b, 0x7583, 0x450d, 0xf0, 0xf0, 0x6b, 0xad, 0xa8, 0x95, 0xaf, 0x4b); -DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D12_GRAPHICS, 0x0c9ece4d, 0x2f6e, 0x4f01, 0x8c, 0x96, 0xe8, 0x9e, 0x33, 0x1b, 0x47, 0xb1); -DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D12_CORE_COMPUTE, 0x248e2800, 0xa793, 0x4724, 0xab, 0xaa, 0x23, 0xa6, 0xde, 0x1b, 0xe0, 0x90); -DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D12_GENERIC_ML, 0xb71b0d41, 0x1088, 0x422f, 0xa2, 0x7c, 0x2, 0x50, 0xb7, 0xd3, 0xa9, 0x88); -DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D12_GENERIC_MEDIA, 0x8eb2c848, 0x82f6, 0x4b49, 0xaa, 0x87, 0xae, 0xcf, 0xcf, 0x1, 0x74, 0xc6); - -DEFINE_GUID(DXCORE_HARDWARE_TYPE_ATTRIBUTE_GPU, 0xb69eb219, 0x3ded, 0x4464, 0x97, 0x9f, 0xa0, 0xb, 0xd4, 0x68, 0x70, 0x6); -DEFINE_GUID(DXCORE_HARDWARE_TYPE_ATTRIBUTE_COMPUTE_ACCELERATOR, 0xe0b195da, 0x58ef, 0x4a22, 0x90, 0xf1, 0x1f, 0x28, 0x16, 0x9c, 0xab, 0x8d); -DEFINE_GUID(DXCORE_HARDWARE_TYPE_ATTRIBUTE_NPU, 0xd46140c4, 0xadd7, 0x451b, 0x9e, 0x56, 0x6, 0xfe, 0x8c, 0x3b, 0x58, 0xed); -DEFINE_GUID(DXCORE_HARDWARE_TYPE_ATTRIBUTE_MEDIA_ACCELERATOR, 0x66bdb96a, 0x50b, 0x44c7, 0xa4, 0xfd, 0xd1, 0x44, 0xce, 0xa, 0xb4, 0x43); - -/* interface IDXCoreAdapter */ -MIDL_INTERFACE("f0db4c7f-fe5a-42a2-bd62-f2a6cf6fc83e") -IDXCoreAdapter : public IUnknown -{ -public: - virtual bool STDMETHODCALLTYPE IsValid() = 0; - - virtual bool STDMETHODCALLTYPE IsAttributeSupported( - REFGUID attributeGUID) = 0; - - virtual bool STDMETHODCALLTYPE IsPropertySupported( - DXCoreAdapterProperty property) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetProperty( - DXCoreAdapterProperty property, - size_t bufferSize, - _Out_writes_bytes_(bufferSize) void *propertyData) = 0; - - template - HRESULT GetProperty( - DXCoreAdapterProperty property, - _Out_writes_bytes_(sizeof(T)) T *propertyData) - { - return GetProperty(property, - sizeof(T), - (void*)propertyData); - } - - virtual HRESULT STDMETHODCALLTYPE GetPropertySize( - DXCoreAdapterProperty property, - _Out_ size_t *bufferSize) = 0; - - virtual bool STDMETHODCALLTYPE IsQueryStateSupported( - DXCoreAdapterState property) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryState( - DXCoreAdapterState state, - size_t inputStateDetailsSize, - _In_reads_bytes_opt_(inputStateDetailsSize) const void *inputStateDetails, - size_t outputBufferSize, - _Out_writes_bytes_(outputBufferSize) void *outputBuffer) = 0; - - template - HRESULT QueryState( - DXCoreAdapterState state, - _In_reads_bytes_opt_(sizeof(T1)) const T1 *inputStateDetails, - _Out_writes_bytes_(sizeof(T2)) T2 *outputBuffer) - { - return QueryState(state, - sizeof(T1), - (const void*)inputStateDetails, - sizeof(T2), - (void*)outputBuffer); - } - - template - HRESULT QueryState( - DXCoreAdapterState state, - _Out_writes_bytes_(sizeof(T)) T *outputBuffer) - { - return QueryState(state, - 0, - nullptr, - sizeof(T), - (void*)outputBuffer); - } - - virtual bool STDMETHODCALLTYPE IsSetStateSupported( - DXCoreAdapterState property) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetState( - DXCoreAdapterState state, - size_t inputStateDetailsSize, - _In_reads_bytes_opt_(inputStateDetailsSize) const void *inputStateDetails, - size_t inputDataSize, - _In_reads_bytes_(inputDataSize) const void *inputData) = 0; - - template - HRESULT SetState( - DXCoreAdapterState state, - const T1 *inputStateDetails, - const T2 *inputData) - { - return SetState(state, - sizeof(T1), - (const void*)inputStateDetails, - sizeof(T2), - (const void*)inputData); - } - - virtual HRESULT STDMETHODCALLTYPE GetFactory( - REFIID riid, - _COM_Outptr_ void** ppvFactory - ) = 0; - - template - HRESULT GetFactory( - _COM_Outptr_ T** ppvFactory - ) - { - return GetFactory(IID_PPV_ARGS(ppvFactory)); - } -}; - -/* interface IDXCoreAdapter1 */ -MIDL_INTERFACE("a0783366-cfa3-43be-9d79-55b2da97c63c") -IDXCoreAdapter1 : public IDXCoreAdapter -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetPropertyWithInput( - DXCoreAdapterProperty property, - size_t inputPropertyDetailsSize, - _In_reads_bytes_opt_(inputPropertyDetailsSize) const void *inputPropertyDetails, - size_t outputBufferSize, - _Out_writes_bytes_(outputBufferSize) void *outputBuffer) = 0; - - template - HRESULT GetPropertyWithInput( - DXCoreAdapterProperty property, - _In_reads_bytes_opt_(sizeof(T1)) const T1 *inputPropertyDetails, - _Out_writes_bytes_(sizeof(T2)) T2 *outputBuffer) - { - return GetPropertyWithInput(property, - sizeof(T1), - (const void*)inputPropertyDetails, - sizeof(T2), - (void*)outputBuffer); - } -}; - -/* interface IDXCoreAdapterList */ -MIDL_INTERFACE("526c7776-40e9-459b-b711-f32ad76dfc28") -IDXCoreAdapterList : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetAdapter( - uint32_t index, - REFIID riid, - _COM_Outptr_ void **ppvAdapter) = 0; - - template - HRESULT STDMETHODCALLTYPE GetAdapter( - uint32_t index, - _COM_Outptr_ T **ppvAdapter) - { - return GetAdapter(index, - IID_PPV_ARGS(ppvAdapter)); - } - - virtual uint32_t STDMETHODCALLTYPE GetAdapterCount() = 0; - - virtual bool STDMETHODCALLTYPE IsStale() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFactory( - REFIID riid, - _COM_Outptr_ void** ppvFactory - ) = 0; - - template - HRESULT GetFactory( - _COM_Outptr_ T** ppvFactory - ) - { - return GetFactory(IID_PPV_ARGS(ppvFactory)); - } - - virtual HRESULT STDMETHODCALLTYPE Sort( - uint32_t numPreferences, - _In_reads_(numPreferences) const DXCoreAdapterPreference* preferences) = 0; - - virtual bool STDMETHODCALLTYPE IsAdapterPreferenceSupported( - DXCoreAdapterPreference preference) = 0; -}; - -/* interface IDXCoreAdapterFactory */ -MIDL_INTERFACE("78ee5945-c36e-4b13-a669-005dd11c0f06") -IDXCoreAdapterFactory : public IUnknown -{ -public: - - virtual HRESULT STDMETHODCALLTYPE CreateAdapterList( - uint32_t numAttributes, - _In_reads_(numAttributes) const GUID *filterAttributes, - REFIID riid, - _COM_Outptr_ void **ppvAdapterList) = 0; - - template - HRESULT STDMETHODCALLTYPE CreateAdapterList( - uint32_t numAttributes, - _In_reads_(numAttributes) const GUID *filterAttributes, - _COM_Outptr_ T **ppvAdapterList) - { - return CreateAdapterList(numAttributes, - filterAttributes, - IID_PPV_ARGS(ppvAdapterList)); - } - - virtual HRESULT STDMETHODCALLTYPE GetAdapterByLuid( - const LUID &adapterLUID, - REFIID riid, - _COM_Outptr_ void **ppvAdapter) = 0; - - template - HRESULT STDMETHODCALLTYPE GetAdapterByLuid( - const LUID &adapterLUID, - _COM_Outptr_ T **ppvAdapter) - { - return GetAdapterByLuid(adapterLUID, - IID_PPV_ARGS(ppvAdapter)); - } - - virtual bool STDMETHODCALLTYPE IsNotificationTypeSupported( - DXCoreNotificationType notificationType) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterEventNotification( - _In_ IUnknown *dxCoreObject, - DXCoreNotificationType notificationType, - _In_ PFN_DXCORE_NOTIFICATION_CALLBACK callbackFunction, - _In_opt_ void *callbackContext, - _Out_ uint32_t *eventCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnregisterEventNotification( - uint32_t eventCookie) = 0; -}; - -/* interface IDXCoreAdapterFactory1 */ -MIDL_INTERFACE("d5682e19-6d21-401c-827a-9a51a4ea35d7") -IDXCoreAdapterFactory1 : public IDXCoreAdapterFactory -{ -public: - virtual HRESULT STDMETHODCALLTYPE CreateAdapterListByWorkload( - DXCoreWorkload workload, - DXCoreRuntimeFilterFlags runtimeFilter, - DXCoreHardwareTypeFilterFlags hardwareTypeFilter, - REFIID riid, - _COM_Outptr_ void **ppvAdapterList) = 0; - - template - HRESULT STDMETHODCALLTYPE CreateAdapterListByWorkload( - DXCoreWorkload workload, - DXCoreRuntimeFilterFlags runtimeFilter, - DXCoreHardwareTypeFilterFlags hardwareTypeFilter, - _COM_Outptr_ T **ppvAdapterList) - { - return CreateAdapterListByWorkload(workload, - runtimeFilter, - hardwareTypeFilter, - IID_PPV_ARGS(ppvAdapterList)); - } -}; - -#endif // __cplusplus - -#endif // __dxcore_interface_h__ - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/dxgicommon.h b/Juliet/src/Graphics/DX12/D3D12/directx/dxgicommon.h deleted file mode 100644 index f83aa01..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/dxgicommon.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// Copyright (C) Microsoft Corporation. -// Licensed under the MIT license -// - -#ifndef __dxgicommon_h__ -#define __dxgicommon_h__ - - -typedef struct DXGI_RATIONAL -{ - UINT Numerator; - UINT Denominator; -} DXGI_RATIONAL; - -// The following values are used with DXGI_SAMPLE_DESC::Quality: -#define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN 0xffffffff -#define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN 0xfffffffe - -typedef struct DXGI_SAMPLE_DESC -{ - UINT Count; - UINT Quality; -} DXGI_SAMPLE_DESC; - -typedef enum DXGI_COLOR_SPACE_TYPE -{ - DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, - DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, - DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, - DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, - DXGI_COLOR_SPACE_RESERVED = 4, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11, - DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13, - DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16, - DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17, - DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 18, - DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 19, - DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709 = 20, - DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020 = 21, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709 = 22, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020 = 23, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020 = 24, - DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF -} DXGI_COLOR_SPACE_TYPE; - -#endif // __dxgicommon_h__ - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/dxgicommon.idl b/Juliet/src/Graphics/DX12/D3D12/directx/dxgicommon.idl deleted file mode 100644 index 4e13486..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/dxgicommon.idl +++ /dev/null @@ -1,53 +0,0 @@ -// -// Copyright (C) Microsoft Corporation. -// Licensed under the MIT license -// - -import "ocidl.idl"; - -typedef struct DXGI_RATIONAL -{ - UINT Numerator; - UINT Denominator; -} DXGI_RATIONAL; - -// The following values are used with DXGI_SAMPLE_DESC::Quality: -#define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN 0xffffffff -#define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN 0xfffffffe - -typedef struct DXGI_SAMPLE_DESC -{ - UINT Count; - UINT Quality; -} DXGI_SAMPLE_DESC; - -typedef enum DXGI_COLOR_SPACE_TYPE -{ - DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, - DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, - DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, - DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, - DXGI_COLOR_SPACE_RESERVED = 4, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11, - DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13, - DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16, - DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17, - DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 18, - DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 19, - DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709 = 20, - DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020 = 21, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709 = 22, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020 = 23, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020 = 24, - DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF -} DXGI_COLOR_SPACE_TYPE; - diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/dxgiformat.h b/Juliet/src/Graphics/DX12/D3D12/directx/dxgiformat.h deleted file mode 100644 index 83e6c07..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/dxgiformat.h +++ /dev/null @@ -1,144 +0,0 @@ -// -// Copyright (C) Microsoft Corporation. -// Licensed under the MIT license -// - -#ifndef __dxgiformat_h__ -#define __dxgiformat_h__ - -#define DXGI_FORMAT_DEFINED 1 - -typedef enum DXGI_FORMAT -{ - DXGI_FORMAT_UNKNOWN = 0, - DXGI_FORMAT_R32G32B32A32_TYPELESS = 1, - DXGI_FORMAT_R32G32B32A32_FLOAT = 2, - DXGI_FORMAT_R32G32B32A32_UINT = 3, - DXGI_FORMAT_R32G32B32A32_SINT = 4, - DXGI_FORMAT_R32G32B32_TYPELESS = 5, - DXGI_FORMAT_R32G32B32_FLOAT = 6, - DXGI_FORMAT_R32G32B32_UINT = 7, - DXGI_FORMAT_R32G32B32_SINT = 8, - DXGI_FORMAT_R16G16B16A16_TYPELESS = 9, - DXGI_FORMAT_R16G16B16A16_FLOAT = 10, - DXGI_FORMAT_R16G16B16A16_UNORM = 11, - DXGI_FORMAT_R16G16B16A16_UINT = 12, - DXGI_FORMAT_R16G16B16A16_SNORM = 13, - DXGI_FORMAT_R16G16B16A16_SINT = 14, - DXGI_FORMAT_R32G32_TYPELESS = 15, - DXGI_FORMAT_R32G32_FLOAT = 16, - DXGI_FORMAT_R32G32_UINT = 17, - DXGI_FORMAT_R32G32_SINT = 18, - DXGI_FORMAT_R32G8X24_TYPELESS = 19, - DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20, - DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21, - DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22, - DXGI_FORMAT_R10G10B10A2_TYPELESS = 23, - DXGI_FORMAT_R10G10B10A2_UNORM = 24, - DXGI_FORMAT_R10G10B10A2_UINT = 25, - DXGI_FORMAT_R11G11B10_FLOAT = 26, - DXGI_FORMAT_R8G8B8A8_TYPELESS = 27, - DXGI_FORMAT_R8G8B8A8_UNORM = 28, - DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29, - DXGI_FORMAT_R8G8B8A8_UINT = 30, - DXGI_FORMAT_R8G8B8A8_SNORM = 31, - DXGI_FORMAT_R8G8B8A8_SINT = 32, - DXGI_FORMAT_R16G16_TYPELESS = 33, - DXGI_FORMAT_R16G16_FLOAT = 34, - DXGI_FORMAT_R16G16_UNORM = 35, - DXGI_FORMAT_R16G16_UINT = 36, - DXGI_FORMAT_R16G16_SNORM = 37, - DXGI_FORMAT_R16G16_SINT = 38, - DXGI_FORMAT_R32_TYPELESS = 39, - DXGI_FORMAT_D32_FLOAT = 40, - DXGI_FORMAT_R32_FLOAT = 41, - DXGI_FORMAT_R32_UINT = 42, - DXGI_FORMAT_R32_SINT = 43, - DXGI_FORMAT_R24G8_TYPELESS = 44, - DXGI_FORMAT_D24_UNORM_S8_UINT = 45, - DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46, - DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47, - DXGI_FORMAT_R8G8_TYPELESS = 48, - DXGI_FORMAT_R8G8_UNORM = 49, - DXGI_FORMAT_R8G8_UINT = 50, - DXGI_FORMAT_R8G8_SNORM = 51, - DXGI_FORMAT_R8G8_SINT = 52, - DXGI_FORMAT_R16_TYPELESS = 53, - DXGI_FORMAT_R16_FLOAT = 54, - DXGI_FORMAT_D16_UNORM = 55, - DXGI_FORMAT_R16_UNORM = 56, - DXGI_FORMAT_R16_UINT = 57, - DXGI_FORMAT_R16_SNORM = 58, - DXGI_FORMAT_R16_SINT = 59, - DXGI_FORMAT_R8_TYPELESS = 60, - DXGI_FORMAT_R8_UNORM = 61, - DXGI_FORMAT_R8_UINT = 62, - DXGI_FORMAT_R8_SNORM = 63, - DXGI_FORMAT_R8_SINT = 64, - DXGI_FORMAT_A8_UNORM = 65, - DXGI_FORMAT_R1_UNORM = 66, - DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67, - DXGI_FORMAT_R8G8_B8G8_UNORM = 68, - DXGI_FORMAT_G8R8_G8B8_UNORM = 69, - DXGI_FORMAT_BC1_TYPELESS = 70, - DXGI_FORMAT_BC1_UNORM = 71, - DXGI_FORMAT_BC1_UNORM_SRGB = 72, - DXGI_FORMAT_BC2_TYPELESS = 73, - DXGI_FORMAT_BC2_UNORM = 74, - DXGI_FORMAT_BC2_UNORM_SRGB = 75, - DXGI_FORMAT_BC3_TYPELESS = 76, - DXGI_FORMAT_BC3_UNORM = 77, - DXGI_FORMAT_BC3_UNORM_SRGB = 78, - DXGI_FORMAT_BC4_TYPELESS = 79, - DXGI_FORMAT_BC4_UNORM = 80, - DXGI_FORMAT_BC4_SNORM = 81, - DXGI_FORMAT_BC5_TYPELESS = 82, - DXGI_FORMAT_BC5_UNORM = 83, - DXGI_FORMAT_BC5_SNORM = 84, - DXGI_FORMAT_B5G6R5_UNORM = 85, - DXGI_FORMAT_B5G5R5A1_UNORM = 86, - DXGI_FORMAT_B8G8R8A8_UNORM = 87, - DXGI_FORMAT_B8G8R8X8_UNORM = 88, - DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89, - DXGI_FORMAT_B8G8R8A8_TYPELESS = 90, - DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91, - DXGI_FORMAT_B8G8R8X8_TYPELESS = 92, - DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93, - DXGI_FORMAT_BC6H_TYPELESS = 94, - DXGI_FORMAT_BC6H_UF16 = 95, - DXGI_FORMAT_BC6H_SF16 = 96, - DXGI_FORMAT_BC7_TYPELESS = 97, - DXGI_FORMAT_BC7_UNORM = 98, - DXGI_FORMAT_BC7_UNORM_SRGB = 99, - DXGI_FORMAT_AYUV = 100, - DXGI_FORMAT_Y410 = 101, - DXGI_FORMAT_Y416 = 102, - DXGI_FORMAT_NV12 = 103, - DXGI_FORMAT_P010 = 104, - DXGI_FORMAT_P016 = 105, - DXGI_FORMAT_420_OPAQUE = 106, - DXGI_FORMAT_YUY2 = 107, - DXGI_FORMAT_Y210 = 108, - DXGI_FORMAT_Y216 = 109, - DXGI_FORMAT_NV11 = 110, - DXGI_FORMAT_AI44 = 111, - DXGI_FORMAT_IA44 = 112, - DXGI_FORMAT_P8 = 113, - DXGI_FORMAT_A8P8 = 114, - DXGI_FORMAT_B4G4R4A4_UNORM = 115, - - DXGI_FORMAT_P208 = 130, - DXGI_FORMAT_V208 = 131, - DXGI_FORMAT_V408 = 132, - - - DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE = 189, - DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE = 190, - - DXGI_FORMAT_A4B4G4R4_UNORM = 191, - - - DXGI_FORMAT_FORCE_UINT = 0xffffffff -} DXGI_FORMAT; - -#endif // __dxgiformat_h__ diff --git a/Juliet/src/Graphics/DX12/D3D12/directx/dxgiformat.idl b/Juliet/src/Graphics/DX12/D3D12/directx/dxgiformat.idl deleted file mode 100644 index 34cc883..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/directx/dxgiformat.idl +++ /dev/null @@ -1,139 +0,0 @@ -// -// Copyright (C) Microsoft Corporation. -// Licensed under the MIT license -// - - -typedef enum DXGI_FORMAT -{ - DXGI_FORMAT_UNKNOWN = 0, - DXGI_FORMAT_R32G32B32A32_TYPELESS = 1, - DXGI_FORMAT_R32G32B32A32_FLOAT = 2, - DXGI_FORMAT_R32G32B32A32_UINT = 3, - DXGI_FORMAT_R32G32B32A32_SINT = 4, - DXGI_FORMAT_R32G32B32_TYPELESS = 5, - DXGI_FORMAT_R32G32B32_FLOAT = 6, - DXGI_FORMAT_R32G32B32_UINT = 7, - DXGI_FORMAT_R32G32B32_SINT = 8, - DXGI_FORMAT_R16G16B16A16_TYPELESS = 9, - DXGI_FORMAT_R16G16B16A16_FLOAT = 10, - DXGI_FORMAT_R16G16B16A16_UNORM = 11, - DXGI_FORMAT_R16G16B16A16_UINT = 12, - DXGI_FORMAT_R16G16B16A16_SNORM = 13, - DXGI_FORMAT_R16G16B16A16_SINT = 14, - DXGI_FORMAT_R32G32_TYPELESS = 15, - DXGI_FORMAT_R32G32_FLOAT = 16, - DXGI_FORMAT_R32G32_UINT = 17, - DXGI_FORMAT_R32G32_SINT = 18, - DXGI_FORMAT_R32G8X24_TYPELESS = 19, - DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20, - DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21, - DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22, - DXGI_FORMAT_R10G10B10A2_TYPELESS = 23, - DXGI_FORMAT_R10G10B10A2_UNORM = 24, - DXGI_FORMAT_R10G10B10A2_UINT = 25, - DXGI_FORMAT_R11G11B10_FLOAT = 26, - DXGI_FORMAT_R8G8B8A8_TYPELESS = 27, - DXGI_FORMAT_R8G8B8A8_UNORM = 28, - DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29, - DXGI_FORMAT_R8G8B8A8_UINT = 30, - DXGI_FORMAT_R8G8B8A8_SNORM = 31, - DXGI_FORMAT_R8G8B8A8_SINT = 32, - DXGI_FORMAT_R16G16_TYPELESS = 33, - DXGI_FORMAT_R16G16_FLOAT = 34, - DXGI_FORMAT_R16G16_UNORM = 35, - DXGI_FORMAT_R16G16_UINT = 36, - DXGI_FORMAT_R16G16_SNORM = 37, - DXGI_FORMAT_R16G16_SINT = 38, - DXGI_FORMAT_R32_TYPELESS = 39, - DXGI_FORMAT_D32_FLOAT = 40, - DXGI_FORMAT_R32_FLOAT = 41, - DXGI_FORMAT_R32_UINT = 42, - DXGI_FORMAT_R32_SINT = 43, - DXGI_FORMAT_R24G8_TYPELESS = 44, - DXGI_FORMAT_D24_UNORM_S8_UINT = 45, - DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46, - DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47, - DXGI_FORMAT_R8G8_TYPELESS = 48, - DXGI_FORMAT_R8G8_UNORM = 49, - DXGI_FORMAT_R8G8_UINT = 50, - DXGI_FORMAT_R8G8_SNORM = 51, - DXGI_FORMAT_R8G8_SINT = 52, - DXGI_FORMAT_R16_TYPELESS = 53, - DXGI_FORMAT_R16_FLOAT = 54, - DXGI_FORMAT_D16_UNORM = 55, - DXGI_FORMAT_R16_UNORM = 56, - DXGI_FORMAT_R16_UINT = 57, - DXGI_FORMAT_R16_SNORM = 58, - DXGI_FORMAT_R16_SINT = 59, - DXGI_FORMAT_R8_TYPELESS = 60, - DXGI_FORMAT_R8_UNORM = 61, - DXGI_FORMAT_R8_UINT = 62, - DXGI_FORMAT_R8_SNORM = 63, - DXGI_FORMAT_R8_SINT = 64, - DXGI_FORMAT_A8_UNORM = 65, - DXGI_FORMAT_R1_UNORM = 66, - DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67, - DXGI_FORMAT_R8G8_B8G8_UNORM = 68, - DXGI_FORMAT_G8R8_G8B8_UNORM = 69, - DXGI_FORMAT_BC1_TYPELESS = 70, - DXGI_FORMAT_BC1_UNORM = 71, - DXGI_FORMAT_BC1_UNORM_SRGB = 72, - DXGI_FORMAT_BC2_TYPELESS = 73, - DXGI_FORMAT_BC2_UNORM = 74, - DXGI_FORMAT_BC2_UNORM_SRGB = 75, - DXGI_FORMAT_BC3_TYPELESS = 76, - DXGI_FORMAT_BC3_UNORM = 77, - DXGI_FORMAT_BC3_UNORM_SRGB = 78, - DXGI_FORMAT_BC4_TYPELESS = 79, - DXGI_FORMAT_BC4_UNORM = 80, - DXGI_FORMAT_BC4_SNORM = 81, - DXGI_FORMAT_BC5_TYPELESS = 82, - DXGI_FORMAT_BC5_UNORM = 83, - DXGI_FORMAT_BC5_SNORM = 84, - DXGI_FORMAT_B5G6R5_UNORM = 85, - DXGI_FORMAT_B5G5R5A1_UNORM = 86, - DXGI_FORMAT_B8G8R8A8_UNORM = 87, - DXGI_FORMAT_B8G8R8X8_UNORM = 88, - DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89, - DXGI_FORMAT_B8G8R8A8_TYPELESS = 90, - DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91, - DXGI_FORMAT_B8G8R8X8_TYPELESS = 92, - DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93, - DXGI_FORMAT_BC6H_TYPELESS = 94, - DXGI_FORMAT_BC6H_UF16 = 95, - DXGI_FORMAT_BC6H_SF16 = 96, - DXGI_FORMAT_BC7_TYPELESS = 97, - DXGI_FORMAT_BC7_UNORM = 98, - DXGI_FORMAT_BC7_UNORM_SRGB = 99, - DXGI_FORMAT_AYUV = 100, - DXGI_FORMAT_Y410 = 101, - DXGI_FORMAT_Y416 = 102, - DXGI_FORMAT_NV12 = 103, - DXGI_FORMAT_P010 = 104, - DXGI_FORMAT_P016 = 105, - DXGI_FORMAT_420_OPAQUE = 106, - DXGI_FORMAT_YUY2 = 107, - DXGI_FORMAT_Y210 = 108, - DXGI_FORMAT_Y216 = 109, - DXGI_FORMAT_NV11 = 110, - DXGI_FORMAT_AI44 = 111, - DXGI_FORMAT_IA44 = 112, - DXGI_FORMAT_P8 = 113, - DXGI_FORMAT_A8P8 = 114, - DXGI_FORMAT_B4G4R4A4_UNORM = 115, - - DXGI_FORMAT_P208 = 130, - DXGI_FORMAT_V208 = 131, - DXGI_FORMAT_V408 = 132, - - - DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE = 189, - DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE = 190, - - DXGI_FORMAT_A4B4G4R4_UNORM = 191, - - - DXGI_FORMAT_FORCE_UINT = 0xffffffff -} DXGI_FORMAT; - diff --git a/Juliet/src/Graphics/DX12/D3D12/dxguids/dxguids.cpp b/Juliet/src/Graphics/DX12/D3D12/dxguids/dxguids.cpp deleted file mode 100644 index 5b88641..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/dxguids/dxguids.cpp +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -// This file's sole purpose is to initialize the GUIDs declared using the DEFINE_GUID macro. -#include - -#define INITGUID - -#include - -#include -#include -#include diff --git a/Juliet/src/Graphics/DX12/D3D12/dxguids/dxguids.h b/Juliet/src/Graphics/DX12/D3D12/dxguids/dxguids.h deleted file mode 100644 index f3f0548..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/dxguids/dxguids.h +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#pragma once - -#ifndef __cplusplus -#error "This header requires C++" -#endif - -constexpr inline bool ConstexprIsEqualGUID(REFGUID a, REFGUID b) -{ - return a.Data1 == b.Data1 && - a.Data2 == b.Data2 && - a.Data3 == b.Data3 && - a.Data4[0] == b.Data4[0] && - a.Data4[1] == b.Data4[1] && - a.Data4[2] == b.Data4[2] && - a.Data4[3] == b.Data4[3] && - a.Data4[4] == b.Data4[4] && - a.Data4[5] == b.Data4[5] && - a.Data4[6] == b.Data4[6] && - a.Data4[7] == b.Data4[7]; -} - -template GUID uuidof() = delete; -template GUID uuidof(T*) { return uuidof(); } -template GUID uuidof(T**) { return uuidof(); } -template GUID uuidof(T&) { return uuidof(); } - -// Each COM interface (e.g. ID3D12Device) has a unique interface ID (IID) associated with it. With MSVC, the IID is defined -// along with the interface declaration using compiler intrinsics (__declspec(uuid(...)); the IID can then be retrieved -// using __uuidof. These intrinsics are not supported with all toolchains, so these helpers redefine IID values that can be -// used with the various adapter COM helpers (ComPtr, IID_PPV_ARGS, etc.) for Linux. IIDs are stable and cannot change, but as -// a precaution we statically assert the values are as expected when compiling for Windows. -#if defined(_MSC_VER) -#define _DXGUIDS_SUPPORT_STATIC_ASSERT_IID -#elif defined(__CRT_UUID_DECL) -/* match _mingw.h */ -#if __cpp_constexpr >= 200704l && __cpp_inline_variables >= 201606L -#define _DXGUIDS_SUPPORT_STATIC_ASSERT_IID -#endif /* __cpp_constexpr >= 200704l && __cpp_inline_variables >= 201606L */ -#endif /* _MSC_VER */ - -#ifdef _DXGUIDS_SUPPORT_STATIC_ASSERT_IID -#define _WINADAPTER_ASSERT_IID(InterfaceName) \ -static_assert(ConstexprIsEqualGUID(uuidof(), __uuidof(InterfaceName)), "GUID definition mismatch: "#InterfaceName); -#else -#define _WINADAPTER_ASSERT_IID(InterfaceName) -#endif - -#ifdef __CRT_UUID_DECL -#define WINADAPTER_IID(InterfaceName, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ -template <> constexpr GUID uuidof() \ -{ \ - return { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; \ -} \ -__CRT_UUID_DECL(InterfaceName, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ -_WINADAPTER_ASSERT_IID(InterfaceName) -#else -#define WINADAPTER_IID(InterfaceName, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ -template <> constexpr GUID uuidof() \ -{ \ - return { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; \ -} \ -_WINADAPTER_ASSERT_IID(InterfaceName) -#endif /* defined(_WIN32) && defined(__MINGW32__) */ - -// Direct3D -#ifdef __d3d12_h__ -WINADAPTER_IID(ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f, 0x94, 0xf4, 0x31, 0xcb, 0x56, 0xc3, 0xb8); -WINADAPTER_IID(ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d, 0xf5, 0x2b, 0x64, 0xca, 0x9e, 0xa3, 0x57); -WINADAPTER_IID(ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b, 0xe5, 0xa9, 0x46, 0xa1, 0x42, 0x92, 0x14); -WINADAPTER_IID(ID3D12RootSignatureDeserializer, 0x34AB647B, 0x3CC8, 0x46AC, 0x84, 0x1B, 0xC0, 0x96, 0x56, 0x45, 0xC0, 0x46); -WINADAPTER_IID(ID3D12VersionedRootSignatureDeserializer, 0x7F91CE67, 0x090C, 0x4BB7, 0xB7, 0x8E, 0xED, 0x8F, 0xF2, 0xE3, 0x1D, 0xA0); -WINADAPTER_IID(ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86, 0xda, 0xf0, 0x08, 0xce, 0x62, 0xf0, 0xd6); -WINADAPTER_IID(ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90, 0xee, 0x98, 0x84, 0x26, 0x5e, 0x8d, 0xf3); -WINADAPTER_IID(ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc, 0x79, 0x5b, 0x5c, 0x98, 0x04, 0x0f, 0xad); -WINADAPTER_IID(ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9, 0x99, 0xb4, 0x4d, 0x73, 0xf0, 0x9b, 0x24); -WINADAPTER_IID(ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad, 0xf6, 0xbe, 0x5a, 0x60, 0xd9, 0x5a, 0x76); -WINADAPTER_IID(ID3D12Fence1, 0x433685fe, 0xe22b, 0x4ca0, 0xa8, 0xdb, 0xb5, 0xb4, 0xf4, 0xdd, 0x0e, 0x4a); -WINADAPTER_IID(ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8, 0x28, 0xac, 0xe9, 0x48, 0x62, 0x24, 0x45); -WINADAPTER_IID(ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90, 0xf7, 0x12, 0x7b, 0xb7, 0x63, 0xfa, 0x51); -WINADAPTER_IID(ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6, 0x1d, 0x97, 0x0e, 0xc5, 0x83, 0xca, 0xb4); -WINADAPTER_IID(ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89, 0x85, 0xa7, 0xb2, 0x47, 0x50, 0x82, 0xd1); -WINADAPTER_IID(ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8, 0xc6, 0xec, 0x81, 0x68, 0xf4, 0x37, 0xe5); -WINADAPTER_IID(ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b, 0xa8, 0xb3, 0xae, 0x42, 0xa5, 0xa4, 0x55); -WINADAPTER_IID(ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb, 0x38, 0x94, 0x6d, 0x7d, 0x0e, 0x7c, 0xa7); -WINADAPTER_IID(ID3D12GraphicsCommandList2, 0x38C3E585, 0xFF17, 0x412C, 0x91, 0x50, 0x4F, 0xC6, 0xF9, 0xD7, 0x2A, 0x28); -WINADAPTER_IID(ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c, 0xfc, 0x5b, 0xaa, 0xe0, 0x76, 0x16, 0xed); -WINADAPTER_IID(ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe, 0x54, 0x18, 0x21, 0x33, 0x9b, 0x85, 0xf7); -WINADAPTER_IID(ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4, 0xcc, 0x53, 0xfb, 0x9f, 0xf7, 0x41, 0x4f); -WINADAPTER_IID(ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd, 0x82, 0xc3, 0x7f, 0x86, 0x96, 0x1d, 0xc3); -WINADAPTER_IID(ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88, 0x95, 0xc1, 0xf2, 0x33, 0x86, 0x86, 0x3e); -WINADAPTER_IID(ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0, 0xbb, 0x1a, 0xf5, 0xc5, 0xb6, 0x43, 0x28); -WINADAPTER_IID(ID3D12Device3, 0x81dadc15, 0x2bad, 0x4392, 0x93, 0xc5, 0x10, 0x13, 0x45, 0xc4, 0xaa, 0x98); -WINADAPTER_IID(ID3D12ProtectedSession, 0xA1533D18, 0x0AC1, 0x4084, 0x85, 0xB9, 0x89, 0xA9, 0x61, 0x16, 0x80, 0x6B); -WINADAPTER_IID(ID3D12ProtectedResourceSession, 0x6CD696F4, 0xF289, 0x40CC, 0x80, 0x91, 0x5A, 0x6C, 0x0A, 0x09, 0x9C, 0x3D); -WINADAPTER_IID(ID3D12Device4, 0xe865df17, 0xa9ee, 0x46f9, 0xa4, 0x63, 0x30, 0x98, 0x31, 0x5a, 0xa2, 0xe5); -WINADAPTER_IID(ID3D12LifetimeOwner, 0xe667af9f, 0xcd56, 0x4f46, 0x83, 0xce, 0x03, 0x2e, 0x59, 0x5d, 0x70, 0xa8); -WINADAPTER_IID(ID3D12SwapChainAssistant, 0xf1df64b6, 0x57fd, 0x49cd, 0x88, 0x07, 0xc0, 0xeb, 0x88, 0xb4, 0x5c, 0x8f); -WINADAPTER_IID(ID3D12LifetimeTracker, 0x3fd03d36, 0x4eb1, 0x424a, 0xa5, 0x82, 0x49, 0x4e, 0xcb, 0x8b, 0xa8, 0x13); -WINADAPTER_IID(ID3D12StateObject, 0x47016943, 0xfca8, 0x4594, 0x93, 0xea, 0xaf, 0x25, 0x8b, 0x55, 0x34, 0x6d); -WINADAPTER_IID(ID3D12StateObjectProperties, 0xde5fa827, 0x9bf9, 0x4f26, 0x89, 0xff, 0xd7, 0xf5, 0x6f, 0xde, 0x38, 0x60); -WINADAPTER_IID(ID3D12Device5, 0x8b4f173b, 0x2fea, 0x4b80, 0x8f, 0x58, 0x43, 0x07, 0x19, 0x1a, 0xb9, 0x5d); -WINADAPTER_IID(ID3D12DeviceRemovedExtendedDataSettings, 0x82BC481C, 0x6B9B, 0x4030, 0xAE, 0xDB, 0x7E, 0xE3, 0xD1, 0xDF, 0x1E, 0x63); -WINADAPTER_IID(ID3D12DeviceRemovedExtendedDataSettings1, 0xDBD5AE51, 0x3317, 0x4F0A, 0xAD, 0xF9, 0x1D, 0x7C, 0xED, 0xCA, 0xAE, 0x0B); -WINADAPTER_IID(ID3D12DeviceRemovedExtendedDataSettings2, 0x61552388, 0x01ab, 0x4008, 0xa4, 0x36, 0x83, 0xdb, 0x18, 0x95, 0x66, 0xea); -WINADAPTER_IID(ID3D12DeviceRemovedExtendedData, 0x98931D33, 0x5AE8, 0x4791, 0xAA, 0x3C, 0x1A, 0x73, 0xA2, 0x93, 0x4E, 0x71); -WINADAPTER_IID(ID3D12DeviceRemovedExtendedData1, 0x9727A022, 0xCF1D, 0x4DDA, 0x9E, 0xBA, 0xEF, 0xFA, 0x65, 0x3F, 0xC5, 0x06); -WINADAPTER_IID(ID3D12DeviceRemovedExtendedData2, 0x67FC5816, 0xE4CA, 0x4915, 0xBF, 0x18, 0x42, 0x54, 0x12, 0x72, 0xDA, 0x54); -WINADAPTER_IID(ID3D12Device6, 0xc70b221b, 0x40e4, 0x4a17, 0x89, 0xaf, 0x02, 0x5a, 0x07, 0x27, 0xa6, 0xdc); -WINADAPTER_IID(ID3D12ProtectedResourceSession1, 0xD6F12DD6, 0x76FB, 0x406E, 0x89, 0x61, 0x42, 0x96, 0xEE, 0xFC, 0x04, 0x09); -WINADAPTER_IID(ID3D12Device7, 0x5c014b53, 0x68a1, 0x4b9b, 0x8b, 0xd1, 0xdd, 0x60, 0x46, 0xb9, 0x35, 0x8b); -WINADAPTER_IID(ID3D12Device8, 0x9218E6BB, 0xF944, 0x4F7E, 0xA7, 0x5C, 0xB1, 0xB2, 0xC7, 0xB7, 0x01, 0xF3); -WINADAPTER_IID(ID3D12Resource1, 0x9D5E227A, 0x4430, 0x4161, 0x88, 0xB3, 0x3E, 0xCA, 0x6B, 0xB1, 0x6E, 0x19); -WINADAPTER_IID(ID3D12Resource2, 0xBE36EC3B, 0xEA85, 0x4AEB, 0xA4, 0x5A, 0xE9, 0xD7, 0x64, 0x04, 0xA4, 0x95); -WINADAPTER_IID(ID3D12Heap1, 0x572F7389, 0x2168, 0x49E3, 0x96, 0x93, 0xD6, 0xDF, 0x58, 0x71, 0xBF, 0x6D); -WINADAPTER_IID(ID3D12GraphicsCommandList3, 0x6FDA83A7, 0xB84C, 0x4E38, 0x9A, 0xC8, 0xC7, 0xBD, 0x22, 0x01, 0x6B, 0x3D); -WINADAPTER_IID(ID3D12MetaCommand, 0xDBB84C27, 0x36CE, 0x4FC9, 0xB8, 0x01, 0xF0, 0x48, 0xC4, 0x6A, 0xC5, 0x70); -WINADAPTER_IID(ID3D12GraphicsCommandList4, 0x8754318e, 0xd3a9, 0x4541, 0x98, 0xcf, 0x64, 0x5b, 0x50, 0xdc, 0x48, 0x74); -WINADAPTER_IID(ID3D12ShaderCacheSession, 0x28e2495d, 0x0f64, 0x4ae4, 0xa6, 0xec, 0x12, 0x92, 0x55, 0xdc, 0x49, 0xa8); -WINADAPTER_IID(ID3D12Device9, 0x4c80e962, 0xf032, 0x4f60, 0xbc, 0x9e, 0xeb, 0xc2, 0xcf, 0xa1, 0xd8, 0x3c); -WINADAPTER_IID(ID3D12Device10, 0x517f8718, 0xaa66, 0x49f9, 0xb0, 0x2b, 0xa7, 0xab, 0x89, 0xc0, 0x60, 0x31); -WINADAPTER_IID(ID3D12Device11, 0x5405c344, 0xd457, 0x444e, 0xb4, 0xdd, 0x23, 0x66, 0xe4, 0x5a, 0xee, 0x39); -WINADAPTER_IID(ID3D12VirtualizationGuestDevice, 0xbc66d368, 0x7373, 0x4943, 0x87, 0x57, 0xfc, 0x87, 0xdc, 0x79, 0xe4, 0x76); -WINADAPTER_IID(ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97, 0x4f, 0x12, 0xfa, 0x49, 0xde, 0x65, 0xc5); -WINADAPTER_IID(ID3D12SDKConfiguration, 0xe9eb5314, 0x33aa, 0x42b2, 0xa7, 0x18, 0xd7, 0x7f, 0x58, 0xb1, 0xf1, 0xc7); -WINADAPTER_IID(ID3D12SDKConfiguration1, 0x8aaf9303, 0xad25, 0x48b9, 0x9a, 0x57, 0xd9, 0xc3, 0x7e, 0x00, 0x9d, 0x9f); -WINADAPTER_IID(ID3D12DeviceFactory, 0x61f307d3, 0xd34e, 0x4e7c, 0x83, 0x74, 0x3b, 0xa4, 0xde, 0x23, 0xcc, 0xcb); -WINADAPTER_IID(ID3D12DeviceConfiguration, 0x78dbf87b, 0xf766, 0x422b, 0xa6, 0x1c, 0xc8, 0xc4, 0x46, 0xbd, 0xb9, 0xad); -WINADAPTER_IID(ID3D12GraphicsCommandList5, 0x55050859, 0x4024, 0x474c, 0x87, 0xf5, 0x64, 0x72, 0xea, 0xee, 0x44, 0xea); -WINADAPTER_IID(ID3D12GraphicsCommandList6, 0xc3827890, 0xe548, 0x4cfa, 0x96, 0xcf, 0x56, 0x89, 0xa9, 0x37, 0x0f, 0x80); -WINADAPTER_IID(ID3D12GraphicsCommandList7, 0xdd171223, 0x8b61, 0x4769, 0x90, 0xe3, 0x16, 0x0c, 0xcd, 0xe4, 0xe2, 0xc1); -WINADAPTER_IID(ID3D12GraphicsCommandList8, 0xee936ef9, 0x599d, 0x4d28, 0x93, 0x8e, 0x23, 0xc4, 0xad, 0x05, 0xce, 0x51); -#endif - -// Direct3D Video -#ifdef __d3d12video_h__ -WINADAPTER_IID(ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F); -WINADAPTER_IID(ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4); -WINADAPTER_IID(ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70); -WINADAPTER_IID(ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38); -WINADAPTER_IID(ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53); -WINADAPTER_IID(ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09); -WINADAPTER_IID(ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72); -WINADAPTER_IID(ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67); -WINADAPTER_IID(ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8); -WINADAPTER_IID(ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05); -WINADAPTER_IID(ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB); -WINADAPTER_IID(ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23); -WINADAPTER_IID(ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E); -WINADAPTER_IID(ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26); -WINADAPTER_IID(ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C); -WINADAPTER_IID(ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4); -WINADAPTER_IID(ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13); -WINADAPTER_IID(ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29); -WINADAPTER_IID(ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13); -WINADAPTER_IID(ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4); -WINADAPTER_IID(ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff); -WINADAPTER_IID(ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc); -WINADAPTER_IID(ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37); -WINADAPTER_IID(ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A); -WINADAPTER_IID(ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44); -WINADAPTER_IID(ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a); -WINADAPTER_IID(ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76); -#endif - -#ifdef __d3d12sdklayers_h__ -WINADAPTER_IID(ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9, 0x89, 0xf0, 0x27, 0x44, 0x82, 0x45, 0xe0); -WINADAPTER_IID(ID3D12Debug1, 0xaffaa4ca, 0x63fe, 0x4d8e, 0xb8, 0xad, 0x15, 0x90, 0x00, 0xaf, 0x43, 0x04); -WINADAPTER_IID(ID3D12Debug2, 0x93a665c4, 0xa3b2, 0x4e5d, 0xb6, 0x92, 0xa2, 0x6a, 0xe1, 0x4e, 0x33, 0x74); -WINADAPTER_IID(ID3D12Debug3, 0x5cf4e58f, 0xf671, 0x4ff1, 0xa5, 0x42, 0x36, 0x86, 0xe3, 0xd1, 0x53, 0xd1); -WINADAPTER_IID(ID3D12Debug4, 0x014b816e, 0x9ec5, 0x4a2f, 0xa8, 0x45, 0xff, 0xbe, 0x44, 0x1c, 0xe1, 0x3a); -WINADAPTER_IID(ID3D12Debug5, 0x548d6b12, 0x09fa, 0x40e0, 0x90, 0x69, 0x5d, 0xcd, 0x58, 0x9a, 0x52, 0xc9); -WINADAPTER_IID(ID3D12Debug6, 0x82a816d6, 0x5d01, 0x4157, 0x97, 0xd0, 0x49, 0x75, 0x46, 0x3f, 0xd1, 0xed); -WINADAPTER_IID(ID3D12DebugDevice1, 0xa9b71770, 0xd099, 0x4a65, 0xa6, 0x98, 0x3d, 0xee, 0x10, 0x02, 0x0f, 0x88); -WINADAPTER_IID(ID3D12DebugDevice, 0x3febd6dd, 0x4973, 0x4787, 0x81, 0x94, 0xe4, 0x5f, 0x9e, 0x28, 0x92, 0x3e); -WINADAPTER_IID(ID3D12DebugDevice2, 0x60eccbc1, 0x378d, 0x4df1, 0x89, 0x4c, 0xf8, 0xac, 0x5c, 0xe4, 0xd7, 0xdd); -WINADAPTER_IID(ID3D12DebugCommandQueue, 0x09e0bf36, 0x54ac, 0x484f, 0x88, 0x47, 0x4b, 0xae, 0xea, 0xb6, 0x05, 0x3a); -WINADAPTER_IID(ID3D12DebugCommandQueue1, 0x16be35a2, 0xbfd6, 0x49f2, 0xbc, 0xae, 0xea, 0xae, 0x4a, 0xff, 0x86, 0x2d); -WINADAPTER_IID(ID3D12DebugCommandList1, 0x102ca951, 0x311b, 0x4b01, 0xb1, 0x1f, 0xec, 0xb8, 0x3e, 0x06, 0x1b, 0x37); -WINADAPTER_IID(ID3D12DebugCommandList, 0x09e0bf36, 0x54ac, 0x484f, 0x88, 0x47, 0x4b, 0xae, 0xea, 0xb6, 0x05, 0x3f); -WINADAPTER_IID(ID3D12DebugCommandList2, 0xaeb575cf, 0x4e06, 0x48be, 0xba, 0x3b, 0xc4, 0x50, 0xfc, 0x96, 0x65, 0x2e); -WINADAPTER_IID(ID3D12DebugCommandList3, 0x197d5e15, 0x4d37, 0x4d34, 0xaf, 0x78, 0x72, 0x4c, 0xd7, 0x0f, 0xdb, 0x1f); -WINADAPTER_IID(ID3D12SharingContract, 0x0adf7d52, 0x929c, 0x4e61, 0xad, 0xdb, 0xff, 0xed, 0x30, 0xde, 0x66, 0xef); -WINADAPTER_IID(ID3D12InfoQueue, 0x0742a90b, 0xc387, 0x483f, 0xb9, 0x46, 0x30, 0xa7, 0xe4, 0xe6, 0x14, 0x58); -WINADAPTER_IID(ID3D12InfoQueue1, 0x2852dd88, 0xb484, 0x4c0c, 0xb6, 0xb1, 0x67, 0x16, 0x85, 0x00, 0xe6, 0x00); -#endif - -// DXCore -#ifdef __dxcore_interface_h__ -WINADAPTER_IID(IDXCoreAdapterFactory, 0x78ee5945, 0xc36e, 0x4b13, 0xa6, 0x69, 0x00, 0x5d, 0xd1, 0x1c, 0x0f, 0x06); -WINADAPTER_IID(IDXCoreAdapterFactory1, 0xd5682e19, 0x6d21, 0x401c, 0x82, 0x7a, 0x9a, 0x51, 0xa4, 0xea, 0x35, 0xd7); -WINADAPTER_IID(IDXCoreAdapterList, 0x526c7776, 0x40e9, 0x459b, 0xb7, 0x11, 0xf3, 0x2a, 0xd7, 0x6d, 0xfc, 0x28); -WINADAPTER_IID(IDXCoreAdapter, 0xf0db4c7f, 0xfe5a, 0x42a2, 0xbd, 0x62, 0xf2, 0xa6, 0xcf, 0x6f, 0xc8, 0x3e); -WINADAPTER_IID(IDXCoreAdapter1, 0xa0783366, 0xcfa3, 0x43be, 0x9d, 0x79, 0x55, 0xb2, 0xda, 0x97, 0xc6, 0x3c); -#endif diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/basetsd.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/basetsd.h deleted file mode 100644 index 4c75ef2..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/basetsd.h +++ /dev/null @@ -1,406 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#pragma once - -// These #defines prevent the idl-generated headers from trying to include -// Windows.h from the SDK rather than this one. -#define RPC_NO_WINDOWS_H -#define COM_NO_WINDOWS_H - -// Allcaps type definitions -#include -#include -#include -#include - -// Note: using fixed-width here to match Windows widths -// Specifically this is different for 'long' vs 'LONG' -typedef uint8_t UINT8; -typedef int8_t INT8; -typedef uint16_t UINT16; -typedef int16_t INT16; -typedef uint32_t UINT32, UINT, ULONG, DWORD, BOOL, WINBOOL; -typedef int32_t INT32, INT, LONG; -typedef uint64_t UINT64, ULONG_PTR; -typedef int64_t INT64, LONG_PTR; -typedef void VOID, *HANDLE, *RPC_IF_HANDLE, *LPVOID; -typedef const void *LPCVOID; -typedef size_t SIZE_T; -typedef float FLOAT; -typedef double DOUBLE; -typedef unsigned char BYTE; -typedef int HWND; -typedef int PALETTEENTRY; -typedef int HDC; -typedef uint16_t WORD; -typedef void* PVOID; -typedef char BOOLEAN; -typedef uint64_t ULONGLONG; -typedef uint16_t USHORT, *PUSHORT; -typedef int64_t LONGLONG, *PLONGLONG; -typedef int64_t LONG_PTR, *PLONG_PTR; -typedef int64_t LONG64, *PLONG64; -typedef uint64_t ULONG64, *PULONG64; -typedef wchar_t WCHAR, *PWSTR; -typedef uint8_t UCHAR, *PUCHAR; -typedef uint64_t ULONG_PTR, *PULONG_PTR; -typedef uint64_t UINT_PTR, *PUINT_PTR; -typedef int64_t INT_PTR, *PINT_PTR; - -// Note: WCHAR is not the same between Windows and Linux, to enable -// string manipulation APIs to work with resulting strings. -// APIs to D3D/DXCore will work on Linux wchars, but beware with -// interactions directly with the Windows kernel. -typedef char CHAR, *PSTR, *LPSTR, TCHAR, *PTSTR; -typedef const char *LPCSTR, *PCSTR, *LPCTSTR, *PCTSTR; -typedef wchar_t WCHAR, *PWSTR, *LPWSTR, *PWCHAR; -typedef const wchar_t *LPCWSTR, *PCWSTR; - -#undef LONG_MAX -#define LONG_MAX INT_MAX -#undef ULONG_MAX -#define ULONG_MAX UINT_MAX - -// Misc defines -#define MIDL_INTERFACE(x) interface -#define __analysis_assume(x) -#define TRUE 1u -#define FALSE 0u -#define DECLSPEC_UUID(x) -#define DECLSPEC_NOVTABLE -#define DECLSPEC_SELECTANY -#ifdef __cplusplus -#define EXTERN_C extern "C" -#else -#define EXTERN_C extern -#endif -#define APIENTRY -#define OUT -#define IN -#define CONST const -#define MAX_PATH 260 -#define GENERIC_ALL 0x10000000L -#define C_ASSERT(expr) static_assert((expr)) -#define _countof(a) (sizeof(a) / sizeof(*(a))) - -typedef struct tagRECTL -{ - LONG left; - LONG top; - LONG right; - LONG bottom; -} RECTL; - -typedef struct tagPOINT -{ - int x; - int y; -} POINT; - -typedef struct _GUID { - uint32_t Data1; - uint16_t Data2; - uint16_t Data3; - uint8_t Data4[ 8 ]; -} GUID; - -#ifdef INITGUID -#ifdef __cplusplus -#define DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) EXTERN_C const GUID DECLSPEC_SELECTANY name = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } -#else -#define DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) const GUID DECLSPEC_SELECTANY name = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } -#endif -#else -#define DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) EXTERN_C const GUID name -#endif - -typedef GUID IID; -typedef GUID UUID; -typedef GUID CLSID; -#ifdef __cplusplus -#define REFGUID const GUID & -#define REFIID const IID & -#define REFCLSID const IID & - -__inline int InlineIsEqualGUID(REFGUID rguid1, REFGUID rguid2) -{ - return ( - ((uint32_t *)&rguid1)[0] == ((uint32_t *)&rguid2)[0] && - ((uint32_t *)&rguid1)[1] == ((uint32_t *)&rguid2)[1] && - ((uint32_t *)&rguid1)[2] == ((uint32_t *)&rguid2)[2] && - ((uint32_t *)&rguid1)[3] == ((uint32_t *)&rguid2)[3]); -} - -inline bool operator==(REFGUID guidOne, REFGUID guidOther) -{ - return !!InlineIsEqualGUID(guidOne, guidOther); -} - -inline bool operator!=(REFGUID guidOne, REFGUID guidOther) -{ - return !(guidOne == guidOther); -} - -#else -#define REFGUID const GUID * -#define REFIID const IID * -#define REFCLSID const IID * -#endif - -// SAL annotations -#define _In_ -#define _In_z_ -#define _In_opt_ -#define _In_opt_z_ -#define _In_reads_(x) -#define _In_reads_opt_(x) -#define _In_reads_bytes_(x) -#define _In_reads_bytes_opt_(x) -#define _In_range_(x, y) -#define _In_bytecount_(x) -#define _Out_ -#define _Out_opt_ -#define _Outptr_ -#define _Outptr_opt_result_z_ -#define _Outptr_opt_result_bytebuffer_(x) -#define _COM_Outptr_ -#define _COM_Outptr_result_maybenull_ -#define _COM_Outptr_opt_ -#define _COM_Outptr_opt_result_maybenull_ -#define _Out_writes_(x) -#define _Out_writes_z_(x) -#define _Out_writes_opt_(x) -#define _Out_writes_all_(x) -#define _Out_writes_all_opt_(x) -#define _Out_writes_to_opt_(x, y) -#define _Out_writes_bytes_(x) -#define _Out_writes_bytes_all_(x) -#define _Out_writes_bytes_all_opt_(x) -#define _Out_writes_bytes_opt_(x) -#define _Inout_ -#define _Inout_opt_ -#define _Inout_updates_(x) -#define _Inout_updates_bytes_(x) -#define _Field_size_(x) -#define _Field_size_opt_(x) -#define _Field_size_bytes_(x) -#define _Field_size_full_(x) -#define _Field_size_full_opt_(x) -#define _Field_size_bytes_full_(x) -#define _Field_size_bytes_full_opt_(x) -#define _Field_size_bytes_part_(x, y) -#define _Field_range_(x, y) -#define _Field_z_ -#define _Check_return_ -#define _IRQL_requires_(x) -#define _IRQL_requires_min_(x) -#define _IRQL_requires_max_(x) -#define _At_(x, y) -#define _Always_(x) -#define _Return_type_success_(x) -#define _Translates_Win32_to_HRESULT_(x) -#define _Maybenull_ -#define _Outptr_result_maybenull_ -#define _Outptr_result_nullonfailure_ -#define _Analysis_assume_(x) -#define _Success_(x) -#define _In_count_(x) -#define _In_opt_count_(x) -#define _Use_decl_annotations_ -#define _Null_terminated_ - -// Calling conventions -#define __cdecl -#define __stdcall -#define STDMETHODCALLTYPE -#define STDAPICALLTYPE -#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE -#define WINAPI - -#define interface struct -#if defined (__cplusplus) && !defined (CINTERFACE) -#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method -#define STDMETHOD_(type, method) virtual type STDMETHODCALLTYPE method -#define PURE = 0 -#define THIS_ -#define THIS void -#define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface -#define DECLARE_INTERFACE_(iface, baseiface) interface DECLSPEC_NOVTABLE iface : public baseiface - -interface IUnknown; -extern "C++" -{ - template void** IID_PPV_ARGS_Helper(T** pp) - { - (void)static_cast(*pp); - return reinterpret_cast(pp); - } -} -#define IID_PPV_ARGS(ppType) __uuidof (**(ppType)), IID_PPV_ARGS_Helper (ppType) -#else -#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE *method) -#define STDMETHOD_(type, method) type (STDMETHODCALLTYPE *method) -#define PURE -#define THIS_ INTERFACE *This, -#define THIS INTERFACE *This -#ifdef CONST_VTABLE -#define DECLARE_INTERFACE(iface) typedef interface iface { const struct iface##Vtbl *lpVtbl; } iface; typedef const struct iface##Vtbl iface##Vtbl; const struct iface##Vtbl -#else -#define DECLARE_INTERFACE(iface) typedef interface iface { struct iface##Vtbl *lpVtbl; } iface; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl -#endif -#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE (iface) -#endif - -#define IFACEMETHOD(method) /*override*/ STDMETHOD (method) -#define IFACEMETHOD_(type, method) /*override*/ STDMETHOD_(type, method) -#ifndef BEGIN_INTERFACE -#define BEGIN_INTERFACE -#define END_INTERFACE -#endif - -// Error codes -typedef LONG HRESULT; -#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) -#define FAILED(hr) (((HRESULT)(hr)) < 0) -#define S_OK ((HRESULT)0L) -#define S_FALSE ((HRESULT)1L) -#define E_NOTIMPL ((HRESULT)0x80004001L) -#define E_OUTOFMEMORY ((HRESULT)0x8007000EL) -#define E_INVALIDARG ((HRESULT)0x80070057L) -#define E_NOINTERFACE ((HRESULT)0x80004002L) -#define E_POINTER ((HRESULT)0x80004003L) -#define E_HANDLE ((HRESULT)0x80070006L) -#define E_ABORT ((HRESULT)0x80004004L) -#define E_FAIL ((HRESULT)0x80004005L) -#define E_ACCESSDENIED ((HRESULT)0x80070005L) -#define E_UNEXPECTED ((HRESULT)0x8000FFFFL) -#define DXGI_ERROR_INVALID_CALL ((HRESULT)0x887A0001L) -#define DXGI_ERROR_NOT_FOUND ((HRESULT)0x887A0002L) -#define DXGI_ERROR_MORE_DATA ((HRESULT)0x887A0003L) -#define DXGI_ERROR_UNSUPPORTED ((HRESULT)0x887A0004L) -#define DXGI_ERROR_DEVICE_REMOVED ((HRESULT)0x887A0005L) -#define DXGI_ERROR_DEVICE_HUNG ((HRESULT)0x887A0006L) -#define DXGI_ERROR_DEVICE_RESET ((HRESULT)0x887A0007L) -#define DXGI_ERROR_DRIVER_INTERNAL_ERROR ((HRESULT)0x887A0020L) -#define DXGI_ERROR_SDK_COMPONENT_MISSING ((HRESULT)0x887A002DL) - -typedef struct _LUID -{ - ULONG LowPart; - LONG HighPart; -} LUID; - -typedef struct _RECT -{ - int left; - int top; - int right; - int bottom; -} RECT; - -typedef union _LARGE_INTEGER { - struct { - uint32_t LowPart; - uint32_t HighPart; - } u; - int64_t QuadPart; -} LARGE_INTEGER; -typedef LARGE_INTEGER *PLARGE_INTEGER; - -typedef union _ULARGE_INTEGER { - struct { - uint32_t LowPart; - uint32_t HighPart; - } u; - uint64_t QuadPart; -} ULARGE_INTEGER; -typedef ULARGE_INTEGER *PULARGE_INTEGER; - -#define DECLARE_HANDLE(name) \ - struct name##__ { \ - int unused; \ - }; \ - typedef struct name##__ *name - -typedef struct _SECURITY_ATTRIBUTES { - DWORD nLength; - LPVOID lpSecurityDescriptor; - WINBOOL bInheritHandle; -} SECURITY_ATTRIBUTES; - -struct STATSTG; - -#ifdef __cplusplus -// ENUM_FLAG_OPERATORS -// Define operator overloads to enable bit operations on enum values that are -// used to define flags. Use DEFINE_ENUM_FLAG_OPERATORS(YOUR_TYPE) to enable these -// operators on YOUR_TYPE. -extern "C++" { - template - struct _ENUM_FLAG_INTEGER_FOR_SIZE; - - template <> - struct _ENUM_FLAG_INTEGER_FOR_SIZE<1> - { - typedef int8_t type; - }; - - template <> - struct _ENUM_FLAG_INTEGER_FOR_SIZE<2> - { - typedef int16_t type; - }; - - template <> - struct _ENUM_FLAG_INTEGER_FOR_SIZE<4> - { - typedef int32_t type; - }; - - template <> - struct _ENUM_FLAG_INTEGER_FOR_SIZE<8> - { - typedef int64_t type; - }; - - // used as an approximation of std::underlying_type - template - struct _ENUM_FLAG_SIZED_INTEGER - { - typedef typename _ENUM_FLAG_INTEGER_FOR_SIZE::type type; - }; - -} -#define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) \ -extern "C++" { \ -inline constexpr ENUMTYPE operator | (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline ENUMTYPE &operator |= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline constexpr ENUMTYPE operator & (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline ENUMTYPE &operator &= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline constexpr ENUMTYPE operator ~ (ENUMTYPE a) { return ENUMTYPE(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } \ -inline constexpr ENUMTYPE operator ^ (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -inline ENUMTYPE &operator ^= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } \ -} -#else -#define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) /* */ -#endif - -// D3DX12 uses these -#include -#define HeapAlloc(heap, flags, size) malloc(size) -#define HeapFree(heap, flags, ptr) free(ptr) - -#if defined(lint) -// Note: lint -e530 says don't complain about uninitialized variables for -// this variable. Error 527 has to do with unreachable code. -// -restore restores checking to the -save state -#define UNREFERENCED_PARAMETER(P) \ - /*lint -save -e527 -e530 */ \ - { \ - (P) = (P); \ - } \ - /*lint -restore */ -#else -#define UNREFERENCED_PARAMETER(P) (P) -#endif diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/oaidl.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/oaidl.h deleted file mode 100644 index 76f5b5f..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/oaidl.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -// Stub header to satisfy d3d12.h include -#pragma once \ No newline at end of file diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/ocidl.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/ocidl.h deleted file mode 100644 index 76f5b5f..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/ocidl.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -// Stub header to satisfy d3d12.h include -#pragma once \ No newline at end of file diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/rpc.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/rpc.h deleted file mode 100644 index 76f5b5f..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/rpc.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -// Stub header to satisfy d3d12.h include -#pragma once \ No newline at end of file diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/rpcndr.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/rpcndr.h deleted file mode 100644 index 68aa390..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/rpcndr.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -// Stub header to satisfy d3d12.h include -#pragma once - -#include "basetsd.h" - -#define __RPCNDR_H_VERSION__ - -#ifdef CONST_VTABLE -#define CONST_VTBL const -#else -#define CONST_VTBL -#endif - -/* Macros for __uuidof template-based emulation */ -#if defined(__cplusplus) -#if __cpp_constexpr >= 200704l && __cpp_inline_variables >= 201606L -#define __wsl_stub_uuidof_use_constexpr 1 -#else -#define __wsl_stub_uuidof_use_constexpr 0 -#endif -#ifndef __GNUC__ -#error "Only support for compilers that support for `GNU C++ extension`" -#endif -extern "C++" { -#if __wsl_stub_uuidof_use_constexpr - __extension__ template struct __wsl_stub_uuidof_s; - __extension__ template constexpr const GUID &__wsl_stub_uuidof(); -#else - __extension__ template const GUID &__wsl_stub_uuidof(); -#endif -} - -#if __wsl_stub_uuidof_use_constexpr -#define __CRT_UUID_DECL(type, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ - extern "C++" \ - { \ - template <> \ - struct __wsl_stub_uuidof_s \ - { \ - static constexpr IID __uuid_inst = { \ - l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}; \ - }; \ - template <> \ - constexpr const GUID &__wsl_stub_uuidof() \ - { \ - return __wsl_stub_uuidof_s::__uuid_inst; \ - } \ - template <> \ - constexpr const GUID &__wsl_stub_uuidof() \ - { \ - return __wsl_stub_uuidof_s::__uuid_inst; \ - } \ - } -#else -#define __CRT_UUID_DECL(type, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ - extern "C++" \ - { \ - template <> \ - inline const GUID &__wsl_stub_uuidof() \ - { \ - static const IID __uuid_inst = { \ - l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}; \ - return __uuid_inst; \ - } \ - template <> \ - inline const GUID &__wsl_stub_uuidof() \ - { \ - return __wsl_stub_uuidof(); \ - } \ - } -#endif -#define __uuidof(type) __wsl_stub_uuidof<__typeof(type)>() -#else -#define __CRT_UUID_DECL(type, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) -#endif diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/unknwn.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/unknwn.h deleted file mode 100644 index e08ad1e..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/unknwn.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#include "unknwnbase.h" diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/unknwnbase.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/unknwnbase.h deleted file mode 100644 index 7a54651..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/unknwnbase.h +++ /dev/null @@ -1,124 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * Licensed under the MIT license - * - *-------------------------------------------------------------------------------------*/ - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - -/* File created by MIDL compiler version 8.01.0627 */ - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __unknwnbase_h__ -#define __unknwnbase_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IUnknown_FWD_DEFINED__ -#define __IUnknown_FWD_DEFINED__ -typedef interface IUnknown IUnknown; - -#endif /* __IUnknown_FWD_DEFINED__ */ - -#ifndef __IUnknown_INTERFACE_DEFINED__ -#define __IUnknown_INTERFACE_DEFINED__ - -/* interface IUnknown */ -/* [unique][uuid][object][local] */ - -typedef /* [unique] */ IUnknown *LPUNKNOWN; - -EXTERN_C const IID IID_IUnknown; - -#if defined(__cplusplus) && !defined(CINTERFACE) -extern "C++" -{ - MIDL_INTERFACE("00000000-0000-0000-c000-000000000046") - IUnknown - { - BEGIN_INTERFACE - - virtual HRESULT STDMETHODCALLTYPE QueryInterface( - REFIID riid, - void **ppvObject) = 0; - - virtual ULONG STDMETHODCALLTYPE AddRef() = 0; - - virtual ULONG STDMETHODCALLTYPE Release() = 0; - - template - HRESULT - STDMETHODCALLTYPE - QueryInterface(_COM_Outptr_ Q * *pp) - { - return QueryInterface(__uuidof(Q), (void **)pp); - } - END_INTERFACE - }; -} -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46) -#endif -#else -typedef struct IUnknownVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IUnknown *This, - REFIID riid, - void **ppvObject); - - ULONG (STDMETHODCALLTYPE *AddRef)( - IUnknown *This); - - ULONG (STDMETHODCALLTYPE *Release)( - IUnknown *This); - - END_INTERFACE -} IUnknownVtbl; - -interface IUnknown { - CONST_VTBL IUnknownVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IUnknown_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IUnknown_Release(This) (This)->lpVtbl->Release(This) -#endif - -#endif - -#endif /* __IUnknown_INTERFACE_DEFINED__ */ - -DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); - -#endif /* __unknwnbase_h__ */ diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/winapifamily.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/winapifamily.h deleted file mode 100644 index 064c4c2..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/winapifamily.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -// Stub header to satisfy d3d12.h include. Unconditionally light up all APIs. -#pragma once -#define WINAPI_FAMILY_PARTITION(Partitions) 1 \ No newline at end of file diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/wrl/client.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/wrl/client.h deleted file mode 100644 index 64293a7..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/wrl/client.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -// Stub to satisfy d3dx12.h include -#pragma once -#include \ No newline at end of file diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/wrl/implements.h b/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/wrl/implements.h deleted file mode 100644 index 5a3979e..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/stubs/wrl/implements.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -// Stub to satisfy DML TF runtime includes -#pragma once -#include \ No newline at end of file diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/winadapter.h b/Juliet/src/Graphics/DX12/D3D12/wsl/winadapter.h deleted file mode 100644 index ccb2b3c..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/winadapter.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#pragma once - -#include diff --git a/Juliet/src/Graphics/DX12/D3D12/wsl/wrladapter.h b/Juliet/src/Graphics/DX12/D3D12/wsl/wrladapter.h deleted file mode 100644 index fcfd894..0000000 --- a/Juliet/src/Graphics/DX12/D3D12/wsl/wrladapter.h +++ /dev/null @@ -1,803 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#pragma once - -#include "winadapter.h" - -// defined by winadapter.h and needed by some windows headers, but conflicts -// with some libc++ implementation headers -#ifdef __in -#undef __in -#endif -#ifdef __out -#undef __out -#endif - -#include -#include -#include -#include -#include -#include - -namespace Microsoft -{ -namespace WRL -{ - namespace Details - { - struct BoolStruct { int Member; }; - typedef int BoolStruct::* BoolType; - - template // T should be the ComPtr or a derived type of it, not just the interface - class ComPtrRefBase - { - public: - typedef typename T::InterfaceType InterfaceType; - - operator IUnknown**() const throw() - { - static_assert(__is_base_of(IUnknown, InterfaceType), "Invalid cast: InterfaceType does not derive from IUnknown"); - return reinterpret_cast(ptr_->ReleaseAndGetAddressOf()); - } - - protected: - T* ptr_; - }; - - template - class ComPtrRef : public Details::ComPtrRefBase // T should be the ComPtr or a derived type of it, not just the interface - { - using Super = Details::ComPtrRefBase; - using InterfaceType = typename Super::InterfaceType; - public: - ComPtrRef(_In_opt_ T* ptr) throw() - { - this->ptr_ = ptr; - } - - // Conversion operators - operator void**() const throw() - { - return reinterpret_cast(this->ptr_->ReleaseAndGetAddressOf()); - } - - // This is our operator ComPtr (or the latest derived class from ComPtr (e.g. WeakRef)) - operator T*() throw() - { - *this->ptr_ = nullptr; - return this->ptr_; - } - - // We define operator InterfaceType**() here instead of on ComPtrRefBase, since - // if InterfaceType is IUnknown or IInspectable, having it on the base will collide. - operator InterfaceType**() throw() - { - return this->ptr_->ReleaseAndGetAddressOf(); - } - - // This is used for IID_PPV_ARGS in order to do __uuidof(**(ppType)). - // It does not need to clear ptr_ at this point, it is done at IID_PPV_ARGS_Helper(ComPtrRef&) later in this file. - InterfaceType* operator *() throw() - { - return this->ptr_->Get(); - } - - // Explicit functions - InterfaceType* const * GetAddressOf() const throw() - { - return this->ptr_->GetAddressOf(); - } - - InterfaceType** ReleaseAndGetAddressOf() throw() - { - return this->ptr_->ReleaseAndGetAddressOf(); - } - }; - } - - template - class ComPtr - { - public: - typedef T InterfaceType; - - protected: - InterfaceType *ptr_; - template friend class ComPtr; - - void InternalAddRef() const throw() - { - if (ptr_ != nullptr) - { - ptr_->AddRef(); - } - } - - unsigned long InternalRelease() throw() - { - unsigned long ref = 0; - T* temp = ptr_; - - if (temp != nullptr) - { - ptr_ = nullptr; - ref = temp->Release(); - } - - return ref; - } - - public: - ComPtr() throw() : ptr_(nullptr) - { - } - - ComPtr(decltype(nullptr)) throw() : ptr_(nullptr) - { - } - - template - ComPtr(_In_opt_ U *other) throw() : ptr_(other) - { - InternalAddRef(); - } - - ComPtr(const ComPtr& other) throw() : ptr_(other.ptr_) - { - InternalAddRef(); - } - - // copy constructor that allows to instantiate class when U* is convertible to T* - template - ComPtr(const ComPtr &other, typename std::enable_if::value, void *>::type * = 0) throw() : - ptr_(other.ptr_) - { - InternalAddRef(); - } - - ComPtr(_Inout_ ComPtr &&other) throw() : ptr_(nullptr) - { - if (this != reinterpret_cast(&reinterpret_cast(other))) - { - Swap(other); - } - } - - // Move constructor that allows instantiation of a class when U* is convertible to T* - template - ComPtr(_Inout_ ComPtr&& other, typename std::enable_if::value, void *>::type * = 0) throw() : - ptr_(other.ptr_) - { - other.ptr_ = nullptr; - } - - ~ComPtr() throw() - { - InternalRelease(); - } - - ComPtr& operator=(decltype(nullptr)) throw() - { - InternalRelease(); - return *this; - } - - ComPtr& operator=(_In_opt_ T *other) throw() - { - if (ptr_ != other) - { - ComPtr(other).Swap(*this); - } - return *this; - } - - template - ComPtr& operator=(_In_opt_ U *other) throw() - { - ComPtr(other).Swap(*this); - return *this; - } - - ComPtr& operator=(const ComPtr &other) throw() - { - if (ptr_ != other.ptr_) - { - ComPtr(other).Swap(*this); - } - return *this; - } - - template - ComPtr& operator=(const ComPtr& other) throw() - { - ComPtr(other).Swap(*this); - return *this; - } - - ComPtr& operator=(_Inout_ ComPtr &&other) throw() - { - ComPtr(static_cast(other)).Swap(*this); - return *this; - } - - template - ComPtr& operator=(_Inout_ ComPtr&& other) throw() - { - ComPtr(static_cast&&>(other)).Swap(*this); - return *this; - } - - void Swap(_Inout_ ComPtr&& r) throw() - { - T* tmp = ptr_; - ptr_ = r.ptr_; - r.ptr_ = tmp; - } - - void Swap(_Inout_ ComPtr& r) throw() - { - T* tmp = ptr_; - ptr_ = r.ptr_; - r.ptr_ = tmp; - } - - operator Details::BoolType() const throw() - { - return Get() != nullptr ? &Details::BoolStruct::Member : nullptr; - } - - T* Get() const throw() - { - return ptr_; - } - - InterfaceType* operator->() const throw() - { - return ptr_; - } - - Details::ComPtrRef> operator&() throw() - { - return Details::ComPtrRef>(this); - } - - const Details::ComPtrRef> operator&() const throw() - { - return Details::ComPtrRef>(this); - } - - T* const* GetAddressOf() const throw() - { - return &ptr_; - } - - T** GetAddressOf() throw() - { - return &ptr_; - } - - T** ReleaseAndGetAddressOf() throw() - { - InternalRelease(); - return &ptr_; - } - - T* Detach() throw() - { - T* ptr = ptr_; - ptr_ = nullptr; - return ptr; - } - - void Attach(_In_opt_ InterfaceType* other) throw() - { - if (ptr_ != nullptr) - { - auto ref = ptr_->Release(); - // DBG_UNREFERENCED_LOCAL_VARIABLE(ref); - // Attaching to the same object only works if duplicate references are being coalesced. Otherwise - // re-attaching will cause the pointer to be released and may cause a crash on a subsequent dereference. - assert(ref != 0 || ptr_ != other); - } - - ptr_ = other; - } - - unsigned long Reset() - { - return InternalRelease(); - } - - // Previously, unsafe behavior could be triggered when 'this' is ComPtr or ComPtr and CopyTo is used to copy to another type U. - // The user will use operator& to convert the destination into a ComPtrRef, which can then implicit cast to IInspectable** and IUnknown**. - // If this overload of CopyTo is not present, it will implicitly cast to IInspectable or IUnknown and match CopyTo(InterfaceType**) instead. - // A valid polymoprhic downcast requires run-time type checking via QueryInterface, so CopyTo(InterfaceType**) will break type safety. - // This overload matches ComPtrRef before the implicit cast takes place, preventing the unsafe downcast. - template - HRESULT CopyTo(Details::ComPtrRef> ptr, typename std::enable_if< - (std::is_same::value) - && !std::is_same::value, void *>::type * = 0) const throw() - { - return ptr_->QueryInterface(__uuidof(U), ptr); - } - - HRESULT CopyTo(_Outptr_result_maybenull_ InterfaceType** ptr) const throw() - { - InternalAddRef(); - *ptr = ptr_; - return S_OK; - } - - HRESULT CopyTo(REFIID riid, _Outptr_result_nullonfailure_ void** ptr) const throw() - { - return ptr_->QueryInterface(riid, ptr); - } - - template - HRESULT CopyTo(_Outptr_result_nullonfailure_ U** ptr) const throw() - { - return ptr_->QueryInterface(__uuidof(U), reinterpret_cast(ptr)); - } - - // query for U interface - template - HRESULT As(_Inout_ Details::ComPtrRef> p) const throw() - { - return ptr_->QueryInterface(__uuidof(U), p); - } - - // query for U interface - template - HRESULT As(_Out_ ComPtr* p) const throw() - { - return ptr_->QueryInterface(__uuidof(U), reinterpret_cast(p->ReleaseAndGetAddressOf())); - } - - // query for riid interface and return as IUnknown - HRESULT AsIID(REFIID riid, _Out_ ComPtr* p) const throw() - { - return ptr_->QueryInterface(riid, reinterpret_cast(p->ReleaseAndGetAddressOf())); - } - - }; // ComPtr - - - namespace Details - { - // Empty struct used as default template parameter - class Nil - { - }; - - // Empty struct used for validating template parameter types in Implements - struct ImplementsBase - { - }; - - class RuntimeClassBase - { - protected: - template - static HRESULT AsIID(_In_ T* implements, REFIID riid, _Outptr_result_nullonfailure_ void **ppvObject) noexcept - { - *ppvObject = nullptr; - bool isRefDelegated = false; - // Prefer InlineIsEqualGUID over other forms since it's better perf on 4-byte aligned data, which is almost always the case. - if (InlineIsEqualGUID(riid, __uuidof(IUnknown))) - { - *ppvObject = implements->CastToUnknown(); - static_cast(*ppvObject)->AddRef(); - return S_OK; - } - - HRESULT hr = implements->CanCastTo(riid, ppvObject, &isRefDelegated); - if (SUCCEEDED(hr) && !isRefDelegated) - { - static_cast(*ppvObject)->AddRef(); - } - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable: 6102) // '*ppvObject' is used but may not be initialized -#endif - _Analysis_assume_(SUCCEEDED(hr) || (*ppvObject == nullptr)); -#ifdef _MSC_VER -#pragma warning(pop) -#endif - return hr; - } - - public: - HRESULT RuntimeClassInitialize() noexcept - { - return S_OK; - } - }; - - // Interface traits provides casting and filling iids methods helpers - template - struct InterfaceTraits - { - typedef I0 Base; - - template - static Base* CastToBase(_In_ T* ptr) noexcept - { - return static_cast(ptr); - } - - template - static IUnknown* CastToUnknown(_In_ T* ptr) noexcept - { - return static_cast(static_cast(ptr)); - } - - template - _Success_(return == true) - static bool CanCastTo(_In_ T* ptr, REFIID riid, _Outptr_ void **ppv) noexcept - { - // Prefer InlineIsEqualGUID over other forms since it's better perf on 4-byte aligned data, which is almost always the case. - if (InlineIsEqualGUID(riid, __uuidof(Base))) - { - *ppv = static_cast(ptr); - return true; - } - - return false; - } - }; - - // Specialization for Nil parameter - template<> - struct InterfaceTraits - { - typedef Nil Base; - - template - _Success_(return == true) - static bool CanCastTo(_In_ T*, REFIID, _Outptr_ void **) noexcept - { - return false; - } - }; - - // ChainInterfaces - template allows specifying a derived COM interface along with its class hierarchy to allow QI for the base interfaces - template - struct ChainInterfaces : I0 - { - protected: - HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv) throw() - { - typename InterfaceTraits::Base* ptr = InterfaceTraits::CastToBase(this); - - return (InterfaceTraits::CanCastTo(this, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv) || - InterfaceTraits::CanCastTo(ptr, riid, ppv)) ? S_OK : E_NOINTERFACE; - } - - IUnknown* CastToUnknown() throw() - { - return InterfaceTraits::CastToUnknown(this); - } - }; - - // Helper template used by Implements. This template traverses a list of interfaces and adds them as base class and information - // to enable QI. - template - struct ImplementsHelper; - - template - struct ImplementsMarker - {}; - - template - struct MarkImplements; - - template - struct MarkImplements - { - typedef I0 Type; - }; - - template - struct MarkImplements - { - typedef ImplementsMarker Type; - }; - - // AdjustImplements pre-processes the type list for more efficient builds. - template - struct AdjustImplements; - - template - struct AdjustImplements - { - typedef ImplementsHelper::value>::Type, Bases...> Type; - }; - - // Use AdjustImplements to remove instances of "Nil" from the type list. - template - struct AdjustImplements - { - typedef typename AdjustImplements::Type Type; - }; - - template <> - struct AdjustImplements<> - { - typedef ImplementsHelper<> Type; - }; - - // Specialization handles unadorned interfaces - template - struct ImplementsHelper : - I0, - AdjustImplements::Type - { - template friend struct ImplementsHelper; - friend class RuntimeClassBase; - - protected: - - HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv, bool *pRefDelegated = nullptr) noexcept - { - // Prefer InlineIsEqualGUID over other forms since it's better perf on 4-byte aligned data, which is almost always the case. - if (InlineIsEqualGUID(riid, __uuidof(I0))) - { - *ppv = reinterpret_cast(reinterpret_cast(this)); - return S_OK; - } - return AdjustImplements::Type::CanCastTo(riid, ppv, pRefDelegated); - } - - IUnknown* CastToUnknown() noexcept - { - return reinterpret_cast(reinterpret_cast(this)); - } - }; - - - // Selector is used to "tag" base interfaces to be used in casting, since a runtime class may indirectly derive from - // the same interface or Implements<> template multiple times - template - struct Selector : public base - { - }; - - // Specialization handles types that derive from ImplementsHelper (e.g. nested Implements). - template - struct ImplementsHelper, TInterfaces...> : - Selector, TInterfaces...>>, - Selector::Type, ImplementsHelper, TInterfaces...>> - { - template friend struct ImplementsHelper; - friend class RuntimeClassBase; - - protected: - typedef Selector, TInterfaces...>> CurrentType; - typedef Selector::Type, ImplementsHelper, TInterfaces...>> BaseType; - - HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv, bool *pRefDelegated = nullptr) noexcept - { - HRESULT hr = CurrentType::CanCastTo(riid, ppv); - if (hr == E_NOINTERFACE) - { - hr = BaseType::CanCastTo(riid, ppv, pRefDelegated); - } - return hr; - } - - IUnknown* CastToUnknown() noexcept - { - // First in list wins. - return CurrentType::CastToUnknown(); - } - }; - - // terminal case specialization. - template <> - struct ImplementsHelper<> - { - template friend struct ImplementsHelper; - friend class RuntimeClassBase; - - protected: - HRESULT CanCastTo(_In_ REFIID /*riid*/, _Outptr_ void ** /*ppv*/, bool * /*pRefDelegated*/ = nullptr) noexcept - { - return E_NOINTERFACE; - } - - // IUnknown* CastToUnknown() noexcept; // not defined for terminal case. - }; - - // Specialization handles chaining interfaces - template - struct ImplementsHelper, TInterfaces...> : - ChainInterfaces, - AdjustImplements::Type - { - template friend struct ImplementsHelper; - friend class RuntimeClassBase; - - protected: - typedef typename AdjustImplements::Type BaseType; - - HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv, bool *pRefDelegated = nullptr) noexcept - { - HRESULT hr = ChainInterfaces::CanCastTo(riid, ppv); - if (FAILED(hr)) - { - hr = BaseType::CanCastTo(riid, ppv, pRefDelegated); - } - - return hr; - } - - IUnknown* CastToUnknown() noexcept - { - return ChainInterfaces::CastToUnknown(); - } - }; - - // Implements - template implementing QI using the information provided through its template parameters - // Each template parameter has to be one of the following: - // * COM Interface - // * A class that implements one or more COM interfaces - // * ChainInterfaces template - template - struct Implements : - AdjustImplements::Type, - ImplementsBase - { - public: - typedef I0 FirstInterface; - protected: - typedef typename AdjustImplements::Type BaseType; - template friend struct ImplementsHelper; - friend class RuntimeClassBase; - - HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv) noexcept - { - return BaseType::CanCastTo(riid, ppv); - } - - IUnknown* CastToUnknown() noexcept - { - return BaseType::CastToUnknown(); - } - }; - - // Used on RuntimeClass to protect it from being constructed with new - class DontUseNewUseMake - { - private: - void* operator new(size_t) noexcept - { - assert(false); - return 0; - } - - public: - void* operator new(size_t, _In_ void* placement) noexcept - { - return placement; - } - }; - - template - class RuntimeClassImpl : - public AdjustImplements::Type, - public RuntimeClassBase, - public DontUseNewUseMake - { - public: - STDMETHOD(QueryInterface)(REFIID riid, _Outptr_result_nullonfailure_ void **ppvObject) - { - return Super::AsIID(this, riid, ppvObject); - } - - STDMETHOD_(ULONG, AddRef)() - { - return InternalAddRef(); - } - - STDMETHOD_(ULONG, Release)() - { - ULONG ref = InternalRelease(); - if (ref == 0) - { - this->~RuntimeClassImpl(); - delete[] reinterpret_cast(this); - } - - return ref; - } - - protected: - using Super = RuntimeClassBase; - static const LONG c_lProtectDestruction = -(LONG_MAX / 2); - - RuntimeClassImpl() noexcept = default; - - virtual ~RuntimeClassImpl() noexcept - { - // Set refcount_ to -(LONG_MAX/2) to protect destruction and - // also catch mismatched Release in debug builds - refcount_ = static_cast(c_lProtectDestruction); - } - - ULONG InternalAddRef() noexcept - { - return ++refcount_; - } - - ULONG InternalRelease() noexcept - { - return --refcount_; - } - - unsigned long GetRefCount() const noexcept - { - return refcount_; - } - - std::atomic refcount_{1}; - }; - } - - template - class Base : public Details::RuntimeClassImpl - { - Base(const Base&) = delete; - Base& operator=(const Base&) = delete; - - protected: - HRESULT CustomQueryInterface(REFIID /*riid*/, _Outptr_result_nullonfailure_ void** /*ppvObject*/, _Out_ bool *handled) - { - *handled = false; - return S_OK; - } - - public: - Base() throw() = default; - typedef Base RuntimeClassT; - }; - - // Creates a Nano-COM object wrapped in a smart pointer. - template - ComPtr Make(TArgs&&... args) - { - std::unique_ptr buffer(new(std::nothrow) char[sizeof(T)]); - ComPtr object; - - if (buffer) - { - T* ptr = new (buffer.get())T(std::forward(args)...); - object.Attach(ptr); - buffer.release(); - } - - return object; - } - - using Details::ChainInterfaces; -} -} - -// Overloaded global function to provide to IID_PPV_ARGS that support Details::ComPtrRef -template -void** IID_PPV_ARGS_Helper(Microsoft::WRL::Details::ComPtrRef pp) throw() -{ - return pp; -} diff --git a/Juliet/src/Graphics/DX12/DX12GraphicsDevice.cpp b/Juliet/src/Graphics/DX12/DX12GraphicsDevice.cpp deleted file mode 100644 index 5f5daeb..0000000 --- a/Juliet/src/Graphics/DX12/DX12GraphicsDevice.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include - -#include - -namespace Juliet -{ - // TODO : Use DLL instead of static link - namespace - { - bool CheckDriver() - { - return false; - } - - GraphicsDevice* CreateGraphicsDevice() - { - return nullptr; - } - } // namespace - - // clang-format off - GraphicsDeviceFactory DX12DeviceFactory = { - .Name="DirectX12", - .Type=RendererType::DX12, - .CheckDriver = CheckDriver, - .CreateGraphicsDevice = CreateGraphicsDevice }; - // clang-format on -} // namespace Juliet diff --git a/Juliet/src/Graphics/DX12/DX12Includes.h b/Juliet/src/Graphics/DX12/DX12Includes.h deleted file mode 100644 index 15394aa..0000000 --- a/Juliet/src/Graphics/DX12/DX12Includes.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -// Windows Runtime Library to handle ComPtr -#include -namespace wrl = Microsoft::WRL; - -// DirectX 12 specific headers. -// Downloaded from https://github.com/microsoft/DirectX-Headers/releases/tag/v1.614.1 -#include -#include -// D3D12 extension library. -#include - -// From MSVC Installer -#include -#include -#include diff --git a/JulietApp/JulietApp.vcxproj b/JulietApp/JulietApp.vcxproj index c968467..1879911 100644 --- a/JulietApp/JulietApp.vcxproj +++ b/JulietApp/JulietApp.vcxproj @@ -50,14 +50,14 @@ - $(SolutionDir)\lib\$(Platform)\$(Configuration)\;$(LibraryPath) $(SolutionDir)Intermediate\$(ProjectName)\$(Platform)\$(Configuration)\ $(SolutionDir)\bin\$(Platform)\$(Configuration)\ $(SolutionDir)Juliet\include\;$(SolutionDir)JulietApp;$(IncludePath) + $(SolutionDir)\bin\$(Platform)\$(Configuration)\;$(LibraryPath) $(SolutionDir)Juliet\include\;$(SolutionDir)JulietApp;$(IncludePath) - $(SolutionDir)\lib\$(Platform)\$(Configuration)\;$(LibraryPath) + $(SolutionDir)\bin\$(Platform)\$(Configuration)\;$(LibraryPath) $(SolutionDir)\bin\$(Platform)\$(Configuration)\ $(SolutionDir)Intermediate\$(ProjectName)\$(Platform)\$(Configuration)\ @@ -77,6 +77,9 @@ true Juliet.lib;%(AdditionalDependencies) + + +